In der Kryptografie ist ein Message Authentication Code ( MAC ), auch Authentifizierungs-Tag genannt , eine kurze Information zur Authentifizierung und Integritätsprüfung einer Nachricht. Er dient also dazu, zu bestätigen, dass die Nachricht vom angegebenen Absender stammt (Authentizität) und nicht verändert wurde (Integrität). Mithilfe des MAC-Werts können Prüfer (die ebenfalls über einen geheimen Schlüssel verfügen) jegliche Änderungen am Nachrichteninhalt erkennen.

Terminologie

Der Begriff Message Integrity Code ( MIC ) wird häufig anstelle von MAC verwendet , insbesondere in der Kommunikationstechnik [ 1 ] , um ihn von der Verwendung von MAC als Media Access Control Address ( MAC-Adresse ) zu unterscheiden. Einige Autoren [ 2 ] verwenden MIC jedoch synonym für Message Digest , der lediglich dazu dient, eine einzelne Nachricht eindeutig, aber nicht eindeutig zu identifizieren. Daher wird empfohlen, den Begriff Message Integrity Code (MIC) zu vermeiden und stattdessen Prüfsumme , Fehlererkennungscode , Hash , Keyed Hash , Message Authentication Code oder geschützte Prüfsumme zu verwenden . [ 3 ]

Definitionen

Informell besteht ein Message Authentication Code System aus drei Algorithmen:

  • Ein Schlüsselgenerierungsalgorithmus wählt einen Schlüssel aus dem Schlüsselraum gleichverteilt zufällig aus.
  • Ein MAC-Generierungsalgorithmus gibt effizient ein Tag zurück, wenn der Schlüssel und die Nachricht vorliegen.
  • Ein Verifizierungsalgorithmus überprüft effizient die Authentizität der Nachricht anhand desselben Schlüssels und Tags. Das heißt, er gibt „akzeptiert“ zurück, wenn Nachricht und Tag nicht manipuliert oder gefälscht sind, andernfalls „ abgelehnt“ .

Ein sicherer Message Authentication Code (MAC) muss Versuchen eines Angreifers widerstehen , Tags für beliebige, ausgewählte oder alle Nachrichten zu fälschen , auch unter den Bedingungen bekannter oder gewählter Nachrichten . Es sollte rechnerisch unmöglich sein, einen gültigen Tag für die gegebene Nachricht ohne Kenntnis des Schlüssels zu berechnen, selbst wenn wir im schlimmsten Fall annehmen, dass der Angreifer den Tag jeder Nachricht außer der betreffenden kennt. [ 4 ]

Formal gesehen ist ein Message Authentication Code ( MAC )-System ein Tripel effizienter [ 5 ] Algorithmen ( G , S , V ), die Folgendes erfüllen:

  • G (Schlüsselgenerator) liefert den Schlüssel k bei Eingabe 1 n , wobei n der Sicherheitsparameter ist .
  • S (signing) gibt ein Tag t für den Schlüssel k und die Eingabezeichenkette x aus .
  • V (Verifizierung) gibt bei folgenden Eingaben akzeptierte oder abgelehnte Ergebnisse aus: dem Schlüssel k , der Zeichenkette x und dem Tag t .

S und V müssen folgende Bedingungen erfüllen:

Pr [ k ← G (1 n ), V ( k , x , S ( k , x ) ) = akzeptiert ] = 1 . [ 6 ]

Ein MAC ist fälschungssicher, wenn für jeden effizienten Angreifer A

Pr [ k ← G (1 n ), ( x , t ) ← A S ( k , · ) (1 n ), x ∉ Query( A S ( k , · ) , 1 n ), V ( k , x , t ) = accepted ] < negl( n ) ,

Dabei bedeutet A S ( k , · ) , dass A Zugriff auf das Orakel S ( k , · ) hat, und Query( A S ( k , · ) , 1 n ) bezeichnet die Menge der Anfragen an S , die von A gestellt werden, welches n kennt . Offensichtlich fordern wir, dass kein Angreifer die Zeichenkette x direkt auf S abfragen kann , da er sonst leicht ein gültiges Tag erhalten könnte. [ 7 ]

Sicherheit

