Release-Signing um binário de driver por meio de uma assinatura inserida

Um arquivo de catálogo assinado é tudo o que você deve ter para instalar e carregar corretamente a maioria dos pacotes de driver. No entanto, a assinatura inserida de alguns binários no pacote de driver também pode ser necessária para alguns cenários. Assinatura inserida refere-se à adição de uma assinatura digital ao próprio arquivo de imagem binária do driver, em vez de depender da assinatura digital em um arquivo de catálogo. Como resultado, a imagem binária do driver é modificada quando o driver é inserido.

A assinatura integrada de binários no modo kernel (por exemplo, drivers e arquivos de .dll associados) é necessária sempre que:

  • O binário do driver é um driver de inicialização. Em versões de 64 bits do Windows Vista e versões posteriores do Windows, os requisitos de assinatura de código no modo kernel afirmam que um driver de inicialização deve ter uma assinatura inserida. Isso é necessário independentemente de o pacote de driver do driver ter um arquivo de catálogo assinado digitalmente.

  • O binário do driver é instalado por meio de um meio que não envolve um pacote de driver e um arquivo de catálogo.

Assim como acontece com os arquivos de catálogo, a ferramenta SignTool é usada para inserir uma assinatura digital em arquivos binários no modo kernel usando um certificado de teste. A linha de comando a seguir mostra como executar o SignTool para fazer o seguinte:

  • Teste-assinar a versão de 64 bits do arquivo binário do exemplo toastpkg, toaster.sys. No diretório de instalação do WDK, esse arquivo está localizado no diretório src\general\toaster\toastpkg\toastcd\amd64 .

  • Use um Certificado de Editor de Software (SPC) emitido por uma AC (autoridade de certificação) comercial.

  • Use um certificado cruzado compatível para SPC.

  • Atribua um carimbo de data/hora à assinatura digital por meio de uma TSA (autoridade de carimbo de data/hora).

Para testar o sinal do arquivo detoaster.sys , execute a seguinte linha de comando:

Signtool sign /v /fd sha256 /ac MSCV-VSClass3.cer /s MyPersonalStore /n contoso.com /t http://timestamp.digicert.com amd64\toaster.sys

Em que:

  • O comando sign configura SignTool para assinar o arquivo binário do modo kernel especificado, amd64\toaster.sys.

  • A opção /v habilita operações detalhadas, nas quais o SignTool exibe mensagens de aviso e execução bem-sucedidas.

  • A opção /fd especifica o algoritmo de resumo de arquivo a ser usado para criar assinaturas de arquivo. O padrão é SHA1.

  • A opção /ac especifica o nome do arquivo que contém o certificado cruzado (MSCV-VSClass3.cer) obtido da AC. Use o nome do caminho completo se o certificado cruzado não estiver no diretório atual.

  • A opção /s especifica o nome do repositório de certificados pessoal (MyPersonalStore) que contém o SPC.

  • A opção /n especifica o nome do certificado (Contoso.com) instalado no repositório de certificados especificado.

  • A opção /t especifica a URL da TSA (http://timestamp.digicert.com) que carimbo de data/hora da assinatura digital.

Importante

A inclusão de um carimbo de data/hora fornece as informações necessárias para revogação de chave caso a chave privada de assinatura de código do signatário seja comprometida.

  • amd64\toaster.sys especifica o nome do arquivo binário do modo kernel que será inserido.

Para obter mais informações sobre o SignTool e seus argumentos de linha de comando, consulte SignTool.

Para obter mais informações sobre como assinar um driver por meio de uma assinatura inserida, consulte Pacotes de driver de assinatura de versão e Assinatura de versão de um arquivo de driver.