第三章 無線家庭網路安全認證與存取控制機制
3.3 PSK 推導 PIN Code 之設計流程
目前 WPS 授權機制主要的動作是由 Enrollee(客戶端)產生八碼的 PIN Code,然後 Registrar(AP) 輸入由 Enrollee 所產生之 PIN Code 進行 WPS 驗證。在家庭網路中,如何讓 Registrar 輸入 PIN Code,是需要進入無線基地台中設定,但如果每次要進入目前無線家庭網路,都需要進入無線網 路基地台是很麻煩的。本研究利用橢圓曲線的 Diffie-Hellman (Elliptic Curve Diffie-Hellman, ECDH) 金鑰交換法,透過 ECDH 與 PSK 產生新的一組 PIN Code 直接進入 WPS 進行授權。透過 PSK 在 無線基地台的設定,只需要定義一次使用的金鑰,並且因為 PSK 與金鑰交換之密鑰所產生之 PIN Code 為唯一,在 WPS 授權機制如果雙方所計算之 PIN Code 若不相同,將會在 WPS 授權機制 過程中失敗。此外,考量 ECDH 的安全性,如果想要破解 ECDH 機制,攻擊者必須在給定 G 以 及 kG 的情況下求出 k,基於橢圓曲線離散對術的困難度亦是非常困難破解地。為結合 ECDH 與 WPS 的金鑰交換設計流程的說明,並以傳遞雙方的角色設定為家庭用戶端設備與無線網路基地台 (AP/Registrar),當無線網路基地台允許新增一個家庭用戶端進行網路連線的流程。首先我們定義 了新的 WPS Data Elements 為橢圓曲線參數 Eq(a,b)之 Q、a、b,與橢圓曲線公開金鑰 EDCH Public Key。並在無線基地台所發出的 Beacon 封包增加新的 WPS Data Element,包含:ECDH Q、ECDH a、
ECDH b 此三個公開的金鑰交換值,然後在 Enrollee 端(無線網卡)的 Probe Request 中加入新的 WPS IE 的 Data Element EDCH Public Key 以及 Registrar 端(無線基地台端)加入新的 WPS IE 的 Data Element EDCH Public Key,這樣可以不增加任何無線網路的封包與 WPS 行為中完成橢圓曲 線金鑰交換的步驟,而且對於 Registrar 端來說可以每隔一段時間就可以簡單的更換目前所使用的 任何參數,來降低透過大量的封包監聽與側錄破解雙方所使用的密鑰。此設計建立一個具 ECDH 的加密通道在 Registrar 與 Enrollee 兩端進行 User 帳號/密碼以及時戳(Timestamp)等,產生 PIN Code 的參數資訊。下圖 7 為家庭網路使用者別之 PSK 推導出可結合於 WPS 的 PIN Code 之設計流程:
圖 7: PSK 推導 PIN Code 金鑰交換設計流程
使用者別之 PSK 推導出 PIN Code 金鑰交換流程可分為產生共同金鑰(Session Key),與金鑰 交換兩個部分。以下將依序對各連線步驟進行詳細介紹:
STEP1: 欲 進 WPS 連 線 的 User/Enrollee 端 會 自 動 搜 尋 無 線 網 路 中 , 相 互 匹 配 的 無 線 網 路 (AP/Registrar 端)的 Beacon 訊號。
STEP2~3:User/Enrollee與AP/Registrar兩端進行ECDH機制產生一把Session key,ECDH方法如下:
橢圓曲線公式: y2=x3+ax+b,其中a、b係數必須先被指定,且係數a、b 是屬於GF(P)的質數,
GF為一有限體,而P是基準點相當於Diffe-Hellman的產生器。
1. 尋找雙方同意之系統橢圓曲線與基點G(橢圓上座標)作為系統公開金鑰,且所有使用者均 可用相同且公開的橢圓曲線參數與基點G,G的級數n要夠大(例如大於2160) 。
2. User/Enrollee 端選擇秘密金鑰正整數x,1 < x < n,且計算G x = x․G,爾後G x送給AP。
G x為User/Enrollee秘密金鑰x對應的公開金鑰。
3. AP/Registrar端選擇祕密金鑰正整數y,1 < y < n,且計算G y = y․G,爾後將G y送給 User/Enrollee。G y為AP的祕密金鑰y對應的公開金鑰。
4. User/Enrollee利用自己的祕密金鑰整數x與收到的G y,計算出公式:
KAB = x․G y = x․ (y․G)
5. AP利用自己的祕密金鑰整數y與收到的G x,計算出公式:
KAB = y․G x = y․ (x․G)
6. 雙方擁有共通的橢圓曲線點(x․y)․G。此點的x座標便可當作雙方的共通的Session Key,KAB。
圖8: ECDH金鑰交換
STEP4:User/Enrollee端將家庭使用者之帳號與密碼進行SHA-256計算,並利用共有的Session Key 加密,把結果傳給AP/Registrar端。
STEP5:AP/Registrar端將收到的Nonce用同一把Session Key解密,並與原先記錄的PSK比對,可 檢視使用者的身分與權限,此步驟的Nonce產生方式如下:
1. 使用者帳號+密碼+Timestamp利用SHA-256產生出的雜湊值,Timestamp可由AP發送並以 該Timestamp做為運算基準。Timestamp可用來確保每筆金鑰交換的安全性。
2. 取mod 10的結果成為PIN Code的前7碼,第8碼為檢驗碼,即組成為PIN Code。
3. User/Enrollee與AP/Registrar兩邊皆會進行PIN Code的運算,檢驗是否相同。
執行完此步驟,User/Enrollee與AP/Registrar兩端即可產生兩組相同的PIN Code以進行後續第 二部份:金鑰交換的流程。
STEP6~8: 此時User/Enrollee端開始準備啟動與AP/Registrar端之間的M1~M8交換過程,並由 AP/Registrar端發放加入WLAN 的網路證書(網路名稱(SSID)及安全密鑰(PSK))。在此各種資訊及 網路證書將通過擴展認證協定(EAP)上傳輸資料,該協議是WPA2 使用的認證協定之一。所有的 資料都是先經過加密再傳送到無線網路中,User/Enrollee與AP/Registrar兩端個別收到資料後,再 轉換成可接收的內容,安全性較佳。
STEP9~18:User/Enrollee與AP/Registrar兩端開始進行M1~M8的金鑰交換,兩端將完成相互認證,
User/Enrollee端通過此金鑰交換流程即將被連入網路。AP/Register端則通過傳輸網路名稱(SSID) 及WPA2預共用密鑰(PSK)啟動安全機制,由於網路名稱及PSK 由系統自動分發,故此M1~M8 金鑰交換過程幾乎不需用戶干預,減少錯誤與麻煩。M1~M8的詳細訊息傳遞參數,請參閱文獻探 討中2.4。
STEP19:當M1~M8的金鑰交換成功進行後,AP/Registrar端將會進行Access Control機制,將User 帳號密碼與自身的資料庫做比對,查驗正在進行連線的使用者是否可以在這個時候使用網路。通 過帳密驗證的User/Enrollee端才可以連線上網,反之AP/Registrar端將會拒絕正在要求連線的 User/Enrollee端。此外,當User/Enrollee端中斷連線或是重新連線時,將重新進行STEP2~18以取 得新的連線安全ECDH Session Key。
本研究所提出之產生推導的PIN Code界接使用者行為與無線網路連線的安全管理。即透過使 用者自定的帳號密碼可以達成身分存取權限的控制,並結合ECDH的金鑰交換出可運行於WPS的 一組PIN Code,達成無線家庭網路使用者方便、安全的連線管理。其方便性來自於,無線家庭網 路使用者只需簡單記憶個人之帳號密碼資料,不必輸入長度過長的金鑰,並在WPS的協定下即擁 有WPA2等級的安全性。