Message Authentication Code (MAC)

Mit der MAC-Primitivfunktion können Sie prüfen, ob Ihre Daten nicht manipuliert wurden. Ein Absender, der einen symmetrischen Schlüssel mit einem Empfänger teilt, kann ein Authentifizierungs-Tag für eine bestimmte Nachricht berechnen. So kann der Empfänger überprüfen, ob eine Nachricht vom erwarteten Absender stammt und nicht geändert wurde.

MAC hat die folgenden Eigenschaften:

  • Authentizität: Nur wenn der Schlüssel bekannt ist, kann ein überprüfbares MAC-Tag erstellt werden.
  • Symmetric Für die Berechnung und Überprüfung des Tags ist derselbe Schlüssel erforderlich.

MAC kann je nach Algorithmus deterministisch oder zufällig sein. Tink implementiert derzeit keine nichtdeterministischen MAC-Algorithmen. Sie sollten MAC nur für die Nachrichtenauthentifizierung und nicht für andere Zwecke wie die Generierung von pseudozufälligen Bytes verwenden (siehe PRF).

Wenn Sie stattdessen ein asymmetrisches Primitive benötigen, lesen Sie den Hilfeartikel Digitale Signatur.

Schlüsseltyp auswählen

Wir empfehlen für die meisten Anwendungsfälle HMAC_SHA256, es gibt aber auch andere Optionen.

Im Allgemeinen gilt:

  • HMAC_SHA512 ist je nach Nachrichtengröße und den Details der verwendeten Hardware möglicherweise schneller oder langsamer.
  • HMAC_SHA512 ist der konservativste Modus, der für eine praktisch unbegrenzte Anzahl von Nachrichten verwendet werden kann.
  • AES256_CMAC ist auf Systemen mit AES-NI-Hardwarebeschleunigung am schnellsten.

Mindestsicherheitsgarantien

  • Mindestens 80-Bit-Authentifizierungsstärke
  • Schutz vor existenzieller Fälschung bei einem Angriff mit wählbarem Klartext
  • Mindestens 128-Bit-Sicherheit gegen Schlüsselwiederherstellungsangriffe und auch in Mehrfachnutzerszenarien (wenn ein Angreifer nicht auf einen bestimmten Schlüssel, sondern auf einen beliebigen Schlüssel aus einem Satz von bis zu 232 Schlüsseln abzielt)

Anwendungsbeispiel

Weitere Informationen finden Sie unter Ich möchte Daten vor Manipulation schützen.