天天看點

802.11無線權威指南讀書筆記(7)802.11:RSN、TKIP、CCMP

概述

之前802.1X解決了無線區域網路的身份驗證問題,而802.11i則是為了解決之前WEP鍊路層資料加密問題,有2種方式:

  • Temporal Key Integrity Protocol(臨時密鑰完整性協定,簡稱 TKIP)
  • Counter Mode with CBC-MAC Protocol(計數器模式及密碼塊鍊消息認證碼協定,檢稱CCMP)

臨時密鑰完整性協定(TKIP)

TKIP是為了彌補WEP缺陷的臨時性協定,是在WEP的更新檔,采用和WEP同樣硬體,這樣老的支援WEP的裝置就可以通過軟體更新到支援TKIP。

TKIP與WEP差異

可以把TKIP了解成用軟體的方式在WEP外包了再一層,提高安全性。

密鑰層次結構與自動密鑰管理

WEP直接使用單一主密鑰(master key),TKIP使用多個主密鑰,而最後用來加密幀的密鑰是從這些主密鑰派生而來。且TKIP提供了密鑰管理操作來安全的跟新主密鑰。

每幀生産密鑰(per-frame keying)

TKIP會為每個幀(從主密鑰)派生出特有RC4密鑰,這個過程稱為密鑰混合(key mixing)

序列号計數器(sequence counter)

為每個幀都标上序列号以此來識别次序錯亂的幀,防止重播攻擊(replay attack)

新的消息完整性校驗(message integrity check,簡稱MIC)

TKIP采用稱為Michael的完整性校驗算法,取代WEP使用的線性算法,源位址、目标位址、MSDU priority、和沒有加密的MSDU通過Michael算計計算的結果,8個自己标記M0~M7

消息完整性校驗失敗對策

當MIC校驗失敗是,TKIP設計了對策(countermeasure)來應對。

TKIP初始向量的使用與密鑰混合

TKIP将IV從24位增加至48位,再通過密鑰混合生産不同的RC4密鑰來加密幀,密鑰混合會加入傳送者MAC位址,這樣即使IV相同,也會有不同的RC4密鑰

TKIP序列計數器與重播攻擊保護

TKIP的IV也充當序列号計數器作用,每次有新的主密鑰,初始向量/序列号計數器會被重置位1,每穿一個幀,序列号計數器随之加1.

序列号計數器也可以防範重播攻擊,當收到幀的序列号大于目前值就給予接受,否則丢棄。

TKIP加密解密

802.11無線權威指南讀書筆記(7)802.11:RSN、TKIP、CCMP
  • TSC0-TSC5,分别是TSC的每個位元組,TSC由TKIP序列計數器生成,為每一個MPDU遞增生成6位元組TSC序列号。
  • TK(temporal key)臨時密鑰,由PTK或者GTK派生而來,PTK是由SSID和預設共享密鑰計算出來的
  • TA 發射位址
  • keyplaintext MSDU,還沒加密的MSDU(就是frame body)
  • MIC key,從TK中取出指定位,

    A STA shall use bits 128–191 of the temporal key as theMichael key for MSDUs from the Authenticator’s STA to the Supplicant’s STA.

    A STA shall use bits 192–255 of the temporal key as the Michael key for MSDUs from the Supplicant’s STA to the Authenticator’s STA.

  • SA 源位址
  • DA目地位址

把MIC追加到MSDU尾部,看作MSDU’ 如果需要分片,則将MSDU’ 分片,那麼plaintext MSDU和MIC就可能分别再2個MPDU被發送出去,接收端會将MPDU重組生成原來的MSDU’ 。每個分片的MPDU使用相同的extended IV,但是每個MPDU的TSC會單調遞增。

和WEP一樣,會在每個MPDU後加上ICV

TKIP通過phase1和phase2 生産WEP seed

組後将keystream和plainte MPDU,ICV,IV(TSC0,TSC1 Key ID),extended IV, MIC進行異或計算生成最後用于發送的Encrypted MPDU

下面是經過TKIP加密以後生成的加密MPDU:

802.11無線權威指南讀書筆記(7)802.11:RSN、TKIP、CCMP

從圖中可以看到,該幀主要由802.11 MAC Header(前32個位元組)、Frame Body 和CRC三個部分構成,Frame Body部分主要由以下5部分組成:

(a)IV/Key ID

(b)Extended IV

(c)MSDU payload

(d)MIC

(e)ICV

(1)第一部分是802.11 MAC Header(前32個位元組),可以看出頭部并沒有作任何改動

(2)IV/Key ID : 它的長度是4個位元組,和WEP加密中的IV長度一樣,但是其中的内容并不一樣,它的前三個位元組分别是TSC1,WEP Seed和 TSC0 (TSCn後面分析);最後一個位元組分别由Reserved(5bit),EXT IV 1bit,Key ID 2bit; EXT IV是用來指定是否傳送後面的Extended IV,對于WEP來說不需要這部分,是以設為0,對于TKIP加密來說,Extended IV是必須的,所必須設為1;Key ID是key index縮寫,是從WEP繼承而來的,在WEP中可以用于指定使用第幾個key,但是在TKIP中一般設為0。

TSC5是TSC最高有效位,而TSC0是TSC最低有效位。

WEP Seed是(TSC1 | 0x20) & 0x7f的結果

(3)Extended IV: 它的長度4個位元組,它是從48-bit TKIP sequence counter (TSC2 through TSC5)派生而來的;從圖中可以看出IV/Key ID和Extended IV字段都是沒有加密的,我們也可将這兩個字段一共8個位元組看成TKIP的頭部

(4)接下來是加密的payload MSDU

(5)MSDU後面是MIC,8個位元組,當它追加到MSDU後面時,就成了MSDU的一部分,用于後面的MPDU分片

(6)Frame Body的最後是Integrity Check Value (ICV),4個位元組,它是通過計算整個MPDU而來的。MSDU upper-layer payload和 MIC及ICV一樣,都有進行加密

(7)幀的最後一部分是CRC,它是4個位元組的FCS,它是通過計算全部的幀頭和幀體部分得來的(calculated over all the fields of the header and frame body )

由于額外的IV(4位元組),Extended IV(4位元組),MIC(8位元組)和ICV(4位元組),一共20個位元組。也就是說TKIP加密額外的給資料幀體添加了20個位元組,那麼TKIP加密的資料幀中MSDU‘ 的最大值将會達到2324位元組(802.11規定一個幀中MSDU的最大size是2304位元組)。

802.11無線權威指南讀書筆記(7)802.11:RSN、TKIP、CCMP

上圖a是計算mic需要參數,b是MSDU需要分片時的情況。

TKIP頭部(8位元組)和MIC(8位元組)和WEP ICV部分是基于原來的幀多出部分,當開啟TKIP加密的時候,那麼MPDU的frame body部分将會增大20個位元組,這樣所允許的最大frame body将是2304+20=2324個位元組。

下面時TKIP的解密,主要時輸入TA、TK、TSC和已經加密的MPDU

802.11無線權威指南讀書筆記(7)802.11:RSN、TKIP、CCMP

CCMP(計數器子產品及密碼塊鍊消息認證碼協定)

CCMP以AES算法取代WEP、TKIP中的RC4,其中AES密鑰和使用128bits

主要輸入有

  • MAC header:802.11 MAC 頭部(WEP、TKIP都沒有)
  • plaintext Data(MSDU): 需要發送的playload
  • PN(packet number),長度128bits,和KTIP中TSC相似,防止回放和注入攻擊
  • TK(temporal key):和TKIP加密一樣,CCMP也有一個128bit的TK,它可能是由SSID+passphase計算來的PTK(pairwise transient key ),也可能是GTK(group temporal key ),兩者分别用于單點傳播資料加密群組播資料加密
  • Key ID: 和TKPIP中的一樣,用于指定加密用的key,注意這個ID是index的縮寫,一般設為0
  • Nonce:他是一個随機數,而且隻生成一次,它一共長104bit,是由PN(packet number,48bit), Qos中的優先級字段(8bit)和TK(transmitter address , 48bit)這三個字段組合來的,需要注意,不要和4路握手的Nonce混淆
  • AAD Additional authentication data (AAD):它是由MPUD的頭部建構而來的,它用于確定MAC頭部的資料完整性,接收端會使用這個字段來檢驗MAC頭部

    下面時CCMP加密

    802.11無線權威指南讀書筆記(7)802.11:RSN、TKIP、CCMP
    下圖是CCMP MPDU的幀格式:
    802.11無線權威指南讀書筆記(7)802.11:RSN、TKIP、CCMP

    CCMP頭部(8位元組)和MIC(8位元組)部分是基于原來的幀多出部分,當開啟CCMP加密的時候,那麼MPDU的frame body部分将會增大16個位元組,這樣所允許的最大frame body将是2304+16=2320個位元組。

    下面是CCMP的解密過程:

    802.11無線權威指南讀書筆記(7)802.11:RSN、TKIP、CCMP