liwen01 2024.11.17
前言
計算機網路在給人們帶來便利的同時,也引入了安全風險,對於無線WiFi網路而言,風險更高。無線 WiFi 網路安全主要包括兩大部分:接入認證和資料加密。
雖然現在網路安全事件遠少於網路詐騙,網路認證與資料加密的方法及原理仍值得學習和借鑑。
(一) WiFi 安全威脅
我們看上面這個簡單的網路結構圖,一個路由器上連線著4臺電腦、一臺伺服器,一臺手機。
如果路由器的熱點是開放未加密的,那連線到路由器上的所有裝置的網路都會是不安全的。
(1) 資料安全
筆記本1、筆記本2、手機都是透過 WiFi 連線到路由器上,透過無線電波以空口包的形式進行資料互動。
如果非法攻擊者位於路由器比較近的距離,它是可以直接使用空口包抓包工具將網路包抓取出來。然後對資料進行解密、分析,他就能找到他想要的資料資訊。
資料的加密方式,決定了攻擊者對資料解密的難易程度。WiFi中常用的加密方式有:RC4、TKIP、AES、CCMP、GCMP
。
(2) 認證安全
最上面圖中,路由器的有線與無線網路處於同一網段,如果非法攻擊者連線上了路由器,它不但可以攻擊無線裝置,還能攻擊處於同一個網路中的有線裝置(臺式電腦、伺服器等)。
要解決鏈路安全問題,需要在連線無線網路時進行裝置認證。
- 適用於個人和家庭版本的是:
WEP、WPA-PSK、WPA2-PSK、WPA3-PSK
; - 適用於企業的是:
WPA-802.1X、WPA2-802.1X、WPA3-802.1X
(3) 非法AP問題
有些非法AP,它將 SSID 設定成與合法 AP 一致,假裝成合法的無線網路,誘使使用者連線。一旦連線,攻擊者可以攔截流量、進行資料竊取或傳播惡意軟體。
要解決非法 AP 問題,可以在網路中佈置 WIDS(Wireless Intrusion Detection System)無線入侵檢測系統。
(4) 認證與加密
(二) WEP 認證與加密
WEP (Wired Equivalent Privacy) 有線等效加密是 1997 年批准的原始802.11標準的一部分,可用於802.11a和802.11b裝置的加密協議,旨在為 WiFi 提供與有線網路類似的安全性。
儘管 WEP 現在已經過時且存在多個安全漏洞,但其認證過程仍然值得學習,因為它是無線網路安全歷史上的重要一步。
WEP 認證過程中主要有兩種模式:開放系統認證和共享金鑰認證。
(1) 開放系統認證(Open System Authentication)
這是 WEP 最簡單的一種認證方式,實際上它並不涉及加密認證。在開放系統認證中,任何客戶端都可以請求連線接入點 (AP),無論客戶端是否知道 WEP 金鑰。
儘管它被稱為認證,但實際上它幾乎沒有安全性。
開放系統認證的步驟:
- 請求認證:客戶端向 AP 傳送一個認證請求幀。這一幀只是表明客戶端希望加入網路,不包含任何加密資訊。
- 認證回應:AP 接收到請求後,通常會直接回應一個認證應答幀,表示認證成功。由於開放系統認證並不涉及身份驗證,即使客戶端不知道正確的 WEP 金鑰,AP 也會允許它進入網路。
- 傳送關聯請求:認證完成後,客戶端傳送關聯請求,表明它想加入網路。
- AP回應關聯請求:AP 會回應一個關聯應答,表示客戶端已成功加入網路。
(2) 共享金鑰認證(Shared Key Authentication)
共享金鑰認證使用 WEP 金鑰進行身份驗證,確保只有知道正確 WEP 金鑰的客戶端可以透過認證。
共享金鑰認證的步驟:
- 請求認證:客戶端傳送一個認證請求幀,表明它希望透過共享金鑰認證加入網路。請求幀中包含客戶端的 MAC 地址等資訊,但不包含任何加密資料。
- 挑戰幀(Challenge Frame):AP 接收到請求後,會生成一個隨機數,稱為挑戰文字(Challenge Text)。AP 將挑戰文字以明文的形式傳送給客戶端,同時要求客戶端使用 WEP 金鑰對該挑戰文字加密後再返回。
- 加密挑戰並響應:客戶端使用其本地配置的 WEP 金鑰對挑戰文字進行 RC4 加密,然後將加密後的資料返回給 AP。
- AP驗證:AP 接收到加密後的挑戰響應後,使用相同的 WEP 金鑰對挑戰文字加密,並將結果與客戶端的響應進行對比。如果兩者匹配,則說明客戶端知道正確的 WEP 金鑰,認證成功。否則,認證失敗。
- 關聯過程:如果認證成功,客戶端會傳送關聯請求幀,AP 則回覆關聯應答幀,表明客戶端成功加入網路。
共享金鑰認證的特點:
- 加密認證:使用 WEP 金鑰對挑戰文字加密,表面上看起來比開放系統認證安全得多。
- 漏洞:共享金鑰認證本身存在嚴重的設計缺陷。由於挑戰文字是明文傳送的,而加密後的響應可被攔截,這意味著攻擊者可以透過分析多個認證過程,逆向推算出 WEP 金鑰。這種攻擊被稱為加密文字選擇攻擊。
(3) WEP工作原理與加密過程
1.資料載荷和 CRC 生成(無線裝置)
- 資料載荷(Payload)是準備要傳輸的資料。
- 計算資料載荷的 CRC(迴圈冗餘校驗)。CRC 用於確保資料的完整性,接收端可以透過 CRC 驗證資料在傳輸過程中沒有被篡改。
- 資料載荷 + CRC 被組合成一個資料包,它作為加密過程中的明文輸入。
2. IV(初始化向量)和共享金鑰
- 透過 IV 生成演算法生成一個 初始化向量(IV)。IV 是一個 24 位的值,用於確保即使重用相同的共享金鑰,不同資料包的加密結果也會不同。
- 這個 IV 和共享金鑰的組合作為 RC4 演算法 的輸入。
3.RC4 加密
- RC4 演算法 使用連線後的 IV 和共享金鑰生成 金鑰流。
- 生成的金鑰流與 明文輸入(資料載荷 + CRC)進行 異或運算(XOR),生成 密文。
- IV 作為資料包的一部分與密文一起傳輸,因為接收端需要它來解密資料。
4.接收端(AP)
- 接入點(AP)接收到包含 IV 和 密文 的資料包。
- AP 將接收到的 IV 與 共享金鑰(與裝置預先共享)連線,並輸入 RC4 演算法 以生成與加密時相同的 金鑰流。
- AP 將 密文 與生成的金鑰流進行異或運算,得到原始的 明文輸出(資料載荷 + CRC)。
- 最後,AP 使用 CRC 驗證資料的完整性,並提取 資料載荷 以供進一步處理。
關鍵點介紹:
- RC4 流密碼:該演算法生成一個金鑰流,與資料進行異或運算以生成密文。同樣的金鑰流用於解密資料。
- IV:一個 24 位的值,用於防止在不同的資料包中重複使用相同的金鑰流。
- 共享金鑰:裝置與 AP 預先共享的金鑰,是 RC4 加密的基礎。
- 資料載荷保護:CRC 用於確保資料完整性,而金鑰流透過加密確保資料的機密性。
(4) WEP 加密的缺陷
- IV 碰撞:IV 長度僅為 24 位,容易導致 IV 重複使用,使得 WEP 易受到分析攻擊。
- RC4 的弱點:RC4 自身存在已知的漏洞,因此與現代加密標準如 WPA 和 WPA2 相比,WEP 的安全性較低。
(三) WPA1/WPA2 的 PSK 認證
WEP 協議是最早的無線網路加密標準,但其設計存在嚴重缺陷,如容易被攻擊者透過捕獲足夠多的資料包進行金鑰還原。
因此,WiFi 聯盟開發了 WPA(WPA1) 標準,作為 WEP 的過渡性替代方案,其中引入了 TKIP 來提高資料傳輸的安全性,同時也引入了PSK 認證方法。
Pre-Shared Key (PSK) 認證方法常用在 WPA-Personal 和 WPA2-Personal 模式下,它不需要企業級的認證伺服器(如RADIUS),而是依賴於所有使用者共享的同一個密碼來進行認證。也就是我們現在連線家用路由器的方式。
(2) PSK 認證的整體流程
- 預共享金鑰配置:網路管理員在無線接入點(AP)上配置一個密碼(即預共享金鑰,PSK)。連線到此網路的裝置也需要輸入相同的密碼。
- 連線請求:當客戶端裝置(如手機或膝上型電腦)嘗試連線到 WiFi 網路時,首先輸入預共享金鑰(即WiFi密碼),然後發起連線請求。
- PSK 驗證:無線接入點接收到客戶端的連線請求後,會檢查客戶端提供的 PSK 是否與其自身配置的 PSK 相匹配。如果 PSK 匹配,認證透過;如果 PSK 不匹配,則連線被拒絕。
- 四次握手協議(Four-Way Handshake):為了防止 PSK 匹配時資料被竊聽,雙方需要透過握手協議生成獨立的加密金鑰(即 會話金鑰),用於加密無線資料傳輸。
四次握手過程:
- 第一步:AP 生成一個隨機數,稱為 AP Nonce (ANonce),並將其傳送給客戶端。這個隨機數是用於生成最終加密金鑰的關鍵材料之一。
- 第二步:客戶端收到 ANonce 後,結合預共享金鑰(PSK)和客戶端自身生成的隨機數 SNonce 來計算出 PTK(Pairwise Transient Key,成對瞬時金鑰),這個金鑰用於加密客戶端和 AP 之間的通訊。客戶端隨後將它的 SNonce 傳送給 AP。
- 第三步:AP 收到 SNonce 後,使用 AP 的 ANonce、客戶端的 SNonce、雙方的 MAC 地址,以及 PSK,生成與客戶端相同的 PTK。同時,AP 還生成一個 GTK(Group Temporal Key,組臨時金鑰),用於加密網路中的廣播和組播通訊。AP 接著將加密後的 GTK 和訊息完整性程式碼(MIC)傳送給客戶端,以確認握手資料的完整性。
- 第四步:客戶端收到加密的 GTK 和 MIC 後,使用之前生成的 PTK 進行解密和驗證。如果驗證透過,客戶端會向 AP 傳送一個確認訊息,表示握手成功。此時,客戶端和 AP 都擁有相同的 PTK 和 GTK,從而可以開始加密的通訊
透過這個握手過程,客戶端和AP最終擁有了相同的 會話金鑰(Session Key),而 PSK 只是參與了會話金鑰的生成,並不會直接用於加密傳輸資料。
PSK 認證的關鍵元素:
- 預共享金鑰(PSK):由網路管理員設定的一個密碼,必須在所有裝置和AP上配置相同的 PSK。它參與了會話金鑰的生成,但不會用於直接加密資料。
- 四次握手協議:在驗證 PSK 之後,客戶端和 AP 透過四次握手協商出一個新的 臨時金鑰(TK),即會話金鑰,用來加密和保護無線通訊資料。
- 會話金鑰(Session Key / PTK):握手協議生成的動態金鑰,它是基於 PSK、AP 和客戶端的 MAC 地址、以及生成的隨機數計算而得的。這使得即便PSK相同,客戶端和AP之間的通訊也是獨一無二的。
- Group Temporal Key (GTK):用於加密在網路中所有裝置之間的廣播和組播訊息。GTK 由 AP 生成併傳送給每個已認證的客戶端。
(4) PSK 認證的優點
- 簡便易用:PSK模式不需要複雜的基礎設施(如認證伺服器),只需在接入點和客戶端之間共享密碼,因此特別適合家庭和小型網路。
- 靈活性:任何擁有正確PSK的裝置都可以連線到WiFi網路,適合需要簡單設定的場景。
- 加密資料傳輸:在 PSK 驗證透過後,四次握手協議生成的會話金鑰(Session Key)確保每個資料包的加密是獨一無二的,這有效地防止了竊聽和篡改。
(5) PSK 認證的隱患
儘管 PSK 是一種簡單且有效的認證方式,但它也存在一定的安全隱患:
- 密碼強度:如果 PSK 密碼過於簡單或常見,攻擊者可以透過暴力破解或字典攻擊來猜測密碼。一旦PSK被破解,攻擊者可以完全訪問網路。
- 金鑰共享風險:所有使用者共享相同的 PSK,這意味著如果 PSK 被洩露,網路的所有安全性都將被破壞。
- 裝置移除的複雜性:在 PSK 模式下,無法輕易從網路中移除單個裝置。要取消某個裝置的訪問許可權,必須更改網路密碼,並在所有其他合法裝置上重新輸入新的密碼。
(四) WAP 的 TKIP 加密
TKIP(Temporal Key Integrity Protocol) 是為了解決 WEP 中的靜態金鑰和容易被破解的問題而設計的,它主要的目標是在不更改硬體的情況下,提高現有裝置的安全性。
(1) TKIP的主要功能與特性
TKIP 的工作原理與 WEP 類似,但它透過增強的金鑰管理和資料包完整性檢查來解決 WEP 的安全漏洞。其工作流程大致如下:
- 初始化:TKIP 在開始時使用共享金鑰和初始化向量(IV)來生成初始金鑰。
- 金鑰混合:TKIP透過混合函式將共享金鑰、IV以及資料包的序列號等資訊組合在一起,生成一個唯一的加密金鑰,用於該資料包的加密。
- 加密資料包:資料包在傳輸之前使用RC4流加密演算法加密,加密的金鑰是動態生成的每個資料包的唯一金鑰。
- MIC校驗:加密前,TKIP還會計算訊息完整性校驗(MIC)值並附加在資料包中,確保資料包未被篡改。
- 重放保護:接收方透過檢查資料包的序列號來防止重放攻擊。
(2) TKIP 的侷限性
雖然 TKIP 在設計上比 WEP 更安全,但它並不是完美的,主要侷限性包括:
- 計算效能較低:TKIP為了相容現有的硬體裝置,其設計不得不做出一些妥協,這導致其在處理加密時效率較低。尤其是在較高頻寬的網路環境下,效能問題尤為明顯。
- 安全性已過時:隨著計算能力的提升,TKIP本身也逐漸被證明不再足夠安全。例如,Michael演算法中的某些弱點已經被發現並利用。因此,WiFi聯盟已經建議在WPA2標準中棄用TKIP,改用更安全的AES(高階加密標準)。
- 不支援現代的WiFi標準:隨著WiFi標準的進步(如WPA2、WPA3),TKIP不再能滿足現代無線通訊的安全需求,這使得它在新標準中被逐步淘汰
TKIP 作為 WEP 到 WPA 過渡期間的一項重要技術,為提升無線網路安全性做出了貢獻。隨著時間的推移和計算能力的提升,TKIP 逐漸暴露出其安全性和效能上的侷限性。在 802.11 標準的 2012 年修訂版中已被棄用。
(五) WAP2 的 AES 加密
AES(Advanced Encryption Standard)
被引入是為了替代 WEP(Wired Equivalent Privacy)
和 WPA(Wi-Fi Protected Access)
初始版本中的 RC4 加密演算法,它在WPA2中被廣泛使用。
(1) AES 的優點
AES 是一種分組加密演算法,它具備下面特點:
- 安全性強:AES 是一種對稱加密演算法,通常支援 128 位、192 位和 256 位金鑰,且已被全球安全專家評估為高效且難以破解的演算法。
- 效率高:AES 採用 Rijndael 演算法,不僅安全性高,而且在硬體加速和計算效率上表現優異,適用於無線網路環境。
- 受支援廣泛:AES 是美國政府採納的加密標準,廣泛用於商業和政府機構,適用於幾乎所有現代裝置。
(2) AES 在的應用
AES 主要用於 Counter Mode with Cipher Block Chaining Message Authentication Code Protocol (CCMP) 模式,即計數器模式+密碼塊連結訊息驗證碼協議。這種模式提供資料加密和完整性驗證。
- 計數器模式 (Counter Mode):透過一個唯一的計數器(nonce)將每個資料包的內容進行加密,從而確保資料的唯一性和機密性。
- 訊息驗證碼協議 (MAC):使用 Cipher Block Chaining Message Authentication Code (CBC-MAC) 來確保資料的完整性,防止資料篡改。
(3) AES-CCMP 的工作流程
- 金鑰生成:使用者設定的預共享金鑰(PSK)經過一系列運算生成 Pairwise Transient Key (PTK) 和 Group Transient Key (GTK),用於加密各自的資料包。
- 計數器加密:每次傳送的資料包會攜帶一個新的計數器值 (nonce),AES 使用該計數器加密分組資料塊,透過分組加密生成偽隨機流,最終與明文資料按位異或得到密文。
- 完整性檢查:AES-CCMP 在傳送資料前會使用 CBC-MAC 生成一個訊息認證程式碼(MIC),並將其附加到資料包尾部,接收端再進行 MIC 計算並對比,以確保資料的完整性。
(4) AES-CCMP 的缺點
- 高計算資源需求:AES 計算複雜度較高,對低效能裝置或電池供電裝置有一定的能耗影響。
- 相容性:部分早期裝置不支援 AES,可能需更換裝置才能使用 WPA2。
(六) WAP3 的 SAE 認證
2018年推出的 Wi-Fi Protected Access 3 (WPA3) 引入了一種新的認證協議SAE (Simultaneous Authentication of Equals),用於替代 WPA2 中的 Pre-Shared Key (PSK) 機制。
SAE 被稱為同時認證的對等方,在 WPA3 中提供更強的安全性,尤其是抵禦離線字典攻擊。
(1) SAE 認證的工作原理
SAE 是基於密碼學的零知識證明協議,具體基於離散對數難題和橢圓曲線密碼學 (ECC),可以在不直接傳輸密碼的情況下驗證使用者身份。
它是一個抗離線攻擊的安全協議,使得攻擊者即使截獲了 Wi-Fi 握手資料,也無法透過離線嘗試密碼。
- Diffie-Hellman 金鑰交換:SAE 認證使用修改版的 Diffie-Hellman 金鑰交換協議,透過每次握手生成一個唯一的會話金鑰,即使知道之前的金鑰也無法破解新的金鑰。
- 抗離線字典攻擊:在 SAE 中,即使攻擊者獲取到 Wi-Fi 握手資料,也無法在離線環境中暴力破解密碼,因為 SAE 每次握手生成的金鑰是唯一的,且需要線上驗證。
(2) SAE 的認證過程
- Commit Message 初始化並交換 Diffie-Hellman 公鑰,雙方開始計算共享金鑰。
- Confirm Message 驗證金鑰的一致性並確認對方身份,確保握手安全。
- Authentication Success 雙方信任彼此生成的共享金鑰,認證完成。
- Association Request/Response 確認裝置加入網路,準備加密通訊。
SAE 的認證過程涉及兩大主要步驟:金鑰生成和確認:
第 1 步:初始化階段
- 每個客戶端和接入點 (AP) 在認證之前會生成一個唯一的隨機數,並將其稱為私有金鑰。
- 雙方使用 Diffie-Hellman 金鑰交換來生成各自的公鑰,並透過廣播公鑰與對方交換。
第 2 步:金鑰交換和生成共享金鑰
- 雙方各自用自己的私有金鑰和接收到的對方公鑰計算一個共享金鑰。
- 由於每次握手都會生成不同的隨機數,因此即便同樣的密碼也會產生不同的共享金鑰。
第 3 步:零知識證明
- 零知識證明用於驗證使用者身份而不直接傳輸密碼。使用者需要向 AP 證明自己知道密碼,而無需實際洩露密碼資訊。
- 透過計算出的共享金鑰,雙方生成會話金鑰,並進行相互認證。
- 如果認證透過,雙方確認共享金鑰有效,即認證成功,允許接入網路。
(3) SAE 的安全特性
- 前向安全性 (Forward Secrecy):SAE 使用的每次獨立金鑰生成機制,即使歷史會話金鑰洩露,也不會影響未來會話的安全性。
- 零知識證明:零知識證明在認證過程中不會傳輸實際密碼或金鑰,防止了密碼洩露。
- 抗離線字典攻擊:攻擊者無法透過離線分析握手資料來猜測密碼,避免了離線暴力破解。
(4) SAE 與 WPA2-PSK 的差異
- 安全性更強:SAE 相比 WPA2 的 PSK 模式,提供更高的安全性,特別是在抵禦離線攻擊和暴力破解方面。
- 握手機制:WPA2-PSK 透過靜態共享金鑰認證,容易遭受重放攻擊;SAE 採用動態金鑰交換機制,每次認證生成不同金鑰。
- 相容性:SAE 使用了橢圓曲線密碼學,這要求裝置支援較高的計算能力,部分舊裝置可能不支援 WPA3-SAE。
(5) SAE 的侷限性
- 計算資源需求高:SAE 的零知識證明和金鑰交換演算法對裝置計算能力有一定要求,可能會影響低功耗裝置的使用體驗。
- 不支援 WPA2 裝置:許多 WPA2 裝置不相容 WPA3 的 SAE 認證機制,因此需要 WPA3 支援裝置的環境下才能發揮其全部優勢。
(七) WAP3 的 AES-GCMP 加密
在 WPA3 中,為了增強資料傳輸的安全性,採用了 AES-GCMP(AES-Galois/Counter Mode Protocol) 加密模式,這種加密模式在 WPA3 的 Enterprise 和 Personal 網路中廣泛應用。
AES-GCMP 結合了加密和訊息認證功能的演算法,確保資料的機密性、完整性和認證。
(1) AES-GCMP 的基本概念
AES-GCMP 是一種基於 AES(Advanced Encryption Standard)的認證加密模式,結合了 Galois/Counter Mode (GCM) 的分組加密和認證功能,用於保護無線網路的資料通訊。
AES-GCMP 比 WPA2 中的 AES-CCMP 更安全和高效,支援更高的資料速率和更強的安全性。
- AES-GCM:AES-GCM 是一種分組加密模式,透過計數器模式 (Counter Mode) 實現加密,透過 Galois Message Authentication Code (GMAC) 實現資料的認證。
- GMAC 認證:GMAC 是一種基於 Galois 欄位運算的訊息認證碼,確保資料包在傳輸過程中沒有被篡改。
(2) AES-GCMP 的工作流程
AES-GCMP 結合了加密和認證的流程,其資料處理過程分為以下幾步:
- 計數器模式加密:每個資料包會生成一個唯一的計數器 (nonce) 來確保隨機性和不可重用性,然後使用 AES 加密每個分組資料塊。
- 資料認證:加密後,AES-GCMP 使用 GMAC 生成一個訊息認證碼 (MAC),用於驗證資料的完整性。此 MAC 被附加到資料包的尾部。
- 資料包傳送與驗證:接收方解密資料包時會驗證 GMAC,確保資料包未被篡改。如果驗證透過,則解密資料包並還原資料。
(3) AES-GCMP 與 AES-CCMP 的區別
AES-GCMP 與 WPA2 中的 AES-CCMP 有幾個重要區別:
- 效能:AES-GCMP 比 AES-CCMP 更快,因為它在認證過程中減少了計算負擔,適合更高的吞吐量。
- 認證方式:AES-GCMP 使用 GMAC(而不是 CBC-MAC)來完成認證,效率更高且加密流程更簡化。
- 加密強度:AES-GCMP 支援更長的金鑰長度,如 256 位,相比 WPA2 中 AES-CCMP 常見的 128 位金鑰更安全。
(4) AES-GCMP 的優點
- 更強的安全性:AES-GCMP 支援 256 位金鑰,進一步增強了 WPA3 網路的安全性。
- 抗篡改保護:AES-GCMP 的 GMAC 認證模式可以檢測資料包中的篡改行為,從而保護資料的完整性。
- 高效性:AES-GCMP 在較高頻寬下也能高效執行,因此特別適合於需要較高傳輸速率和低延遲的網路環境,如 Wi-Fi 6。
(5) AES-GCMP 的侷限性
- 硬體支援:AES-GCMP 的加密和認證過程對計算效能要求較高,需要裝置硬體支援 AES 硬體加速,才能達到較好的效能。
- 不向下相容 WPA2:AES-GCMP 僅適用於 WPA3,不向下相容 WPA2 網路,因此對某些老舊裝置不支援。
結尾
上面內容主要介紹了WiFi個人版本中WIFI認證與加密相關的一些知識,日常生活中,比較多的無線裝置還是使用WPA2協議,不少廠家也在逐漸更新為WPA3。
日常家庭使用WPA2/3已可以滿足需求。對於公司企業,還是使用企業版本認證加密可能會更為穩妥。