Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
In der Kryptographie und bei PKIs (Public Key Infrastructure) werden digitale Signaturen verwendet, um zu bestätigen, dass Daten von einer vertrauenswürdigen Einheit gesendet wurden. Signaturen zeigen außerdem, dass die Daten während der Übertragung nicht manipuliert wurden. Eine Signatur ist ein verschlüsselter Hash, der mit dem privaten Schlüssel des Absenders erzeugt wird. Der Empfänger kann die Datenintegrität überprüfen, indem er seine Hash-Signatur mit dem öffentlichen Schlüssel des Absenders entschlüsselt. Im Gegenzug liegt es in der Verantwortung des Absenders, ein digitales Zertifikat zu pflegen. Das digitale Zertifikat belegt den Besitz des privaten Schlüssels durch den Absender und stellt dem Empfänger den öffentlichen Schlüssel zur Verfügung, der für die Entschlüsselung benötigt wird. Solange der private Schlüssel dem Absender gehört, kann der Signatur vertraut werden. AWS CloudHSM bietet sichere, nach FIPS 140-2 Level 3 validierte Hardware, mit der Sie diese Schlüssel mit exklusivem Einzelmandantenzugriff sichern können.
Viele Organisationen verwenden Microsoft SignTool, ein Befehlszeilentool, das Dateien signiert, verifiziert und mit einem Zeitstempel versehen kann, um den Codesignaturprozess zu vereinfachen. Sie können AWS CloudHSM es verwenden, um Ihre Schlüsselpaare sicher zu speichern, bis sie von Ihnen benötigt werden SignTool, und so einen leicht automatisierbaren Arbeitsablauf für das Signieren von Daten schaffen.
Die folgenden Themen bieten einen Überblick über die Verwendung SignTool von. AWS CloudHSM
Themen
Schritt 1: Einrichten der Voraussetzungen
Um Microsoft SignTool mit verwenden zu können AWS CloudHSM, benötigen Sie Folgendes:
-
Eine EC2 Amazon-Client-Instance, auf der ein Windows-Betriebssystem ausgeführt wird.
-
Eine Zertifizierungsstelle (CA), die entweder selbst unterhalten oder von einem Drittanbieter eingerichtet wurde.
-
Ein aktiver AWS CloudHSM Cluster in derselben virtuellen Public Cloud (VPC) wie Ihre EC2 Instanz. Der Cluster muss mindestens ein HSM enthalten.
-
Ein Krypto-Benutzer (CU), der Schlüssel im AWS CloudHSM Cluster besitzt und verwaltet.
-
Eine unsignierte Datei oder ausführbare Datei.
-
Das Microsoft Windows Software Development Kit (SDK).
Um die Voraussetzungen für die Verwendung AWS CloudHSM mit Windows einzurichten SignTool
-
Folgen Sie den Anweisungen im Abschnitt Erste Schritte dieses Handbuchs, um eine EC2 Windows-Instanz und einen AWS CloudHSM Cluster zu starten.
-
Wenn Sie Ihre eigene Windows Server-Zertifizierungsstelle hosten möchten, folgen Sie den Schritten 1 und 2 unter Windows Server als Zertifizierungsstelle konfigurieren mit AWS CloudHSM. Verwenden Sie andernfalls weiterhin Ihre öffentlich vertrauenswürdige Zertifizierungsstelle eines Drittanbieters.
-
Laden Sie eine der folgenden Versionen des Microsoft Windows SDK herunter und installieren Sie sie auf Ihrer EC2 Windows-Instanz:
Die ausführbare Datei
SignTool
ist Teil der Installationsfeatures von Windows SDK Signing Tools für Desktop Apps. Sie können die anderen zu installierenden Features weglassen, wenn Sie sie nicht benötigen. Der Standardinstallationspfad ist:C:\Program Files (x86)\Windows Kits\
<SDK version>
\bin\<version number>
\<CPU architecture>
\signtool.exe
Sie können jetzt das Microsoft Windows SDK, Ihren AWS CloudHSM Cluster und Ihre CA verwenden, um ein Signaturzertifikat zu erstellen.
Schritt 2: Erstellen Sie ein Signaturzertifikat
Nachdem Sie das Windows SDK auf Ihre EC2 Instanz heruntergeladen haben, können Sie es verwenden, um eine Zertifikatsignieranforderung (CSR) zu generieren. Die CSR ist ein unsigniertes Zertifikat, das möglicherweise zur Signatur an Ihre CA weitergeleitet wird. In diesem Beispiel verwenden wir die ausführbare Datei certreq
, die im Windows-SDK enthalten ist, um die CSR zu generieren.
So erstellen Sie eine CSR mit der ausführbaren Datei certreq
:
-
Stellen Sie eine Verbindung zu Ihrer EC2 Windows-Instanz her, falls Sie dies noch nicht getan haben. Weitere Informationen finden Sie unter Connect to Your Instance im EC2 Amazon-Benutzerhandbuch.
-
Erstellen Sie eine Datei namens
request.inf
, die die folgenden Zeilen enthält. Ersetzen Sie dieSubject
-Informationen durch die Ihrer Organisation. Eine Erklärung der einzelnen Parameter finden Sie in der Dokumentation von Microsoft. [Version] Signature= $Windows NT$ [NewRequest] Subject = "C=
<Country>
,CN=<www.website.com>
,O=<Organization>
,OU=<Organizational-Unit>
,L=<City>
,S=<State>
" RequestType=PKCS10 HashAlgorithm = SHA256 KeyAlgorithm = RSA KeyLength = 2048 ProviderName = "CloudHSM Key Storage Provider" KeyUsage = "CERT_DIGITAL_SIGNATURE_KEY_USAGE" MachineKeySet = True Exportable = False -
Führen Sie
certreq.exe
. In diesem Beispiel speichern wir die CSR alsrequest.csr
.certreq.exe -new request.inf request.csr
Intern wird auf Ihrem AWS CloudHSM Cluster ein neues key pair generiert, und der private Schlüssel des Paares wird verwendet, um die CSR zu erstellen.
-
Übermitteln Sie die CSR an Ihre CA. Wenn Sie eine Windows Server-CA verwenden, führen Sie diese Schritte aus:
-
Geben Sie den folgenden Befehl ein, um das CA-Tool zu öffnen:
certsrv.msc
-
Klicken Sie im neuen Fenster mit der rechten Maustaste auf den Namen des CA-Servers. Wählen Sie Alle Aufgaben aus, und wählen Sie dann Neue Anfrage senden aus.
-
Navigieren Sie zum Speicherort von
request.csr
und wählen Sie Öffnen aus. -
Navigieren Sie zum Ordner Pending Requests (Ausstehende Anforderungen), indem Sie das Menü Server CA erweitern. Klicken Sie mit der rechten Maustaste auf die gerade erstellte Anforderung, und wählen Sie unter All tasks (Alle Aufgaben) Issue (Ausstellen) aus.
-
Navigieren Sie nun zum Ordner Issued Certificates (Ausgestellte Zertifikate) (über dem Ordner Pending Requests (Ausstehende Anforderungen)).
-
Wählen Sie Öffnen aus, um das Zertifikat anzuzeigen, und wählen Sie dann die Registerkarte Details aus.
-
Wählen Sie In Datei kopieren aus, um den Assistenten für den Zertifikatsexport zu starten. Speichern Sie die DER-kodierte X.509-Datei an einem sicheren Ort als
signedCertificate.cer
. -
Verlassen Sie das CA-Tool und verwenden Sie den folgenden Befehl, der die Zertifikatsdatei in den persönlichen Zertifikatsspeicher unter Windows verschiebt. Sie kann dann von anderen Anwendungen verwendet werden.
certreq.exe -accept signedCertificate.cer
-
Sie können zum Signieren einer Datei nun Ihr importiertes Zertifikat in verwenden.
Schritt 3: Signieren Sie eine Datei
Sie können jetzt Ihr importiertes Zertifikat verwenden SignTool , um Ihre Beispieldatei zu signieren. Um dies zu tun, müssen Sie den SHA-1-Hash oder Fingerabdruck (Thumbprint) des Zertifikats kennen. Der Fingerabdruck wird verwendet, um sicherzustellen, dass SignTool nur Zertifikate verwendet werden, die von verifiziert wurden. AWS CloudHSM In diesem Beispiel verwenden wir, PowerShell um den Hash des Zertifikats abzurufen. Sie können auch die GUI der CA oder die ausführbare Datei certutil
des Windows-SDKs verwenden.
So erhalten Sie den Fingerabdruck eines Zertifikats und signieren damit eine Datei:
-
Öffnen Sie PowerShell als Administrator und führen Sie den folgenden Befehl aus:
Get-ChildItem -path cert:\LocalMachine\My
Kopieren Sie den
Thumbprint
, der zurückgegeben wird. -
Navigieren Sie zu dem Verzeichnis PowerShell , das Folgendes enthält
SignTool.exe
. Der Standardspeicherort istC:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64
. -
Signieren Sie dann Ihre Datei, indem Sie den folgenden Befehl ausführen. Wenn der Befehl erfolgreich ist, wird eine Erfolgsmeldung PowerShell zurückgegeben.
signtool.exe sign /v /fd sha256 /sha1
<thumbprint>
/sm C:\Users\Administrator\Desktop\<test>
.ps1 -
(Optional) Um die Signatur der Datei zu überprüfen, verwenden Sie den folgenden Befehl:
signtool.exe verify /v /pa C:\Users\Administrator\Desktop\
<test>
.ps1