Mit dem Digital Signature-Primitive können Sie überprüfen, ob Ihre Daten manipuliert wurden. Sie bietet Authentizität und Integrität, aber nicht Geheimhaltung der signierten Daten. Sie ist asymmetrisch, d. h. sie verwendet ein Schlüsselpaar (öffentlicher und privater Schlüssel).
Das Primitive für digitale Signaturen hat die folgenden Eigenschaften:
- Authentizität: Es ist nicht möglich, eine Signatur zu erstellen, die mit
PublicKeyVerify.Verify(signature, message)validiert werden kann, es sei denn, Sie haben den privaten Schlüssel. - Asymmetrisch: Beim Erstellen der Signatur wird ein anderer Schlüssel verwendet als für die Verifizierung. Dadurch können Sie den öffentlichen Schlüssel verteilen, um Signaturen für Parteien zu verifizieren, die Signaturen nicht selbst erstellen können.
Wenn Sie keine Asymmetrie benötigen, sollten Sie stattdessen das einfachere und effizientere MAC-Primitive verwenden.
Die Funktionalität digitaler Signaturen wird in Tink durch ein Paar von Primitiven dargestellt:
- PublicKeySign zum Signieren von Daten
- PublicKeyVerify zum Überprüfen der Signatur
Schlüsseltyp auswählen
Wir empfehlen für die meisten Anwendungsfälle die Verwendung von ML_DSA_65 oder ECDSA_P256, aber es gibt eine Vielzahl von Optionen. Im Allgemeinen gilt Folgendes:
- ML-DSA-65 ist quantensicher. Wir arbeiten aktiv an der Implementierung und empfehlen die Verwendung für Programmiersprachen, für die sie verfügbar ist.
Bei den folgenden nicht Post-Quanten-Algorithmen müssen Sie den Schlüsseltyp in naher Zukunft ändern.
- ECDSA_P256 ist die am häufigsten verwendete Option und ein angemessener Standardwert. Beachten Sie jedoch, dass ECDSA-Signaturen formbar sind.
- ED25519 erstellt deterministische Signaturen und bietet eine bessere Leistung als ECDSA_P256.
- RSA_SSA_PKCS1_3072_SHA256_F4 erstellt deterministische Signaturen und bietet die beste Überprüfungsleistung. Die Signierung ist jedoch viel langsamer als bei ECDSA_P256 oder ED25519.
Minimale Sicherheitsgarantien
- Zu signierende Daten können eine beliebige Länge haben
- 128-Bit-Sicherheitsniveau gegen adaptive Chosen-Message-Angriffe für auf elliptischen Kurven basierende Schemata
- Sicherheitsniveau von 112 Bit gegen adaptive Chosen-Message-Angriffe für RSA-basierte Schemata (ermöglicht 2.048-Bit-Schlüssel)
Formbarkeit
Ein Signaturschema ist verformbar, wenn ein Angreifer eine andere gültige Signatur für eine bereits signierte Nachricht erstellen kann. In den meisten Fällen ist das kein Problem, aber in einigen Fällen gehen Programmierer implizit davon aus, dass gültige Signaturen eindeutig sind, was zu unerwarteten Ergebnissen führen kann.
Anwendungsbeispiel
Weitere Informationen finden Sie unter Daten digital signieren.