{"copy":"Kopieren","expand":"Einblenden","collapse":"Ausblenden","copy_success":"Kopiert!","copy_error":"Kopieren fehlgeschlagen!"}

Signieren mit KeyLocker Cloud HSM

Dieser Artikel lehrt Sie, wie man durch die Cloud und KeyLocker HSM signiert. Die Anleitung ist relevant für alle Plattformen und verschiedene Signaturwerkzeuge – von signtool bis jarsigner. Die angeführten Informationen bilden auch die Grundlage für das Signieren mit dem Software Trust Manager von DigiCert ONE; das Prinzip des Signierens gilt also für beide genannten Dienste.

Kompatibilität von KeyLocker

Sicher werden Sie sich vor dem Ausprobieren von KeyLocker die Frage stellen, ob es in Ihrem Workflow verwendet werden kann und ob es funktionieren wird. KeyLocker und die dazugehörigen Bibliotheken unterstützen (genauso wie der Software Trust Manager in DC1) Signaturwerkzeuge von Drittanbietern. Auf der DigiCert-Website finden Sie im Artikel Signing tool integration eine vollständige Übersicht der Dateiformate, die Sie mit KeyLocker und kompatiblen Werkzeugen signieren können.

Hier erwähne ich nur die am weitesten verbreiteten Signtool in 32-bit und 64-bit Versionen:

  • 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

Einrichtung in KeyLocker

Nach dem Einloggen in KeyLocker sehen Sie den Einrichtungsassistenten, der Ihnen hilft, die DigiCert ONE Clients App herunterzuladen. Mit ihr loggen Sie sich am Computer in Ihrem KeyLocker-Konto ein, installieren die notwendigen Bibliotheken inklusive SMCTL und setzen die Systemvariablen für die Authentifizierung. Im Vergleich zum früheren Verfahren bedeutet dies eine erhebliche Erleichterung.

Im ersten Schritt des KeyLocker Assistenten laden Sie die DigiCert ONE Clients App herunter, installieren und starten sie. Der Login ist derselbe, den Sie für das Webinterface von KeyLocker eingerichtet haben.

Die Authentifizierungsdaten erhalten Sie im KeyLocker Assistenten

Im nächsten Schritt installieren Sie in der Desktop-Anwendung das SMCTL, das das Hauptwerkzeug für das Signieren selbst ist.

Installation des SMCTL

Nach der Installation sehen Sie eine Auswahl von drei möglichen Möglichkeiten, die Variable von KeyLocker im System zu speichern. Wir empfehlen, die Standardeinstellung "Store my credentials" zu belassen. Die Informationen werden im System gespeichert und Sie müssen sich nicht jedes Mal vor dem Signieren erneut im Konto anmelden.

Auswahl der Authentifizierungsmethode für KeyLocker

Wenn Sie die Option zur Speicherung im System wählen, werden die Anmeldedaten in Windows im Credential Manager (Credential Manager) gespeichert.

Zugangsdaten zu KeyLocker sind im Credential Manager gespeichert. Dort bleiben sie immer und Sie müssen sie nicht erneut eingeben.

Nach dem Einstellen der Anmeldedaten im System, das automatisch von der DigiCert ONE Clients App durchgeführt wird, gehen Sie zum dritten Schritt des Assistenten. Er möchte nun von Ihnen im System den Befehl SMCTL healthcheck ausführen, der die Kommunikation der lokalen Umgebung mit KeyLocker und die korrekte Authentifizierung testet. Alles sollte reibungslos ablaufen, also bestätigen Sie "I have run the healthcheck command in SMCTL" und klicken Sie auf die Schaltfläche Check Status.

Test der korrekten Einstellung

Sie werden die grüne Bestätigung You're ready to start signing with SMCTL sehen, was bedeutet, dass alles korrekt eingerichtet ist, die Kommunikation funktioniert und Sie mit dem Signieren beginnen können.

Wählen Sie die richtige Plattform aus den vier angebotenen Optionen aus, die Sie für das Signieren verwenden, und dann sehen Sie ein Beispiel (Anleitung) für das Signieren mit KeyLocker.

KeyLocker Setup Complete

Dateien signieren

Wir empfehlen primär das Signieren mit dem SMCTL Dienstprogramm, das im Befehlszeilen-Interface (CLI) funktioniert. Die zweite Variante ist das Dienstprogramm DigiCert​​®​​ Click-to-sign (siehe letzten Absatz).

Anleitungen für das Signieren von Dateien für 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 Oberfläche zeigt Ihnen einen vorbereiteten Befehl unter Verwendung des ausgewählten Zertifikats. Kopieren Sie ihn ins CLI und bestimmen Sie die zu signierende Datei. Einfacher geht es nicht!

