第四章 系統架構
4.2 系統設計
4.2.2. 金鑰產生與交換
本研究中,因為擷取點與無線工作站需要擁有相同的隨機位元串,才能互相 驗證對方是否為合法使用者,進而達到防止服務阻絕攻擊的攻擊。因此擷取點與 無線工作站彼此會先透過某種機制而擁有相同的「金鑰」,之後再根據這把「金 鑰」造出隨機位元串以便互相驗證溝通。在本研究提出的系統架構中,有以下四 種可行的方式:
(1) 預先分配金鑰(Pre-Shared Key, PSK):
「預先分配金鑰」是在要使用金鑰前就先分配好,通常使用在對稱式的加密 演算法。例如:在 WiFi(IEEE 802.11b)中的 WEP 或 WPA 加密方式,都是採 用事先分配金鑰的方式。不過,這種方式主要是應用在比較小型或是變化不大的 環境下。
若在本研究中採用「預先分配金鑰」方式,則不需要執行交換金鑰資訊的動 作,只要事先分配完金鑰後,擷取點與無線工作站就可以帶入 ARBG 中產生隨 機位元串,進行連結上網所需的互相驗證工作。此外金鑰的組成不管在長度與字 母的組合都必需要符合密碼學上安全(Cryptographically Secure)的金鑰,並且 必須定時更換金鑰,否則將造成金鑰資訊容易被分析出來。
(2) Diffie-Hellman 金鑰交換演算法:
上述預先分配金鑰的方式缺點就是需要管理者手動方式輸入密碼,但是我們 希望提出的系統架構能夠更有彈性。所以我們可以利用在第二章背景知識 2.4 節 所描述的 Diffie-Hellman 金鑰交換演算法,讓彼此互相不認識的擷取點與無線工 作站能夠擁有相同的金鑰。
如圖 29,無線工作站與擷取點只要把所需的金鑰產生資訊,加入試探要求 與試探回應訊框的中保留位置(4.2.1 小節中新定義於訊框主體的欄位),彼此 收到利用資訊後,就可以利用 Diffie-Hellman 金鑰交換演算法取得共同金鑰 Kas 之後,帶入 ARBG 中產生隨機位元串,進行連結上網所需的互相驗證工作。
圖 29 本研究提出的主動金鑰交換流程
如圖 30,無線工作站把所需的金鑰產生資訊,加入訊標訊框的保留位置,
無線工作站收到訊標訊框加入的額外資訊後,就可以產生金鑰 Ks,之後再利用 Diffie-Hellman 金鑰交換演算法算出 Kas並代入 ARBG 中產生隨機位元串。接著 無線工作站準備連結上網時,會加入隨機位元串與 Ks於驗證訊框中(以便讓擷 取點可以產生相同的金鑰)。擷取點收到 Ks 後會先產生 Kas,接著代入 ARBG 中產生隨機位元串後,才會進行驗證的工作。
圖 30 本研究提出的被動金鑰交換流程
(3) IEEE 802.11i 交換金鑰:
802.11 TGi 為了改善 WEP 中使用同一把金鑰的問題,而提出了 TKIP 演算 法,讓傳收端與接收端可以交換而得到暫時的成對金鑰(PTK),以避免長時間 使用同一把金鑰的問題。金鑰產生與交換過程如圖 7 所示,當無線工作站與擷取 點取得相同的 PTK 或 GTK 之後,就可以在每次會期溝通時帶入 ARBG 產生驗 證的隨機位元串,彼此互相驗證。利用 802.11i 產生金鑰的方式,在安全的考量 上的確比較理想。但是有一點要注意的是,因為 802.1x 認證程序也有類似 802.11 容易遭受 DoS 攻擊問題(如:EAPOL-Failure),所以必須等到認證過後才能獲 取金鑰的話,中間可能會遭受攻擊者利用 EAPOL-Failure 攻擊,造成使用者不能 順利通過認證。
此外,現行的無線工作站計算能力還不足已達到 802.11i 金鑰交換程序,因 為其金鑰產生的函數過程太複雜,所以並不適用於無線裝置上。再者電力消耗也 是一大考量問題。所以本研究在現階段並不會採取 802.11i 交換金鑰的方式,不 過當軟體與硬體的升級支援之後,採取此方式是可行的。
(4) PKI(Public Key Infrastructure):
擷取點與無線工作站亦可在在 PKI 的架構下交換金鑰。擷取點可以先向 CA
(Certification Authority)取得無線工作站的公開金鑰(Public Key),把雙方要 產生隨機位元串的金鑰利用無線工作站的公開金鑰加密後,送給無線工作站。無 線工作站收到後,就可以利用自己的私密金鑰(Private Key)解開,如此雙方就 擁有可以產生相同隨機位元串的共同金鑰。雖然 PKI 是可行的方式,不過建立 CA 的成本太高,再者無線工作站的運算能力與是否有憑證都是需要考量之處。
所以,本研究在現階段並不會採取 PKI 交換金鑰的方式,不過當建立 CA 的成本 降低,並且由可信任的第三者執行的話,則亦為可行的方式。
在上述四個所提的金鑰交換可行方式中,(3)與(4)的方式雖然可行,但 是需要軟體與硬體上的升級支援才可以。所以在現階段中,本研究將會以(1)
或(2)的方式來實作,以便讓無線工作站與擷取點可以擁有共同金鑰。在雙方 擁有了共同的金鑰之後,會基於這把金鑰下造出會期金鑰,加入我們下一節所提 的 ARBG 模組,以便讓無線工作站與擷取點產生相同的驗證隨機位元串。