Digitale Signatur

Mit einer digitalen Signatur können Sie verifizieren, dass Ihre Daten nicht manipuliert werden. Sie gewährleistet die Authentizität und Integrität der signierten Daten, aber nicht ihre Geheimhaltung. Sie ist asymmetrisch, d. h., es wird ein Schlüsselpaar verwendet, also ein öffentlicher und ein privater Schlüssel.

Signaturen haben folgende Eigenschaften:

  • Authentizität: Es ist nur möglich, eine Signatur zu erstellen, die von PublicKeyVerify.Verify(signature, message) validiert wird, wenn Sie den privaten Schlüssel haben.
  • Asymmetrisch: Beim Erstellen der Signatur wird ein anderer Schlüssel verwendet als für die Verifizierung. So 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, können Sie stattdessen den einfacheren und effizienteren MAC verwenden.

Die Funktionalität digitaler Signaturen wird in Tink als ein Primitivepaar dargestellt:

  • PublicKeySign zum Signieren von Daten
  • PublicKeyVerify zum Verifizieren der Signatur

Schlüsseltyp auswählen

Wir empfehlen die Verwendung von ECDSA_P256 für die meisten Anwendungsfälle, aber es gibt auch eine Vielzahl von Optionen. Im Allgemeinen gilt Folgendes:

  • ECDSA_P256 ist die am häufigsten verwendete Option und eine sinnvolle Standardeinstellung. Beachten Sie, dass ECDSA-Signaturen malleable 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 (aber die Signatur ist viel langsamer als ECDSA_P256 oder ED25519).

Minimale Sicherheitsgarantien

  • Zu signierende Daten können eine beliebige Länge haben
  • 128-Bit-Sicherheitsebene gegen Angriffe mit adaptiven ausgewählten Nachrichten für Schemas, die auf Elliptische-Kurven basieren
  • 112-Bit-Sicherheitsniveau gegen Angriffe mit adaptiven ausgewählten Nachrichten für RSA-basierte Schemas (erlaubt 2.048-Bit-Schlüssel)

Anwendungsbeispiel

Weitere Informationen finden Sie unter Ich möchte Daten digital signieren.

Formbarkeit

Ein Signaturschema ist formbar, wenn ein Angreifer eine andere gültige Signatur für eine bereits signierte Nachricht erstellen kann. In den meisten Szenarien ist dies kein Problem. In einigen Fällen gehen Programmierer jedoch implizit davon aus, dass gültige Signaturen eindeutig sind, was zu unerwarteten Ergebnissen führen kann.