無線模塊芯片藍牙wifi二合一模塊廠家Wi-Fi連接的過程,STA 首先需要通過主動/被動掃描發現周圍的無線網絡,再通過認證和關聯兩個過程后,才能和AP建立連接,終接入無線局域網。
1.掃描
STA 可以通過兩種掃描方式來獲取周圍的無線網絡。
(1)被動掃描(Passive Scaning)。STA 可以通過監聽周圍AP定期發送的 Beacon (信標幀)的發現周圍的無線網絡。當用戶需要節省電量時,推薦使用被動掃描。
(2)主動掃描(Active Scanning)。主動發送一個探測請求 (Probe Request) 幀,接收APP返回的探測響應幀 (Probe Response)。根據探測請求是否攜帶 SSID,主動掃描可以分為兩種:
1、不攜帶 SSID 的主動掃描。無線模塊芯片藍牙wifi二合一模塊廠家STA 會定期在其支持的信道列表中,發送探測請求幀來掃描的無線網絡。當AP收到探測請求后,會回應探測響應幀,以便通告可以提供的無線網絲通過這種方式,STA 可以主動獲取周圍可使用的無線網絡。
2、攜帶指定 SSID的主動掃描。當 STA 需要配置待連接的無線網絡或者已經成功連接到一個無線網絡時,STA 會定期發送探測請求幀(該攜帶了配置信息或者已經連接的無線網絡SSID),當能夠提供指定 SSID 無線網絡的 AP 接收到探測請求后回應探測響應。通過種方式,STA 可以主動掃描指定的無線網絡。對于隱藏AP,需要使用攜帶指定SSID的主動掃描方式。
2.認證
當STA 找到可使用的無線網絡時,在 SSID 匹配的 AP 中,可依據連接策略 (如信號優或MAC 地址匹配等)選擇合適的 AP,進入認證階段。認證包括開放式認證和非開放式認證。
(1)開放式認證。開放式認證在實質上是完全不認證,也不加密,任何人都可以連接并使無線網絡。當連接到無線網絡時,AP 并沒有驗證 STA 的真實身份。無線模塊芯片藍牙wifi二合一模塊廠家STA 發起認證請求,AP 應答認證結果,如果返回的是成功,則表示兩者認證成功。
(2)非開放式認證。非開放式認證包括共享密鑰、WPA (Wi-Fi Protected Access,Wi-Fi保護訪問)和RSN (Robust Security Network,強健安全網絡) 等方式。
1、共享密鑰(Shared Key)。共享密鑰認證依賴于 WEP (Wired Equivalent Privacy,有線等效加密)機制,是基本的加密技術,其加密的安全性很脆弱。STA與AP必須擁有相同的密,才能解讀瓦相傳輸的數據。密分為64 bit 密及 128 bit密鑰兩種,多可設定四組不同的密鑰。STA 發起認證請求,AP 收到請求后回復質詢文本,STA 利用預置密鑰將加密后的明文發送給AP,AP用預置密鑰解密明文,并和之前的明文比較,如一致則表示通過認證。
2、WPA。WPA 是在IEEE 802.1li規范正式發布前用于替代 WEP 的一個中間產物,它采用了新的MIC(Message Integrity Check,消息完整性校驗)算法,用于替代 WEP 中的CRC 算法;采用TKIP (TemporalKey Integrity Protocol,臨時密完整性協議) 來為每一個MAC 生成不同的 Key。TKIP 是一種過渡性的加密協議,現已被證明其安全性不高。
3、RSN。RSN 被 WFA 稱為 WPA2,它采用了全新的加密方式 CCMP (Counter Mode withCBC-MAC Protocol,計數器模塊及密碼塊鏈消息認證碼協議),這是一種基于AES(AdvancedEncryption Standard,高級加密標準)的塊安全協議,本文后文將結合身份驗證詳細介紹相關的內容。
4、WPA3。雖然 WPA2在一定程度上保證了 Wi-Fi網絡的安全,但 WPA2在應用過程中也不斷暴露出很多安全漏洞,如離線字典或暴力破解攻擊、KRACK (Key Reinstallation Attacks,密鑰重裝攻擊)等。WFA 于 2018 年發布的新一代 Wi-Fi 加密協議 WPA3,改進了WPA2中存在的安全風險,增加了許多新的功能,為 Wi-Fi 網絡的安全性提供了更強的保護。相比WPA2,WPA3的優勢如下:
(a)禁止使用過時的 TKIP,強制使用 AES 加密算法
(b) 必須對管理幀進行保護。
(c)使用更安全的 SAE(Simulaneous Authenticarion ofEquals,對等實體同時驗證) 來取代WP2中的PSK以證方式,對與多次嘗試連接設備的終端,SAE 會直接拒絕服務器,斷絕了窮舉或逐一嘗試密碼的行為,其次,無線模塊芯片藍牙wifi二合一模塊廠家SAE 的前向保密功能使得攻擊者即使通過某種方式獲取了密碼,也不能破解獲取到數據,后,SAE 將設備視為對等的,任意一方都可以發起握手,獨立地發送認證消息,缺少了來回交換消息的過程,從而讓 KRACK 無可乘之機。
(d)提供可選的 192 位強度模式,進一步提升了密碼防御強度;使用 HMAC-SHA-384算法在四次握手階段進行密鑰導出和確認; 使用 GCMP-256 (Galois Counter Mode Protocol,伽羅瓦計數器模式協議)算法保護用戶上線后的無線流量;使用更加安全的 GCMP 的 GMAC-256(Galois Message Authentication Code,伽羅瓦消息認證碼)保護組播管理幀。
(e)提供開放性網絡保護,在該認證方式下,用戶仍然無須輸入密碼即可接入網絡,保留了開放式 Wi-Fi 網絡用戶接入的便利性。同時,OWE 采用 Diffie-Hellman 密鑰交換算法在用和Wi-Fi 設備之間交換密鑰,為用戶與 Wi-Fi 網絡的數據傳輸進行加密,可以保護用戶數據安全性。
3.關聯
當AP向 STA 返回認證響應消息,身份認證獲得通過后,進入關聯階段。以便獲得網絡的完全訪問權。
4.身份驗證
在經過 Wi-Fi的掃播、認證、關聯后,我們將重點關注 Wi-Fi 連接的后一個步驟,即身份證。介紹EAP (Extensible Authentication Protool),然后介紹密鑰協商 (四次握手協議)。
(1)EAP。無線模塊芯片藍牙wifi二合一模塊廠家目前在身份驗證方面的安全協議是 EAP,它是一種協議,更是一種協議框架?;谶@個協議框架,各種認證方法都可得到很好的支持。當驗證申請者通過EAPOL(EAP Over LAN,基于LAN 的擴展EAP 協議)發送身價驗證請求給驗證者時,如果驗證成功,Supplicant就可正常使用網絡了。
本文主要介紹其中涉及的基本概念,詳細情況。不對 EAP 做深入的介紹。
1、Authenticator (驗證者)。響應認證請求的實體。在無線網絡中,AP 即Authenticator。
2、Supplicant (驗證申請者)。發起驗證請求的實體。在無線網絡中,STA 即 Supplicant。
3、BAS(Backend Authentication Server,后臺認證服務器)。某些情況下(如企業級應用)Authenticator 并不真正處理身份驗證,它僅僅將驗證請求發給后臺認證服務器去處理。正是這種架構設計拓展了 EAP 的適用范圍。
4、AAA (Authentication、Authorization and Accounting,認證、授權和計費)。無線模塊芯片藍牙wifi二合一模塊廠家另外一種基于EAP 的協議。實現它的實體屬于 BAS 的一種具體形式,AAA 包括常用的 RADIUS 服務器等。
5、EAP Server。真正處理身份驗證的實體。如果沒有 BAS,則 EAP Server 功能就在Authenticator 中,否則該功能由 BAS 實現。
(2)密鑰協商。RSNA(Robust Secure Network Association,強健安全網絡聯合)是IEEE 802.11定義的一組保護無線網絡安全的過程,包括兩個主要部分:數據加密和完整性校驗。無線模塊芯片藍牙wifi二合一模塊廠家RSNA使用了前面提到的 TKIP 和CCMP。TKIP 和CCMP 中使用的 TK (Temporary Key)來自于RSNA 定義的密鑰派生方法。同時,RSNA基于IEEE 802.1X 提出了4-Way Handshake (四次握手協議,用于派生對單播數據加密的密)和Group Key Handshake (組密鑰握手協議,用于派生對組播數據加密的密鑰) 兩個新協議,用于密鑰派生。
為什么要進行密鑰派生呢?在 WEP 中,所有的STA 都使用同一個 WEP Key 進行數據加密其安全性較差。而 RSNA 要求不同的 STA 和AP 關聯后使用不同的 Key 進行數據加密。這是否表明AP 需要為不同的 STA 設置不同的密碼呢?顯然,這和實際情況是違背的,因為在實際生活中,我們將多個 STA 關聯到同一個 AP 時使用的是相同的密碼。
如何實現不同 STA 使用不同密碼呢?原來,無線模塊芯片藍牙wifi二合一模塊廠家在 STA 中設置的密碼稱為 PMK (PairwiseMaster Key,成對主密鑰),其來源于 PSK,即在家用無線路由器里邊設置的密碼,無須專門的驗證服務器,對應的設置項為 WPA/WPA2-PSK。
在WPA2-PSK 中,PSK 即PMK,直接來源于密鑰:WPA3 則根據 WPA2中的PMK 通過SAB生成新的 PMK,以保證任何 STA 在不同的階段都有不同的 PMK。
SAE 不區分 Supplicant 或者 Authenticator,通信雙方是對等的,均可首先發起認證。通過雙方交換的數據,證明自己知道密鑰,并生成PMK。SAE 包括 Commit 和 Confirm 兩個階段,在Commit階段,雙方發送SAE Commit 幀互相提供數據來推測PSK;在Confirm 階段,雙方發送SAE Confirm頓互相確認推測的結果。通信雙方校驗成功后,進行后續的關聯過程。
1、Commit 階段。發送端首先根據 PSK、收發雙方的 MAC 地址,通過 Hunting and Pecking算計算出PWE (Password Element,密碼元素); 然后根據PWE、內部生成的隨機數,通過橢圓曲線算法獲得一個大整數 Scalar 和圓曲線上一點的坐標 Element。接收方在對SAE Confirm恢驗通過后,使用本端和對端的 Salar 等內容,通過密鑰衍生算法計算出KCK (Key ConfirmatioKey,密鑰確認密鑰)和PMK,其中 KCK 會在 Confirm 階段生成并校驗中的內容。
2、 Confim 階段。通信雙方使用在 Commit 階段產生的 KCK、本端和對端的 Scalar、本端對端的 Element 等參數,使用相同的哈希消息認證算法,分別計算一個校驗碼,在雙方校碼一致時,視為驗證通過。
STA 和AP在得到PMK 后,將進行密鑰派生。正是在密鑰派生的過程中,AP 和不同STA生成了獨特的密鑰,這些密鑰被設置到硬件中,用于實際數據的加/解密。由于 AP 和 STA 在每次關聯時都需要重新派生這些密鑰,所以它們稱為 PTK (Pairwise Transient Key,成對臨時Key)。二者利用 EAPOL Key 進行雙方的 Nonce 等消息交換,這就需要使用到 4-WayHandshake。
1、Authenticator 生成一個Nonce(ANonce),然后利用EAPOL-Key 消息將其發給 Supplicant。
2、Supplicant 根據 ANonce、自己生成一個 Nonce (SNonce)、自己所設置的 PMK 和Authenticator 的 MAC 地址等信息進行密鑰派生。隨后將 SNonce 以及些消息通過第二個EAPOL-Key 發送給 Authenticator。無線模塊芯片藍牙wifi二合一模塊廠家Message 2 還包含一個 MIC 值,該值會被 KCK 加密。Authenticator 取出 Message 2 中的 SNonce 后,將進行和 Supplicant 中類似的計算來驗證Supplicant 返回的消息是否正確。如果不正確,則表明 Supplicant的 PMK 錯誤,整個握手工作就此停止。
3、如果 Supplicant 的 PMK 正確,則Authenticator 也進行密鑰派生。此后,Authenticator 將發送第三個EAPOL-Key給 Supplicant,該消息攜帶組臨時密碼 (Group Transient Key,GTK,用于后續更新組密鑰,該密鑰用 KEK 加密)、MIC (用KCK 加密。Supplicant 收到 Message3 后也將做一些計算,以判斷 AP 的 PMK 是否正確。
4、Supplicant 后發送一次 EAPOL-Key 給 Authenticator 用于確認。此后,雙方將使用它來對數據進行加密。
至此,無線模塊芯片藍牙wifi二合一模塊廠家Supplicant 和 Authenticator 完成密鑰派生和組對,雙方可以正常進行通信了。