Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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 destinados ao público de varejo não serão mais publicados no Windows Update. O suporte continua para drivers com assinatura de atestado ao testar cenários com as opções CoDev ou Test Registry Key/Surface SSRK.
Pré-requisitos
Leia e compreenda os requisitos para drivers assinados de atestado do Windows 10 para cenários de teste.
Inscreva-se no programa do Desenvolvedor de Hardware. Se você não estiver registrado, siga as etapas em Registrar para o 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 você tiver um certificado existente, disponibilize-o.
Se a sua organização não tiver um certificado, adquira um certificado EV.
Transfira e instale o Kit de Avaliação e Implementação do Windows (Windows ADK) seguindo o processo descrito em Transferir e instalar o Windows ADK.
(Opcional) Baixe o exemplo de driver Echo usado neste artigo, que está disponível no GitHub.
Criar o arquivo CAB
O procedimento a seguir cria um envio de arquivos CAB usando o exemplo de driver Echo para ilustrar as etapas.
Um envio de arquivo CAB típico deve conter os seguintes componentes:
O próprio motorista, por exemplo, Echo.sys.
O arquivo INF (.inf) do driver usado pelo dashboard para facilitar o processo de assinatura.
O arquivo de símbolo usado para depurar informações, como 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 arquivos de catálogo e substitui todos os arquivos de catálogo enviados anteriormente.
Observação
Cada pasta de driver em seu arquivo CAB deve suportar o mesmo conjunto de arquiteturas. Por exemplo, eles devem suportar x86, x64 ou todos devem suportar x86 e x64.
Não use caminhos de compartilhamento de arquivos UNC quando fizer 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 ficheiro CAB, siga estes passos:
Reúna os binários a serem registrados em um único diretório. Este exemplo usa a
C:\Echopasta.Abra uma janela de Prompt de Comando com privilégios de Administrador.
Digite o
MakeCab /?comando para ver as opções de comando: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 ficheiro de entrada DDF para o ficheiro cab. Para o driver Echo neste exemplo, a entrada pode ser semelhante ao código a seguir:
;*** 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.SysDigite o seguinte comando para criar o arquivo CAB:
C:\Echo> MakeCab /f "C:\Echo\Echo.ddfA saída do
MakeCabcomando deve exibir o número de arquivos no arquivo CAB criado. Neste 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/secondLocalize o arquivo CAB no
Disk1subdiretório. Você pode selecionar o arquivo CAB no Explorador de Arquivos para verificar se ele contém os arquivos esperados.
Assine o ficheiro CAB com o seu certificado EV
O próximo passo do procedimento é assinar o arquivo CAB com seu certificado EV.
Use o processo recomendado pelo seu provedor de certificado EV. Por exemplo, para assinar seu arquivo CAB com um Certificado/Algoritmo Digest/Carimbo de data/hora SHA256, digite o seguinte comando:
C:\Echo> SignTool sign /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.
Envie o ficheiro Cab assinado pela EV no Centro de Parceiros.
Depois de assinar o arquivo CAB, você estará pronto para enviá-lo no Partner Center:
Vá para o painel de hardware do Partner Center e entre com suas credenciais.
Clique em Enviar novo hardware:
Na seção Pacotes e propriedades de assinatura, insira um nome de produto para a submissão do controlador. Esse nome pode ser usado para pesquisar e organizar seus envios de driver.
Observação
O nome é visível quando partilha o seu condutor com outra empresa.
Deixe ambas as opções de assinatura de teste desmarcadas (não selecionadas).
Para a opção Assinaturas solicitadas , selecione as assinaturas a serem incluídas no pacote de driver:
Selecione Enviar na parte inferior da página.
Após a conclusão do processo de assinatura, baixe o driver assinado no painel de hardware.
Valide se o driver está devidamente assinado
Confirme se o driver foi assinado corretamente com estes passos:
Depois de baixar o arquivo de envio, extraia o arquivo do driver.
Abra uma janela de Prompt de Comando com privilégios de Administrador.
Digite o seguinte comando para verificar se o driver está assinado conforme o esperado:
C:\Echo> SignTool verify Echo.SysPara listar outras informações 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.SysPara confirmar os EKUs do controlador, execute os seguintes passos:
Abra o Windows Explorer e localize o arquivo binário. Clique com o botão direito do mouse no 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.
O motorista usa o seguinte processo quando ele demite o motorista:
Anexe uma assinatura incorporada Microsoft SHA2.
Se os binários do driver forem incorporados e assinados pelo cliente com os seus próprios certificados, as assinaturas devem ser substituídas.
Crie e assine um novo arquivo de catálogo com um certificado SHA2 da Microsoft. O catálogo substitui qualquer catálogo existente fornecido pelo cliente.
Teste seu driver no Windows
Instale o driver de exemplo e teste-o no Windows:
Abra uma janela de Prompt de Comando com privilégios de Administrador.
Vá para a pasta do pacote de driver e digite o seguinte comando.
C:\Echo> devcon install echo.inf root\ECHOConfirme se o processo de instalação do driver não mostra a seguinte mensagem de erro:
O Windows não pode verificar o editor deste software de driver mensagem.
Criar uma submissão com vários drivers
Submeta vários drivers simultaneamente seguindo estas etapas:
Crie um subdiretório para cada driver:
Prepare um arquivo CAB de entrada DDF que faça referência aos subdiretórios. Neste exemplo, a entrada pode ser semelhante ao código a seguir:
;*** 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