Obwohl MAC-Funktionen kryptografischen Hashfunktionen ähneln , unterliegen sie anderen Sicherheitsanforderungen. Um als sicher zu gelten, muss eine MAC-Funktion existentieller Fälschung im Rahmen von Angriffen mit gewählter Nachricht widerstehen . Das bedeutet: Selbst wenn ein Angreifer Zugriff auf ein Orakel hat , das den geheimen Schlüssel besitzt und MACs für von ihm gewählte Nachrichten generiert, kann er den MAC für andere Nachrichten (die nicht zur Abfrage des Orakels verwendet wurden) nicht ohne unpraktikablen Rechenaufwand erraten.

MACs unterscheiden sich von digitalen Signaturen dadurch, dass MAC-Werte sowohl generiert als auch mit demselben geheimen Schlüssel verifiziert werden. Dies bedeutet, dass sich Sender und Empfänger einer Nachricht vor Beginn der Kommunikation auf denselben Schlüssel einigen müssen, wie es bei symmetrischer Verschlüsselung der Fall ist . Aus demselben Grund bieten MACs nicht die von Signaturen gebotene Nichtabstreitbarkeit, insbesondere bei einem netzwerkweit geteilten geheimen Schlüssel: Jeder Benutzer, der einen MAC verifizieren kann, kann auch MACs für andere Nachrichten generieren. Im Gegensatz dazu wird eine digitale Signatur mit dem privaten Schlüssel eines Schlüsselpaares generiert, was der Public-Key-Kryptographie entspricht. [ 5 ] Da dieser private Schlüssel nur seinem Inhaber zugänglich ist, beweist eine digitale Signatur, dass ein Dokument nur von diesem Inhaber signiert wurde. Digitale Signaturen bieten somit Nichtabstreitbarkeit. Diese kann jedoch auch durch Systeme gewährleistet werden, die Informationen zur Schlüsselnutzung sicher an den MAC-Schlüssel binden. Zwei Personen besitzen denselben Schlüssel, wobei die eine eine Kopie zur MAC-Generierung besitzt, während die andere eine Kopie in einem Hardware-Sicherheitsmodul hat , das lediglich die MAC-Verifizierung ermöglicht. Dieses Verfahren ist in der Finanzbranche üblich.

Das Hauptziel eines MAC (Multi-Application Code) ist zwar die Verhinderung von Fälschungen durch Angreifer ohne Kenntnis des geheimen Schlüssels, doch reicht dies in bestimmten Szenarien nicht aus. Wenn ein Angreifer den MAC-Schlüssel kontrollieren kann, sind stärkere Garantien erforderlich, ähnlich der Kollisionsresistenz oder der Preimage-Sicherheit bei Hash-Funktionen. Für MACs werden diese Konzepte als Commitment- und Kontext-Discovery- Sicherheit bezeichnet . [ 8 ]

Durchführung

MAC-Algorithmen lassen sich aus anderen kryptografischen Primitiven, wie kryptografischen Hashfunktionen (wie im Fall von HMAC ) oder Blockchiffrierungsalgorithmen ( OMAC , CCM , GCM und PMAC ), konstruieren. Viele der schnellsten MAC-Algorithmen, wie UMAC - VMAC und Poly1305-AES , basieren jedoch auf universellem Hashing . [ 9 ]

Intrinsisch schlüsselbasierte Hash-Algorithmen wie SipHash sind per Definition ebenfalls MACs; sie können sogar schneller sein als universelle Hash-basierte MACs. [ 10 ]

Darüber hinaus kann der MAC-Algorithmus gezielt zwei oder mehr kryptografische Primitive kombinieren, um den Schutz auch dann aufrechtzuerhalten, wenn sich eine davon später als angreifbar erweist. Beispielsweise werden in TLS-Versionen vor 1.2 die Eingabedaten in zwei Hälften geteilt, die jeweils mit einem anderen Hash-Verfahren ( SHA-1 und SHA-2 ) verarbeitet und anschließend per XOR verknüpft werden, um den MAC auszugeben.

Einmalige MAC-Adresse

Universelle Hash-Verfahren und insbesondere paarweise unabhängige Hash-Funktionen liefern einen sicheren Message Authentication Code, solange der Schlüssel höchstens einmal verwendet wird. Dies kann als One-Time-Pad für die Authentifizierung betrachtet werden. [ 11 ]

Die einfachste derartige paarweise unabhängige Hashfunktion ist definiert durch den Zufallsschlüssel, key = ( a , b ) , und das MAC-Tag für eine Nachricht m wird berechnet als tag = ( am + b ) mod p , wobei p eine Primzahl ist.

