Sinal de atestado Windows 10+ drivers
Este artigo descreve como assinar um driver usando a assinatura de atestado. Para obter informações detalhadas e requisitos para assinatura de atestado, consulte Drivers assinados de atestado do Windows 10.
Importante
A partir de 1º de março de 2023, os drivers assinados por atestado direcionados ao público de varejo não serão mais publicados no Windows Update. Os drivers assinados por atestado para cenários de teste ainda são suportados ao selecionar as opções CoDev ou Test Registry Key/Surface SSRK .
Pré-requisitos
Leia e entenda os requisitos para drivers assinados de atestado do Windows 10.
Registre-se no programa Hardware Developer. Se você ainda não estiver registrado, siga as etapas em Como se registrar no Microsoft Windows Hardware Developer Program.
Você deve ter um certificado de assinatura de código de validação estendida (EV). Verifique se a sua organização já tem um certificado de assinatura de código. Se a sua empresa já possui um certificado, tenha o certificado disponível. Se a sua organização não tiver um certificado, você precisará comprar um certificado EV.
Siga o processo descrito em Baixar kits e ferramentas para o Windows 10 para baixar e instalar o WDK (Kit de Driver do Windows).
(Opcional) Baixe o exemplo de driver de eco usado neste artigo.
Criar o arquivo CAB
Nesta seção, percorreremos o processo de criação de um envio de arquivos CAB. Usaremos o exemplo de driver de eco para ilustrar o processo.
Um envio de arquivo CAB típico deve conter o seguinte:
O próprio motorista, por exemplo, Echo.sys
O arquivo INF do driver usado pelo painel para facilitar o processo de assinatura.
O arquivo de símbolo usado para depurar informações. Por exemplo, Echo.pdb. O arquivo .pdb é necessário para as ferramentas automatizadas de análise de falhas da Microsoft.
Os arquivos .CAT do catálogo são necessários e usados apenas para verificação da empresa. A Microsoft regenera os arquivos de catálogo e substitui todos os arquivos de catálogo que foram enviados.
Observação
Cada pasta de driver no arquivo CAB deve oferecer suporte ao mesmo conjunto de arquiteturas. Por exemplo, eles devem oferecer suporte a x86, x64 ou todos eles devem oferecer suporte a x86 e x64.
Não use caminhos de compartilhamento de arquivos UNC ao fazer referência aos locais do driver (\\\server\share
). Você deve usar uma letra de unidade mapeada para que o CAB seja válido.
Para criar o arquivo CAB:
Reúna os binários a serem assinados em um único diretório. Neste exemplo, usaremos
C:\\Echo
o .Abra uma janela de prompt de comando como Administrador.
Entre
MakeCab /?
para exibir as opções do MakeCab:C:\Echo> MakeCab /? Cabinet Maker - Lossless Data Compression Tool MAKECAB [/V[n]] [/D var=value ...] [/L dir] source [destination] MAKECAB [/V[n]] [/D var=value ...] /F directive_file [...] source File to compress. destination File name to give compressed file. If omitted, the last character of the source file name is replaced with an underscore (_) and used as the destination. /F directives A file with MakeCAB directives (may be repeated). Refer to Microsoft Cabinet SDK for information on directive_file. /D var=value Defines variable with specified value. /L dir Location to place destination (default is current directory). /V[n] Verbosity level (1..3).
Prepare um arquivo cab DDF input file. Para o nosso driver Echo pode ser algo assim.
;*** Echo.ddf example ; .OPTION EXPLICIT ; Generate errors .Set CabinetFileCountThreshold=0 .Set FolderFileCountThreshold=0 .Set FolderSizeThreshold=0 .Set MaxCabinetSize=0 .Set MaxDiskFileCount=0 .Set MaxDiskSize=0 .Set CompressionType=MSZIP .Set Cabinet=on .Set Compress=on ;Specify file name for new cab file .Set CabinetNameTemplate=Echo.cab ; Specify the subdirectory for the files. ; Your cab file should not have files at the root level, ; and each driver package must be in a separate subfolder. .Set DestinationDir=Echo ;Specify files to be included in cab file C:\Echo\Echo.Inf C:\Echo\Echo.Sys
Insira o seguinte para criar o arquivo CAB.
C:\Echo> MakeCab /f "C:\Echo\Echo.ddf
A saída do MakeCab deve exibir o número de arquivos no arquivo CAB criado. Nesse caso, deve haver dois arquivos.
C:\Echo> MakeCab /f Echo.ddf Cabinet Maker - Lossless Data Compression Tool 17,682 bytes in 2 files Total files: 2 Bytes before: 17,682 Bytes after: 7,374 After/Before: 41.70% compression Time: 0.20 seconds ( 0 hr 0 min 0.20 sec) Throughput: 86.77 Kb/second
Localize o arquivo CAB no
Disk1
subdiretório. Você pode selecionar o arquivo CAB no Explorador de Arquivos para verificar se ele contém os arquivos esperados.
Assine o arquivo CAB com seu certificado EV
Use o processo recomendado pelo provedor de certificado EV para assinar o arquivo CAB com seu certificado EV. Por exemplo, para assinar o arquivo CAB com um Certificado/Algoritmo Digest/Carimbo de data/hora SHA256, digite o seguinte comando:
C:\Echo> SignTool sign /ac "C:\MyEVCert.cer" /s MY /n "Company Name" /fd sha256 /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /td sha256 /v "C:\Echo\Disk1\Echo.cab"
Importante
Lembre-se de usar as melhores práticas do setor para gerenciar a segurança do processo de assinatura de código EV.
Enviar o arquivo Cab assinado pelo EV usando o Partner Center
Vá para o painel de hardware do Partner Center e entre usando suas credenciais.
Selecione Enviar novo hardware.
Na seção Pacotes e propriedades de assinatura, insira um nome de produto para o envio do driver. Esse nome pode ser usado para pesquisar e organizar seus envios de driver.
Observação
Se você compartilhar seu motorista com outra empresa, eles verão esse nome.
Deixe ambas as opções de assinatura de teste desmarcadas.
Em Assinaturas solicitadas, selecione quais assinaturas você deseja incluir no pacote de driver.
Mova a página para baixo e selecione Enviar.
Quando o processo de assinatura estiver concluído, baixe o driver assinado no painel de hardware.
Validar se o driver foi assinado corretamente
Conclua as etapas a seguir para garantir que o driver foi assinado corretamente.
Depois de baixar o arquivo de envio, extraia o arquivo de driver.
Abra uma janela de prompt de comando como Administrador.
Digite o seguinte comando para verificar se o driver foi assinado conforme o esperado.
C:\Echo> SignTool verify Echo.Sys
Para listar informações adicionais e fazer com que o signtool verifique todas as assinaturas em um arquivo com várias assinaturas, digite o seguinte comando:
C:\Echo> SignTool verify /pa /ph /v /d Echo.Sys
Para confirmar os EKUs do driver, conclua as etapas a seguir.
Abra o Windows Explorer e localize o arquivo binário. Selecione e segure (ou clique com o botão direito do mouse) o arquivo e selecione Propriedades.
Na guia Assinaturas Digitais, selecione o item listado na lista Assinatura.
Selecione Detalhes e, em seguida, selecione Exibir Certificado.
Na guia Detalhes, selecione Uso Avançado de Chaves.
Quando o driver é resignado pelo painel, o seguinte processo é usado.
- Acrescenta uma assinatura incorporada do Microsoft SHA2.
- Se os binários do driver forem incorporados assinados pelo cliente com seus próprios certificados, essas assinaturas não serão substituídas.
- Cria e assina um novo arquivo de catálogo com um certificado SHA2 Microsoft. Este catálogo substitui qualquer catálogo existente fornecido pelo cliente.
Testar o driver no Windows 10
Use as instruções a seguir para instalar o driver de exemplo.
Abra uma janela de prompt de comando como Administrador. Vá para a pasta do pacote de driver e digite o seguinte comando.
C:\Echo> devcon install echo.inf root\ECHO
Confirme se o processo de instalação do driver não exibe a mensagem "O Windows não pode verificar o editor deste software de driver". Caixa de diálogo de segurança do Windows.
Criar um envio com vários drivers
Para enviar vários drivers ao mesmo tempo:
Crie um subdiretório para cada driver, conforme mostrado abaixo.
Prepare um arquivo CAB DDF arquivo de entrada que faz referência aos subdiretórios. Poderá ser semelhante ao seguinte:
;*** Submission.ddf multiple driver example ; .OPTION EXPLICIT ; Generate errors .Set CabinetFileCountThreshold=0 .Set FolderFileCountThreshold=0 .Set FolderSizeThreshold=0 .Set MaxCabinetSize=0 .Set MaxDiskFileCount=0 .Set MaxDiskSize=0 .Set CompressionType=MSZIP .Set Cabinet=on .Set Compress=on ;Specify file name for new cab file .Set CabinetNameTemplate=Echo.cab ;Specify files to be included in cab file ; First Driver .Set DestinationDir=DriverPackage1 C:\DriverFiles\DriverPackage1\Driver1.sys C:\DriverFiles\DriverPackage1\Driver1.inf ; Second driver .Set DestinationDir=DriverPackage2 C:\DriverFiles\DriverPackage2\Driver2.sys C:\DriverFiles\DriverPackage2\Driver2.inf
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de