Assinaturas digitais para módulos kernel em sistemas que executam o Windows Vista
Microsoft Corporation
Atualizado em junho de 2007
Aplica-se a:
Windows Vista
Windows Server 2008
Resumo: Para o Microsoft Windows Vista e versões posteriores da família Windows de sistemas operacionais, o software no modo kernel deve ter uma assinatura digital para carregar em sistemas de computador baseados em x64. Saiba como gerenciar o processo de assinatura do software no modo kernel para Windows Vista. (22 páginas impressas.)
A versão atual deste artigo é mantida na Web em: https://www.microsoft.com/whdc/system/platform/64bit/kmsigning.mspx.
Sumário
Introdução
Assinaturas digitais como prática recomendada
Opções de assinatura de código do modo kernel
O processo de assinatura de código do modo Kernel
Como obter um certificado de publicação de software (SPC)
Criando um arquivo .cat assinado
Adicionando uma assinatura inserida a um arquivo de imagem de driver
Como desabilitar a imposição de assinatura durante o desenvolvimento
Como usar a Assinatura de Teste
Habilitando a solução de problemas de assinatura de teste
Detectando erros de carregamento do driver
Habilitando eventos de log do sistema de diagnóstico de integridade de código
Opções de depuração de verificação de driver
Recursos
Introdução
Para usuários consumidores e corporativos do Windows em todo o mundo, proteger dados pessoais e corporativos continua sendo uma das principais preocupações. A Microsoft está comprometida em implementar novas maneiras de ajudar a restringir a disseminação de software mal-intencionado. As assinaturas digitais para software no modo kernel são uma maneira importante de garantir a segurança em sistemas de computador.
As assinaturas digitais permitem que o administrador ou o usuário final que está instalando o software baseado no Windows saibam se um editor legítimo forneceu o pacote de software. Quando os usuários optam por enviar Relatório de Erros do Windows dados para a Microsoft após ocorrer uma falha ou outro erro, a Microsoft pode analisar os dados para saber qual software dos editores estava em execução no sistema no momento do erro. Os editores de software podem usar as informações fornecidas pela Microsoft para localizar e corrigir problemas em seu software.
O Windows Vista depende de assinaturas digitais no código do modo kernel para aumentar a segurança e a estabilidade da plataforma Microsoft Windows e habilitar novas experiências do cliente com conteúdo premium de próxima geração:
- Os drivers devem ser assinados para dispositivos que transmitem conteúdo protegido. Isso inclui drivers de áudio que usam o PUMA (Protected User Mode Audio) e o PAP (Caminho de Áudio Protegido) e drivers de dispositivo de vídeo que lidam com comandos de PVP-OPM (gerenciamento de proteção de saída de caminho de vídeo) protegidos.
- O software de modo kernel não assinado não será carregado e não será executado em sistemas baseados em x64.
Nota: Mesmo usuários com privilégios de administrador não podem carregar código de modo kernel sem sinal em sistemas baseados em x64. Isso se aplica a qualquer módulo de software que seja carregado no modo kernel, incluindo drivers de dispositivo, drivers de filtro e serviços de kernel.
O escopo da nova política de assinatura de código do modo kernel é de longo alcance. Para desenvolvedores que publicam software no modo kernel, essa política tem os seguintes efeitos:
Para qualquer componente do modo kernel que ainda não esteja assinado, os editores devem obter um Certificado de Publicação de Software (SPC) e usar o SPC para assinar todos os softwares do modo kernel de 64 bits que serão executados em sistemas de computador baseados em x64 que executam o Windows Vista. Isso inclui software de serviços no modo kernel.
Os editores que fornecem driver de dispositivo de 64 bits ou outro software no modo kernel que já está assinado por meio do Programa de Logotipo do Windows terão seus catálogos de driver assinados com uma assinatura do WHQL (Windows Hardware Quality Labs). Para testar totalmente o pacote de driver antes do envio ao WHQL, assine o catálogo de driver usando um SPC.
No caso especial de drivers de inicialização, também é necessário usar um SPC para assinar o arquivo de imagem binária do driver para obter o desempenho ideal de inicialização do sistema.
Nota Diz-se que um driver será inicializado se ele for carregado pelo carregador do sistema operacional Windows Vista. Os drivers de inicialização podem ser identificados da seguinte maneira: o DRIVER INF especifica o tipo inicial como "Start=0" ou um serviço kernel é configurado com um ServiceType como Driver de Kernel ou Driver do Sistema de Arquivos e StartMode para ser "inicialização".
A política de assinatura de código do modo kernel obrigatória se aplica a todos os softwares do modo kernel em sistemas baseados em x64 que executam o Windows Vista. No entanto, a Microsoft incentiva os editores a assinar digitalmente todos os softwares, incluindo drivers de dispositivo para plataformas de 32 bits e 64 bits. O Windows Vista executa a verificação de assinatura do modo kernel em sistemas x86 para dar suporte ao conteúdo de mídia protegido. No entanto, as assinaturas de driver do modo kernel não são obrigatórias para sistemas de 32 bits.
Este artigo descreve como gerenciar o processo de assinatura do código do modo kernel para Windows Vista, incluindo como obter um Certificado de Publicação de Software (SPC), diretrizes para proteger chaves e como assinar um pacote de driver usando as ferramentas fornecidas no WDK (Kit de Driver do Windows).
Assinaturas digitais como prática recomendada
Desde o lançamento do Windows 98, a Microsoft promoveu a assinatura de driver para classes de dispositivo designadas como um mecanismo para promover a confiabilidade do driver, fornecer uma melhor experiência do usuário, reduzir os custos de suporte para fornecedores de software e hardware e reduzir o custo total de propriedade para os clientes.
Para drivers de dispositivo e outros softwares no modo kernel, os drivers assinados como parte do programa logotipo do Windows aumentam a confiança do usuário final na qualidade do software e melhoram a experiência do usuário, pois um Logotipo do Windows pertencente a um driver indica que o driver foi testado e a assinatura digital que acompanha o Logotipo do Windows confirma que não foi alterada desde o teste.
Para a maioria dos pacotes de driver no modo kernel, uma assinatura digital é fornecida em um arquivo de catálogo assinado (.cat). O WHQL (Windows Hardware Quality Labs) fornece um arquivo .cat assinado pela Microsoft para distribuir com um pacote de driver que atende aos requisitos do programa logotipo do Windows.
O processo de criação de software no modo kernel assinado consiste em duas atividades distintas, mas relacionadas. Isso pode ser feito em paralelo porque o software geralmente não precisa ser assinado até relativamente tarde no processo de desenvolvimento.
Gerenciando o processo de assinatura. Normalmente, isso é tratado pelos serviços de gerenciamento de programas e lançamento de software dos editores e inclui:
- Selecionando a opção de assinatura apropriada.
- Obtendo os certificados necessários.
- Gerenciando a assinatura digital ou as chaves de assinatura de código.
Nota Para assinar digitalmente arquivos binários ou catálogos de imagens, um editor de software deve ter uma chave de assinatura de código certificada, o que significa que uma Autoridade de Certificação estabeleceu suficientemente a identidade do editor.
Implementando o driver a ser assinado. Normalmente, isso é tratado pela equipe de desenvolvimento do editor e inclui:
- Implementando o driver em si.
- Criando um pacote de driver assinado para teste interno ou versão.
Esses processos são documentados para versões anteriores do Windows no WDK e no SDK da Plataforma. Este artigo descreve opções adicionais relacionadas à assinatura de código no modo kernel para o Windows Vista.
Opções de assinatura de código do modo kernel
Há várias opções disponíveis para trabalhar com os requisitos de ASSINATURA de Código do Modo Kernel (KMCS) no Windows Vista. A assinatura de arquivos de driver não é necessária para o Windows Vista carregar drivers durante o desenvolvimento do código do modo kernel. Em vez disso, os desenvolvedores podem usar um dos mecanismos para desabilitar temporariamente as verificações de tempo de carga pelo kernel em sistemas de desenvolvimento e testes não automatizados. No entanto, a assinatura de teste de pacotes de driver é necessária para automatizar a instalação de um pacote de driver em sistemas de teste sem ter pop-ups de instalação de driver. A DMI (Infraestrutura de Gerenciamento de Driver) verifica a assinatura do pacote de driver durante a instalação e avisa os usuários sobre drivers não assinados.
A tabela a seguir compara as opções para assinar digitalmente módulos de kernel compatíveis com o Windows Vista.
Opções para assinar módulos de kernel
Opções de assinatura | Funcionalidade verificada para atender aos requisitos do logotipo | Identidade verificada | Uso pretendido |
---|---|---|---|
Programa de logotipo do Windows | Sim | Sim | Versão |
Assinatura de código do modo Kernel usando um SPC | Não | Sim | Versão |
Programa de Assinatura de Teste do WHQL | Não | Sim | Teste |
Assinatura de teste do KMCS | Não | Não | Teste |
O programa Logotipo do Windows verifica a funcionalidade correta do driver e garante alta qualidade e confiabilidade. Os pacotes de driver enviados para o programa logotipo do Windows são assinados digitalmente pela Microsoft. O programa Logotipo do Windows aceita pacotes de dispositivo instalados por meio do arquivo INF para hardware que atenda aos requisitos do Logotipo do Windows. O editor de driver envia o pacote de driver depois de concluir testes de verificação de driver para o Programa de Logotipo do Windows. Os drivers que se qualificam para o logotipo recebem um arquivo .cat assinado pela Microsoft. Para obter informações sobre o Programa de Logotipo do Windows, consulte a seção Recursos no final deste artigo.
Os desenvolvedores podem assinar o arquivo de imagem de driver ou o catálogo de driver com um SPC para teste antes de enviar ao WHQL para verificar se o driver carrega e opera corretamente.
A Assinatura de Código do Modo Kernel usando um SPC fornece a identificação do editor de um módulo de kernel carregado no Windows Vista. Ele não fornece nenhum nível de certificação de funcionalidade ou confiabilidade do módulo de kernel. Para drivers que não se qualificam para o Logotipo do Windows ou o Logotipo do Windows não é um dos requisitos do produto, o editor pode criar um arquivo .cat para o pacote de driver e assiná-lo com o SPC do editor.
Importante A Assinatura de Código do Modo Kernel não substitui o programa WHQL. A Microsoft incentiva os editores a usar o programa Logotipo do Windows para garantir a qualidade do driver. A Assinatura de Código do Modo Kernel não exige que o editor de software passe nos requisitos de teste do Programa de Logotipo do Windows associados ao WHQL.
Um arquivo .cat assinado é tudo o que é necessário para que a maioria dos pacotes de driver instale e carregue corretamente em sistemas x64, exceto pacotes que contêm um driver que é carregado pelo carregador de inicialização do Windows Vista. Um pacote de driver que contém um driver de dispositivo carregado pelo carregador de inicialização do Windows Vista deve ser conectado de duas maneiras:
- O arquivo binário do driver do modo kernel carregado no momento da inicialização deve ter uma assinatura inserida no binário assinado com um SPC. Para simplificar, pode ser mais fácil inserir todos os arquivos de imagem de driver no pacote.
- O pacote de driver instalado usando um arquivo INF também deve ter um arquivo de catálogo assinado, assim como os pacotes de driver que não contêm um driver de inicialização, para verificação de assinatura durante a instalação.
Os fabricantes devem garantir que os fornecedores de hardware adquiram um SPC e assinem os drivers de inicialização que serão instalados em sistemas instalados pelo fabricante.
Para fins de teste durante o ciclo de desenvolvimento, a assinatura de código usando um certificado de "teste" é recomendada em vez de assinar com um certificado de versão. Um binário assinado por teste só é reconhecido pelos sistemas Windows Vista quando uma opção de configuração de inicialização que permite o uso de certificados de assinatura de teste está habilitada. A assinatura de teste não está habilitada por padrão e as assinaturas de teste não serão confiáveis para a maioria dos sistemas Windows Vista.
O programa WHQL Test Signature também tem suporte para assinatura de teste. Os participantes do programa podem enviar pacotes de driver para Assinatura de Teste do WHQL. A assinatura nos catálogos assinados de teste é gerada por um certificado emitido na Autoridade Raiz de Teste da Microsoft. A Autoridade Raiz de Teste da Microsoft é aceita quando a configuração de inicialização do Windows Vista habilita a Assinatura de Teste. Para obter informações sobre o Programa de Assinatura de Teste do WHQL, consulte a seção Recursos no final deste artigo.
Para assinatura de "teste" e "versão", a equipe de desenvolvimento deve seguir as práticas recomendadas para o gerenciamento de chaves, conforme descrito em Diretrizes para proteger chaves de assinatura de código mais adiante neste artigo.
A assinatura de teste é discutida mais detalhadamente na seção Como usar a Assinatura de Teste posteriormente neste documento.
O processo de assinatura de código do modo Kernel
Assinar digitalmente um arquivo ou catálogo de imagens do modo kernel estabelece a integridade do arquivo ou dos arquivos assinados. Os módulos de software nunca devem ser modificados após a operação de assinatura de código ter sido executada. A modificação do arquivo de imagem após a assinatura de código resulta em falhas de verificação de assinatura de tempo de instalação e tempo de carregamento.
Um pacote de driver que contém vários arquivos pode ser assinado usando um catálogo. O pacote de driver deve ter um arquivo de catálogo assinado (.cat) que é usado para identificar o editor quando o pacote de driver é instalado e verificar a imagem do driver quando ele é carregado no kernel. O arquivo de catálogo contém um certificado digital que identifica o editor, além de hashes do conteúdo do pacote que permitem ao sistema verificar se os arquivos no pacote não foram alterados.
Conforme mencionado anteriormente, os drivers de inicialização devem ter assinaturas inseridas no arquivo de imagem do driver. As assinaturas inseridas nos arquivos de imagem do driver de inicialização otimizam o desempenho de inicialização do sistema operacional eliminando a necessidade de localizar o arquivo appropriate.cat quando o carregador do sistema operacional verifica a assinatura do driver.
A assinatura de driver não é necessária para cada build durante o processo de desenvolvimento do driver. Os desenvolvedores podem desabilitar a imposição de assinatura de driver, conforme descrito em Como desabilitar a imposição de assinatura durante o desenvolvimento posteriormente neste artigo.
As seções a seguir discutem como obter e gerenciar certificados. A mecânica de assinatura de pacotes de driver é discutida posteriormente neste artigo.
Como obter um certificado de publicação de software (SPC)
Obtenha um SPC para assinar o software no modo kernel que atenda à política de assinatura de código do modo kernel obrigatória usando as seguintes etapas:
- Obtenha um SPC de uma AC comercial que emite certificados digitais para assinar o código do modo kernel. A lista de ACs que fornecem certificados de publicação de software (ou certificados de assinatura de código) que podem ser usados para assinatura de código no modo kernel está disponível na página da Web assinatura de código do modo kernel do Microsoft Cross-certificates for Windows Vista .
- Baixe um certificado cruzado correspondente da página da Web assinatura de código do modo kernel do Microsoft Cross-certificates para Windows Vista para a autoridade de certificação raiz que emitiu o SPC. O certificado cruzado é usado na assinatura digital para o código do modo kernel para que a assinatura possa ser verificada até uma autoridade raiz confiável conhecida pelo kernel do Windows Vista.
Ao solicitar um Certificado de Publicação de Software de uma AC comercial, siga as instruções no site da AC para saber como adquirir e instalar o certificado de assinatura de código no computador em que você usará a chave privada para assinar o código.
Diretrizes para proteger chaves de assinatura de código
As chaves criptográficas que estão no centro do processo de assinatura de código devem ser bem protegidas e tratadas com o mesmo cuidado que os ativos mais valiosos para qualquer empresa. Essas chaves representam uma identidade da empresa. Qualquer código assinado com essas chaves aparece no Windows como se contivesse uma assinatura digital válida que possa ser rastreada para a empresa. Se as chaves forem roubadas, elas poderão ser usadas para assinar código mal-intencionado fraudulentamente e possivelmente resultar na entrega de código que contém um Trojan ou vírus que parece vir de um editor legítimo.
Para obter informações detalhadas sobre chaves privadas de proteção segura, consulte as Práticas recomendadas de assinatura de código.
Usando certificados cruzados com assinatura de código no modo kernel
A assinatura de código do modo kernel usa certificados cruzados como parte do processo de assinatura de código. Um certificado cruzado é um certificado X.509 emitido por uma AC (Autoridade de Certificação) que assina a chave pública para o certificado raiz de outra Autoridade de Certificação. O carregador do sistema operacional Windows Vista e o kernel reconhecem certificados cruzados na verificação de assinaturas de driver. Os certificados cruzados permitem que o kernel tenha uma única autoridade raiz confiável da Microsoft, mas também fornecem a flexibilidade para estender a cadeia de confiança a várias ACs comerciais que emitem Certificados do Editor de Software.
Os certificados cruzados permitem que desenvolvedores e editores usem certificados do Software Publisher para assinar o software no modo kernel. Os desenvolvedores que usam a Assinatura de Código do Modo Kernel baixarão o arquivo de certificado cruzado (.cer) correto para o sistema em que a operação de assinatura digital é executada. Os editores não precisam distribuir o arquivo entre certificados com seu software ou pacote de driver. O certificado cruzado será incluído com a assinatura digital no arquivo de imagem do driver ou no catálogo de pacotes de driver. Os usuários que instalam o pacote de driver não precisarão executar nenhuma etapa de configuração para o Windows Vista verificar a assinatura digital que inclui um certificado cruzado.
Importante O SignTool no WDK do Windows Vista Beta2 é a única versão do SignTool que atualmente dá suporte à adição de certificados cruzados a uma assinatura digital. As versões anteriores do SignTool no SDK ou DDK da Plataforma Windows Server 2003 não dão suporte à adição de certificados cruzados.
Certificados cruzados para várias ACs a serem usadas para assinatura de código no modo kernel estão disponíveis para download no site do Microsoft WHDC. Para obter mais informações, consulte Microsoft Cross-certificates for Windows Vista Kernel Mode Code Signing in the Resources no final deste artigo.
Detalhes sobre como adicionar o certificado cruzado à assinatura digital são descritos nas seções Como assinar um arquivo .cat e Adicionar uma assinatura inserida a um arquivo de imagem de driver.
Gerando certificados de teste
Os certificados de teste são usados no lugar de SPCs para módulos de software do modo kernel de assinatura de teste que não são para distribuição ou versão fora da sua organização. A assinatura de teste está aplicando uma assinatura digital a binários do modo kernel ou catálogos de pacotes de driver usados para fins de teste internos. A assinatura de teste é discutida mais detalhadamente na seção Como usar a Assinatura de Teste posteriormente neste documento. Ao usar um certificado de teste para assinatura de código no modo kernel, um certificado cruzado não é necessário.
Certificados de teste podem ser gerados usando uma AC corporativa ou usando o utilitário Makecert. Para obter mais informações sobre como usar uma AC corporativa para emitir certificados de autenticação de teste em sua organização, consulte Práticas recomendadas de assinatura de código.
No exemplo a seguir, o Makecert gera um certificado de teste emitido pela raiz de teste padrão, armazena a chave privada em um contêiner de chave e gera o certificado para um repositório de certificados e um arquivo de certificado:
Makecert –r –pe –ss SubjectCertStoreName –n "CN= CertName" OutputFile.cer
Os argumentos para Makecert no exemplo fazem o seguinte:
-
-r
Cria um certificado autoassinado, ou seja, o certificado é um certificado raiz. -
-Pe
Torna a chave privada associada ao certificado exportável. -
-ssSubjectCertStoreName
Especifica o nome do repositório de certificados que contém o certificado raiz. - **-n "CN=**CertName"
Especifica um nome para o certificado. Se um nome de certificado não for fornecido, o nome padrão do certificado será "Emporium de Software do Joe". -
OutputFile.cer
O nome do arquivo no qual o certificado raiz é salvo.
Um exemplo de script de comando usando makecert está disponível no WDK. O nome do arquivo de script está, selfsign_example.txt, localizado no diretório "bin\selfsign". Antes de instalar o pacote de driver, você deve adicionar seus certificados de teste ao repositório de certificados no computador de teste de destino.
O exemplo a seguir mostra como adicionar os certificados de teste ao Repositório Raiz Confiável e ao Repositório de FornecedorEs Confiáveis no computador de teste de destino.
certmgr.exe -add OutputFile.cer -s -r localMachine root
certmgr.exe -add OutputFile.cer -s -r localMachine trustedpublisher
Os argumentos para Certmgr no exemplo fazem o seguinte:
-
-Adicionar
Adiciona o certificado no arquivo de certificado a um repositório de certificados. -
-s
Indica que o repositório de certificados é um repositório do sistema. -
-r
Indica que o local do registro do repositório do sistema está sob HKEY_LOCAL_MACHINE chave -
Root ou trustedpublisher
Indica o nome do repositório de certificados do sistema
Para obter mais informações sobre o Certmgr e o Makecert, consulte os Recursos no final deste artigo.
Criando um arquivo .cat assinado
As ferramentas usadas para gerar e assinar arquivos de catálogo, MakeCat e SignTool, são fornecidas no WDK do Windows Vista.
Observe Signtool.exe e MakeCat.exe estão localizados no diretório "bin\selfsign" do WDK.
Como criar um arquivo .cat
Um arquivo .cat assinado digitalmente contém os hashes de todos os módulos do modo kernel verificados quando carregados no kernel. O arquivo de catálogo também pode incluir hashes para outros arquivos no pacote de software, como programas de aplicativo no modo de usuário (.exes) e extensões de aplicativo (.dlls). A Microsoft recomenda que o arquivo .cat contenha os hashes de todos os arquivos em um pacote de software.
O arquivo .cat contém uma lista de hashes de arquivo que correspondem a um conjunto de arquivos especificado. Um hash de arquivo é o produto de um hash SHA1 em um arquivo de destino. Um hash de arquivo simples não é usado para arquivos, como drivers, que usam o formato de arquivo PE (executável portátil). Em vez disso, seções relevantes, como o cabeçalho PE, dados executáveis e atributos autenticados, são seletivamente hash.
Quando um driver é carregado na memória, o kernel do Windows Vista executa um hash SHA1 nas seções relevantes do arquivo de imagem binária do driver. O Windows verifica se o arquivo não foi adulterado comparando o valor de hash resultante com a lista de hashes binários no arquivo .cat associado.
Se estiver instalando o driver com um arquivo INF por meio do Plug and Play, use a ferramenta de Acessibilidade do WDK para criar um catálogo, conforme descrito abaixo. Caso contrário, crie manualmente um catálogo conforme descrito em Como criar um catálogo manualmente mais adiante neste artigo.
Como criar um catálogo usando a acessibilidade
A acessibilidade é uma ferramenta usada para validar arquivos INF e criar um arquivo de catálogo com base no arquivo INF. Ele está incluído no WDK e pode ser executado no ambiente de build do WDK. A acessibilidade requer um arquivo INF válido para seu pacote de driver. Para obter informações sobre como criar um arquivo INF, consulte a documentação do WDK. Para criar um catálogo usando a ferramenta de acessibilidade, prossiga da seguinte maneira:
Usando a capacidade de assinatura para criar um catálogo
- Crie um diretório de pacote de driver que contenha todos os arquivos em seu pacote de driver.
- Crie um arquivo INF no diretório do pacote de driver e edite-o para o Windows Vista. Especificamente, altere a data de build para 1/4/2006 ou superior e a versão para 6. Por exemplo: DriverVer=04/01/2006, 6.0.1.0
- Execute a Signability para criar um arquivo .cat válido com base no arquivo INF:
Execute Signability.exe e use a GUI para criar o arquivo de catálogo.
Execute a Signability na linha de comando. Observe package_directory deve ser o caminho totalmente qualificado para o diretório do pacote.
Signability.exe /auto /cat /driver:package_directory /os:512
Este exemplo cria um arquivo .cat no diretório driver_package , usando vários argumentos aos quais a Signability dá suporte:
-
/Automático
Configura a ferramenta de Acessibilidade a ser executada sem a necessidade de interação do usuário. -
/Gato
Configura a ferramenta de Acessibilidade para gerar o arquivo de catálogo cujo nome é fornecido pelo arquivo INF do pacote de driver. -
/driver:DriverPath
Fornece o caminho para o diretório que contém os arquivos do pacote de driver. -
/os:nnn
Configura a ferramenta de Acessibilidade para verificar se o arquivo INF do pacote de driver está em conformidade com os requisitos das versões do Windows especificadas pelo valor de sinalizador nnn. 512 é o valor para Windows Vista, Edição de 64 bits.
Como criar um catálogo manualmente
Para criar manualmente um arquivo .cat, primeiro use um editor de texto para criar um arquivo de definição de catálogo (.cdf). O arquivo .cdf inclui uma lista dos arquivos que devem ser catalogados e seus atributos.
O exemplo a seguir mostra o conteúdo de um arquivo .cdf típico chamado Good.cdf. O pacote a ser catalogado contém dois arquivos, File1 e File2. O arquivo .cat resultante é nomeado Good.cat.
[CatalogHeader]
Name=Good.cat
PublicVersion=0x0000001
EncodingType=0x00010001
CATATTR1=0x10010001:OSAttr:2:6.0
[CatalogFiles]
<hash>File1=File1
<hash>File2=File2
Um arquivo .cat é criado com a ferramenta de linha de comando MakeCat, que está incluída no SDK da Plataforma e no WDK. A ferramenta MakeCat:
- Verifica a lista de atributos para cada arquivo listado.
- Adiciona os atributos listados ao arquivo .cat.
- Hashes de cada um dos arquivos listados.
- Armazena os hashes de cada arquivo no arquivo .cat.
Para criar um arquivo .cat
- Use um editor de texto para criar um arquivo .cdf que contém uma lista de arquivos a serem catalogados, com seus atributos.
- Execute MakeCat no arquivo .cdf.
Nota MakeCat não modifica o arquivo .cdf.
O exemplo a seguir mostra como criar um arquivo .cat de Good.cdf. O sinalizador -v especifica a versão detalhada do MakeCat. Os arquivos com hash e o arquivo de Good.cat recém-gerado são colocados na mesma pasta que File1 e File2.
MakeCat -v Good.cdf
O arquivo .cat agora está pronto para ser assinado.
Para obter mais informações sobre MakeCat e o formato de arquivos .cdf, consulte a documentação do MakeCat listada em Recursos no final deste artigo.
Como assinar um arquivo .cat
O arquivo .cat gerado pelo MakeCat contém todos os hashes de arquivo necessários para instalar módulos do modo kernel no sistema de um usuário. No entanto, o arquivo também deve ser assinado digitalmente.
Um arquivo .cat é assinado com a ferramenta de linha de comando SignTool. A assinatura digital no catálogo, que é usada para verificar arquivos de imagem do modo kernel, deve conter um certificado cruzado. O certificado cruzado é adicionado usando uma nova opção de comando para SignTool.
Importante Você deve usar a versão do SignTool do WDK do Windows Vista Beta2 para adicionar o certificado cruzado à assinatura digital.
O exemplo a seguir mostra como usar o Signtool para assinar um arquivo .cat com um SPC e uma chave privada correspondente que é importada para o repositório de certificados do Windows. Para obter informações sobre como usar o Signtool com um HSM, consulte a documentação do SignTool listada em Recursos no final deste artigo.
SignTool sign /v /ac CrossCertificateFile /s SPCCertificateStore /n SPCSubjectName /t http://timestamp.verisign.com/scripts/timestamp.dll Good.cat
Este exemplo usa vários dos argumentos aos quais o SignTool dá suporte:
-
Assinar
Configura a ferramenta para assinar o arquivo .cat chamado CatFileName.cat. -
/v
Especifica a opção detalhada para mensagens de aviso e execução bem-sucedidas*.* -
/Ac
Adiciona o certificado cruzado do arquivo CrossCertificateFile à assinatura digital -
/s
Especifica um repositório de certificados chamado SPCCertificateStore. -
/n
Especifica um certificado com o nome da entidade SPCSubjectName. -
URL /t
Especifica que a assinatura digital será carimbo de data/hora pela TSA (Autoridade de Carimbo de Data/Hora) indicada pela URL.
Importante A névoa de assinatura de catálogo ou driver inclui um carimbo de data/hora para fornecer as informações necessárias para revogação de chave, caso a chave privada de assinatura de código do signatário seja comprometida.
Durante a instalação do dispositivo, se o SPC usado para assinatura tiver expirado e a assinatura não tiver sido carimbo de data/hora, o arquivo .cat não será instalado e o Windows não permitirá que o driver seja carregado. No entanto, se a assinatura for carimbo de data/hora por uma Autoridade de Carimbo de Data/Hora confiável, o arquivo .cat será instalado e o Windows permitirá que o driver seja carregado.
Assinando o arquivo download de extração automática
O software publicado para distribuição em um site de suporte a produtos geralmente é empacotado em um arquivo morto de extração autônoma. O executável de extração automática é baixado usando um navegador da Web e o conteúdo extraído antes que o usuário comece a instalar em seu computador. Use o SPC que assinou o arquivo .cat do pacote de driver para assinar digitalmente o arquivo de .exe auto-extração.
Assinar digitalmente o arquivo .exe auto-extração identifica o editor do arquivo morto e garante a integridade do arquivo .exe auto-extrainte que é baixado pela Internet. Os usuários que baixam o arquivo .exe auto-extração normalmente receberão uma caixa de diálogo de confiança, ou Aviso de Segurança, quando optarem por baixar e executar o arquivo de extração autônoma.
No Windows Vista, se o usuário examinar os detalhes da caixa de diálogo Aviso de Segurança e selecionar "Sempre instalar software do nome> do <editor", essa opção simplificará a confirmação posterior quando um pacote de driver for instalado. Quando o pacote de driver for instalado, o usuário será questionado se confia no editor do pacote de driver assinado antes do início da instalação do driver. Se o usuário selecionou a opção de sempre instalar o software do editor de driver quando baixou o arquivo de .exe auto-extração, o prompt da caixa de diálogo de confiança durante a instalação do driver não ocorrerá.
Como instalar um arquivo .cat assinado
Para drivers instalados por meio do Plug and Play, nenhuma alteração no processo de instalação é esperada. A instalação de um driver assinado inserido não requer nenhum processamento especial além do INF padrão e dos mecanismos de instalação. Observe que somente os usuários que são membros do grupo Administradores têm permissão para instalar pacotes de driver.
Os drivers que não são instalados por meio do Plug and Play devem instalar seus arquivos .cat na pasta raiz do catálogo do sistema. A instalação de um catálogo na pasta raiz do catálogo pode ser gerenciada usando chamadas à API de catálogo win32 existentes, especificamente CryptCATAdminAddCatalog.
Adicionando uma assinatura inserida a um arquivo de imagem de driver
Para otimizar o desempenho da verificação do driver no momento da inicialização, os binários do driver de inicialização devem ter uma assinatura inserida usando o SPC, além do arquivo .cat assinado para o pacote. A assinatura inserida economiza tempo significativo durante a inicialização do sistema operacional porque não há necessidade de o carregador do sistema operacional localizar o arquivo .cat no driver. Um sistema típico do Windows Vista pode ter mais de cem arquivos de catálogo diferentes no repositório raiz do catálogo. Localizar o arquivo de catálogo correto para verificar o hash de imagem de um determinado driver pode envolver muita sobrecarga do sistema pesquisando vários catálogos para o arquivo correto.
Os drivers de inicialização são identificados com base no valor StartType do serviço de SERVICE_BOOT_START (0).
As assinaturas inseridas não interferem na assinatura ou validação de arquivo .cat. Observe que os hashes contidos em catálogos e assinaturas inseridas excluem seletivamente a parte de assinatura do formato de arquivo PE
Para usar Signtool.exe para inserir uma assinatura em um binário de driver de inicialização usando um SPC e uma chave privada correspondente importada para o repositório de certificados do Windows, use o seguinte comando:
SignTool sign /v /ac CrossCertificateFile /s SPCCertificateStore /n SPCSubjectName /t http://timestamp.verisign.com/scripts/timestamp.dll winloaddriver.sys
Este exemplo usa vários dos argumentos aos quais o SignTool dá suporte:
-
Assinar
O comando sign configura a ferramenta para assinar o driver chamado winloaddriver.sys. -
/v
Especifica a opção detalhada para mensagens de aviso e execução bem-sucedidas*.* -
/Ac
Adiciona o certificado cruzado do arquivo CrossCertificateFile à assinatura digital -
Opções /s
Especifica o repositório de certificados chamado SPCCertificateStore -
/n
Especifica o certificado com o nome da entidade SPCSubjectName. -
URL /t
Especifica que a assinatura digital deve ser carimbo de data/hora pela TSA indicada pela URL.
Importante: O catálogo ou driver deve ser carimbo de data/hora, pois isso fornecerá informações necessárias para revogação de chave caso a chave de signatários seja comprometida.
Como verificar uma assinatura inserida
O procedimento a seguir mostra como verificar uma assinatura inserida com o Windows Explorer.
Para verificar assinaturas inseridas
- Ao executar o Windows Vista, clique com o botão direito do mouse no driver .sys arquivo e clique em Propriedades no menu de contexto.
- Clique na guia Assinaturas Digitais , se ela estiver presente.
- Se essa guia não estiver presente, o arquivo não terá uma assinatura inserida.
- Selecione o signatário e clique em Detalhes para abrir a caixa de diálogo Detalhes da Assinatura .
- Clique em Exibir Certificado para abrir as páginas de propriedades do certificado.
- Verifique se não há caixas de diálogo de aviso.
- Verifique se o nome da entidade de certificados é Publicador está registrado com uma autoridade de certificação reconhecida.
- Clique na guia Caminho da Certificação .
- Verifique se o nome da entidade do certificado superior é Raiz de Verificação de Código da Microsoft.
Para verificar assinaturas inseridas usando signtool.exe para a política de assinatura de código no modo kernel
- Signtool.exe pode ser usado para verificar a assinatura em um arquivo .cat usando o seguinte comando:
Signtool verify /kp /c tstamd64.cat toaster.sys
Verifique se o hash de imagem do arquivo toaster.sys foi encontrado no arquivo de catálogo. A ferramenta retorna a cadeia de caracteres "Êxito".
Como desabilitar a imposição de assinatura durante o desenvolvimento
Durante os estágios iniciais do desenvolvimento, os desenvolvedores podem desabilitar a imposição no Windows para que a assinatura do driver não seja necessária. As opções a seguir estão disponíveis para os desenvolvedores desabilitarem temporariamente a imposição de assinatura de código no modo kernel para que o Windows Vista carregue um driver sem sinal.
Anexando um depurador de kernel. Anexar um depurador de kernel ativo ao computador de destino desabilita a imposição de assinaturas do modo kernel no Windows Vista e permite que o driver carregue.
Usando a opção F8. Uma Opção de Inicialização Avançada F8 introduzida com o Windows Vista— "Desabilitar imposição de assinatura do driver"– está disponível para desabilitar a imposição de assinatura de kernel somente para a sessão de inicialização atual. Essa configuração não persiste entre as sessões de inicialização.
Definindo a configuração de inicialização. Uma configuração de inicialização está disponível na versão do Windows Vista Beta2 que desabilita a imposição de assinaturas do modo kernel a serem mantidas em sessões de inicialização.
O Windows Vista inclui uma ferramenta de linha de comando, BCDedit, que pode ser usada para definir a opção no Windows Vista Beta2 para desabilitar as verificações de assinatura. Para usar BCDedit, o usuário deve ser membro do grupo Administradores no sistema e executar o comando em um prompt de comando com privilégios elevados. Um prompt de comando com privilégios elevados pode ser iniciado criando um atalho de área de trabalho para cmd.exe e, em seguida, usando o clique com o botão direito do mouse e "Executar como administrador".
O seguinte mostra um exemplo de execução do BDCedit no prompt de comando:
// Disable enforcement – no signing checks Bcdedit.exe –set nointegritychecks ON // Enable enforcement – signing checks apply Bcdedit.exe –set nointegritychecks OFF // Disabling integrity check on an alternate OS // specified by a GUID for the system ID Bcdedit.exe –set {4518fd64-05f1-11da-b13e-00306e386aee} nointegritychecks ON
Nota A opção Bcdedit para desabilitar verificações de integridade só está disponível para carregar drivers sem sinal na versão do Windows Vista Beta2. Para obter mais informações, consulte as Perguntas frequentes sobre o Editor do BCD no site do MSDN.
Como usar a Assinatura de Teste
A assinatura de teste fornece opções adicionais para organizações de desenvolvimento para incorporar a assinatura de código no modo kernel para software de pré-lançamento que não está pronto para publicação. A assinatura de teste permite o uso de certificados de assinatura de código de "teste" para assinar drivers que serão carregados no Windows Vista quando a configuração de inicialização do Windows Vista permitir assinaturas de teste.
A assinatura de teste pode ser apropriada para usar nos seguintes cenários:
- As equipes de desenvolvimento precisam testar versões de pré-lançamento de um driver em sistemas de teste em que não é prático anexar um depurador de kernel.
- O teste automatizado do software no modo kernel torna impraticável usar a Opção de Inicialização Avançada F8 para desabilitar temporariamente a imposição de assinatura do driver em cada ciclo de inicialização do computador.
A assinatura de teste permite que os desenvolvedores assinem versões de pré-lançamento de binários do modo kernel de forma que o Windows Vista possa verificar e carregar o driver assinado. A assinatura de teste envolve as seguintes diferenças em relação à assinatura normal de produção ou lançamento:
- Os certificados usados para assinatura de teste podem ser gerados usando a ferramenta de assinatura de código Makecert.exe ou emitidos por uma AC Enterprise, em vez de usar um SPC emitido por uma AC comercial.
- A opção de configuração de inicialização do Windows Vista para habilitar a Assinatura de Teste deve ser habilitada no sistema Windows Vista que carregará o driver assinado pelo teste.
As organizações de desenvolvimento podem configurar uma PKI corporativa e emitir seus próprios certificados de assinatura de código de teste a serem usados para assinatura de teste. Quando o Windows Vista habilitar a Assinatura de Teste, a verificação da assinatura digital no binário do driver aceitará certificados emitidos por qualquer autoridade de certificação ou autoridade emissora. A assinatura de teste verifica se a imagem do driver está assinada, mas a validação do caminho do certificado executada no modo kernel não exige que o emissor seja configurado como uma autoridade raiz confiável. Isso permite que as organizações usem assinaturas individuais em binários de teste, com base nas credenciais emitidas para assinatura de código dentro da organização. A Microsoft recomenda essa forma de implantação para assinatura de teste na Assinatura de Código do Modo Kernel.
O uso de certificados gerados pela ferramenta makecert.exe também é aceitável para assinatura de teste. No entanto, os certificados gerados pelo makecert geralmente não fornecem informações úteis de identidade e não há como rastrear qual desenvolvedor individual criou uma versão assinada de teste do binário de pré-lançamento.
Nota A versão do Windows Vista Beta2 aceita apenas certificados de teste gerados pela ferramenta makecert. Os certificados de assinatura de código de teste emitidos por uma AC corporativa para assinatura de teste não estão disponíveis no Windows Vista Beta2.
As instruções do Signtool neste documento funcionam da mesma maneira se você estiver usando um SPC ou um certificado gerado pelo utilitário makecert ou usando um certificado emitido por uma AC corporativa. A única diferença normalmente será o emissor e o nome da entidade no certificado.
O programa de Assinatura de Teste do WHQL também tem suporte para assinatura de teste. Os participantes do programa podem enviar pacotes de driver para assinaturas de teste do WHQL. A assinatura nos catálogos assinados de teste é gerada por um certificado emitido sob a Autoridade Raiz de Teste da Microsoft. A Autoridade Raiz de Teste da Microsoft é aceita por padrão no Windows Vista Beta2 como parte do programa beta. Na versão final do Windows Vista, a Autoridade Raiz de Teste da Microsoft é aceita quando a configuração de inicialização do Windows Vista habilita a Assinatura de Teste.
Testar binários do modo kernel assinado não serão carregados em sistemas Windows Vista por padrão. As assinaturas digitais em binários assinados de teste não são válidas em sistemas do Windows Vista por padrão porque a política de assinatura de código do modo kernel não aceita e não confia em certificados de assinatura de teste.
Habilitando a assinatura de teste
Use a ferramenta de linha de comando Bcdedit para habilitar a assinatura de teste. Para usar BCDedit, o usuário deve ser membro do grupo Administradores no sistema e executar o comando em um prompt de comando com privilégios elevados. Um prompt de comando com privilégios elevados pode ser iniciado criando um atalho de área de trabalho para cmd.exe e, em seguida, usando o clique com o botão direito do mouse e "Executar como administrador".
O seguinte mostra um exemplo de execução do BDCedit no prompt de comando:
// Accept test signed kernel mode signatures
Bcdedit.exe –set TESTSIGNING ON
// Do not accept test signed kernel mode signatures
Bcdedit.exe –set TESTSIGNING OFF
A TESTSIGNING
opção de configuração de inicialização determina se o Windows Vista aceita binários do modo kernel assinado por teste. A opção não é definida por padrão, o que significa que as assinaturas digitais nos drivers do modo kernel assinado de teste não serão verificadas e não serão carregadas. Quando o Windows Vista aceita binários do modo kernel assinado por teste, algum conteúdo premium protegido pode não estar acessível no sistema.
Solução de problemas
Há etapas específicas que você pode executar para identificar e solucionar possíveis problemas relacionados à verificação de assinaturas de código do modo kernel. Esta seção fornece informações sobre como solucionar problemas com a imposição de assinatura de driver. As ferramentas de main para solucionar problemas de assinatura de driver são as seguintes:
- Detectando erros de carga do driver
- Habilitando eventos de log do sistema de diagnóstico de integridade de código.
O aplicativo de torradeira incluído no WDK do Windows Vista é usado como exemplo. O aplicativo de torradeira pode ser encontrado no WDK no diretório "src\general\toaster".
Detectando erros de carga do driver
O aplicativo de torradeira instala um driver de dispositivo (toaster.sys), que, para este exemplo, não está assinado. O sintoma de um problema com o driver sem sinal é que o dispositivo de torradeira não é iniciado. Usando a Gerenciador de Dispositivos, você pode marcar o status do dispositivo Toaster e exibir o driver status, conforme mostrado na imagem de tela a seguir.
Figura 1. Erro de driver sem sinal
O dispositivo não pôde ser iniciado porque o driver do dispositivo não estava assinado e a imposição de assinatura do modo kernel bloqueou o carregamento do driver no kernel. Para identificar definitivamente a origem do problema, configuramos o sistema para habilitar a imposição de assinatura diagnóstico conforme descrito abaixo.
Habilitando eventos de log do sistema de diagnóstico de integridade de código
A imposição de assinatura de código no modo kernel é implementada por um componente do Windows Vista conhecido como Integridade de Código. A Integridade do Código gera eventos de diagnóstico e um evento de log de auditoria do sistema quando a assinatura de um módulo de kernel falha ao verificar corretamente.
- Os eventos operacionais de integridade de código estão sempre habilitados. Os eventos operacionais são eventos de aviso quando uma verificação de imagem marcar falha ao carregar um arquivo binário do modo kernel.
- Os eventos de auditoria do Sistema de Integridade de Código são gerados quando a política de auditoria do sistema está habilitada. A política de auditoria do sistema não está habilitada por padrão.
- Eventos detalhados de integridade de código são eventos de informações analíticas e de depuração que mostram todas as verificações de imagem bem-sucedidas ao carregar arquivos binários do modo kernel. Eventos detalhados não são habilitados por padrão.
Os eventos de Integridade do Código podem ser visualizados no Visualizador de Eventos, que faz parte do snap-in MMC de Gerenciamento do Computador. (No botão Iniciar , clique com o botão direito do mouse em Computador e selecione Gerenciar).
O fluxo de eventos de Integridade de Código está localizado na seguinte hierarquia:
Visualizador de Eventos -> Logs de aplicativos e serviços –> Microsoft –> Windows –> CodeIntegrity
Figura 2. Eventos de integridade de código
O log Operacional de Integridade do Código mostra os eventos gerados pelo kernel quando um driver de modo kernel falha em uma verificação de imagem marcar quando o driver é carregado. A falha de verificação de imagem pode ser devido a vários motivos, incluindo o seguinte:
- O driver não foi assinado, mas instalado no sistema por um administrador e a Integridade do Código não está permitindo que o driver seja carregado.
- O driver foi assinado, mas o arquivo de imagem do driver foi modificado ou adulterado e a modificação invalidou a assinatura do driver.
- O dispositivo de disco do sistema pode ter erros de dispositivo ao ler o arquivo de imagem para o dispositivo de setores de disco inválidos.
Uma entrada de log operacional para uma falha de verificação de imagem de driver não assinada ou modificada é semelhante ao exemplo a seguir:
Figura 3. Entrada de log operacional
O evento indica que o driver da torradeira (toaster.sys) não pôde ser carregado porque ele não estava assinado (ou a imagem de toaster.sys que está tentando carregar não é a mesma que foi assinada digitalmente pelo editor).
Todas as mensagens de log de eventos de Integridade do Código estão listadas na seção Mensagens de log de eventos de integridade de código abaixo.
Eventos de log de auditoria do sistema
A Integridade do Código gera eventos de log de Auditoria do Sistema correspondentes aos eventos de aviso operacional quando a verificação de imagem de um driver de modo kernel falha. Os eventos de log do sistema podem ser visualizados no Visualizador de Eventos na exibição Logs do Windows, Log do sistema.
Os eventos de auditoria do sistema podem não estar habilitados em todos os sistemas Windows Vista. Use o snap-in MMC configurações de segurança local para verificar ou habilitar "Eventos do sistema de auditoria" nas configurações Políticas Locais, Política de Auditoria.
Eventos informativos no log detalhado
Eventos informativos de integridade de código adicionais para todas as verificações de imagem do modo kernel estão disponíveis usando a exibição de evento Detalhado. Esses eventos mostram a verificação de imagem bem-sucedida de todos os drivers carregados no sistema.
As etapas para habilitar a exibição de evento Detalhado de Integridade de Código são as seguintes:
- Clique com o botão esquerdo do mouse no modo de exibição Operacional para exibir os eventos atuais de Integridade do Código (se houver).
- Clique com o botão esquerdo do mouse no nó Integridade do Código para definir o foco.
- Clique com o botão direito do mouse no nó Integridade do Código para obter o menu de contexto.
- Selecione Modo de Exibição.
- Selecione Mostrar Logs analíticos e de depuração.
- Isso cria uma subárvore com dois nós adicionais, o Operacional e o nó Detalhado .
- Clique com o botão direito do mouse no nó Detalhado e selecione Propriedades.
- Selecione a planilha Geral e selecione a opção HabilitarRegistro em Log . Isso deve habilitar o modo de log detalhado.
- Reinicialize o sistema para recarregar todos os binários do modo kernel.
- Após a reinicialização, abra o snap-in Gerenciamento do Computador e exiba o log de eventos Detalhado de Integridade do Código.
Você poderá marcar se toaster.sys estiver corretamente assinado da seguinte maneira:
Nesse caso específico, toaster.sys é um driver PnP e é nomeado em um arquivo de catálogo (tstamd64.cat em "\src\general\toaster\toastpkg\toastcd". Use o utilitário SignTool para verificar se toaster.sys está corretamente assinado usando o seguinte comando:
Signtool verify /kp /c tstamd64.cat toaster.sys
Opções de depuração de verificação de driver
Em alguns casos, os desenvolvedores podem querer impor a política de assinatura de código do modo kernel obrigatória mesmo quando um depurador é anexado. Um exemplo disso é quando uma pilha de driver tem um driver não assinado (como um driver de filtro) que falha ao carregar, o que pode invalidar toda a pilha. Como anexar um depurador permite que o driver sem sinal seja carregado, o problema parece desaparecer assim que o depurador é anexado. Depurar esse tipo de problema pode ser difícil. Para facilitar a depuração nesse caso, a Integridade do Código dá suporte a uma chave do Registro que pode ser definida para impor a imposição de assinatura do modo kernel mesmo quando um depurador é anexado.
Há dois sinalizadores definidos no registro que controlam o comportamento de Integridade do Código no depurador. Os sinalizadores não são definidos por padrão.
Crie o valor do Registro da seguinte maneira:
Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CI
Value: DebugFlags REG_DWORD
Valores possíveis:
-
00000001
Resulta em uma quebra de depuração no depurador e o driver não assinado tem permissão para carregar comg
. -
00000010
A CI ignorará a presença do depurador e os drivers não assinados serão impedidos de carregar.
Qualquer outro valor resulta no carregamento de drivers não assinados— essa é a política padrão.
Mensagens de log de eventos de integridade de código
Veja a seguir eventos de aviso registrados no log operacional de integridade do código:
- "A integridade do código não pode verificar a integridade da imagem do nome> do arquivo <porque o hash de arquivo não pôde ser encontrado no sistema."
- "A integridade do código detectou um driver não assinado."
- "Esse evento está relacionado ao SQM (Monitoramento de Qualidade de Software)."
Veja a seguir eventos de informações registrados no log detalhado de integridade do código:
- "A Integridade do Código encontrou um conjunto de hashes de imagem por página para o nome> do arquivo de arquivo < em um nome> de catálogo de catálogo<."
- "A Integridade do Código encontrou um conjunto de hashes de imagem por página para o nome> do arquivo < no certificado inserido da imagem."
- "A Integridade do Código encontrou um hash de arquivo para o nome> do arquivo < em um nome> de catálogo de catálogo<."
- "A integridade do código encontrou um hash de arquivo para o nome> do arquivo < no certificado inserido da imagem."
- "A integridade do código determinou que um nome> de arquivo de módulo < de kernel não assinado é carregado no sistema. Verifique com o editor se há uma versão assinada do módulo de kernel disponível."
- "A integridade do código não pode verificar a integridade da imagem do nome> do arquivo < porque o conjunto de hashes de imagem por página não pôde ser encontrado no sistema."
- "A integridade do código não pode verificar a integridade da imagem do nome> do arquivo < porque o conjunto de hashes de imagem por página não pôde ser encontrado no sistema. A imagem tem permissão para carregar porque o depurador do modo kernel está anexado."
- "A integridade do código não pode verificar a integridade da imagem do nome> do arquivo < porque não foi possível encontrar um hash de arquivo no sistema. A imagem tem permissão para carregar porque o depurador do modo kernel está anexado."
- "A integridade do código não pôde carregar o < catálogo de nomes> de arquivo."
- "A integridade do código carregou com êxito o < catálogo de nomes> de arquivo."
Recursos
- Para perguntas sobre assinaturas digitais para drivers no modo kernel, envie um email para signsup@microsoft.com.
- Assinatura de código entre certificados cruzados da Microsoft para o Modo Kernel do Windows Vista
- Perguntas frequentes sobre o Editor de Dados de Configuração de Inicialização
- CryptCATAdminAddCatalog na documentação do SDK no MSDN
- Implantando o Authenticode com hardware criptográfico para publicação segura de software
- Ferramentas de Depuração para Windows
- Certmgr
- MakeCat
- Makecert
- SignTool
- Kit de Driver do Windows (WDK)
- Programa de Logotipo do Windows
- Programa de Assinatura de Teste do WHQL
- SDK da Plataforma Windows site de download
- Windows Quality Online Services (Winqual)
- Práticas recomendadas de assinatura de código
- Integridade do pacote de driver durante instalações de dispositivo plug-and-play no Windows Vista
- Assinatura de código para componentes de mídia protegida no Windows Vista