Estou desenvolvendo um produto que utiliza um microcontrolador MSP430 com um módulo USB embutido. Eu obtive um PID da Texas Instruments e usei suas ferramentas para gerar os descritores, além de um arquivo .inf para instalar o software do driver. O problema óbvio é que, devido à natureza personalizada desses arquivos, um pop-up é apresentado (no Windows 7) ao conectar o cabo USB que avisa o usuário que o driver não está assinado. Acredito que no Windows 8 e Windows 10 ele simplesmente o bloqueia e não indica isso para o usuário.
Como este é um produto completo que minha empresa planeja lançar, precisamos obter um certificado de driver (acredito na forma de um arquivo .cat?) Que podemos fornecer ao cliente para que ele possa instalar o dispositivo software de driver sem problemas.
Examinei bastante a documentação da Microsoft (mais notavelmente este documento ) tentando entender o que é necessário para obter a assinatura de um driver, mas infelizmente isso está em minha cabeça no momento.
Isto é o que eu acho que entendi até agora:
- Preciso enviar meu driver (arquivo .inf?) Para uma autoridade de certificação autorizada pela Microsoft. Existem vários deles por aí, então eu precisaria encontrar um que assine drivers.
- Depois de selecionar uma autoridade de certificação, geralmente precisarei pagar uma taxa anual (geralmente por 1, 2 ou 3 anos) por seu serviço. Todos os drivers que eu gerar durante esse período serão assinados permanentemente, mesmo após o término do serviço. Se eu quiser mudar o driver ou criar um novo depois que o serviço expirar, precisarei comprar o serviço por mais 1, 2 ou 3 anos.
- Depois de pagar a taxa, a CA gerará um arquivo .cat, que é um certificado que garante que o driver que eu dei a eles não será alterado. Se isso acontecer, não corresponderá mais ao arquivo .cat e um erro será exibido durante a instalação
Isso está correto? Correndo o risco de parecer que estou buscando recomendações para CAs específicas (não sei, lembre-se), onde posso encontrar uma lista de CAs capazes de fazer essa certificação para mim? Melhor ainda seriam seus sites e / ou preços por diferentes períodos de serviço. Alguém aqui teve experiência direta na obtenção de um driver para um produto baseado em microcontrolador USB assinado por uma CA, que poderia me ajudar a entender e concluir o processo? Eu já postei nos fóruns do MSDN, mas parece bastante morto por lá - já se passaram dois dias e meu tópico tem apenas algumas visualizações.
Respostas:
Não é tão ruim, na verdade. Já fiz isso algumas vezes no trabalho, escrevendo e assinando um INF / .CAT para um USB baseada em PIC24FJ64GB002 Microchip CDC-ACM-to-I 2 interface de C.
Estabeleça um relacionamento com uma autoridade de certificação. Você precisará fornecer algumas informações básicas que eles validarão. Se você optar pela Validação Estendida (EV), eles solicitarão muito mais, mas você não precisará ir tão longe. Thawte, Digicert e Comodo são alguns exemplos de CAs.
Adquira um certificado de assinatura de código Authenticode da CA. É isso que você precisa para assinar o arquivo .CAT associado ao seu arquivo .INF. Você não precisa de um certificado no modo kernel para este nível de assinatura.
Instale o certificado (escusado será dizer)
Faça o download da estrutura do Windows SDK e do Windows Driver Kit para obter as ferramentas da Microsoft necessárias (geração e assinatura de catálogo).
Empacote e assine os drivers:
A partir deste ponto, você pode criar algum tipo de instalador de driver ou usar o dpinst no SDK para executar a automação básica da instalação.
EDIT: Notas de vários comentários abaixo:
Expansão adicional em suas perguntas:
fonte