安全問題一直是困擾在WLAN靈活便捷的優勢之上的陰影,已成為阻礙WLAN進入信息化應用領域的最大障礙。國際標準為此采用了WEP、WPA、802.1x、802.11i、VPN等方式來保證WLAN的安全,但都沒有從根本上解決WLAN的安全問題。我國在2003年5月份提出了無線局域網國家標準GB15629.11,引入一種全新的安全機制—WAPI,使WLAN的安全問題再次成為人們關注的焦點。WAPI機制已由ISO/IEC授權的IEEE Registration Authority審查獲得認可,并分配了用于該機制的以太類型號(IEEE EtherType Field)0x88b4,這是我國在這一領域向ISO/IEC提出并獲得批準的唯一的以太類型號。 WAPI安全機制 無線局域網鑒別與保密基礎結構WAPI(WLAN Authentication and Privacy Infrastructure)由無線局域網鑒別基礎結構WAI(WLAN Authentication Infrastructure)和無線局域網保密基礎結構WPI(WLAN Privacy Infrastructure)組成。其中,WAI采用基于橢圓曲線的公鑰證書體制,無線客戶端STA和接入點AP通過鑒別服務器AS進行雙向身份鑒別。而在對傳輸數據的保密方面,WPI采用了國家商用密碼管理委員會辦公室提供的對稱密碼算法進行加密和解密,充分保障了數據傳輸的安全。 WAPI充分考慮了市場應用,根據無線局域網應用的不同情況,可以以單點式、集中式等不同的模式工作,同時也可以和現有的運營商系統結合起來,支持大規模的運營級服務。此外,用戶的使用場景不同,WAPI的實現和工作方式也略有詫異。WAPI的用戶使用場景主要有以下幾種: 1. 企業級用戶應用場景:有AP和獨立的AS(鑒別服務器),內部駐留ASU(鑒別服務單元),實現多個AP和STA證書的管理和用戶身份的鑒別; 2. 小公司和家庭用戶應用場景:有AP,ASU可駐留在AP中; 3. 公共熱點用戶應用場景:有AP,ASU駐留在接入控制服務器中; 4. 自組網用戶應用場景:無AP,各STA在應用上是對等的,采用共享密鑰來實現鑒別和保密。 圖1 狀態轉換圖 WAI 與WAI相關的STA的狀態轉換圖 圖1給出了與WAI相關的STA的狀態轉換圖,與ISO/IEC 8802.11-1999的5.5相比,該狀態圖將原有的“鑒別”改為了“鏈路驗證”,此外新增了專用于處理WAI過程的“鑒別狀態”。這樣,STA總共需要維護三個狀態變量:鏈路驗證狀態,關聯狀態和鑒別狀態,由此決定了STA將會有四種本地狀態,如圖狀態1~4所示。其中STA和AP之間的WAI鑒別過程處于狀態3。 鑒別系統結構 圖2描述了鑒別請求者、鑒別器和鑒別服務實體之間的關系及信息交換過程。這里首先介紹幾個重要概念,有助于對鑒別系統結構的理解。 鑒別器實體AE:駐留在AP中,在接入服務前,提供鑒別操作。 鑒別請求者實體ASUE:駐留在STA中,需通過鑒別服務單元ASU進行鑒別。 鑒別服務實體ASE:駐留在ASU中,為鑒別器和鑒別請求者提供相互鑒別。 在圖2中,鑒別器的受控端口處于未鑒別狀態,鑒別器系統拒絕提供服務,鑒別器實體利用非受控端口和鑒別請求者通信。 受控與非受控端口可以是連接到同一物理端口的兩個邏輯端口,所有通過物理端口的數據都可以到達受控端口和非受控端口,并根據鑒別狀態決定數據的實際流向。 受控端口:只有當該端口的鑒別狀態為已鑒別時,才允許協議數據通過。只有通過鑒別的STA才能使用的AP提供的數據端口為受控端口。 非受控端口:協議數據的傳送不受當前鑒別狀態的限制。AP提供STA連接到鑒別服務單元ASU的端口即為非受控端口。 需要說明的是,除鑒別數據外,系統中AP與STA之間的網絡協議數據的交換都是通過一個或多個受控端口來實現的。受控端口狀態由系統鑒別控制參數確定。 另一個重要概念是鑒別服務單元ASU,前面已經提到,在整個WAI鑒別過程中,ASU作為第三方起著提供鑒別服務的作用。此外,ASU還擔當著為STA和AP提供證書的頒發、認證、吊銷等功能。一個ASU可以管理一個或多個BSS,在同一個ASU的管理范圍內,STA與AP之間需通過ASU實現證書的雙向認證。 圖2 鑒別系統結構WAI鑒別基礎結構 在BSS中,當STA關聯或重新關聯至AP時,必須進行相互身份鑒別。若鑒別成功,則AP允許STA接入,否則解除其鏈路驗證。整個鑒別過程包括證書鑒別、單播密鑰協商與組播密鑰通告。 STA與AP之間的鑒別數據分組利用以太類型字段為0x88B4的WAPI協議傳送,AP與ASU之間的鑒別數據報文通過端口號為3810的UDP套接口傳輸。 在WAI的整個過程中,涉及到數種加/解密和消息摘要等算法,可歸納如表1所示。 基于WAI的安全接入控制分類 根據WLAN的不同類型,可將基于WAI的安全接入控制作以下分類。 BSS(有AP) WAI典型范例,采用公鑰密碼技術實現STA與AP之間的相互身份鑒別,證書鑒別成功后分單播密鑰協商和組播密鑰通告。 IBSS(Ad Hoc,無AP) WAI采用共享密鑰完成STA之間的相互身份鑒別。網絡中各個STA約定一個共享密鑰,用戶通過設置(輸入)共享密鑰接入網絡,和其他用戶交換信息。用戶輸入的為共享主密鑰。 WDS模式 WAI采用共享密鑰完成STA之間的相互身份鑒別。網絡中各個STA約定一個共享密鑰,用戶通過設置(輸入)共享密鑰接入網絡,和其他用戶交換信息。用戶輸入的為共享主密鑰。 WPI WPI采用國家密碼管理委員會辦公室批準的用于WLAN的SSF43對稱分組加密算法對MAC子層的MSDU進行加/解密處理,有兩種工作模式:用于數據保密的OFB模式和用于完整性校驗的CBC-MAC模式。WPI封裝過程 數據發送時,WPI的封裝過程為: 1.利用加密密鑰和數據分組序號PN,通過工作在OFB模式的加密算法對MSDU(包括SNAP)數據進行加密,得到MSDU密文; 2.利用完整性校驗密鑰與數據分組序號PN,通過工作在CBC-MAC模式的校驗算法對完整性校驗數據進行計算,得到完整性校驗碼MIC; 3.封裝后再組幀發送。 WPI解封裝過程 數據接收時,WPI的解封裝過程為: 1.判斷數據分組序號PN是否有效,若無效,則丟棄該數據; 2.利用完整性校驗密鑰與數據分組序號PN,通過工作在CBC-MAC模式的校驗算法對完整性校驗數據進行本地計算,若計算得到的值與分組中的完整性校驗碼MIC不同,則丟棄該數據; 3.利用解密密鑰與數據分組序號PN,通過工作在OFB模式的解密算法對分組中的MSDU密文進行解密,恢復出MSDU明文; 4.去封裝后將MSDU明文遞交至上層處理。 結語 目前,我們已用軟件實現了STA的WAPI機制,運行結果完全能夠滿足GB15629.11標準的要求。此外,我們還使用硬件描述語言Verilog HDL對WPI的封裝和解封裝過程進行了RTL描述,并從數字電路設計的角度對其進行了優化?傮w而言,WPI硬件仿真結果較WPI軟件運行在時間上體現了強大的優勢,這對于保證無線局域網數據通信的高速性無疑是很重要的一點。當然,WPI軟件可以與驅動程序相結合,體現低成本和易維護的特點。對于WAI,整個過程處在AP和STA之間網絡協議數據通信之前,因此對時間的要求要略遜一些,而過程相對繁雜,筆者認為更宜用軟件實現。 |