Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo descreve como assinar um driver usando a assinatura de atestado.
Observação
Os drivers assinados por atestação, destinados a consumidores de retalho, não são publicados no Windows Update. O suporte continua para drivers assinados por atestação quando está a testar cenários com as opções CoDev ou Test Registry Key / Surface SSRK.
Pré-requisitos
Leia e compreenda os requisitos para condutores assinados por atestação para cenários de teste.
Registe-se no Programa de Desenvolvimento de Hardware. Se não estiver registado, siga os passos em Inscreva-se 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 você tiver um certificado existente, disponibilize-o.
Se a sua organização não tiver um certificado, adquira um certificado EV.
Descarregue e instale o Windows Assessment and Deployment Kit (Windows ADK) seguindo o processo descrito em Descarregue e instale o Windows ADK.
(Opcional) Descarregue o exemplo do driver Echo utilizado neste artigo, disponível no GitHub.
Criar o arquivo CAB
O procedimento seguinte cria uma submissão de ficheiros CAB utilizando a amostra do driver Echo para ilustrar os passos.
Um envio de arquivo CAB típico deve conter os seguintes componentes:
O próprio driver (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 ficheiro .pdb é necessário para Microsoft ferramentas automatizadas de análise de falhas.
Os ficheiros de catálogo (.cat) são necessários e usados apenas para verificação da empresa. A Microsoft regenera ficheiros de catálogo e substitui quaisquer ficheiros de catálogo submetidos 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 descrição de dispositivo (DDF) como entrada para um 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. Pode selecionar o ficheiro CAB no Explorador de Ficheiros para verificar se contém os ficheiros esperados.
Assine o ficheiro CAB com o seu certificado EV
O passo seguinte é assinar o ficheiro CAB com o seu certificado de veículo elétrico.
Use o processo recomendado pelo seu provedor de certificado EV. Por exemplo, para assinar o seu ficheiro CAB com um carimbo temporal SHA256, introduza 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.
Submeta o ficheiro CAB assinado pelo EV no Centro de Parceiros
Depois de assinar o ficheiro CAB, está pronto para submeter o ficheiro no Centro de Parceiros:
Vai ao painel de hardware do Partner Center e inicia sessão com as tuas credenciais.
Selecione Enviar novo hardware.
Na seção Pacotes e propriedades de assinatura, insira um nome de produto para a submissão do controlador. Use este nome para procurar e organizar as suas submissões de condutores.
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.
Depois de terminar o processo de assinatura, descarregue o driver assinado do painel de controlo de hardware.
Valide que o driver está devidamente assinado
Confirme se o seu motorista está devidamente assinado 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.
Insira o seguinte comando para verificar se o driver está assinado como 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 Usos Melhorados de Teclas (EKUs) do driver, complete os seguintes passos:
Abra o Windows Explorer e localize o ficheiro binário. Clique com o botão direito do mouse no arquivo e selecione Propriedades.
No separador de Assinaturas Digitais , selecione o item listado na lista de assinaturas.
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 do Microsoft SHA-2.
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 ficheiro de catálogo com um certificado Microsoft SHA-2. O catálogo substitui qualquer catálogo existente fornecido pelo cliente.
Teste o seu driver no Windows
Instala o driver de exemplo e testa-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 que o processo de instalação do driver não apresenta a seguinte mensagem de erro: "O Windows não pode verificar o fornecedor deste software do driver."
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