Allgemeiner gesagt liefern k -unabhängige Hashfunktionen einen sicheren Message Authentication Code, solange der Schlüssel weniger als k -mal für k -fach unabhängige Hashfunktionen verwendet wird.

Message Authentication Codes (MACs) und die Authentifizierung des Datenursprungs wurden auch im Kontext der Quantenkryptographie diskutiert . Im Gegensatz zu anderen kryptographischen Aufgaben, wie etwa der Schlüsselverteilung, konnte für eine recht breite Klasse von Quanten-MACs gezeigt werden, dass Quantenressourcen keinen Vorteil gegenüber bedingungslos sicheren klassischen Einmal-MACs bieten. [ 12 ]

Standards

Es existieren verschiedene Standards, die MAC-Algorithmen definieren. Dazu gehören:

  • FIPS PUB 113 Computer Data Authentication , [ 13 ] zurückgezogen im Jahr 2002, [ 14 ] definiert einen auf DES basierenden Algorithmus .
  • FIPS PUB 198-1 Der Keyed-Hash Message Authentication Code (HMAC) [ 15 ]
  • NIST SP800-185 SHA-3 Abgeleitete Funktionen: cSHAKE, KMAC, TupleHash und ParallelHash [ 16 ]
  • ISO/IEC 9797-1 Mechanismen unter Verwendung eines Blockchiffres [ 17 ]
  • ISO /IEC 9797-2 Mechanismen mit einer dedizierten Hash-Funktion [ 18 ]
  • ISO /IEC 9797-3 Mechanismen unter Verwendung einer universellen Hash-Funktion [ 19 ]
  • ISO /IEC 29192-6 Leichtgewichtige Kryptographie - Message Authentication Codes [ 20 ]

ISO/IEC 9797-1 und -2 definieren generische Modelle und Algorithmen, die mit beliebigen Blockchiffren oder Hashfunktionen sowie einer Vielzahl unterschiedlicher Parameter verwendet werden können. Mithilfe dieser Modelle und Parameter lassen sich durch die Angabe der Parameter spezifischere Algorithmen definieren. Beispielsweise ist der FIPS-PUB-113-Algorithmus funktional äquivalent zum ISO/IEC-9797-1-MAC-Algorithmus 1 mit Padding-Methode 1 und dem Blockchiffre-Algorithmus DES.

Ein Beispiel für die Verwendung eines MAC

[ 21 ] In diesem Beispiel verarbeitet der Absender eine Nachricht mithilfe eines MAC-Algorithmus, um ein MAC-Daten-Tag zu erzeugen. Nachricht und MAC-Tag werden anschließend an den Empfänger gesendet. Dieser verarbeitet den Nachrichtenteil der Übertragung wiederum mit demselben Schlüssel mithilfe desselben MAC-Algorithmus und erzeugt so ein zweites MAC-Daten-Tag. Der Empfänger vergleicht dann das erste empfangene MAC-Tag mit dem zweiten generierten MAC-Tag. Stimmen diese überein, kann der Empfänger davon ausgehen, dass die Nachricht während der Übertragung nicht verändert oder manipuliert wurde (Datenintegrität).

Damit der Empfänger Replay-Angriffe erkennen kann , muss die Nachricht selbst Daten enthalten, die sicherstellen, dass dieselbe Nachricht nur einmal gesendet werden kann (z. B. Zeitstempel, Sequenznummer oder Verwendung eines einmaligen MAC-Codes ). Andernfalls könnte ein Angreifer – ohne den Inhalt zu kennen – diese Nachricht aufzeichnen und später wiedergeben, wodurch er dasselbe Ergebnis wie der ursprüngliche Absender erzielen würde.

Siehe auch

