Samstag, 31. Juli 2010 |
Bei der Verschlüsselung durch CCMP (Counter Mode/CBC-MAC, vollständig "Counter Mode with Cipher Block Chaining Message Authentication Code Protocol") werden nicht wie bei TKIP die eigentlichen Nachrichten (MAC Service Data Units, MSDU) verschlüsselt und integritätsgeschützt, sondern die so genannten "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.
N E U ! Security
aktuell
Täglich aktuelle Security-Infos!
Die Verschlüsselung und MIC-Berechnung läuft dann in 3 Schritten ab:
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.
Wie bereits in About Security #111 erwähnt, werden die zu schützenden Daten 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 des IEEE 802.11 Standards "Message Integrity Code" (MIC) genannt, um eine Verwechselung mit der Hardwareadresse Media Access Control (MAC) zu verhindern. Außerdem werden die niederwertigen 64 Bit verworfen und nur der Rest als MIC verwendet.
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 besteht er aus 3 Feldern:
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.
Nachdem bisher der Schutz der über WLAN übertragenen Daten beschrieben wurde, geht es im Folgenden um die Authentifizierung. Diese erfolgt anders als bei WEP von der Verschlüsselung und Integritätssicherung getrennt. Man kann dabei drei Beteiligte unterscheiden: Das WLAN, die Zugangskontrolle und die Authentifizierung. Während im WLAN die eigentliche Kommunikation samt Verschlüsselung und Integritätssicherung abgewickelt wird, ist die Zugangskontrolle dafür zuständig, dass nur authentifizierte Pakete das WLAN erreichen. Dazu befragt sie die Authentifizierung, die über den Zugang entscheidet. Damit nicht für jedes Paket eines bereits authentifizierten Kommunikationsteilnehmers erneut nachgefragt werden muss, wird die portbasierte Zugangskontrolle gemäß dem Standard IEEE 802.1x verwendet. Für den Austausch der benötigten Nachrichten wird das in RFC 3748 standardisierte Extensible Authentication Protokoll EAP eingesetzt. Zwischen Client und Authentifizierer/Access Point werden die EAP-Nachrichten in EAPOL-Nachrichten gekapselt. EAPOL (EAP over LAN) wird ebenfalls in IEEE 802.1x spezifiziert.
In der nächsten Folge wird die Beschreibung der Authentifizierung fortgesetzt. Zuerst geht es dann um die portbasierte Zugangskontrolle.
Wenn Sie Fragen oder Themenvorschläge haben, können Sie diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum einbringen!
About Security – Übersicht zum aktuellen Thema "Mobile Security – WPA, WPA2 und IEEE 802.11i"