Signieren von Dateien mit SMCTL (empfohlen)

Das Dienstprogramm SMCTL stammt von DigiCert und kann auch zum vereinfachten Signieren von Dateien mit Drittanbieter-Werkzeugen dienen (Sie benötigen weiterhin mindestens signtool). SMCTL arbeitet mit den am weitesten verbreiteten Werkzeugen – Signtool, Apksigner, Jarsigner, Mage, Nuget. Das Tool finden Sie im Ordner 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 Zertifikat, das in KeyLocker verfügbar ist. Sie erhalten den vollständigen Befehl zum Signieren, wo Sie das Ziel eingeben und lokal im CLI ausführen. Sofort erhalten Sie die Bestätigung über das erfolgreiche Signieren der Datei.

Anleitung für das Signieren auf der Windows Plattform - Authenticode

Die vollständige Dokumentation zu SMCTL finden Sie auf der DigiCert-Website.

Signieren von Dateien mit Signtool

Die folgende Anleitung bezieht sich auf das Tool Signtool aus dem Paket Windows SDK. Es ist das am weitesten verbreitete Werkzeug zur Signatur auf der Windows Plattform.

Bei dem Signtool-Befehl muss spezifiziert werden, welche Datei ich signieren möchte, mit welchem Zertifikat und gegebenenfalls mit zusammenhängenden Parametern. Auf das Signaturzertifikat können Sie auf mehrere Arten verweisen: Sie können Signtool automatisch ein Zertifikat aus dem Speicher wählen lassen oder Sie können eine spezifische Zertifikatsauswahl manuell durch Verweis auf eine Datei mit gespeichertem Zertifikat durchführen (natürlich nur der öffentliche Teil ohne privaten Schlüssel), oder Sie können den SHA-1 Hash des Zertifikats verwenden.

Hier ist ein Beispiel für das Signieren mit einem Hash des Zertifikatsabdrucks:

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 Datei mit Zertifikat:

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 Signaturmerkmale finden Sie auch bei der signierten Datei über Explorer und Eigenschaften (Rechtsklick).

Signieren von Dateien mit Jarsigner

Jarsigner können Sie zusammen mit KeyLocker dank der PKCS11-Bibliothek verwenden; Sie können vereinfacht mit SMCTL signieren oder direkt mit Jarsigner und der PKCS11-Bibliothek.

Beispiel für die Signatur 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"

Überprüfen der Signatur mit dem Befehl: jarsigner -verify -certs -verbose

Dokumentation zu Jarsigner finden Sie auf der DigiCert-Website.

Signieren mit DigiCert​​®​​ Click-to-sign

Dieses Tool bietet eine grafische Oberfläche zur Erleichterung des Signierens von Dateien. Das Ergebnis und das Prinzip des Signierens unterscheiden sich jedoch nicht von Kommandozeilenwerkzeugen; diese ermöglichen hingegen detailliertere Einstellungen der Signaturparameter. DigiCert​​®​ Click-to-sign bietet lediglich vereinfachte Optionen, die jedoch für die meisten Benutzer ausreichen können.

DigiCert​​®​​ Click-to-sign hat einen großen Vorteil – für seine Einrichtung muss der Assistent zur Konfiguration der Zugangsdaten (Secrets) zu KeyLocker durchlaufen werden. Der Assistent testet nicht nur einfach die Verbindung zur Cloud, sondern setzt vor allem diese Variablen ins System! Sie müssen Sie also nicht manuell aufwendig konfigurieren.

Das Signieren mit diesem Tool ist maximal einfach – Sie klicken mit der rechten Maustaste auf die Datei, die signiert werden soll, und wählen im Menü Click to Sign. Dann können Sie direkt oder mit Bestätigung der Signiereinstellung signieren.

Überprüfung vor dem Signieren in DigiCert​​®​​ Click-to-sign

Dokumentation zu Click-to-sign finden Sie auf der DigiCert-Website.

Hinweis: Falls Click-to-sign bei Ihnen nicht funktioniert, dann setzen Sie in die Variable PATH die Pfade zu Click-to-sign selbst und zur Signaturanwendung (Signtool) getrennt durch ein Semikolon. Also zum Beispiel:
Path: 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 liegt in der Möglichkeit zur Automatisierung der Signaturen dank der Integration in das CI/CD-Workflow. DigiCert hat eine Reihe von Skripten und Plugins für die am meisten verbreiteten Entwicklungswerkzeuge und Plattformen vorbereitet. Plugins sind für Azure DevOps, GitHub und Jenkins verfügbar. Es gibt noch mehr Integrationsskripte für die PKCS11-Bibliothek.

Komplette Informationen finden Sie im Artikel CI/CD integrations.

Dokumentation und weitere Quellen: