Wi Fi 安全協議 WPA

2021-09-28 23:53:04 字數 4087 閱讀 5876

tkip 與wep 的差異

為了防範初始向量攻擊,tkip 將初始向量(initialization vector,iv) 的長度從24 位元為48 個位元。

tkip 使用到了多把主鑰。最後用來加密幀的金鑰,是由這些主鑰衍生而來。

tkip 保留wep 使用的rc4 幀加密機制,為了防範針對弱點金鑰的攻擊,通過配鑰(key mixing),為每個幀(從主鑰)衍生出特有的rc4 金鑰.

tkip 為每個幀編列序號;每次安裝新的主鑰,初始向量/序號計數器就會被重設為1。每傳乙個幀,序號計數器就加1。

tkip 會保留來自各工作站的最近序號。一旦成功接收到某個幀,就會以之與最近接收到的幀序號進行比對。如果大於前值就予以接受,否則就加以拒絕。

tkip 通過michael (message integrity check,mic)的資訊完整性檢驗演算法,取代wep 使用的線性雜湊演算法。

tkip 的金鑰配製(key mixing)過程 輸入

說明temporal key(tk)

用來加密幀的臨時金鑰,32位

transmitter address(ta)

源位址,需要用它來進行身份認證,128位

tkip sequence counter(tsc)

序號計數器,由驅動程式或硬體所維護,共48位,取其前32位 輸出

說明tlip-mixed transmit address and key(ttak)

金鑰混合產物,80位

輸入說明

tlip-mixed transmit address and key(ttak)

階段一的金鑰混合產物

tkip sequence counter(tsc)

序號計數器,後16 位元為輸入項 輸出

說明wep 的隨機種子 (wep secret seed)

128 位元的rc4 金鑰,最後16 位元用來產生乙個wep iv 的高和低位元組

wep iv 中間的位元組是乙個固定的虛設位元組(dummy byte),用來避免產生rc4 弱點金鑰。

完整性校驗演算法

mic key:mic金鑰,廠商負責實現。負責保護幀內容,tkip 會衍生出一對金鑰,使得「sta 一 ap」和「ap 一 sta」的mic 金鑰不同。

frame data:mac幀的源位址(source address,sa),目的位址(destination address,da),優先順序(後三位保留未用(reserved),第一位是priority(優先性)),資料。

tkip 的資料傳送流程

將mac 幀置於待傳佇列(queued for transmission),其中包含了幀標頭和負載資料(payload)。

根據位址,優先順序,資料和mic金鑰,計算資訊完整性檢驗值(message integrity check,mic)。

賦予各個幀片段序號。如果幀不需分片,則只要編列乙個序號,否則,計數器則會根據分片數量累加。

每個幀均會以其獨有的wep 金鑰進行加密;每個幀所擁有的金鑰(per-frame key)將會傳給wep,以作為iv與金鑰之用。

資料幀 + mic + rc4 金鑰,傳給wep,由wep 進行幀分封過程。

wep先利用wep種子(wep secret seed)和偽隨機數產生器(pseudo random number generator,prng)生成金鑰流,然後使用xor操作對data和mic進行異或。

tkip 的資料接收流程

接收到mac 幀後,如果幀校驗程式確認mac幀沒有損毀,就會交給tkip 進一步的驗證。

tkip 首先檢查序號,以防範重演攻擊。

然後還原用來加密封包的wep 隨機種子,再除去幀外圍所包覆的wep 層,然後還原內容。

如果mac幀被分段,在重組完整資料之前,必須等到所有片段接收完成。

幀重組後,根據幀內容計算mic 值。如果所計算的值與mac幀記載的mic值相符,則將幀傳遞給上層協議,並且將序號設成幀當中所記載的序號。

工作站檢測到mic 錯誤的反制措施:

(1)標記並登入該mic 錯誤。

(2)如果在60 秒通訊之內發生兩次以上mic 錯誤,則停止所有的tkip 通訊60秒。

(3)更新金鑰,工作站刪除所持有的主鑰副本,然後向認證者要求配發新的金鑰,認證者負責產生與傳遞新的金鑰。

