Signieren mit KeyLocker Cloud HSM
Dieser Artikel lehrt Sie, wie man mit der Cloud und KeyLocker HSM signiert. Die Anleitung ist relevant für alle Plattformen und verschiedene Signaturwerkzeuge – von signtool bis jarsigner. Die genannten Informationen bilden auch die Grundlage für das Signieren mit dem Software Trust Manager von DigiCert ONE; das Signaturverfahren gilt also für beide genannten Dienste.
Kompatibilität von KeyLocker
Sie werden sich sicher vor dem Ausprobieren von KeyLocker fragen, ob es in Ihrem Workflow verwendet werden kann und ob es funktioniert. KeyLocker und die zugehörigen Bibliotheken unterstützen (genau wie der Software Trust Manager in DC1) Signaturwerkzeuge von Drittanbietern. Auf der Website von DigiCert finden Sie im Artikel Signing tool integration eine vollständige Übersicht über die Dateiformate, die Sie mit den kompatiblen Werkzeugen von KeyLocker signieren können.
Hier erwähne ich nur das am weitesten verbreitete Signtool in der 32b- und 64b-Version:
- 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
Anleitung in KeyLocker
Nach der Anmeldung in KeyLocker sehen Sie den Einrichtungsassistenten, der Ihnen beim Herunterladen der DigiCert ONE Clients-Anwendung hilft. Mit dieser melden Sie sich auf Ihrem Computer beim KeyLocker-Konto an, installieren die benötigten Bibliotheken einschließlich SMCTL und richten die Systemvariablen für die Authentifizierung ein. Im Vergleich zu früheren Verfahren ist dies eine erhebliche Erleichterung.
Im ersten Schritt des KeyLocker-Assistenten laden Sie die DigiCert ONE Clients-App herunter, installieren und starten sie. Die Anmeldung erfolgt auf die gleiche Weise, wie Sie es im Webinterface von KeyLocker eingerichtet haben.
Im nächsten Schritt installieren Sie in der Desktop-Anwendung SMCTL, das das Hauptwerkzeug für das eigentliche Signieren ist.
Nach der Installation sehen Sie die Auswahl aus drei möglichen Möglichkeiten zur Speicherung der Systemvariable von KeyLocker. Wir empfehlen, die Standardeinstellung "Store my credentials" beizubehalten. Die Daten werden im System gespeichert, und Sie müssen sich nicht jedes Mal vor dem Signieren erneut beim Konto anmelden.
Wenn Sie die Option zur Speicherung im System wählen, werden die Anmeldeinformationen in Windows im Credential Manager abgelegt.
Nach der Einrichtung der Anmeldeinformationen im System, die automatisch von der DigiCert ONE Clients-App durchgeführt wird, wechseln Sie zum dritten Schritt des Assistenten. Dieser wird Sie dann im System auffordern, den Befehl SMCTL healthcheck auszuführen, der die Kommunikation mit KeyLocker und die Authentifizierung überprüft. Es sollte alles reibungslos funktionieren, also bestätigen Sie "I have run the healthcheck command in SMCTL" und klicken Sie auf die Schaltfläche Check Status.
Sie sehen die grüne Bestätigung You're ready to start signing with SMCTL, was bedeutet, dass alles korrekt eingerichtet ist, die Kommunikation funktioniert und Sie mit dem Signieren beginnen können.
Wählen Sie die richtige Plattform, die Sie für das Signieren verwenden, und Sie sehen anschließend ein Beispiel (Anleitung) für das Signieren mit KeyLocker.
Dateien Signieren
Für das Signieren empfehlen wir primär das Dienstprogramm SMCTL, das im Befehlszeileninterface (CLI) funktioniert. Die zweite Variante ist das Dienstprogramm DigiCert® Click-to-sign (siehe letzter Absatz).
Anleitungen für das Signieren von Dateien für die Hauptplattformen (Authenticode, Docker, Java...) finden Sie direkt im Webinterface von KeyLocker. Nach Abschluss des Assistenten (Überschrift "Setup complete!") können Sie auf eine der angebotenen Plattformen klicken, und die Schnittstelle zeigt Ihnen den vorbereiteten Befehl mit dem ausgewählten Zertifikat. Kopieren Sie ihn einfach in CLI und geben Sie die zu signierende Datei an. Einfacher geht es nicht!
Dateien Signieren mit SMCTL (empfohlen)
Die SMCTL-Anwendung stammt von DigiCert und kann auch für einfaches Signieren von Dateien mit Drittanbieter-Tools verwendet werden (Sie benötigen immer noch mindestens signtool). SMCTL arbeitet mit den am weitesten verbreiteten Werkzeugen – Signtool, Apksigner, Jarsigner, Mage, Nuget. Das Tool finden Sie im Verzeichnis C:/Program Files/DigiCert/DigiCert Keylocker Tools/smctl.exe
Im letzten Schritt des Assistenten klicken Sie auf Authenticode und wählen im nächsten Dialog das in KeyLocker verfügbare Zertifikat aus. Sie erhalten den vollständigen Befehl zum Signieren, fügen das Ziel hinzu und führen ihn lokal in Ihrem CLI aus. Sie erhalten sofort die Bestätigung für das erfolgreiche Signieren der Datei.
Die vollständige SMCTL-Dokumentation finden Sie auf der Website von DigiCert.
Dateien Signieren mit Signtool
Die folgende Anleitung bezieht sich auf das SignTool aus dem Windows SDK Toolkit. Es ist das am häufigsten verwendete Signierwerkzeug auf der Windows-Plattform.
Dem Signtool-Befehl muss angegeben werden, welche Datei signiert werden soll, mit welchem Zertifikat und gegebenenfalls weitere Parameter. Auf das Signaturzertifikat können Sie auf verschiedene Weise verweisen: Sie können Signtool das Zertifikat automatisch basierend auf dem Speicher auswählen lassen, oder die spezifische Zertifikatsauswahl manuell mit einem Verweis auf die Datei mit dem gespeicherten Zertifikat (natürlich nur der öffentliche Teil ohne privaten Schlüssel) oder mit dem SHA-1-Hash des Zertifikats durchführen.
Hier ist ein Beispiel für das Signieren mit einem Zertifikat-Hash:
C:/>signtool.exe sign /sha1 ecb0f10ab1XXXXXXXXXX1681fb70a31e32288263 /tr http://timestamp.digicert.com /td SHA256 /fd SHA256 C:/Users/User/Documents/HelloSign.exe
Und hier ist ein Beispiel für das Signieren mit KeyLocker und einer Zertifikatsdatei:
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
Die Gültigkeit der Signatur können Sie mit dem Befehl überprüfen: signtool verify /v file.exe Die Eigenschaften der Signatur finden Sie auch bei der signierten Datei über den Explorer und Eigenschaften (Rechtsklick).
Dateien Signieren mit Jarsigner
Jarsigner können Sie zusammen mit KeyLocker durch Verwendung der PKCS11-Bibliothek verwenden; Sie können einfach mit SMCTL signieren oder direkt mit Jarsigner und der PKCS11-Bibliothek.
Beispiel für das Signieren mit 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"
Die Richtigkeit der Signatur kann durch den Befehl überprüft werden:
jarsigner -verify
Die Dokumentation zu Jarsigner finden Sie auf der Website von DigiCert.
Signieren mit DigiCert® Click-to-sign
Dieses Werkzeug bietet eine grafische Schnittstelle zur Erleichterung der Dateisignatur. Das Ergebnis und das Prinzip des Signierens unterscheiden sich jedoch nicht von den Befehlszeilenwerkzeugen, die im Gegenteil eine detailliertere Einstellung der Signaturparameter ermöglichen. DigiCert® Click-to-sign bietet nur vereinfachte Optionen, die jedoch für die meisten Benutzer ausreichend sein können.
DigiCert® Click-to-sign hat einen großen Vorteil – für die Einrichtung ist es erforderlich, den Einrichtungsassistenten für Secrets in KeyLocker zu durchlaufen. Der Assistent testet nicht nur die Verbindung zur Cloud, sondern er richtet insbesondere diese Variablen im System ein! Sie müssen sie also nicht manuell einrichten.
Das Signieren mit diesem Werkzeug ist maximal einfach – Sie klicken mit der rechten Maustaste auf die Datei, die Sie signieren möchten, und wählen im Menü Click to Sign. Dann können Sie direkt signieren oder mit Bestätigung der Signatureinstellungen.
Die Dokumentation zu Click-to-sign finden Sie auf der Website von DigiCert.
Hinweis: Wenn Click-to-sign nicht funktioniert, fügen Sie der PATH-Variable die Pfade zum Click-to-sign selbst sowie zur Signaturanwendung (Signtool) hinzu, getrennt durch Semikolons. Beispiel:
Pfad: C:/Program Files/DigiCert/DigiCert Keylocker Tools;C:/Program Files (x86)/Windows Kits/10/bin/10.0.22621.0x64;
Integration in CI/CD
Der Hauptvorteil von KeyLocker ist die Möglichkeit der Automatisierung von Signaturen durch die Integration in den CI/CD-Workflow. DigiCert bietet eine Vielzahl von Skripten und Plugins für die am häufigsten verwendeten Entwicklertools und Plattformen an. Die Plugins sind für Azure DevOps, GitHub und Jenkins verfügbar. Sie bieten noch mehr Integrationsskripte für die PKCS11-Bibliothek an.
Vollständige Informationen finden Sie im Artikel CI/CD-Integrationen.
Dokumentation und weitere Ressourcen:
- Dokumentation zu SignTool, verfügbar auf https://learn.microsoft.com/cs-cz/dotnet/framework/tools/signtool-exe
- Dokumentation zu KeyLocker, verfügbar auf https://docs.digicert.com/en/digicert-keylocker.html