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