WPS協議閱讀之第四章
4 Core Architecture
4.1 Components and Interfaces
WPS由三個邏輯單元組成:Registrar,AP,Enrollee。Registrar可以內建在一個AP中,稱為standaloneAP。通常一個WLAN網路的建立是分佈進行的,首先開啟一個AP(這個AP連線到交換機等網路裝置),然後新增一個Enrollee或者Registrar裝置到這個網路,這是通過執行Registration Protocol完成的,如果新加的裝置上Registrar,則以後的裝置可作為Enrolless使用該Registrar加入網路,WPS定義了新的WPS等IE,這些IE
4.2 Registration Protocol
RP協議完成以下目的:
排除無線連線問題
定義了用out-of-band資訊完成Enrollee和Registrar相互間的識別,使能認證配置功能
為裝置建立某種角色(AP,Registrar,Enrollee);
安全地將WLAN配置資訊從Registrar傳遞到Enrollee;
建立EMSK(Extended Master Session Key)
RP協議可以單獨地執行在in-band,out-of-band或者兩者的結合,這樣可以靈活的利用out-of-band
RP協議的執行分為兩個階段,第一階段稱為discovery階段,用於在Registrar和Enrollee之間交換描述資訊,discovery階段是必須的。
STA Erollee可以通過下面中斷一種方法執行discovery:
1. 在掃描階段發出包含WPS IE的probe request幀到AP,AP回覆包含WPS IE的probe response,可用於選擇registrar和AP。
STA enrollee可決定是否連線到AP,併發送M1開始RP協議,如果Registrar還沒有準備好接受STAenrollee的連線,則registrar會回覆M2D,sta enrollee
2. 如果AP作為enrollee,則由registrar發起discovery階段
無線external registrar傳送包含WPS IE的probe request,WPS IE中的request type設為Registrar或者WLAN ManagerRegistrar,AP回覆probe response。
有線external registrar用UPnP的discovery機制發現AP
在discovery階段,Enrollee可以與多個AP或者Registrar交換資訊。
第二階段為enrollment,這個階段將完成預認證的過程
RP協議分步同步執行,停止運行於M2,M2D或者M8
M2D---表示registrar還未準備好與enrollee的認證,但是會向enrollee提供registrar的描述資訊
M2---在用NFC等out-of-band方式通訊時,第一階段和第二階段結合為一個階段,只需要一個回合的資訊互動,不需要M2以後的互動
M8---三個回合資訊互動的結束,第二階段的三個回合保證在Enrollee device password基礎上互動完成Enrollee和Registar的雙向認證,WLAN的認證資訊通過M8傳遞給Enrollee。
其他遇到error或者超時的情況下RP協議的執行也可能被停止。
4.3 Security Overview
裝置廠商有可選擇不同的安全策略,這裡有主要兩種WPS操作:in-band 配置,out-of-band配置。
在in-band配置中,Diffie-Hellman密碼被應用,其來自device password,device password從Errollee獲得並通過輸入欄(或者NFC)鍵入Registrar。
4.3.1 In-band Configuration
WPS in-band RP協議的設計目的是抵禦竊聽工具和暴力破解。如果Registar認為一個Enrollee的攻擊者合法,且發現攻擊者並不知道密碼。Registrar的這種對攻擊者的錯誤認知發生在還未向暴力破解者暴露足夠多資訊之前。但是,如果Registrar用相同的PIN碼與一個攻擊者的Enrollee運行了多次RP協議,攻擊者可以利用線下離線暴力攻擊發現PIN碼,並重新執行RP協議獲得網路設定。為了處理這個弱點,如果發出M6後PIN認證或通訊發生錯誤,Registrar必須警告使用者且不能再使用原來PIN碼,提示使用者使用Enrollee產生的新的PIN碼,新的PIN碼應該與舊的PIN碼不同,如果用一個32位元組以上的隨機強密碼替換PIN碼,這樣的密碼才可以勉強多次使用,而在PBC method中卻沒有PIN碼重用的問題。
Device Password
支援WPS的裝置必須能提供一個隨機獨立的Device Password(PIN),雖然有可能並允許兩個裝置產生相同的Password,多個裝置還是應該避免故意產生相同的Device password,Device password也不能以裝置的其他身份特性產生,如MAC地址或序列號等。
Headless Devices
headless device沒有顯示,WPS應用在這些裝置上要求提供一個8個數字的PIN碼,這個PIN碼可以貼在裝置上,在生產過程中配置。
PIN碼作為device password是WPS中最基本的安全等級,因為8個數字的PIN中將會有一位用於checksum,PIN包含約23位的熵,固定值的PIN碼可以重用,易受攻擊。WPS協議允許使用者重新定義預設的devicepassword,這樣可以使有安全顧慮的使用者提高網路的安全性。
在WLAN中,headless device的代表裝置就是AP本身,每次RP執行時,AP作為registrar的enrollee產生一個臨時的變化PIN,如果一個固定PIN碼被使用,AP在多次與Registrar認證失敗後進入lock-down狀態,在lock-down狀態下,AP會拒絕執行RP協議,這樣會避免攻擊者作為registrar竊取AP的PIN碼,在AP lock-down狀態下,允許新增Enrolee到WLAN,但不能使用AP的PIN新增registrar,需要使用者干預退出lock-down狀態,例如用AP的管理頁面或者重新開關電源。
除了PIN method,headless device也可以實現PBC method,PBC的熵為0位,只能避免被動竊聽攻擊,PBC method只是用在Registrar 不支援PIN碼,有一定的安全風險。
Devices with Display
如果Enrollee裝置支援display configuration method,Enrollee在每次執行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碼的最後一個數字作為checksum,4個數字的PIN碼則沒有checksum。
如果一個裝置能動態產生PIN碼,且裝置上貼有PIN碼,建議使用動態產生的PIN碼,建議手動輸入的device password為8個數字的PIN碼,這個長度雖然不能為健全認證提供大量熵池,但在RP協議中可以防範對PIN碼的字典攻擊。
PIN的值應當隨機產生,不能來自於那些可能被攻擊者獲得的資訊,例如in-band中裝置的序列號和MAC地址等。如果一個裝置有多個PIN,每一個PIN碼必須獨立且加密,例如一個NFC裝置可能有一個PIN碼還有一個device password,它的PIN碼和device password必須不同且彼此不相關。
Registrar可以提前配置Enrollee PIN和UUID-E的一組值作為packagedsolution的一部分,Registrar也可以只儲存PIN值,PIN碼在Registrar中保留的時間不確定,Registrar會在PIN 認證失敗後使PIN無效。儲存在Registrar中的PIN碼需加密保護且對外介面不可讀。