Kod MAC (Message Authentication)

Podstawowa wersja MAC umożliwia sprawdzenie, czy nikt nie modyfikuje Twoich danych. Nadawca udostępniający klucz symetryczny odbiorcy może wygenerować tag uwierzytelniania dla danej wiadomości, który umożliwia odbiorcy sprawdzenie, czy wiadomość pochodzi od oczekiwanego nadawcy i nie została zmodyfikowana.

MAC ma te właściwości:

  • Autentyczność: Znajomość klucza to jedyny sposób na utworzenie możliwego do zweryfikowania tagu MAC.
  • Symetryczne: obliczenie i weryfikacja tagu wymaga tego samego klucza.

W zależności od algorytmu MAC może być deterministyczny lub losowy. Tink nie wdraża obecnie niedeterministycznych algorytmów MAC. MAC należy używać tylko do uwierzytelniania wiadomości, a nie do innych celów, takich jak generowanie pseudolosowych bajtów (patrz PRF).

Jeśli potrzebujesz asymetrycznego obiektu podstawowego, zapoznaj się z sekcją Podpis cyfrowy.

Wybierz typ klucza

W większości przypadków zalecamy używanie HMAC_SHA256, ale są też inne opcje.

Ogólnie rzecz biorąc, następujące stwierdzenia są prawdziwe:

  • Protokół HMAC_SHA512 może działać szybciej, w zależności od rozmiaru wiadomości i specyfiki używanego sprzętu.
  • HMAC_SHA512 to najbardziej zachowawczy tryb, którego można używać w przypadku praktycznie nieograniczonej liczby wiadomości.
  • AES256_CMAC jest najszybszym rozwiązaniem w systemach obsługujących akcelerację sprzętową AES-NI.

Minimalne gwarancje bezpieczeństwa

  • Co najmniej 80-bitowa siła uwierzytelniania
  • Ochrona przed oszustwem egzekucyjnym w ramach wybranego ataku z użyciem tekstu jawnego
  • Co najmniej 128-bitowe zabezpieczenia przed atakami polegającymi na odzyskiwaniu klucza, a także w sytuacjach, w których jest wielu użytkowników (gdy atakujący nie kieruje reklamy na konkretny klucz, ale na dowolny klucz z zestawu maksymalnie 232 kluczy).

Przykładowy przypadek użycia

Zapoznaj się z artykułem Chcę chronić dane przed nieuprawnionymi modyfikacjami.