Firma con KeyLocker cloud HSM
Questo articolo ti insegnerà a firmare utilizzando il cloud e KeyLocker HSM. La guida è rilevante per tutte le piattaforme e vari strumenti di firma – da signtool a jarsigner. Le informazioni fornite sono anche fondamentali per firmare utilizzando il Software Trust Manager di DigiCert ONE; il principio di firma si applica pertanto a entrambi i servizi menzionati.
Compatibilità di KeyLocker
Sicuramente ti chiederai, prima di provare KeyLocker, se sarà possibile usarlo nel tuo workflow e se funzionerà per te. KeyLocker e le librerie correlate supportano (proprio come il Software Trust Manager in DC1) strumenti di firma di terze parti. Sul sito web di DigiCert puoi trovare nell'articolo Integrazione strumenti di firma una panoramica completa dei formati di file che puoi firmare utilizzando strumenti compatibili con KeyLocker.
Qui menziono solo il Signtool più diffuso nelle versioni a 32 e 64 bit:
- SignTool (32-bit): .doc, .docm, .dot, .dotm, .msi, .cab, .exe, .dll, .mpp, .mpt, .pot, .potm, .ppa, .ppam, .pps, .ppsm, .ppt, .pptm, .pub, .vdw*, .vdx*, .vsd*, .vsdm, .vss*, .vssm, .vst*, .vstm, .vsx*, .vtx*, .wiz*, .xla, .xlam, .xls, .xlsb, .xlsm, .xlt, .xltm
- SignTool (64-bit): .appx, .appxbundle, .arx, .cab, .cat, .cbx, .cpl, .crx, .dbx, .deploy, .dll, .drx, .efi, .exe, .js, .msi, .msix, .msixbundle, .msm, .msp, .ocx, .psi, .psm1, .stl, .sys, .vbs, .vsix, .wsf, .xsn
Guida in KeyLocker
Dopo aver effettuato l'accesso a KeyLocker, vedrai una Guida alla configurazione che ti aiuterà a scaricare l'applicazione DigiCert ONE Clients. Con essa, accederai al tuo account KeyLocker dal tuo computer, installerà le librerie necessarie incluse SMCTL e configurerà le variabili di sistema per l'autenticazione. Rispetto al metodo precedente, si tratta di un notevole alleggerimento.
Nel primo passaggio della guida di KeyLocker scarica l'app DigiCert ONE Clients, installala ed eseguila. L'accesso è lo stesso che hai configurato nell'interfaccia web di KeyLocker.
Nel passaggio successivo installa SMCTL nell'applicazione desktop, che è lo strumento principale per la firma stessa.
Dopo l'installazione, vedrai la selezione di tre modalità per salvare la variabile KeyLocker nel sistema. Consigliamo di lasciare l'opzione predefinita "Store my credentials". I dati verranno salvati nel sistema e non sarà necessario effettuare nuovamente il login all'account ad ogni firma.
Se scegli di salvare nel sistema, su Windows le credenziali saranno nel Gestore delle credenziali (Credential Manager).
Dopo aver impostato le credenziali di accesso nel sistema, che verranno automaticamente impostate dall'app DigiCert ONE Clients, passare al terzo passaggio della guida. Ora ti verrà chiesto di eseguire nel tuo sistema il comando SMCTL healthcheck, che testerà la comunicazione del tuo ambiente locale con KeyLocker e la corretta autenticazione. Tutto dovrebbe andare liscio, quindi conferma "I have run the healthcheck command in SMCTL" e fai clic sul pulsante Check Status.
Vedrai una conferma verde You're ready to start signing with SMCTL, il che significa che tutto è impostato correttamente, la comunicazione funziona e puoi iniziare a firmare.
Scegli la piattaforma giusta tra quattro opzioni che usi per firmare e vedrai quindi un esempio (guida) per firmare con KeyLocker.
Firma dei file
Per firmare, consigliamo principalmente l'utilizzo dell'utilità SMCTL, che funziona nel prompt dei comandi (CLI). La seconda opzione è l'utilità DigiCert® Click-to-sign (vedi ultimo paragrafo).
Le guide per firmare i file per le principali piattaforme (Authenticode, Docker, Java...) si trovano direttamente nell'interfaccia web di KeyLocker. Dopo aver completato la guida (titolo "Setup complete!"), puoi fare clic su una delle piattaforme offerte e l'interfaccia ti mostrerà un comando pronto utilizzando il certificato selezionato. Basta copiarlo nel CLI e specificare il file da firmare. Non potrebbe essere più semplice!
Firma dei file con SMCTL (consigliato)
L'utilità SMCTL proviene da DigiCert e può anche servire per semplificare la firma dei file utilizzando strumenti di terze parti (hai comunque bisogno almeno di signtool). SMCTL lavora con gli strumenti più diffusi – Signtool, Apksigner, Jarsigner, Mage, Nuget. Lo strumento si trova nella cartella C:/Program Files/DigiCert/DigiCert Keylocker Tools/smctl.exe
Nell'ultimo passaggio della guida, fai clic su Authenticode e nel dialogo successivo seleziona il certificato disponibile in KeyLocker. Riceverai un comando completo per firmare, dove aggiungerai la destinazione e lo eseguirai localmente nel tuo CLI. Riceverai immediatamente una conferma della firma riuscita del file.
La documentazione completa di SMCTL si trova sul sito web di DigiCert.
Firma dei file con Signtool
Le seguenti istruzioni riguardano lo strumento Signtool del pacchetto Windows SDK. È lo strumento più diffuso per la firma sulla piattaforma Windows.
Al comando Signtool è necessario specificare quale file si desidera firmare, con quale certificato e eventuali parametri correlati. Puoi riferirti al certificato di firma in vari modi: Puoi lasciare che Signtool scelga automaticamente il certificato in base al repository oppure puoi effettuare una selezione specifica del certificato facendo riferimento a un file con il certificato salvato (ovviamente solo la parte pubblica senza la chiave privata), oppure puoi usare l'hash SHA-1 del certificato.
Ecco un esempio di firma utilizzando l'hash dell'impronta del certificato:
C:/>signtool.exe sign /sha1 ecb0f10ab1XXXXXXXXXX1681fb70a31e32288263 /tr http://timestamp.digicert.com /td SHA256 /fd SHA256 C:/Users/User/Documents/HelloSign.exe
Ecco un esempio di firma utilizzando KeyLocker e un file con il certificato:
C:/Users/User>signtool.exe sign /csp "DigiCert Signing Manager KSP" /kc key_558469087 /f C:/Users/User/Documents/cert_558469087.crt /tr http://timestamp.digicert.com /td SHA256 /fd SHA256 C:/Users/User/Documents/HelloSign.exe
Done Adding Additional Store
Successfully signed: C:/Users/User/Documents/HelloSign.exe
Puoi verificare la validità della firma con il comando: signtool verify /v file.exe Le proprietà della firma si trovano anche nel file firmato, attraverso Esplora risorse e Proprietà (tasto destro del mouse).
Firma dei file con Jarsigner
Puoi utilizzare Jarsigner con KeyLocker tramite la libreria PKCS11; puoi firmare semplificatamente utilizzando SMCTL o direttamente con Jarsigner e la libreria PKCS11.
Esempio di firma con Jarsigner:
jarsigner -keystore NONE -storepass NONE -storetype PKCS11 -sigalg SHA256withRSA -providerClass sun.security.pkcs11.SunPKCS11 -providerArg pkcs11properties2.cfg -signedjar C:/Users/Name/Desktop/signed/signedjar.jar C:/Users/Name/Desktop/ToSign/jartosign.jar key3 -tsa "http://timestamp.digicert.com"
Puoi verificare la correttezza della firma con il comando:
jarsigner -verify
La documentazione su Jarsigner si trova sul sito web di DigiCert.
Firma con DigiCert® Click-to-sign
Questa utility offre un'interfaccia grafica per semplificare la firma di un file. Il risultato e il principio di firma non differiscono però dagli strumenti del prompt dei comandi; al contrario, questi permettono un'impostazione più dettagliata dei parametri di firma. DigiCert® Click-to-sign offre solo opzioni semplificate, che tuttavia possono essere sufficienti per la maggior parte degli utenti.
DigiCert® Click-to-sign ha un grandissimo vantaggio – per la sua configurazione è necessario passare attraverso la guida alla configurazione delle credenziali (Secrets) per KeyLocker. La guida non solo testerà facilmente la connessione al cloud, ma soprattutto imposterà queste variabili nel sistema! Non sarà quindi necessario impostarle manualmente in modo complicato.
Firmare con questo strumento è il più semplice possibile – fai clic con il tasto destro del mouse sul file da firmare e seleziona Click to Sign nel menu. Poi puoi firmare direttamente o con conferma delle impostazioni di firma.
La documentazione di Click-to-sign si trova sul sito web di DigiCert.
Nota: Se Click-to-sign non funziona, imposta le variabili nel PATH con i percorsi a Click-to-sign e anche all'applicazione di firma (Signtool) separati da un punto e virgola. Per esempio:
Path: C:/Program Files/DigiCert/DigiCert Keylocker Tools;C:/Program Files (x86)/Windows Kits/10/bin/10.0.22621.0x64;
Integrazione in CI/CD
Il vantaggio principale di KeyLocker è la possibilità di automatizzare le firme grazie all'integrazione nel workflow CI/CD. DigiCert ha preparato una serie di script e plugin per gli strumenti di sviluppo e le piattaforme più diffuse. I plugin sono disponibili per Azure DevOps, GitHub e Jenkins. Sono disponibili ancora più script di integrazione per la libreria PKCS11.
Le informazioni complete si trovano nell'articolo CI/CD integrations.
Documentazione e altre risorse:
- Documentazione per SignTool, disponibile su https://learn.microsoft.com/cs-cz/dotnet/framework/tools/signtool-exe
- Documentazione per KeyLocker, disponibile su https://docs.digicert.com/en/digicert-keylocker.html