Eine digitale Signatur ist eine kryptografische Ausgabe, die zur Überprüfung der Authentizität von Daten verwendet wird. Ein digitaler Signaturalgorithmus ermöglicht zwei verschiedene Vorgänge:
Einen Signaturvorgang, der einen Signaturschlüssel verwendet, um eine Signatur für Rohdaten zu erzeugen, und
einen Prüfvorgang, bei dem die Signatur von einer Partei validiert werden kann, die den Signaturschlüssel nicht kennt.
Die Hauptzwecke einer digitalen Signatur sind
- die Überprüfung der Integrität der signierten Daten und
- die Nachweisbarkeit für den Fall, dass der Unterzeichner behauptet, die Signatur sei nicht authentisch.
Digitale Signaturen beruhen auf einem asymmetrischen Kryptografiesystem, auch als Public-Key-Kryptografie bekannt. Ein asymmetrischer Schlüssel besteht aus einem öffentlichen und einem privaten Schlüsselteil. Der private Schlüssel wird zum Erstellen einer Signatur verwendet, der dazugehörende öffentliche Schlüssel zum Überprüfen der Signatur.
Anwendungsfälle für eine digitale Signatur
Sie können Builds mit digitalen Signaturen validieren. Angenommen, Sie haben eine Binärdatei, die mit einem privaten Schlüssel digital signiert wurde. Um ihre Echtheit zu prüfen, können Sie den öffentlichen Schlüssel verwenden, der zum privaten Schlüssel gehört. Ist die Signatur der Binärdatei ungültig, wurde die Binärdatei manipuliert bzw. beschädigt.
Ein anderes Beispiel ist die Validierung des Subjekts eines Zertifikats, das von einer Zertifizierungsstelle ausgestellt wurde. Sofern das Subjekt den privaten Schlüssel des privaten/öffentlichen Schlüsselpaars besitzt, stellt die Zertifizierungsstelle ein Zertifikat für das Subjekt aus. Das Zertifikat enthält eine digitale Signatur, die mit dem privaten Schlüssel des Subjekts erstellt wurde. Das Zertifikat enthält auch den öffentlichen Schlüsselteil des Subjekts. Eine Entität, die mit dem Subjekt interagiert, verwendet den öffentlichen Schlüssel des Subjekts und zusätzliche Zertifikatverifizierungsregeln, um die Signatur zu validieren. Wenn die Signatur nicht mit den fraglichen Daten übereinstimmt oder die durch das Zertifikat vorgeschriebenen Verifizierungsregeln verletzt werden, wird die Signatur als ungültig befunden.
Workflow für digitale Signaturen
Im Folgenden wird der Ablauf zum Erstellen und Validieren einer Signatur beschrieben. An diesem Workflow sind der Datenunterzeichner und der Datenempfänger beteiligt.
Der Unterzeichner erstellt einen asymmetrischen Schlüssel, der eine digitale Signatur ermöglicht.
Der Unterzeichner kann mit diesem Schlüssel mehrere Signaturen erstellen.
Der Unterzeichner wendet den privaten Schlüssel auf die Daten an, um eine digitale Signatur zu erstellen.
Der Unterzeichner stellt dem Datenempfänger die Daten und die digitale Signatur bereit.
Der Empfänger verwendet den öffentlichen Schlüsselabschnitt des öffentlichen/privaten Schlüsselpaars des Unterzeichners, um die digitale Signatur zu überprüfen. Ist die Verifizierung nicht erfolgreich, wurden die Daten geändert.
Signieralgorithmen
Cloud Key Management Service unterstützt den Elliptische-Kurven-(Elliptic Curve, EC) und den RSA-Algorithmus für digitale Signaturen. Beide sind Branchenstandards und ermöglichen die Auswahl von Schlüsselgröße und Digest-Algorithmus.
Die Elliptische-Kurven-Kryptografie beruht auf unidirektionalen Hash-Funktionen und Punktmultiplikation, um Punkte auf einer elliptischen Kurve zu berechnen, und verbindet dies mit der Komplexität, den Multiplikanden für einen Punkt anhand seines Ursprungs zu bestimmen. Diese Schwierigkeit beim Bestimmen des Multiplikanden ist der kryptografische Vorteil der Elliptische-Kurven-Kryptografie. Je größer die Kurve, desto schwieriger ist es, den Multiplikanden zu berechnen. Ein Vorteil der EC-Kryptografie ist, dass ein EC-Schlüssel eine kleinere Schlüsselgröße aufweist als ein RSA-Schlüssel, der dieselbe kryptografische Stärke bietet.
Die RSA-Kryptografie basiert auf der Schwierigkeit, eine große Ganzzahl in zwei oder mehr Faktoren aufzuschlüsseln. Je größer die Schlüsselgröße, desto schwieriger ist es, die Ganzzahlen aufzuschlüsseln.
Digitale Signaturfunktionalität von Cloud KMS
Cloud KMS bietet die folgenden Funktionen zum Erstellen und Prüfen digitaler Signaturen.
Einen asymmetrischen Schlüssel mit dem Schlüsselzweck
ASYMMETRIC_SIGN
erstellen. Cloud KMS-Schlüssel für asymmetrische Signaturen unterstützen Elliptische-Kurven-Signaturalgorithmen und RSA-Signaturalgorithmen.Eine digitale Signatur erstellen.
Einen öffentlichen Schlüssel für einen asymmetrischen Schlüssel abrufen.
Cloud KMS bietet keine direkte Möglichkeit, eine digitale Signatur zu prüfen. Stattdessen verwenden Sie dazu frei verfügbare SDKs und Tools wie OpenSSL. Diese benötigen den öffentlichen Schlüssel, den Sie von Cloud KMS abrufen. Informationen zur Verwendung dieser offenen SDKs und Tools finden Sie unter Signatur mit elliptischen Kurven prüfen und RSA-Signatur prüfen.