802.11X用户身份验证
靜態(tài)WEP企圖同時解決802.11無線網(wǎng)絡安全的兩個問題。它即打算提供身份驗證以限定擁有特定密鑰方能進行網(wǎng)絡訪問,也想要提供機密性以在數(shù)據(jù)經(jīng)過無線鏈路時予以加密。然而,它在這兩方面的表現(xiàn)都不是特別好。
802.1X是一個框架,它是IEEE采用IETF的可擴展身份驗證協(xié)議(Extensible Authentication Protocol,簡稱EAP)制定而成,802.1X為鏈路層提供了身份驗證的機制。靜態(tài)WEP只是對擁有加密密鑰的機器進行身份驗證,而802.1X則允許網(wǎng)關人員對用戶而非機器進行身份驗證,同時可以確保用戶連接至合法,經(jīng)過授權而非竊取個人數(shù)據(jù)的冒牌網(wǎng)絡。
1. 可擴展身份驗證協(xié)議(EAP)
EAP是一種簡單的封裝方式,可以運行于任何的鏈路層,EAP的基本架構如下圖所示,在設計上是為了能夠運行于任何的鏈路層以使用各種身份驗證方式。
圖1 EAP的架構
1.1 EAP的封包格式
EAP的封包格式如下圖所示,EAP并不是非得運行在PPP之上,下圖的封包可以通過任何一種幀來承載。
圖2 EAP的封包格式
Code
Code(類型代碼)長度為1個字節(jié),代表EAP封包的類型,封包的Data(數(shù)據(jù))字段必須通過此字段來解析
Identifier
Identifier(標識符)用來匹配請求與響應,重傳時會使用相同的identifier number,新的重傳則使用新的identifer number
Length
Length字段記載了整個封包的總字節(jié)數(shù),包括Code、Identifier、Length以及Data這4個字段
Data
Data字段長度不定,可能不占任何字節(jié),Data字段如何解析完全取決于Code字段的值
1.2 EAP的請求與響應
EAP的交換操作由請求與響應構成,如下圖所示。Code字段的值為1代表請求,2代表響應,Data字段會攜帶一種數(shù)據(jù),可細分為type identifier code以及associated data。
圖3 EAP的請求與響應封包的格式
Type
Type(類型)字段代表請求或響應類型。每個封包只能使用一種類型,當無法接受某個請求時,對方可以送出一個NAK來提議使用不同的類型。大于等于4的Type字段值代表身份驗證方式
Type-Data
Type-Data(類型-數(shù)據(jù))字段長度不定,必須根據(jù)每種類型的規(guī)則加以詮釋
類型代碼字段對應的消息如下表所示:
| Type | Message | 含義 |
|---|---|---|
| 1 | Identity | 認證者通常會以身份類型作為最初的請求,簡寫為Request/Identity,表示認證者試圖建立某種用戶名稱以便進行身份驗證,EAP客戶端程序會響應一Response/Identity封包,封包的Type-Data字段包含了用戶名稱 |
| 2 | Notification | 認證者可以使用Notification類型傳送消息給用戶,用戶的系統(tǒng)隨后可將Request/Notification中的消息顯示給用戶看,例如密碼即將過期或者賬號被鎖定的原因。EAP客戶端會響應一個簡單的確認 |
| 3 | NAK | null acknowledgment主要用來建議使用新的身份驗證。認證者會在送出的質(zhì)詢(challenge)消息中指定身份驗證所使用的類型代碼,身份驗證類型的代碼為4及以上的數(shù)字,如果用戶的系統(tǒng)不支持質(zhì)詢所使用的身份驗證類型,可以恢復NAK,NAK的Type-Data字段包含器所建議使用的認證類型 |
表1 EAP的請求與響應數(shù)據(jù)的Type字段的取值和含義
1.3 EAP身份驗證方式
EAP會把證明用戶身份的操作授權給一個稱為EAP method(一組驗證用戶身份的規(guī)則)的附屬協(xié)議,下表列出了一些EAP method以及它們的類型代碼。
| 類型代碼 | 身份驗證協(xié)議 | 說明 |
|---|---|---|
| 4 | MD5 Challenge | EAP中類似CHAP的認證方式 |
| 6 | GTC | 原本打算與RSA SecurID之類的令牌卡(token card)一起使用 |
| 13 | EAP-TLS | 以數(shù)字證書(digital certificate)相互認證 |
| 21 | TTLS | 隧道式TLS,以TLS加密保護較弱的身份驗證方式 |
| 25 | PEAP | 防護型EAP,以TLS加密保護較弱的EAP方式 |
| 18 | EAP-SIM | 以移動電話的用戶識別模塊(Subscriber Identity Module,簡稱SIM)卡進行身份驗證 |
| 29 | MS-CHAP-V2 | Microsoft的經(jīng)加密的密碼身份驗證,見冗余Windows域 |
表2 802.1X身份驗證常用的EAP認證方式(EAP method)
在EAP交換結(jié)束之后,用戶不是認證成功,就是認證失敗。一旦認證者判斷出整個交換過程已經(jīng)完成,就會發(fā)出一個EAP-Success或EAP-Failure幀,以結(jié)束整個EAP交換過程,如下圖所示。
圖4 EAP認證成功與失敗的幀
1.4 EAP交換范例
EAP交換范例如下圖所示,這并不是無線網(wǎng)絡中“實際”可見的交換過程,因為其中用到了一些未曾廣泛部署的協(xié)議。舉這個例子只是為了讓讀者對EAP協(xié)議的運作方式有基本的概念。EAP交換過程是一系列的步驟,從認證請求開始,以成功或失敗信息結(jié)束。
圖5 簡單的EAP交換過程
可擴展性既是EAP最大的優(yōu)點也是最大的缺點。可擴展性讓協(xié)議能夠在有新的需求福顯示開發(fā)新的功能。正因為可擴展性,EAP已經(jīng)從保留PPP協(xié)議編號的方式轉(zhuǎn)變?yōu)闊o線局域網(wǎng)安全防護的基礎。不過要正確部署EAP可能不容易,因為要選擇正確的協(xié)議選項之前必須先理清一大堆問題。EAP之所以具有靈活性,關鍵在于它本身只是一個框架,當新的需求浮現(xiàn)時就可以設計出新的認證方式,就算是用于無線局域網(wǎng)也不成問題。
2. 802.1X:網(wǎng)絡連接端口的認證
在鏈路層采用認證機制并不是什么新鮮事,網(wǎng)絡連接端口的認證在撥號訪問服務器上已經(jīng)使用了多年,IEEE采用了PPP認證協(xié)議并開發(fā)了基于局域網(wǎng)絡的版本,最后出爐的標準稱為802.1X,“基于端口的網(wǎng)絡訪問控制”(Port-Based Network Access Control)。
2.1 802.1X的架構及相關術語
申請者(supplicant)
尋求訪問網(wǎng)絡資源的用戶機器
認證者(authenticator)
網(wǎng)絡訪問由認證者(authenticator)控制,它扮演著傳統(tǒng)撥號網(wǎng)絡中訪問服務器的角色,申請者與認證者在規(guī)范說明書中稱為端口認證實體(Port Authentication Entity,簡稱PAE)。
認證服務器
認證者只負責鏈路層的認證交換過程,并不維護任何用戶信息。任何認證請求均會被轉(zhuǎn)送至認證服務器進行實際的處理
申請者與認證者之間使用802.1X所定義的EAPover LAN(簡稱EAPOL)協(xié)議,在后端則是通過RADIUS封包來傳遞EAP,如下圖所示。
圖6 802.1X的架構
2.2 EAPOL的封裝格式
EAPOL的基本幀格式如下圖所示。
圖7 EAPOL的幀格式
EAPOL幀的組成字段如下:
MAC標頭
根據(jù)鏈路層協(xié)議使用相應的標頭。
Ethernet type
Ethernet type(以太網(wǎng)類型)字段包含了長度為2個字節(jié)的type code(類型代碼),EAPOL的類型代碼為88-8e。
Version
第一版標準化于2001年版的802.1X,第2版規(guī)范與802.1X-2004。
Pocket Type
為了讓EAP能夠適用于基于連接端口的LAN環(huán)境,EAPOL加入了一些消息類型,下表列出了所有的封包類型及其說明。
| 封包類型 | 名稱 | 說明 |
|---|---|---|
| 0000 0000 | EAP-Packet | 包含了一個經(jīng)過封裝的EAP幀,大部分的幀均屬于EAP-Packet幀 |
| 0000 0001 | EAPOL-Start | 申請者可以主動送出EAPOL-Start幀,不必等候來自認證者的質(zhì)詢 信息。認證者會送出一個EAP-Request/Identity幀作為響應 |
| 0000 0010 | EAPOL-Logoff | 當某個系統(tǒng)不再需要使用網(wǎng)絡時,便可發(fā)出一個EAPOL-Logoff幀, 讓連接端口重新回到未授權狀態(tài) |
| 0000 0011 | EAPOL-Key | EAPOL可用來交換加密密鑰信息 |
| 0000 0100 | EAPOL-Encap- sulated-ASF-Alert |
警告標準討論(Alerting Standards Forum,簡稱ASF) 定義了一種方式,可讓警告信息通過此類型的幀傳送給 未經(jīng)授權的連接端口 |
Packet Body Length
該字段用來計算Pocket Body字段的長度。
Packet Body
除EAPOL-Start與EAPOL-Logoff消息外,此字段會出現(xiàn)于所有的EAPOL幀中。EAP-Packet幀所封裝的是一個EAP封包,EAPOL-Key幀所封裝的是一個密鑰,而EAPOL-Encapsulated-ASF-Alert幀所封裝的則是一段警告信息。
3. 802.1X與無線局域網(wǎng)
802.1X為任何局域網(wǎng),包括無線局域網(wǎng),提供了一個用戶認證的框架。802.11網(wǎng)絡中的802.1X交換范例如下圖所示。
圖8 802.11網(wǎng)絡上典型的802.1X交換
上圖802.11網(wǎng)絡上的802.1X交換步驟如下:
申請者通過Association Request/Association Response關聯(lián)至802.11網(wǎng)絡;
申請者發(fā)出一個EAPOL-Start消息,開始進行802.1X交換過程。這個步驟并非必要;
“正常的”EAP交換過程開始。認證者發(fā)出一個EAP-Request/Identity幀,申請者以EAP-Response/Identity幀進行回復,此幀隨后被轉(zhuǎn)換為Radius-Access-Request封包送給RADIUS服務器;
RADIUS服務器判斷需要使用哪個類型的認證,并在送出的EAP-Request信息中指定認證方式的類型。EAP-Request被封裝于Radius-Access-Challenge封包中送給接入點。接入點收到封包后即將EAP-Request傳遞給申請者。EAP-Request信息通常會被表示成EAP-Request/Method,其中Method代表所使用的EAP認證方式;
申請者從用戶方面取得響應,然后返回EAP-Response。認證者會將此響應轉(zhuǎn)換為送給RADIUS的Radius-Access-Request封包,針對質(zhì)詢信息所做的響應則存放于數(shù)據(jù)字段中;
既然RADIUS服務器送出一個Radius-Access-Accept封包允許對方訪問網(wǎng)絡,因此認證者會發(fā)出一個EAP-Success幀并且授權申請者使用連接端口;
收到EAP-Success封包的確認(ACK)后,接入點會立即使用EAPOL-Key消息將密鑰分配給申請者;
一旦申請者安裝好密鑰,就可以開始傳送數(shù)據(jù)幀來訪問網(wǎng)絡;
當申請者不再需要訪問網(wǎng)絡,就會送出一個EAPOL-Logoff消息,使連接端口恢復成未授權狀態(tài)。
EAPOL-Key幀讓接入點能夠傳送密鑰給客戶端,密鑰交互幀只有在認證成功之后才會傳送,這樣可以避免密鑰信息外泄。EAPOL-Key幀也可以用來定期動態(tài)更新密鑰。
總結(jié)
以上是生活随笔為你收集整理的802.11X用户身份验证的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows phone 8 使用页面
- 下一篇: C# 强制GC垃圾回收