Strona znająca ten sam klucz może ponownie wyliczyć lub zweryfikować tag, aby wykryć zmiany i zyskać zapewnienie, że wiadomość pochodzi od posiadacza klucza. Konstrukcja, klucz, długość tagu i reguły protokołu określają rzeczywiste zapewnienie.
MAC-e są symetryczne: każdy weryfikujący posiadający współdzielony klucz może też tworzyć ważne tagi. Standardowe konstrukcje obejmują kod uwierzytelniający wiadomości oparty na haszu z kluczem (HMAC) i kod uwierzytelniający wiadomości oparty na szyfrze (CMAC). Protokół musi określać dokładnie, które bajty i kontekst są uwierzytelniane oraz jak otrzymany tag jest sprawdzany.
Najważniejsze punkty
Obejmowane daneUwierzytelniaj kompletną reprezentację istotną dla bezpieczeństwa, w tym identyfikatory, długości, wersje, algorytmy i kontekst, gdzie potrzebne; niejednoznaczne kodowanie lub pominięte pola mogą umożliwić podstawienie.
Użycie kluczaGeneruj klucze bezpiecznie, ograniczaj ich dystrybucję, oddzielaj je od szyfrowania i niepowiązanych celów, rotuj je zgodnie z polityką i traktuj kompromitację jako dotyczącą każdego posiadacza.
Projekt protokołuUżywaj nonce'ów, numerów sekwencyjnych, znaczników czasu lub innego stanu, gdy odtworzenie lub zmiana kolejności ma znaczenie, oraz porównuj tagi bez wycieku użytecznej informacji czasowej.
Istotne ograniczenieMAC nie zapewnia poufności i zwykle nie zapewnia niezaprzeczalności, ponieważ każdy posiadacz współdzielonego klucza może utworzyć ważny tag. Sam nie zapobiega odtworzeniu, a zweryfikowany tag nic nie mówi o tym, czy uwierzytelniona treść jest bezpieczna lub autoryzowana.