CCMP
| Rodzaj algorytmu |
protokół szyfrujący |
|---|---|
| Data stworzenia | |
| Autorzy |
grupa robocza IEEE 802.11i |
| Długość klucza |
128 bitów |
CCMP (ang. Counter Mode with Cipher Block Chaining Message Authentication Code Protocol) – tryb licznika z CBC-MAC – protokół szyfrujący oparty na algorytmie AES, który zastąpił starsze protokoły WEP i TKIP. Protokół został zatwierdzony przez grupę roboczą IEEE 802.11i 24 czerwca 2003 roku, a następnie zaimplementowany jako następca TKIP oraz wymagany element certyfikacji WPA w wersji 2, gdy 24 czerwca 2004 roku pojawiła się ostateczna wersja standardu bezpieczeństwa 802.11i.
Wprowadzenie CCMP stanowiło fundamentalną zmianę w zabezpieczeniach bezprzewodowych sieci lokalnych, oznaczającą przejście od czerpiących z WEP i TKIP szyfrów strumieniowych do szyfru blokowego AES. Głównym zadaniem projektowym protokołu jest równoczesne zapewnienie poufności, autentyczności oraz integralności przesyłanych danych, których to celów starsze rozwiązania nie były w stanie bezpiecznie zagwarantować.
Architektura i mechanizm działania
[edytuj | edytuj kod]Struktura CCMP opiera się na kompozycji generycznej, łączącej dwa niezależne mechanizmy kryptograficzne: tryb licznikowy AES (zapewniający poufność poprzez szyfrowanie) oraz kod uwierzytelniający CBC-MAC (gwarantujący autentyczność i integralność).
W celu realizacji zadań ochronnych protokół wykorzystuje pojedynczy, 128-bitowy klucz szyfrujący K, pochodzący bezpośrednio z procesu czteroetapowego uzgadniania kluczy (IEEE four-way handshake). CCMP, we współpracy z tym mechanizmem oraz strukturą uwierzytelniania IEEE 802.1X, odpowiada za praktyczną realizację koncepcji bezpiecznej sieci RSN (Robust Secure Network).
Parametry techniczne i struktura pakietu
[edytuj | edytuj kod]W specyfikacji CCMP kluczowe parametry kryptograficzne są ściśle zdefiniowane. Pole długości wiadomości (l) ma stałą wartość wynoszącą 2 bajty, natomiast znacznik uwierzytelniający MIC (Message Integrity Code) ma stałą długość równą 8 bajtów.
Dla każdego przesyłanego pakietu protokół generuje nagłówek o wielkości 8 bajtów, w skład którego wchodzi 48-bitowy numer pakietu (PN), 8-bitowy identyfikator klucza (key ID) oraz 8-bitowy rozszerzony wektor inicjujący (ext IV). Ponadto dla każdej szyfrowanej jednostki MPDU protokół wymaga unikalnego wektora inicjującego (nonce) o rozmiarze 13 bajtów. Składa się on z:
- 48-bitowego numeru pakietu (PN),
- 48-bitowego adresu sieciowego odbiorcy (A2),
- 8-bitowego pola priorytetu.
Wydajność i ograniczenia
[edytuj | edytuj kod]Mimo że CCMP jest dwuprzebiegowym trybem uwierzytelniania i szyfrowania (AE), w którym operacje te odbywają się w osobnych cyklach, nie stanowi on pełnego trybu uwierzytelnionego szyfrowania z danymi skojarzonymi (AEAD).
Jedną ze słabości efektywnościowych protokołu jest brak możliwości wstępnego przetworzenia dodatkowych danych uwierzytelniających (AAD) pochodzących z nagłówka MPDU. Wymusza to generowanie i przeliczanie nowego AAD osobno dla każdego transmitowanego pakietu. Ponadto konstrukcja CCMP uniemożliwia losowe uwierzytelnianie bloków danych z zachowaniem pełnego bezpieczeństwa. Ograniczenie to bezpośrednio wynika z wysoce sekwencyjnego i nieprzyrostowego charakteru obliczania znacznika MIC.
Bibliografia
[edytuj | edytuj kod]- Idris Ahmed, Anne James, Dhananjay Singh, Critical analysis of counter mode with cipher block chain message authentication mode protocol—CCMP, „Security and Communication Networks”, 7 (2), 2014, s. 293–308, DOI: 10.1002/sec.733, ISSN 1939-0114 [dostęp 2026-09-02] (ang.).