9 WPA と IEEE802.11I
9.1 WPA でサポートする 802.11 I の主な機能
9.1.4 データ保護機能
■データ暗号化
WPAの設計目標の一つはWi-Fi規格のハードであればSoftwareのupgradeのみで対応 させることである。そのため、802.11i では必須としている AESによるデータ暗号の代わ りに802.11iでは任意としているTemporal Key Integrity Protocol(TKIP)を必須とし、AES を任意とした。
WPAでのTKIPによるデータ暗号化は下記のように行われる
AA:AP MAC Address SA:Supplicant MAC Address ANonce:AP Nonce SNonce:Supplicant MAC TTAK:TKIP mixed Transmit Address and Key
TA:Transmit Address TSC:TKIP Sequence Counter 略語
EAPoL-Key MIC Key 128 bits
512 bit Pairwise Transient Key (PTK)
EAPoL-Key Encryption Key
128 bits
Temporal Encryption Key
128 bits
Temporal AP Tx MIC Key
64 bits
Temporal AP Rx MIC Key
64 bits Bits 0-127 Bits 128-255 Bits 256-383 Bits 384-447 Bits 447-511
PRF 512
Pairwise Master
Key (PMK) “Pairwisekey
expansion” Min(AA,SA) Max(AA,SA) Min(ANonce,SNonce) Max(ANonce ,SNonce)
PRF256
Random number Init Counter MAC address || Time Nonce
暗号化 MPDU Key Mix
Fragment
WEP Encapsulation TTAK Key
TA Key Mix
TSC
IV+RC4Key として入力
SA+DA+
前の平文MSDU DATA
MIC 平文MSDU
+MIC 平文MPDU
既存のWEPはIVと WEP keyを入れるだけだった
TKIP
図 9-3 WPAでのTKIPによるデータ暗号化(Unicast用)
AA:AP MAC Address SA:Supplicant MAC Address GNonce:Group Nonce
TTAK:TKIP mixed Transmit Address and Key TA:Transmit Address TSC:TKIP Sequence Counter 略語
256 bit Group Transient Key (GTK)
Temporal Encryption Key
128 bits
Temporal AP Tx MIC Key
64 bits
Temporal AP Rx MIC Key
64 bits Bits 0-127 Bits 128-191 Bits 192-255
PRF 256
Group Master Key (GMK)
“Groupkey expansion”
PRF 256
Random number Init Counter MAC address || Time Nonce
暗号化 MPDU Key Mix
Fragment
WEP Encapsulation TTAK Key
TA Key Mix
TSC
IV+RC4Key として入力
SA+DA+
前の平文MSDU DATA
MIC 平文MSDU
+MIC 平文MPDU
既存のWEPはIVと WEP keyを入れるだけだった TKIP
AP MAC || GNonce
図 9-4 WPAでのTKIPによるデータ暗号化(Broadcast/Multicast用)
■データ改ざん防止
TKIPではデータ改ざん防止にCRC32の代わりとして下記のMessage Integrity Check for TKIP(Michael)を利用している
Algorithm 1: Michael message processing Input: Key (K0, K1) and message M0,...,MN Output: MIC value (V0, V1)
MICHAEL((K0, K1) , (M0,...,MN)) (L,R) ←(K0, K1) for i=0 to N-1
L ←L ⊕Mi (L, R) ←b( L, R ) return (L,R)
Algorithm 2: Michael block function Input: (L,R)
Output: (L,R) b(L,R)
R ←R ⊕(L <<< 17) L ←(L + R) mod 232 R ←R ⊕XSWAP(L) L ←(L + R) mod 232 R ←R ⊕(L <<< 3) L ←(L + R) mod 232 R ←R ⊕(L >>> 2) L ←(L + R) mod 232 return (L,R)
①64bitのMIC鍵を8byte段位で分割しK0,..,K7を作る
②K0,..,K7を二つの32bit little-Endian word に変換しK0,K1を作りInput
MSDUは1byte(Mx)単位で取り扱われる
Outputとして64-bitのMICを生成する
図 9-5 TKIP(Michael)
■MICエラー監視と暗号鍵Update
WPAではBit-flipping 、Fragmentation 、Iterative guessing attackなどの積極的な攻 撃を防ぐのを目的としてAP、Supplicantでは下記のMICエラー監視と暗号鍵Update機 能を持つ
z AP
¾ Broadcast/Multicast暗号鍵保護
SupplicantからEAPOL-Key Requestにより鍵の変更要求が
あった場合
Broadcast/Multicast暗号鍵を破棄し鍵の変更を行う
MIC failureが起こってから60秒以内に再度発生したらすべて
のstationのGTKをupdateする
LogにMIC failureを残す
¾ Unicast鍵保護
SupplicantからEAPOL-Key Requestにより鍵の変更要求があった場合
そのSupplicantに対応するUnicast暗号鍵を破棄し鍵の変更を行う
Unicast鍵を削除するか変更するまで802.1Xメッセージ以外の
受信したすべてのメッセージを破棄する
MIC failureが起こってから60秒以内に再度発生したら該当の
stationのunicast暗号鍵を4-way handshakeによって初期化する
LogにMIC failureを残す z Supplicant
¾ Broadcast/Multicast暗号鍵保護
要求があればBroadcast/Multicast用暗号鍵を破棄する
EAPoL-key を利用して AP に Broadcast/Multicast 暗号鍵の updateを要求する
LogにMICfailureを残す
¾ Unicast暗号鍵保護
Unicast用暗号鍵を削除するか変えるまで802.1Xメッセージ以
外の受信したすべてメッセージを落とす
EAPoL-keyを利用してAPにUnicast用暗号鍵のupdateを要
求する
LogにMICfailureを残す