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.
Antes de lançar um pacote de driver para o público, recomendamos que você envie o pacote para certificação. Para obter mais informações, consulte Certificação de hardware do Windows e serviços de painel de hardware. Para enviar um pacote de driver para certificação, você deve assinar o pacote com um certificado obtido de uma autoridade de certificação confiável, como a VeriSign. Para obter mais informações, consulte Obter um certificado VeriSign. Você também precisará de um certificado cruzado, que é fornecido pela Microsoft.
Suponha que você tenha obtido um par de arquivos da Verisign: um arquivo de chave privada (PVK) e um certificado de publicação de software (SPC). Suponha também que você tenha uma solução do Microsoft Visual Studio que contém um projeto de driver chamado MyDriver e um projeto de pacote de driver chamado MyDriver Package. Para assinar o pacote de driver, siga estas etapas.
Use a ferramenta Pvk2Pfx para criar um certificado PFX (Personal Information Exchange). A ferramenta Pvk2Pfx usa seus arquivos PVK e SPC como entrada e cria um único arquivo PFX. Para este exercício, suponha que seu arquivo PFX é chamado MyCert.pfx.
Observação Depois de criar seu arquivo PFX, você pode reutilizá-lo para outros projetos de driver e em outros computadores de desenvolvimento de driver.
Para determinar de qual certificado cruzado precisa, consulte Certificados Cruzados para Assinatura de Código em Modo Kernel. Verifique se o certificado cruzado necessário está em $(BASEDIR)\CrossCertificates, onde $(BASEDIR) é o diretório base dos kits do Windows (por exemplo, c:\Program Files (x86)\Windows Kits\8.0\CrossCertificates). Se o certificado cruzado necessário não estiver lá, baixe o certificado cruzado da Microsoft e copie-o para $(BASEDIR)\CrossCertificates.
No Visual Studio, abra a solução que contém os projetos MyDriver e MyDriver Package. Se a janela Gerenciador de Soluções ainda não estiver aberta, escolha Gerenciador de Soluções no menu Exibir . Na janela Gerenciador de Soluções, selecione e segure (ou clique com o botão direito do mouse) o projeto de pacote, MyDriver Package, e escolha Propriedades.
Nas páginas de propriedades do pacote, navegue até Propriedades de Configuração > Assinatura de Drivers > Geral. Na lista suspensa Modo de Assinatura, selecione Assinatura de Produção. Para o Certificado de Produção, escolha uma das seguintes opções:
Insira o caminho para o certificado de assinatura (por exemplo, c:\Certs\MyCert.pfx).
Escolha Selecionar do ficheiro e navegue até ao certificado de assinatura.
Escolha Selecionar do repositório e escolha um certificado que você importou anteriormente para um repositório de certificados.
Observação Para importar um certificado para um armazenamento, selecione e segure (ou clique com o botão direito do mouse) o arquivo de certificado (arquivo PFX) e escolha Instalar PFX. Siga as instruções no Assistente para Importação de Certificados.
Observação Se você decidir usar um certificado diferente posteriormente, certifique-se de que o novo certificado seja importado para o armazenamento de certificados. Se você escolher Selecionar do arquivo e navegar até o novo certificado, o novo certificado será importado automaticamente para o repositório de certificados. No entanto, se você inserir manualmente o caminho para o novo certificado, ele não será importado automaticamente para o armazenamento de certificados. Nesse caso, você deve selecionar e segurar (ou clicar com o botão direito do mouse) seu novo arquivo de certificado e escolher Instalar PFX.
Na página de propriedades Geral da Assinatura de Controlador>, para TimeStampServer, selecione um dos servidores de carimbo de data/hora na lista suspensa.
Observação Usar um dos servidores de carimbo de data/hora na lista suspensa requer que você esteja conectado à Internet ao criar o pacote de driver. Se você precisar ser desconectado da Internet ao criar seu pacote de driver, desmarque o campo TimeStampServer .
Nas páginas de propriedades do pacote, navegue até Configuration Properties > Inf2Cat > General. Na lista suspensa Executar Inf2Cat , selecione Sim.
Feche as páginas de propriedades do pacote.
Selecione e segure (ou clique com o botão direito do mouse) o projeto de driver, MyDriver, e escolha Propriedades
Nas páginas de propriedades do driver, navegue até Propriedades de Configuração > Assinatura de Driver > Geral. Defina TimeStampServer com o mesmo valor que você usou nas propriedades do pacote de driver. Defina Modo de Sinal como Sinal de Produção e defina Certificado de Produção com o mesmo valor que você usou nas propriedades do pacote de driver.
Quando estiver pronto para criar seu pacote de driver, pressione F5. O Visual Studio assinará automaticamente o pacote e o arquivo de driver. Se você configurou a implantação, o Visual Studio também implantará seu pacote de driver assinado em um computador de teste. Para obter mais informações, consulte Provisionar um computador para implantação e teste de driver (WDK 8.1).
Visualizando os arquivos do pacote de driver
Depois de criar a solução, navegue no Explorador de Arquivos até a pasta que contém o pacote de driver. Um dos arquivos no pacote é um arquivo de catálogo. O arquivo de catálogo contém a assinatura digital para o pacote. Para obter um exemplo de exibição dos arquivos em um pacote assinado, consulte Escrevendo um driver KMDF com base em um modelo.
Obtenção de uma assinatura de lançamento WHQL
Quando o pacote de driver passa nos testes de certificação, ele pode ser assinado pelo Windows Hardware Quality Labs (WHQL). Se o pacote de driver for assinado pelo WHQL, ele poderá ser distribuído através do programa Windows Update ou de outros mecanismos de distribuição suportados pela Microsoft.
Para instalar no Windows 10, 8.1, 8 e 7, seu pacote de driver pode ter uma única assinatura SHA1.
A partir do Windows 10, também é necessário enviar qualquer novo controlador de modo núcleo do Windows 10 para assinatura digital no portal do Painel do Windows Hardware Developer Center. Os envios de driver de modo kernel e de usuário devem ter um Certificado de Assinatura de Código de Validação Estendida ("EV") válido.
** Observação ** A descontinuação do SHA1 não se aplica aos drivers.
Assinando um pacote em comparação com a assinatura de um arquivo de driver individual
Um pacote de driver contém vários arquivos. Normalmente, um pacote de driver tem um ou mais arquivos de driver, um arquivo de informações (arquivo INF) e um arquivo de catálogo. O arquivo de catálogo contém informações sobre os outros arquivos no pacote. Quando você assina o arquivo de catálogo, a assinatura no arquivo de catálogo serve como a assinatura para todo o pacote de driver. Em outras palavras, assinar o arquivo de catálogo é o mesmo que assinar o pacote de driver.
Na maioria dos casos, é suficiente para assinar o pacote de driver, e não é necessário assinar arquivos de driver individuais. Às vezes, no entanto, você precisa assinar o pacote e os arquivos de driver individuais. Por exemplo, os arquivos de driver de inicialização devem ser assinados individualmente. Assinar um arquivo de driver individual é conhecido como incorporar uma assinatura no arquivo de driver.
Suponha que você tenha uma solução do Visual Studio que contém um projeto de driver chamado MyDriver e um projeto de pacote de driver chamado MyDriver Package. O Visual Studio fornece dois conjuntos de páginas de propriedades: um para Meu Driver e outro para Meu Pacote de Driver. Para assinar o pacote de controlador, defina as propriedades de Assinatura do Controlador de Meu Pacote de Controlador. Para incorporar uma assinatura no arquivo de driver individual, defina as propriedades de Assinatura de Driver de Meu Driver.
Ao definir as propriedades do pacote de driver para assinatura de produção, lembre-se de ajustar as propriedades de assinatura dos arquivos de driver individuais de acordo. Desative a assinatura dos arquivos de driver individuais ou defina os arquivos de driver individuais para usar o mesmo certificado especificado para o pacote.
Observação Para ver o hash (também chamado de impressão digital) de um certificado, abra uma janela do Prompt de Comando e navegue até o diretório que contém o certificado. Digite o comando certutil -dumpCertName.pfx, onde CertName.pfx é o nome do seu certificado.
Tópicos relacionados
- Alterações de assinatura de driver no Windows 10
- Disponibilidade do suporte à assinatura de código SHA-2 para Windows 7 e Windows Server 2008 R2
- Assinatura de um driver
- Certificação de hardware do Windows
- Serviços de painel de hardware
- Requisitos para assinatura de drivers no Windows
- Certificados cruzados para assinatura de código no modo kernel
- Kernel-Mode Guia prático para a assinatura do código
- Assinatura de Driver
- Instalação de um driver Boot-Start
- Ferramentas para Assinar Controladores