• 沒有找到結果。

無線家庭網路認證機制

第三章 無線家庭網路安全認證與存取控制機制

3.1 無線家庭網路認證機制

無線家庭網路之安全認證機制以經濟性和適用性考量不需建立 RADIUS Server 來進行認證。

2007 年 Wi-Fi 聯盟提出的 Wi-Fi Protected Setup(WPS)可以簡化無線網路連線的設定,並支援 WPA 及 WPA2 等加密方式,基於 EAP 的認證協定建立安全的連線。其研究方法先介紹 WPS 金鑰交換 的設計流程,如圖 6 為 Enrollee(客戶端)和 Registrar(AP)的認證流程。WPS 是透過 M1 到 M8 的訊 息交換,重點在 Enrollee 收到 M8 之後,解密可取得 AP 的安全設定參數(ConfigData) ,建立成目 前使用的無線網路設定,成為本網路之使用者。故 WPS 能使傳遞雙方使用者共同得出同一組 PIN Code 進行 WPS 認證過程,如果雙方比對所產生出的 PIN Code 是不相同的,將會在認證過程中 失敗。PIN Code 的產生演算法已於文獻 2.6 介紹其安全性。

圖 6:WPS 認證協定 3.2 無線家庭網路存取控制

企業對存取控制的設計,通常根據員工所擔任的責任及職務來指派適合存取權限,企業採用 角色為基礎的存取控制方式(Role-based Access Control),可讓員工在職務角色之間易於指派,職

務、角色與權限也容易新增或刪除。存取控制方法以角色的概念與傳統群組(Group)概念不同,主 要是在於群組的對象是人的集合,而角色的對象除了人的集合外,還包括了特定的權限許可、角 色之間承繼的關係、職務間權責合理配置,以及個體之互動的特定條件。

本研究之家庭網路使用連線的存取控制的設計,採 RBAC 方法設定家用成員的角色,讓家庭 使用者個別設定之預共享密鑰(Pre-shared Key, PSK),建立存取權限之控制。例如:父母、青少年、

訪客等;依角色定義出權責,例如:青少年的連線時間不得超過 2 小時、瀏覽的網頁有安全性過 台之驗證後,在 Association Request 封包的驗證時,無線基地台驗證所收到之 GenPIN NonceE 將可以得知目前所進行之認證角色為 Super User 接著檢查 Super User 目前是否有存取時間限 制,接著檢查目前所剩餘的存取時間是否足夠接著才發給 Super User Association Response 成功,

如果前面有任何支存取權限受到控制,則對 User 發出 Association Response 失敗,並且將失敗之

身分時,依據此使用者所能存取之權限檢查其目前所能使用之網路時間是否為結束,並且目前本 機之時間是否已過午夜十二點,檢查結束之後會傳連線成功回去,當此使用者開始使用 Super User 所預先設定網路遊戲程式,存取控制機制依據其所連線之網路伺服器開始作存取時間之計算,在 存取時間一小時快結束時,無線基地台將告訴本端認證軟體將存取時間將要結束,在存取時間結 束後將完全阻擋來至此網路伺服器之封包,當 15 歲使用者想要存取色情相關資訊時,存取控制 機制將會根據目前使用之網路實體地址對於其所要存取之封包進行過濾,會阻擋掉目的與來源位 址為此實體地址內容關於非允許存取相關之內容。

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等級的安全性。

第四章 無線家庭網路系統設計

作業系統:Debian squeeze/sid

無線網卡:D-Link AirPlus DWL-G650 無線網卡驅動程式:Madwifi Driver v0.9.4 無線 AP 軟體: Hostapd-0.6.9

筆記型電腦:Dell Inspiron 9200 作業系統:Ubuntu 8.10

無線網卡:ASUS WL-167g USB WLAN Adapter 無線網卡驅動程式:Madwifi Driver v0.9.4 無線網路 client 軟體:WPA_Supplicant-0.6.9

4.1.1 Madwifi Driver 安裝與設定

進行 Madwifi 驅動程式的安裝之前,必須先準備以下的作業環境,透過 Debian 的 APT 套件 管理程式,我們利用下行的指令安裝所需的作業環境。

# apt-get install build-essential linux-headers-$(uname -r) libssl-dev

接著將介面停止運作(介面不一定會被產生和啟動,所以可能沒有這些介面)。

# ifconfig ath0 down

# ifconfig wifi0 down

此外,預設的 linux 環境在安裝新的 Madwifi Driver 之前,必須先將舊的 Madwifi 模組移除,

以避免版本衝突而產生錯誤,執行以下的指令即可將舊有的 Madwifi 從作業系統和記憶體中移除。

# cd madwifi(移動到 Madwifi 的目錄下)

# cd scripts(進入 scripts 這個目錄中)

# ./madwifi-unload(將 Madwifi 從記憶體中移除)

# ./find-madwifi-modules.sh `uname –r`(移除系統中的 Madwifi module) 移除舊有的 Madwifi 模組後,進行編譯和安裝的動作。

# make(在 madwifi 的目錄中,執行編譯動作)

# make install(執行安裝動作,程式自動會將 module、man pages 和工具複製到相關正確的目錄中) 另外,由於 Debian 預設包含 ath5k 這個模組,但此系統環境需要的是 ath_pci 模組,為了避 免系統預先載入 ath5k,我們可將 ath5k 模組加入 modprobe 的黑名單中,避免 ath5k 被自動載入。

# make install(執行安裝動作,程式自動會將 module、man pages 和工具複製到相關正確的目錄中) 另外,由於 Debian 預設包含 ath5k 這個模組,但此系統環境需要的是 ath_pci 模組,為了避 免系統預先載入 ath5k,我們可將 ath5k 模組加入 modprobe 的黑名單中,避免 ath5k 被自動載入。

相關文件