Attualmente sto lottando con la firma del driver del dispositivo Windows 10, la mia azienda ha sviluppato alcuni driver per Windows 10 x86 e x64, che provo a firmare usando un certificato SHA1. So che SHA1 non è l'opzione migliore, ma dovrebbe comunque funzionare per quanto ho capito la documentazione tecnica di Microsoft.
Il vero problema è che i driver si installano correttamente e anche se li controllo usando l'opzione di verifica di signtool, sembrano essere a posto. Windows 10 dice anche che stanno installando bene durante l'installazione del file INF. Ho firmato tutti i file firmabili nel pacchetto driver, inclusi file CAT, DLL, file SYS, ecc.
Il punto in cui i driver in realtà non funzionano è in Gestione dispositivi di Windows 10, lì, ottengo un'icona del punto esclamativo, insieme alla seguente descrizione:
"Codice 52 - Windows non può verificare la firma digitale ..."
Il flusso di lavoro che utilizzo è esattamente il seguente, ovviamente con altri dati effettivi, ma il resto è lo stesso.
"C:\Program Files (x86)\Windows Kits\10\bin\x86\stampinf.exe" -f "P:\MyDriver\mydriver.inf" -d 08/11/2017 -v 1.0.0.1
"C:\Program Files (x86)\Windows Kits\10\bin\x86\Inf2Cat.exe" /driver:"P:\MyDriver" /os:10_X86,10_X64,7_X86,7_X64,8_X86,8_X64,XP_X86,XP_X64
"C:\Program Files (x86)\Windows Kits\10\bin\x86\signtool.exe" sign /f
"C:\Users\me\Documents\MyCert\MyCert.pfx" /p myVerySecretPassw0rd /d "My Drivers" /du "http://www.myveryverycompaniesurl.com" /t "http://timestamp.verisign.com/scripts/timestamp.dll" /v /ph "P:\MyDrivers\*.*"
Questo è ciò che "signtool verifica" riporta sui file del driver creati in questo modo:
Verifying: P:\MyDrivers\OneOfMyDLLs.dll
Signature Index: 0 (Primary Signature)
Hash of file (sha1): *************************************************
Signing Certificate Chain:
Issued to: COMODO RSA Certification Authority
Issued by: COMODO RSA Certification Authority
Expires: Tue Jan 19 01:59:59 2038
SHA1 hash: *************************************************
Issued to: COMODO RSA Code Signing CA
Issued by: COMODO RSA Certification Authority
Expires: Tue May 09 01:59:59 2028
SHA1 hash: *************************************************
Issued to: My Company
Issued by: COMODO RSA Code Signing CA
Expires: Tue Sep 18 01:59:59 2018
SHA1 hash: *************************************************
Quindi per me, tutto sembra a posto, fino al punto in cui si tratta di Gestione dispositivi, che ha alcuni problemi con una delle firme, o in generale con come sono firmati i file, ma in realtà non mi dà un suggerimento su cosa sta succedendo sbagliato. Modifica: se Microsoft ritiene che SHA-1 sia insufficiente, perché non ci sono messaggi di errore che lo affermino?