tkip 保護的幀封包格式

ccmp 的加密流程

輸入說明

資料幀 (plaintext frame)

mac幀,包括header和data

臨時金鑰 (temporal key)

臨時金鑰,用來加密與確認幀真實性

金鑰識別碼(key id)

支援多組金鑰,不過每個幀只會使用一把金鑰

封包號碼(packet number)

用來標識傳送的幀,每傳一幀,號碼就會累加,對於重傳幀,則維持不變

中間輸出

說明臨時隨機數(nonce)

資料幀中的資料data,a2(address 2),priority 與 packet number 構成

附加認證資料(additional authentication data, aad)

由mac幀的頭部資訊構成

ccmp header

由packet number 與 key id 構成

加密演算法輸入

加密演算法輸入

aad,nonce,mac資料,tk(temporary key)

加密後的data,訊息校驗碼(message integrity check, mic)

ccmp 資料傳送流程

將mac 幀置於待傳佇列(queued for transmission),其中包含幀標頭 (frame header)以及承載資料(payload)。

給mac 幀 賦予乙個48 位元的封包號碼(packet number,pn)。每次傳送後pn 就會累加,它同時也用來檢測重演攻擊。

建立額外認證資料(additional authentication data,aad)。

建立nonce(用過即丟、拋棄式的隨機值或亂數),在ccmp 中的nonce 是由封包號碼以及傳送端位址構成,因此,不同的工作站也可以使用相同的封包號碼。nonce 同時包含qos 會用到的優先性資料。

建立ccmp header。它會將構成pn(封包號碼)的六個位元組拆開,然後將key id(金鑰識別碼)置於其中。

ccm 加密引擎所需要的輸入項:128 位元的臨時金鑰、nonce、額外認證資料(aad),mac幀的data。

通過八個位元組的mic(資訊完整性檢查碼)來確保資料的真實性,幀本體與mic 也經過加密。

加密幀組成:原始的mac 標頭、ccmp 標頭 和 加密資料。

ccmp 資料接收流程

接收到幀,如果通過幀檢驗程式(frame check sequence)確定未曾受損,就會交付ccmp 進行驗證。

從接收到的幀中還原出aad(額外認證資料),其中只包含幀標頭,而且並未經過加密。

從幀還原出ccmp nonce,其中包含封包編號、傳送端位址以及qos 欄位的內容。

接收端通過臨時金鑰,還原的nonce,認證資料,加密過的幀本體來解讀密文

完整性檢驗是針對明文資料與額外認證資料進行計算。如果計算出的完整性檢驗值與步驟4 所得到的完整性檢驗值相符,就繼續進行。否則就終止程式。

mac 標頭與步驟4 所還原的資料組成明文幀。如果能通過重放攻擊檢測檢驗,其封包號碼必須大於或等於最近接收到之通過完整性檢驗程式的封包號碼。

WiFi安全之WPA介紹

wpa,全稱為wi fi protected access,是一種保護wifi安全的系統,實現了ieee 802.11i的大部分標準,是一種替代wep的過渡方案。這個協議包含了前向相容rc4的加密協議tkip,它沿用了wep所使用的硬體並修正了一些缺失,但仍然是存在弱點的,隨後的公升級版本,基於ie...

WiFi安全之WPA介紹

wpa,全稱為wi fi protected access,是一種保護wifi安全的系統,實現了ieee 802.11i的大部分標準,是一種替代wep的過渡方案。這個協議包含了前向相容rc4的加密協議tkip,它沿用了wep所使用的硬體並修正了一些缺失,但仍然是存在弱點的,隨後的公升級版本,基於ie...

WIFI協議詳解

802.11幀的三種型別 管理幀 負責監督,主要用來加入或退出無線網路,以及處理基站之間連線的轉移事宜。控制幀 與資料幀搭配使用,負責區域的清空 通道的取得以及載波監聽的維護,並於收到資料時予以正面的應答,藉此促進工作站間資料傳輸的可靠性。資料幀 好比 802.11 的馱馬,負責在工作站之間傳輸資料...