Eine Partei, die denselben Schlüssel kennt, kann das Tag neu berechnen oder verifizieren, um Änderungen zu erkennen und Zusicherung zu gewinnen, dass die Nachricht von einem Schlüsselinhaber stammt. Konstruktion, Schlüssel, Tag-Länge und Protokollregeln bestimmen die tatsächliche Zusicherung.
MACs sind symmetrisch: Jeder Verifizierer, der den geteilten Schlüssel hält, kann ebenfalls gültige Tags erzeugen. Standardkonstruktionen umfassen den Keyed-Hash Message Authentication Code (HMAC) und den Cipher-based Message Authentication Code (CMAC). Ein Protokoll muss exakt angeben, welche Bytes und welcher Kontext authentifiziert werden und wie ein empfangenes Tag geprüft wird.
Wichtigste Punkte
Abgedeckte DatenDie vollständige sicherheitsrelevante Darstellung authentifizieren, einschließlich Kennungen, Längen, Versionen, Algorithmen und Kontext, wo nötig; mehrdeutige Codierung oder ausgelassene Felder können Substitution ermöglichen.
SchlüsselnutzungSchlüssel sicher erzeugen, ihre Verbreitung begrenzen, sie von Verschlüsselung und unverbundenen Zwecken trennen, sie richtliniengemäß rotieren und Kompromittierung als alle Inhaber betreffend behandeln.
ProtokolldesignNonces, Sequenznummern, Zeitstempel oder anderen Zustand verwenden, wenn Replay oder Umordnung relevant ist, und Tags vergleichen, ohne nützliche Timing-Informationen preiszugeben.
Wichtige EinschränkungEin MAC bietet keine Vertraulichkeit und üblicherweise keine Nichtabstreitbarkeit, weil jeder Inhaber des geteilten Schlüssels ein gültiges Tag erzeugen kann. Er verhindert allein kein Replay, und ein verifiziertes Tag sagt nichts darüber aus, ob der authentifizierte Inhalt sicher oder autorisiert ist.