Compartilhar via


Windows Embedded CE 6.0 Security Model

Windows Mobile Not SupportedWindows Embedded CE Supported

9/8/2008

Este tópico aborda as alterações na modelo de segurança Windows Embedded CE 6.0.

Modelo de segurança antiga: Nível de confiança para módulos

Nas versões anteriores para Windows Embedded CE 6.0, houve uma concepção de confiança associado com cada módulo (DLL ou executável). Cada módulo pode ser categorizado como um do seguinte:

  • Carregado com privilégios “ confiança completa ”: Isso era geralmente a maiúsculas e minúsculas para um DLL ou executável assinado com um Certificado que Chains para armazenar uma certificação privilegiado sobre o dispositivo. Nesta maiúsculas e minúsculas o módulo foi permissão para carregar e codificar o módulo pode também chamar todos as APIs no sistema.
  • Carregado com privilégios “ executar ”: Isso era geralmente a maiúsculas e minúsculas para um DLL ou executável assinado com um Certificado que Chains para um sem privilégios armazenar de certificação sobre o dispositivo. Neste maiúsculas e minúsculas que o módulo foi permissão para carregar, mas API específico chamadas (como SetKMode) não foi possível estabelecer neste módulo.
  • Sem privilégios: Isso era geralmente a maiúsculas e minúsculas se a DLL ou executável assinado com um Certificado que é Não em qualquer um de certificação armazena sobre o dispositivo ou o módulo não estava assinado em Todos e o módulo estava sendo carregado em uma confiança-habilitado sistema.

Neste modelo de segurança, módulo confiança foi totalmente governada pelo Certificado (ou a falta de uma Certificado) associado com o módulo especificado. Em geral incorporado sistemas onde um subsistema de certificação não estava na imagem Por padrão, um OEM poderia ainda tiver limitado as chamadas API para apenas esses módulos que residir em ROM.

Novo modelo de segurança: Confiança nível para módulos e APIs

Em CE 6.0, a concepção do módulo confiança é tratada de maneira ligeiramente diferente e é dividida em duas partes:

  • Carregar privilégios: Isso é usado por Windows Embedded CE para decidir se um módulo pode ser carregado ou não (de exemplo, quando um aplicativo chama CreateProcess ou LoadLibrary para iniciar ou carregar um módulo). Privilégio Carregar decide se deseja carregar o módulo determinando se um módulo de certificação é compilado para o Windows Embedded CE alimentado dispositivo ou não. Para obter mais informações, consulte Privilégio Carregar neste tópico.
  • Privilégio API: Isso é usado por Windows Embedded CE para decidir se codificar módulo pode chamar APIs específicas que são categorizado como kernel-modo apenas. A decisão para esse baseia-se no local de onde o módulo é carregado. Codificar qualquer que seja carregado acima 0x8000_0000 é considerada como execução em modo kernel, e qualquer codificar que é carregado abaixo desse endereço é considerado como execução em modo usuário. Portanto, se um módulo pode chamar APIs específico inteiramente depende que espaço de endereço que o módulo é carregado no. A decisão não está relacionado ao qual Certificado é associado com o módulo especificado. Para obter mais informações, consulte Kernel Mode APIs.

Visão geral de privilégio Carregar

Em CE 6.0, privilégio carregar para um módulo se baseia o seguinte regras:

  • Qualquer módulo com ROM atributo definir o arquivo é considerado como totalmente confiável.
  • Qualquer módulo que está assinado com um Certificado que Chains para um Certificado codesign armazenado no dispositivo é considerado como totalmente confiável.
  • Todos os outros módulos são considerados não confiáveis.

Considerar essas regras, a seguinte três casos representam as maneiras possíveis de que um dispositivo Windows Embedded CE alimentado pode ser compilado para acomodar carregar privilégio.

Caso 1: Solução caixa fechada

Se você desejar para desenvolver uma solução caixa fechada usando CE 6.0, em seguida, você deve considerar fazer o seguinte:

  1. Ativar SYSGEN_CERTMOD a imagem. Você pode definir essa variável Sysgen na linha de comando durante um compilar.
  2. Fazer não adicionar quaisquer certificados para o armazenar codesign sobre o dispositivo.
  3. Certifique-se de que todos os módulos que são necessários para executar no sistema caixa fechada estão em ROM.

Depois que uma imagem estiver compilado com as propriedades acima e, em seguida, nenhuma outra-parte aplicativos ou módulos podem ser carregados desse sistema.

Case 2: Solução caixa semi-closed

Se você desejar para desenvolver uma solução semi-closed caixa usando CE 6.0, no qual assinado somente módulos podem ser carregados no sistema e, em seguida, você deve considerar fazer o seguinte:

  1. Ativar SYSGEN_CERTMOD a imagem. Você pode definir essa variável Sysgen na linha de comando durante um compilar.
  2. Adicione um ou mais certificados para o armazenar codesign sobre o dispositivo.
  3. Certifique-se de que todos os módulos que necessários para executar nesse sistema está em ROM ou assinado com um Certificado que está na armazenar codesign sobre o dispositivo.

Uma solução caixa semi-closed é apropriado para um OEM que deseja publicar um SDK para seus Windows Embedded CE ativado pelo dispositivo para que os ISVs podem gravar aplicativos que destino sua plataforma. Aplicando que aplicativos devem ser assinado com um Certificado OEM, os OEMs podem controle quais aplicativos têm permissão para executar no dispositivo.

Case 3: Abrir solução

Se você desejar para desenvolver um aberto solução usando CE 6.0, em seguida, você deve considerar o seguinte:

  • Certifique-se de que SYSGEN_CERTMOD não está definida na imagem.

Quando SYSGEN_CERTMOD não é definida na imagem, todos os módulos de sistema são considerados como totalmente confiável para O privilégio e qualquer tentativa para carregar qualquer módulo será proceder normalmente.

Observe que SYSGEN_CERTMOD apenas controla os privilégios carregar um módulo. Depois que o módulo é carregado, o conjunto de APIs que o módulo tem permissão para chamar depende qual modo (modo kernel ou modo usuário) que segmentos desse módulo estão execução no. Isso é determinado pelo qual espaço de endereço o módulo é carregado no.

Para obter mais informações, consulte este tópico no privilégio API a descrição anteriormente.

See Also

Reference

CertInit
CertVerify

Concepts

Trusted Environment Creation

Other Resources

Loading DLLs in Kernel Mode or User Mode: Windows CE 5.0 vs. Windows Embedded CE 6.0
certmod Module