Anmerkungen

  1. ^ IEEE-Standard für Informationstechnologie – Telekommunikation und Informationsaustausch zwischen Systemen – Lokale und Metropolnetze – Spezifische Anforderungen – Teil 11: Spezifikationen für die drahtlose LAN-Medienzugriffssteuerung (MAC) und die physikalische Schicht (PHY) (PDF) . (Überarbeitung 2007). IEEE-SA . 12. Juni 2007. doi : 10.1109/IEEESTD.2007.373646 . ISBN 978-0-7381-5656-9Archiviert vom Original (PDF) am 13. Oktober 2008.
  2. ^ „CS 513 System Security -- Hashes and Message Digests“ . www.cs.cornell.edu . Abgerufen am 20. Dezember 2023 .
  3. ^ R. Shirey (August 2007). Internet Security Glossary, Version 2. Network Working Group. doi : 10.17487/RFC4949 . RFC 4949 .Informativ. Ersetzt RFC  2828 .
  4. Es wird davon ausgegangen , dass der stärkste Angreifer Zugriff auf den Signaturalgorithmus hat, ohne den Schlüssel zu kennen. Seine endgültige gefälschte Nachricht muss sich jedoch von allen Nachrichten unterscheiden, mit denen er zuvor den Signaturalgorithmus abgefragt hat. Siehe dazu die Ausführungen von Pass vor Definition 134.2.
  5. ^ a b Theoretisch läuft ein effizienter Algorithmus in probabilistischer Polynomzeit.
  6. ^ Bestanden, Def. 134.1
  7. ^ Bestanden, Def. 134.2
  8. ^ Bhaumik, Ritam; Chakraborty, Bishwajit; Choi, Wonseok; Dutta, Avijit; Govinden, Jérôme; Shen, Yaobin (2024). „Die Verpflichtung zur Sicherheit von MACs mit Anwendungen zur generischen Zusammensetzung“ . In Reyzin, Leonid; Stebila, Douglas (Hrsg.). Fortschritte in der Kryptologie – CRYPTO 2024 . Vorlesungsunterlagen in Informatik. Bd. 14923. Cham: Springer Nature Switzerland. S.  425–462 . doi : 10.1007/978-3-031-68385-5_14 . ISBN 978-3-031-68385-5Die
  9. ^ „VMAC: Message Authentication Code using Universal Hashing“ . CFRG Working Group . Abgerufen am 16. März 2010 .
  10. ^ Jean-Philippe Aumasson & Daniel J. Bernstein (18. September 2012). "SipHash: ein schneller PRF mit kurzem Input" (PDF) .
  11. ^ Simmons, Gustavus (1985). „Authentifizierungstheorie/Codierungstheorie“. Fortschritte in der Kryptologie – Tagungsband der CRYPTO 84. Berlin: Springer. S.  411–431 .
  12. ^ Nikolopoulos, Georgios M.; Fischlin, Marc (2020). „Informationstheoretisch sichere Datenursprungsauthentifizierung mit Quanten- und klassischen Ressourcen“ . Cryptography . 4 (4): 31. arXiv : 2011.06849 . doi : 10.3390/cryptography4040031 . S2CID 226956062 . 
  13. ^ „FIPS PUB 113 Computer Data Authentication “ . Archiviert vom Original am 27. September 2011. Abgerufen am 10. Oktober 2010 .
  14. ^ „Veröffentlichungen der Federal Information Processing Standards, zurückgezogene FIPS-Veröffentlichungen, nach Nummer aufgelistet“ . Archiviert vom Original am 1. August 2010. Abgerufen am 10. Oktober 2010 .
  15. ^ „ Der Keyed-Hash Message Authentication Code (HMAC) “ (PDF) . Abgerufen am 20. Dezember 2023 .
  16. ^ Abgeleitete SHA-3-Funktionen nvlpubs.nist.gov
  17. ^ „ISO/IEC 9797-1:2011“ . ISO . Abgerufen am 20. Dezember 2023 .
  18. ^ „ISO/IEC 9797-2:2011“ . ISO . Abgerufen am 20. Dezember 2023 .
  19. ^ „ISO/IEC 9797-3:2011“ . ISO . Abgerufen am 20. Dezember 2023 .
  20. ^ „ISO/IEC 29192-6:2019“ . ISO . Abgerufen am 20. Dezember 2023 .
  21. ^ „Mac Security Overview“, Mac® Security Bible , Wiley Publishing, Inc., 1. November 2011, S.  1–26 , doi : 10.1002/9781118257739.ch1 , ISBN 9781118257739

Referenzen

  • Goldreich, Oded (2001), Grundlagen der Kryptographie I: Grundlegende Werkzeuge , Cambridge: Cambridge University Press, ISBN 978-0-511-54689-1
  • Goldreich, Oded (2004), Grundlagen der Kryptographie II: Grundlegende Anwendungen (1. Aufl.), Cambridge [ua]: Cambridge University Press, ISBN 978-0-521-83084-3
  • Pass, Rafael, Ein Kurs in Kryptographie (PDF) , abgerufen am 31. Dezember 2015[ 1 ]
  1. ^ 11-12-20C8