Come testare i driver di preproduzione con l'avvio protetto abilitato
Nei sistemi di vendita al dettaglio e produzione, il kernel Windows considera attendibili e carica solo i driver con una firma WHQL/WHCP di produzione. Per testare i driver di preproduzione, è necessario che gli sviluppatori di driver possano TESTSIGNING
abilitare il caricamento dei driver non di produzione. TESTSIGNING
richiede la disabilitazione dell'avvio protetto per presentare una differenza negli ambienti di test e produzione.
Il kernel windows supporta il caricamento dei driver di preproduzione firmati con la firma di preproduzione WHQL/WHCP. La firma WHQL/WHCP è accessibile tramite microsoft Hardware Developer Center (HDC).
Prerequisiti
Firmare i driver di preproduzione con il dashboard Hardware del Centro per i partner
Scaricare EnableUefiSbTest.exe dalla versione più recente di Windows Driver Kit (WDK) o dall'Area download. Il percorso di installazione predefinito dello strumento EnableUefiSbTest è C:\Programmi (x86)\Windows Kits\10\tools\{arch}\SecureBoot\EnableSB.
{arch}
può essere uno di{amd64, x86, arm, arm64}
. I criteri si trovano nella stessa directory SecureBoot:C:\Programmi (x86)\Windows Kits\10\tools\{arch}\SecureBoot\Policies.
Abilitare il supporto per la firma WHQL/WHCP di preproduzione
Dopo aver firmato la preproduzione del driver, si è pronti per effettuare il provisioning di un computer di test in cui si installa il driver.
Gli strumenti di provisioning e il payload vengono forniti a partire da Windows 11 versione 22H2.
È consigliabile usare lo strumento EnableUefiSbTest. In alternativa, è possibile effettuare manualmente il provisioning della chiave radice di test Microsoft dalla sezione Test manuali di avvio protetto HLK (UefiSecureBootManualTests.zip\ManualTests\certs\test\db_MSFTtestSigningRoot.cer
). La chiave di test Microsoft deve essere inclusa nel database di avvio protetto (DB) e nei criteri di configurazione dell'avvio protetto (SBCP) per abilitare l'attendibilità per la firma del driver WHQL/WHCP di preproduzione.
Nota
Durante il provisioning di uno dei database di avvio protetto, non firmare mai un payload con le chiavi di test Microsoft all'interno.
Passaggi di provisioning
Nel menu UEFI del sistema disabilitare l'avvio protetto e deselezionare le chiavi di avvio protetto, se applicabile. Ciò consente allo strumento di provisioning di impostare le chiavi di test per considerare attendibile il file dei criteri di avvio protetto e riabilitare l'avvio protetto.
Scaricare il file con estensione p7b corretto dei criteri di avvio protetto, a seconda dell'architettura di sistema e dello strumento di provisioning a cui si accompagna, EnableUefiSbTest.exe, dalla chiave wdk. Per la posizione dello strumento di provisioning, vedere Prerequisiti.
Eseguire il comando seguente in un'istanza con privilegi elevati di PowerShell o terminale e verificare che i valori PK, KEK, db, dbx e OemId siano vuoti ("Non trovato"):
EnableUefiSbTest.exe /dump
Se l'avvio protetto è disabilitato e le chiavi vengono cancellate correttamente, è previsto l'output seguente:
EnableUefiSbTest.exe /dump Name: PK Not Found Name: KEK Not Found Name: db Not Found Name:dbx Not Found Name: OemId Not Found
Effettuare il provisioning delle chiavi di test di avvio protetto nel database di avvio protetto e riabilitare l'avvio protetto eseguendo il comando seguente in un'istanza con privilegi elevati di PowerShell o terminale:
EnableUefiSbTest.exe
Nota
EnableUefiSbTest.exe non restituirà alcun risultato dopo l'esecuzione corretta.
Facoltativamente, specificare il comando per effettuare il
thirdparty
provisioning del certificato CA UEFI Microsoft insieme alle chiavi predefinite nel database di avvio protetto. Ciò consente l'attendibilità per i file eseguibili EFI firmati dalla CA UEFI Di Microsoft, ad esempio roms di opzione e bootloader non Windows.EnableUefiSbTest.exe /thirdparty
Per i dispositivi che eseguono Windows basato su desktop, montare la partizione EFI del sistema e copiare il file dei criteri di avvio protetto (con estensione p7b) in S:/EFI/Microsoft/Boot eseguendo il comando seguente in un'istanza elevata di PowerShell o terminale:
mountvol s: /s copy-item <path_to_p7b> S:/EFI/Microsoft/Boot/SecureBootPolicy.p7b
Nota
Poiché il kernel di Windows richiede il file dei criteri di avvio protetto sotto forma di
SecureBootPolicy.p7b
, il nome e il formato di file non devono essere modificati.Per i dispositivi che non eseguono Windows basato su desktop, copiare il corrispondente
PreProductionPolicy.pol
in\EFI\Microsoft\Boot\Policies
.FullDebugPolicy.pol
Eliminare quindi da\EFI\Microsoft\Boot\Policies
.Riavviare il sistema per consentire al kernel di Windows di aggiornare i criteri. L'avvio protetto viene ora riabilitato ed eseguito automaticamente il provisioning dallo strumento di provisioning. Questa operazione può essere convalidata riesecuzione
EnableUefiSbTest.exe /dump
come amministratore e convalida che solo idbx
valori eOemId
siano vuoti ("Non trovato").Il sistema è pronto per convalidare il contenuto del driver firmato WHQL/WHCP di preproduzione. Il riavvio del sistema non influirà sullo stato del dispositivo, purché le chiavi di avvio protetto e i file dei criteri di avvio protetto non siano modificati.
Passaggi di deprovisioning
Per effettuare il deprovisioning del sistema e rifiutare esplicitamente l'attendibilità della firma di preproduzione nel sistema:
Eliminare i file dei criteri di avvio protetto dalla partizione EFI montata eseguendo i comandi seguenti in un'istanza con privilegi elevati di PowerShell o terminale:
mountvol s: /s rm S:/EFI/Microsoft/Boot/SecureBootPolicy.p7b
Nota
Se le convalide vengono eseguite in holoLens 2, i file dei criteri pol devono essere rimossi anche da S:/EFI/Microsoft/Boot/Policies.
Avviare il menu UEFI del sistema e riconfigurare le chiavi di avvio protetto alle impostazioni predefinite.
Riavviare il sistema ed eseguire
EnableUefiSbTest.exe /dump
, che deve restituire valori non vuoti perPK
i valori ,KEK
db
, edbx
che indicano che le chiavi sono state restituite allo stato factory.Nota
È consigliabile pulire l'installazione di Windows nel sistema per eseguire il deprovisioning di un sistema destinato agli ambienti di vendita al dettaglio.
Domande frequenti
D: Il EnableUefiSbTest.exe /dump
comando visualizza solo un risultato per PK
. Si è verificato un errore?
R: Questo accade se lo strumento viene eseguito come utente standard anziché come amministratore.
D: Il EnableUefiSbTest.exe /dump
comando restituisce un errore non riconosciuto. Come si deve procedere?
R: È possibile che venga generato un errore dallo strumento quando l'avvio protetto non è stato disabilitato e/o le chiavi di avvio protetto non sono state cancellate. Verificare che l'avvio protetto sia disabilitato.