Skip to content

WLAN-Sicherheit 11 - Der Counter-Mode/CBC-MAC von WPA2

Wi-Fi Protected Access 2 (WPA2) implementiert die grundlegenden Funktionen des aktuellen Sicherheitsstandards IEEE 802.11i für drahtlose Netze nach dem IEEE 802.11 Standard (WLAN). Der allgemeine Aufbau, Schlüsselmanagement und Schlüsselhierarchie wurden bereits vorgestellt, ebenso der Pairwise Master Key PMK und Pairwise Transient Key und die Gruppenschlüssel. In dieser Folge geht es um den

CCMP, den "Counter-Mode/CBC-MAC"

CCMP (Counter-Mode/CBC-MAC, vollständig "Counter Mode with Cipher Block Chaining Message Authentication Code Protocol") basiert auf CCM (informelle Beschreibung in RFC 3610) in Verbindung mit AES mit einer Block- und Schlüssellänge von jeweils 128 Bit.

Der für die Verschlüsselung eingesetzte Counter-Mode ist eine Betriebsart für Blockchiffren, bei der ein Zähler verschlüsselt und mit der Nachricht XOR-verknüpft wird. Durch die XOR-Verknüpfung wird für Ver- und Entschlüsselung der gleiche Schlüsselblock verwendet, ein separater Entschlüsselungsblock wird nicht benötigt.

CBC-MAC wird für die Authentisierung und den Schutz der Integrität genutzt. Mit CBC (Cipher Block Chaining) wird eine Prüfsumme berechnet, indem jeder AES-verschlüsselte Datenblock mit seinem Nachfolger XOR-verknüpft und das Ergebnis wieder mit AES verschlüsselt wird. Der letzte Block wird als Prüfsumme (Message Authentication Code, MAC) verwendet.

Bei der Verschlüsselung durch CCMP werden nicht wie bei TKIP die eigentlichen Nachrichten (MAC Service Data Units, MSDU) verschlüsselt und integritätsgeschützt, sondern die sog. "MAC Protocol Data Unit" (MPDU) Pakete. Dazu muss die Nachricht ggf. vor der Verschlüsselung fragmentiert werden. CCMP erhält dann die fertigen MPDUs und den aktuellen temporären Schlüssel zur Verschlüsselung und Integritätssicherung.

CCMP kommt mit einem Schlüssel aus, da für Verschlüsselung und MIC-Berechnung einmalige Nonce-Werte für die Initialisierung verwendet werden. Die Nonce-Werte werden aus der MAC-Adresse des Senders und einer Sequenznummer (der Packet Number, PN) konstruiert. Durch das Einbeziehen der MAC-Adresse des Senders sind die Nonces innerhalb einer Session einmalig: Selbst wenn zwei Teilnehmer zufällig die gleiche PN verwenden, ergibt sich durch die eindeutige MAC-Adresse ein unterschiedlicher Nonce-Wert.

Die Verschlüsselung und MIC-Berechnung läuft dann in 3 Schritten ab:

  1. Zwischen MAC-Header und Daten wird der sog. CCMP-Header eingefügt, in dem PN und Schlüssel-ID gespeichert werden.
  2. Aus Teilen des MAC-Headers und den Daten wird ein Message Integrity Code (MIC) berechnet.
  3. Daten und MIC werden gemeinsam verschlüsselt.

Berechnung des MIC

Der MIC wird außer über den Datenteil auch über die unveränderlichen Teile des Headers berechnet, die dazu als "Additional Authentication Data"-Feld (AAD) vor die Daten kopiert werden. Sowohl Daten als auch AAD werden vor der MIC-Berechnung mit Nullbytes aufgefüllt, bis sie ein Vielfaches von 128Bit lang sind. Diese Nullbytes gehen nur in die MIC-Berechnung ein und werden nicht mit übertragen. Um zu verhindern, dass zufällig mehrmals über die gleichen Daten ein MIC berechnet wird, wird aus dem Nonce-Wert, einem Feld mit verschiedenen Flags und einem Feld mit der Länge des Nachrichtentextes ein erster 128-Bit-Block gebildet und vor der MIC-Berechnung vor AAD und Daten gehängt. Der Empfänger bildet diesen ersten Block ebenso und kann danach seinerseits den MIC berechnen.

Die zu schützenden Daten werden für die Berechnung des CBC-MAC in Blöcke aufgeteilt, die in diesem Fall 128 Bit lang sind. Der erste Block wird mit AES verschlüsselt und danach mit dem zweiten Block mit XOR verknüpft. Das Ergebnis wird wieder mit AES verschlüsselt, mit dem nächsten Block mit XOR verknüpft, das Ergebnis mit AES verschlüsselt usw. Der letzte verschlüsselte 128-Bit-Block wird als MAC verwendet. Der Message Authentication Code MAC wird im Rahmen der IEEE 802.11-Standards Message Integrity Code (MIC) genannt, um eine Verwechselung mit der Hardware-Adresse Media Access Control (MAC) zu verhindern. Außerdem werden die niederwertigen 64 Bit verworfen und nur der Rest als MIC verwendet.

Verschlüsselung mit CCM

Beim Counter-Mode wird ein Zähler verschlüsselt und mit der Nachricht XOR-verknüpft (siehe About Security #111). Seine Sicherheit hängt entscheidend von der Konstruktion des Zählers ab. In IEEE 802.11i beseht er aus 3 Feldern:

  • Einem Flag-Feld,
  • dem Nonce, der selbst wieder aus einem Byte für die Priorität, der MAC-Adresse des Senders und der Packet Number besteht und
  • dem 2-Byte-langem Zähler-Feld.

Der Nonce-Wert sorgt dafür, dass der Zähler für verschiedene Sender und verschieden Pakete eines Senders immer unterschiedlich ist. Die 16 Bit des Zähler-Felds werden mit 1 initialisiert. Die zu verschlüsselnden Daten werden in 128-Bit-lange Blöcke aufgeteilt, der letzte Block muss nicht auf 128 Bit aufgefüllt werden. Danach werden die Blöcke per XOR mit dem AES-verschlüsselten Zähler verknüpft, der nach jedem verschlüsselten Block um 1 inkrementiert wird.

In der nächsten Folge wird die Authentifizierung von WPA2 beschrieben.

Carsten Eilers

Trackbacks

Keine Trackbacks

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Noch keine Kommentare

Kommentar schreiben

Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
BBCode-Formatierung erlaubt
Formular-Optionen

Kommentare werden erst nach redaktioneller Prüfung freigeschaltet!