1. 程式人生 > >WPS協議閱讀之第四章

WPS協議閱讀之第四章

4 Core Architecture

4.1 Components and Interfaces

WPS由三個邏輯單元組成:RegistrarAPEnrolleeRegistrar可以內建在一個AP中,稱為standaloneAP。通常一個WLAN網路的建立是分佈進行的,首先開啟一個AP(這個AP連線到交換機等網路裝置),然後新增一個Enrollee或者Registrar裝置到這個網路,這是通過執行Registration Protocol完成的,如果新加的裝置上Registrar,則以後的裝置可作為Enrolless使用該Registrar加入網路,WPS定義了新的WPSIE,這些IE

包含在beacons,probe requests,probe response中,這些IE表明裝置是否支援WPS操作。

4.2 Registration Protocol

RP協議完成以下目的:

排除無線連線問題

定義了用out-of-band資訊完成EnrolleeRegistrar相互間的識別,使能認證配置功能

為裝置建立某種角色(APRegistrarEnrollee);

安全地將WLAN配置資訊從Registrar傳遞到Enrollee

建立EMSK(Extended Master Session Key)

RP協議可以單獨地執行在in-bandout-of-band或者兩者的結合,這樣可以靈活的利用out-of-band

通訊機制。

RP協議的執行分為兩個階段,第一階段稱為discovery階段,用於在RegistrarEnrollee之間交換描述資訊,discovery階段是必須的。

STA Erollee可以通過下面中斷一種方法執行discovery:

1.      在掃描階段發出包含WPS IEprobe request幀到APAP回覆包含WPS IEprobe response,可用於選擇registrarAP

STA enrollee可決定是否連線到AP,併發送M1開始RP協議,如果Registrar還沒有準備好接受STAenrollee的連線,則registrar會回覆M2Dsta enrollee

繼續發現可用的registrar

2.      如果AP作為enrollee,則由registrar發起discovery階段

無線external registrar傳送包含WPS IEprobe requestWPS IE中的request type設為Registrar或者WLAN ManagerRegistrarAP回覆probe response

有線external registrarUPnPdiscovery機制發現AP

discovery階段,Enrollee可以與多個AP或者Registrar交換資訊。

第二階段為enrollment,這個階段將完成預認證的過程

RP協議分步同步執行,停止運行於M2,M2D或者M8

M2D---表示registrar還未準備好與enrollee的認證,但是會向enrollee提供registrar的描述資訊

M2---在用NFCout-of-band方式通訊時,第一階段和第二階段結合為一個階段,只需要一個回合的資訊互動,不需要M2以後的互動

M8---三個回合資訊互動的結束,第二階段的三個回合保證在Enrollee device password基礎上互動完成EnrolleeRegistar的雙向認證,WLAN的認證資訊通過M8傳遞給Enrollee

其他遇到error或者超時的情況下RP協議的執行也可能被停止。

4.3 Security Overview

裝置廠商有可選擇不同的安全策略,這裡有主要兩種WPS操作:in-band 配置,out-of-band配置。

in-band配置中,Diffie-Hellman密碼被應用,其來自device passworddevice passwordErrollee獲得並通過輸入欄(或者NFC)鍵入Registrar

4.3.1 In-band Configuration

WPS in-band RP協議的設計目的是抵禦竊聽工具和暴力破解。如果Registar認為一個Enrollee的攻擊者合法,且發現攻擊者並不知道密碼。Registrar的這種對攻擊者的錯誤認知發生在還未向暴力破解者暴露足夠多資訊之前。但是,如果Registrar用相同的PIN碼與一個攻擊者的Enrollee運行了多次RP協議,攻擊者可以利用線下離線暴力攻擊發現PIN碼,並重新執行RP協議獲得網路設定。為了處理這個弱點,如果發出M6PIN認證或通訊發生錯誤,Registrar必須警告使用者且不能再使用原來PIN碼,提示使用者使用Enrollee產生的新的PIN碼,新的PIN碼應該與舊的PIN碼不同,如果用一個32位元組以上的隨機強密碼替換PIN碼,這樣的密碼才可以勉強多次使用,而在PBC method中卻沒有PIN碼重用的問題。

Device Password

支援WPS的裝置必須能提供一個隨機獨立的Device Password(PIN),雖然有可能並允許兩個裝置產生相同的Password,多個裝置還是應該避免故意產生相同的Device passwordDevice password也不能以裝置的其他身份特性產生,如MAC地址或序列號等。

Headless Devices

headless device沒有顯示,WPS應用在這些裝置上要求提供一個8個數字的PIN碼,這個PIN碼可以貼在裝置上,在生產過程中配置。

PIN碼作為device passwordWPS中最基本的安全等級,因為8個數字的PIN中將會有一位用於checksumPIN包含約23位的熵,固定值的PIN碼可以重用,易受攻擊。WPS協議允許使用者重新定義預設的devicepassword,這樣可以使有安全顧慮的使用者提高網路的安全性。

WLAN中,headless device的代表裝置就是AP本身,每次RP執行時,AP作為registrarenrollee產生一個臨時的變化PIN,如果一個固定PIN碼被使用,AP在多次與Registrar認證失敗後進入lock-down狀態,在lock-down狀態下,AP會拒絕執行RP協議,這樣會避免攻擊者作為registrar竊取APPIN碼,在AP lock-down狀態下,允許新增EnroleeWLAN,但不能使用APPIN新增registrar,需要使用者干預退出lock-down狀態,例如用AP的管理頁面或者重新開關電源。

除了PIN methodheadless device也可以實現PBC methodPBC的熵為0位,只能避免被動竊聽攻擊,PBC method只是用在Registrar 不支援PIN碼,有一定的安全風險。

Devices with Display

如果Enrollee裝置支援display configuration methodEnrollee在每次執行RP協議的時候都會產生一個4個或者8個數字的PIN碼,並在顯示裝置上顯示該PIN碼,這種方法有兩點明顯的優點:首先,因為PIN碼只使用一次,可以防止暴力破解;其次,每次動態產生密碼也要比生產的時候配置容易。

4.3.2 PIN values的規則和要求

兩類裝置對PIN碼的要求不同:

a.      Headless device必須使用8個數字的PIN碼,PIN碼貼在裝置的上面,PIN碼的最後一個數字作為前七個數字的checksum

b.      帶顯示裝置的即可以用4個數字的PIN碼,也可以用8個數字的PIN碼,與headless device一樣,8個數字PIN碼的最後一個數字作為checksum4個數字的PIN碼則沒有checksum

如果一個裝置能動態產生PIN碼,且裝置上貼有PIN碼,建議使用動態產生的PIN碼,建議手動輸入的device password8個數字的PIN碼,這個長度雖然不能為健全認證提供大量熵池,但在RP協議中可以防範對PIN碼的字典攻擊。

PIN的值應當隨機產生,不能來自於那些可能被攻擊者獲得的資訊,例如in-band中裝置的序列號和MAC地址等。如果一個裝置有多個PIN,每一個PIN碼必須獨立且加密,例如一個NFC裝置可能有一個PIN碼還有一個device password,它的PIN碼和device password必須不同且彼此不相關。

Registrar可以提前配置Enrollee PINUUID-E的一組值作為packagedsolution的一部分,Registrar也可以只儲存PIN值,PIN碼在Registrar中保留的時間不確定,Registrar會在PIN 認證失敗後使PIN無效。儲存在Registrar中的PIN碼需加密保護且對外介面不可讀。