企業(yè)辦公網(wǎng)接入認(rèn)證技術(shù)詳解(企業(yè)辦公網(wǎng)接入認(rèn)證技術(shù)詳解圖)
背 景
辦公網(wǎng)承載著企業(yè)內(nèi)部眾多關(guān)鍵業(yè)務(wù)系統(tǒng),如果終端連接到網(wǎng)絡(luò)中便可直接訪問辦公網(wǎng)絡(luò)資源,會(huì)帶來(lái)網(wǎng)絡(luò)被攻擊的風(fēng)險(xiǎn),企業(yè)內(nèi)部資料有可能被具有非法意圖的攻擊者竊取。如何保證用戶接入網(wǎng)絡(luò)的合規(guī)與合法性,早已成為業(yè)界關(guān)注的焦點(diǎn)。網(wǎng)絡(luò)接入認(rèn)證技術(shù)就是在這樣的背景下產(chǎn)生的。
多種網(wǎng)絡(luò)接入認(rèn)證方式
接入認(rèn)證的方式有很多種,在園區(qū)網(wǎng)中常見的有以下四種:
1、802.1X(Port-Based Network Access Control)認(rèn)證:
? 是一個(gè)基于端口的網(wǎng)絡(luò)存取控制標(biāo)準(zhǔn),為L(zhǎng)AN提供點(diǎn)對(duì)點(diǎn)式的安全接入;
? 802.1X的最終目的就是確認(rèn)一個(gè)物理端口或Wi-Fi連接是否可用,如果認(rèn)證成功就允許使用該物理端口或Wi-Fi連接。
2、Portal認(rèn)證:
? 也稱Web認(rèn)證,是一種對(duì)用戶訪問網(wǎng)絡(luò)的權(quán)限進(jìn)行控制的認(rèn)證方法;
? 當(dāng)用戶需要訪問認(rèn)證服務(wù)器以外的其它網(wǎng)絡(luò)資源時(shí),就必須通過瀏覽器在Portal服務(wù)器上進(jìn)行身份認(rèn)證,只有認(rèn)證通過后才可以訪問相關(guān)網(wǎng)絡(luò)資源。
3、PPPoE(Point-to-Point Protocol Over Ethernet)認(rèn)證:
? 從窄帶技術(shù)演化而來(lái),PPP最早就是專門為電話線上網(wǎng)而設(shè)計(jì)的,當(dāng)寬帶普及后,為了兼容以前的電話線用戶習(xí)慣,故在寬帶網(wǎng)絡(luò)中繼承了PPP技術(shù);
? 當(dāng)客戶端要通過PPPoE上網(wǎng)時(shí),它必須首先進(jìn)行發(fā)現(xiàn)階段以識(shí)別對(duì)端的以太網(wǎng)MAC地址,并建立一個(gè)PPPoE ID,這樣才能成功建立一個(gè)會(huì)話,從而訪問網(wǎng)絡(luò)資源。
4、IPoE認(rèn)證:
? 又稱DHCP 認(rèn)證,使用DHCP配合其他技術(shù)實(shí)現(xiàn)認(rèn)證,如DHCP OPTION擴(kuò)展字段進(jìn)行認(rèn)證;
? IPoE認(rèn)證基于上網(wǎng)用戶的物理位置(唯一的VLAN ID/PVC ID)對(duì)用戶進(jìn)行認(rèn)證和計(jì)費(fèi),用戶上網(wǎng)時(shí)無(wú)需輸入用戶名和密碼。
在企業(yè)辦公網(wǎng)場(chǎng)景中最常用到的就是802.1X認(rèn)證和Portal認(rèn)證。本文將對(duì)802.1X認(rèn)證技術(shù)和Portal認(rèn)證技術(shù)進(jìn)行詳細(xì)講解。
802.1X認(rèn)證技術(shù)詳解
802.1X認(rèn)證系統(tǒng)構(gòu)成
如圖1所示,802.1X認(rèn)證系統(tǒng)由懇請(qǐng)者、認(rèn)證者、認(rèn)證服務(wù)器三個(gè)角色構(gòu)成。在實(shí)際應(yīng)用中,三者分別對(duì)應(yīng)為:客戶端(Client)、網(wǎng)絡(luò)接入控制設(shè)備(Network Access Server,NAS)、RADIUS Server。
▲圖1:802.1X認(rèn)證系統(tǒng)構(gòu)成
? 懇請(qǐng)者
懇請(qǐng)者是客戶端所扮演的角色;
它請(qǐng)求對(duì)網(wǎng)絡(luò)的訪問,并對(duì)認(rèn)證者的請(qǐng)求報(bào)文進(jìn)行應(yīng)答;
懇請(qǐng)者必須運(yùn)行符合802.1X客戶端標(biāo)準(zhǔn)的軟件(目前各操作系統(tǒng)均已集成支持)。
? 認(rèn)證者
認(rèn)證者在客戶端與認(rèn)證服務(wù)器之間,一般是交換機(jī)、AP等接入設(shè)備;
認(rèn)證者設(shè)備也稱為NAS,它要負(fù)責(zé)把從客戶端收到的認(rèn)證信息封裝成RADIUS格式的報(bào)文并轉(zhuǎn)發(fā)給RADIUS Server,同時(shí)要把從RADIUS Server收到的信息進(jìn)行解析后轉(zhuǎn)發(fā)給客戶端;
認(rèn)證者設(shè)備有兩種類型的端口:受控端口(Controlled Port)和非受控端口(Uncontrolled Port):
? 連接在受控端口的用戶只有通過認(rèn)證才能訪問網(wǎng)絡(luò)資源;
? 連接在非受控端口的用戶無(wú)須經(jīng)過認(rèn)證便可以直接訪問網(wǎng)絡(luò)資源。非受控端口主要是用來(lái)連接認(rèn)證服務(wù)器,以便保證服務(wù)器與設(shè)備的正常通訊。
? 認(rèn)證服務(wù)器
認(rèn)證服務(wù)器通常為RADIUS服務(wù)器,和認(rèn)證者配合完成認(rèn)證;
認(rèn)證服務(wù)器保存了用戶名和密碼,以及相應(yīng)的授權(quán)信息;
一臺(tái)服務(wù)器可以對(duì)多臺(tái)認(rèn)證者提供認(rèn)證服務(wù),這樣就可以實(shí)現(xiàn)對(duì)用戶的集中管理。
802.1X認(rèn)證狀態(tài)機(jī)
認(rèn)證通過前(非授權(quán)狀態(tài))
▲圖2:認(rèn)證通過前的端口狀態(tài)
如圖2,端口未認(rèn)證,受控端口開路,只允許EAPOL(Extensible Authentication Protocol over LAN)報(bào)文和廣播報(bào)文(DHCP,ARP)通過端口,不允許其它業(yè)務(wù)流通過。
? 認(rèn)證通過后(授權(quán)狀態(tài))
▲圖3:認(rèn)證通過后的端口狀態(tài)
如圖3,認(rèn)證通過后,受控端口閉合,用戶的業(yè)務(wù)流可以順利通過。
? 認(rèn)證狀態(tài)的保持
認(rèn)證者可以定時(shí)要求客戶端重新認(rèn)證,時(shí)間可配置,重新認(rèn)證的過程對(duì)用戶是無(wú)感知的,即用戶不需要重新輸入密碼。
? 下線方式
1) 物理端口Down——拔插網(wǎng)線、關(guān)機(jī)、斷開Wi-Fi等;
2) 重新認(rèn)證不通過或超時(shí);
3) 用戶主動(dòng)下線;
4) 網(wǎng)管強(qiáng)制下線。
802.1X認(rèn)證基礎(chǔ)協(xié)議
▲圖4:設(shè)備間的報(bào)文交互
如圖4,客戶端和認(rèn)證者之間用EAPoL格式封裝EAP協(xié)議傳送認(rèn)證信息;認(rèn)證者與認(rèn)證服務(wù)器之間通過RADIUS協(xié)議傳送信息。
? EAPoL協(xié)議
802.1x協(xié)議定義了一種報(bào)文封裝格式,這種報(bào)文稱為EAPoL(EAP over LANs局域網(wǎng)上的擴(kuò)展認(rèn)證協(xié)議)報(bào)文,主要用于在客戶端和認(rèn)證系統(tǒng)之間傳送EAP協(xié)議報(bào)文,以允許EAP協(xié)議報(bào)文在LAN上傳送。
▲圖5:EAPoL報(bào)文格式
EAPoL報(bào)文格式如圖5,下面將對(duì)報(bào)文各字段進(jìn)行解釋:
● PAE(Port Access Entity)Ethernet Type:2字節(jié),表示協(xié)議類型,為0x888E;
● Protocol Version:1字節(jié),表示EAPOL幀的發(fā)送方所支持的協(xié)議版本號(hào);
● Type:1字節(jié),表示EAPoL數(shù)據(jù)幀類型,具體類型如圖6所示;
▲圖6:EAPoL數(shù)據(jù)幀類型
● Length:2字節(jié),表示數(shù)據(jù)長(zhǎng)度,也就是“Packet Body”字段的長(zhǎng)度,單位為字節(jié)。如果為0,則表示沒有后面的數(shù)據(jù)域;
? EAPoL-Start和EAPoL-Logoff報(bào)文的Length值都為0
● Packet Body:表示數(shù)據(jù)內(nèi)容,根據(jù)不同的Type有不同的格式。
? EAP協(xié)議
當(dāng)EAPoL數(shù)據(jù)幀格式Type域?yàn)镋AP-Packet時(shí),Packet Body為EAP數(shù)據(jù)報(bào)文。
▲圖7:EAP報(bào)文格式
EAP報(bào)文格式如圖7,下面將對(duì)報(bào)文各字段進(jìn)行解釋:
●Code:一個(gè)字節(jié),指明EAP包的類型,共有4種,定義如下:
1——–Request
2——–Response
3——–Success
4——–Failure
由于該字段值只定義了1到4,如果EAP報(bào)文的該字段為其它值,則應(yīng)被認(rèn)證者和客戶端丟棄;
● Identifier:一個(gè)字節(jié),用于應(yīng)答報(bào)文和請(qǐng)求報(bào)文之間進(jìn)行匹配;
● Length:兩個(gè)字節(jié),EAP包的長(zhǎng)度,包含Code、Identifier、Length和Data域,單位為字節(jié);
● Data:EAP數(shù)據(jù)包內(nèi)容,長(zhǎng)度為零個(gè)或多個(gè)字節(jié),由Code類型決定。Request和Response類型報(bào)文的Data域格式如圖8所示:
▲圖8:Request/Response Data域格式
Type:1個(gè)字節(jié),標(biāo)識(shí)EAP的認(rèn)證類型,Type字段目前定義的值及其簡(jiǎn)要說明如下:
? Type=1 —-Identifier(用來(lái)詢問對(duì)端的身份)
? Type=2 —-Notification(非必須的一個(gè)消息,傳送一些警告消息,比如提示密碼將要超期、OTP的順序號(hào)碼接近零以及認(rèn)證失敗的警告等)
? Type=3 —-Nak (Response Only)(Request報(bào)文中的認(rèn)證類型不可接受時(shí)回復(fù)該類型的報(bào)文)
? Type=4 —-MD5-Challenge(類似于CHAP中的MD5-Challenge,使用MD5算法)
? Type=5 —-One-Time Password (OTP,一種密碼交互的方式)
? Type=6 —-Generic Token Card(通用令牌卡類型,適用于各種需要用戶輸入信息的令牌卡的實(shí)現(xiàn))
? Type=254 —-Expanded Types(供廠商支持自己的擴(kuò)展類型)
Type=255 —-Experimental use(在實(shí)驗(yàn)新的類型時(shí)使用)
Type Data:該字段的內(nèi)容由Type字段的值決定。
? RADIUS協(xié)議
RADIUS是AAA(Authentication、Authorization、Accounting)協(xié)議的一個(gè)實(shí)現(xiàn),RADIUS協(xié)議規(guī)定了NAS與RADIUS服務(wù)器之間如何傳遞用戶信息和記賬信息,RADIUS服務(wù)器負(fù)責(zé)接收用戶的連接請(qǐng)求,完成驗(yàn)證,并把傳遞服務(wù)給用戶所需的配置信息返回給NAS。
▲圖9:RADIUS報(bào)文格式
RADIUS報(bào)文格式如圖9,下面將對(duì)報(bào)文各字段進(jìn)行解釋:
● Code:代指數(shù)據(jù)包的編號(hào),標(biāo)識(shí)了該數(shù)據(jù)包是什么類型的,如果是未知類型的數(shù)據(jù)包就會(huì)被默認(rèn)丟棄,目前大致有以下幾種常用編號(hào):
1—-Access-Request(接入請(qǐng)求,認(rèn)證用)
2—-Access-Accept (同意接入,認(rèn)證用)
3—-Access-Reject (拒絕接入,認(rèn)證用)
4—-Accounting-Request(計(jì)費(fèi)請(qǐng)求,計(jì)費(fèi)用)
5—-Accounting-Response (計(jì)費(fèi)響應(yīng),計(jì)費(fèi)用)
11—-Access-Challenge (接入挑戰(zhàn),認(rèn)證用)
● Identifier:RADIUS報(bào)文標(biāo)識(shí);
● Length:RADIUS報(bào)文長(zhǎng)度;
● Authenticator:用于RADIUS Client 和Server之間消息認(rèn)證的有效性,和密碼隱藏算法。
? 在Access-Request數(shù)據(jù)包中,Authenticator的值是16字節(jié)隨機(jī)數(shù),被稱為請(qǐng)求認(rèn)證器,認(rèn)證字的值要不能被預(yù)測(cè)并且在一個(gè)共享密鑰的生命期內(nèi)唯一;
? 在Access-Accept、Access-Reject和Access-Challenge數(shù)據(jù)包中的Authenticator被稱為響應(yīng)認(rèn)證器,值定義為MD5(Code ID Length RequestAuth Attributes Secret)。
● Attributes:存儲(chǔ)用戶的信息,如用戶名,IP地址等。
802.1X認(rèn)證流程詳解
802.1X認(rèn)證過程如圖10:
▲圖10:802.1X認(rèn)證過程
1. 當(dāng)用戶訪問網(wǎng)絡(luò)時(shí)打開(Windows自帶客戶端可自動(dòng)打開)802.1x客戶端程序,根據(jù)提示輸入已經(jīng)在RADIUS服務(wù)器中創(chuàng)建的用戶名和密碼,發(fā)起連接請(qǐng)求,此時(shí),客戶端程序?qū)⑾蛟O(shè)備端發(fā)出認(rèn)證請(qǐng)求幀(EAPoL-Start),啟動(dòng)認(rèn)證過程;
2. NAS收到該報(bào)文后,發(fā)送一個(gè)EAP-Request報(bào)文響應(yīng)客戶端的認(rèn)證請(qǐng)求,要求用戶提供用戶名信息;
3. 客戶端收到EAP-Request之后響應(yīng)一個(gè)EAP-Response報(bào)文,將用戶名封裝在EAP報(bào)文中發(fā)給NAS;
4. NAS將客戶端送來(lái)的EAP-Request報(bào)文與自己的設(shè)備IP、端口等相關(guān)信息一起封裝在RADIUS Access-Request報(bào)文中發(fā)給認(rèn)證服務(wù);
5. 認(rèn)證服務(wù)器收到RADIUS Access-Request報(bào)文后進(jìn)行驗(yàn)證,如果該用戶的相關(guān)信息有效,則對(duì)該用戶發(fā)起一次認(rèn)證挑戰(zhàn)(RADIUS Access-Challenge),要求用戶提供密碼;
6. NAS收到這條RADIUS Access-Challenge報(bào)文后,將挑戰(zhàn)請(qǐng)求用EAP-Challenge Request轉(zhuǎn)發(fā)給客戶端;
7. 客戶端接到挑戰(zhàn)請(qǐng)求后,將用戶密碼進(jìn)行MD5加密處理,并封裝在EAP-Challenge Response中返回給NAS;
8. NAS將用戶的EAP-Challenge Response封裝為RADIUS Access-Request報(bào)文轉(zhuǎn)發(fā)給認(rèn)證服務(wù)器;
9. 認(rèn)證服務(wù)器對(duì)用戶的密碼進(jìn)行驗(yàn)證,如果驗(yàn)證失敗,服務(wù)器將返回一條RADIUS Access-Reject報(bào)文,拒絕用戶的認(rèn)證請(qǐng)求;如果驗(yàn)證通過,則發(fā)送一條RADIUS Access-Accept報(bào)文給交換機(jī);
10. NAS在接到認(rèn)證服務(wù)器發(fā)來(lái)的RADIUS Access-Accept之后,解除對(duì)客戶端的訪問控制,同時(shí)發(fā)送一條EAP-Success報(bào)文給客戶端通知其認(rèn)證已經(jīng)成功;
11. NAS向認(rèn)證服務(wù)器發(fā)送一條RADIUS Accounting-Request(Start)報(bào)文,申請(qǐng)對(duì)該用戶進(jìn)行記賬;
12. 認(rèn)證服務(wù)器接到請(qǐng)求后開始記賬,并向NAS返回一條RADIUS Accounting-Response報(bào)文,告知記賬操作已經(jīng)開始;
13. 用戶下線時(shí),客戶端向NAS發(fā)送一條EAPoL-Logoff報(bào)文,申請(qǐng)下線;
14. NAS向認(rèn)證服務(wù)器發(fā)送RADIUS Accounting-Request(Stop)請(qǐng)求,申請(qǐng)對(duì)該用戶停止記賬;
15. 認(rèn)證服務(wù)器收到請(qǐng)求后停止記賬,同時(shí)響應(yīng)一條RADIUS Accounting-Response報(bào)文;
16. NAS發(fā)送一條EAPoL Failure消息給客戶端提示下線成功,并打開對(duì)該用戶的訪問控制。
Portal認(rèn)證技術(shù)詳解
Portal認(rèn)證,以其輕量、易部署等特點(diǎn),受到很多企業(yè)用戶的歡迎。Portal認(rèn)證業(yè)務(wù)可以為管理者提供方便的管理功能,如要求所有用戶在門戶網(wǎng)站進(jìn)行認(rèn)證,門戶網(wǎng)站可以開展企業(yè)個(gè)性化信息推廣業(yè)務(wù)等,為信息傳播提供一個(gè)良好的載體。
Portal認(rèn)證系統(tǒng)構(gòu)成
▲圖11:Portal認(rèn)證系統(tǒng)
? Client
認(rèn)證客戶端,通常是一個(gè)瀏覽器,運(yùn)行HTTP協(xié)議,用戶通過瀏覽器上網(wǎng)時(shí)瀏覽器將發(fā)出HTTP請(qǐng)求。
? NAS
在網(wǎng)絡(luò)拓?fù)渲幸话闶墙尤雽釉O(shè)備,和用戶終端設(shè)備直接相連;
在NAS上需要啟動(dòng)Portal認(rèn)證功能,NAS接收Portal Server發(fā)過來(lái)的用戶認(rèn)證信息,并向RADIUS Server發(fā)起認(rèn)證請(qǐng)求,根據(jù)認(rèn)證結(jié)果設(shè)置用戶是否可以上網(wǎng),同時(shí)向Portal Server反饋認(rèn)證結(jié)果。
? Portal 服務(wù)器
提供Portal認(rèn)證頁(yè)面,和NAS交互認(rèn)證客戶端的認(rèn)證信息;
Portal 服務(wù)器向客戶端推送認(rèn)證頁(yè)面,用戶在認(rèn)證頁(yè)面上填入帳號(hào)、密碼等信息,提交到Portal服務(wù)器,Portal服務(wù)器提取其中的賬號(hào)信息,并將此信息發(fā)送到NAS,同時(shí)根據(jù)NAS反饋的認(rèn)證結(jié)果,通過頁(yè)面反饋給用戶;
Portal服務(wù)器可分為內(nèi)置Portal服務(wù)器和外置Portal服務(wù)器兩種。
? 通常交換機(jī)/AC會(huì)內(nèi)置Portal服務(wù)器。受限于接入設(shè)備存儲(chǔ)空間、功能和性能,內(nèi)置Portal服務(wù)器只適合功能簡(jiǎn)單、接入人數(shù)少的場(chǎng)景;
? 如果需要實(shí)現(xiàn)微信接入、短信接入等復(fù)雜的功能,考慮到接入設(shè)備性能和認(rèn)證體驗(yàn),需要具有獨(dú)立于接入設(shè)備之外的硬件服務(wù)器來(lái)承載Portal認(rèn)證業(yè)務(wù)。
? RADIUS服務(wù)器
與NAS進(jìn)行交互,提供基于RADIUS協(xié)議的用戶認(rèn)證,從而完成對(duì)用戶的認(rèn)證、計(jì)費(fèi)和授權(quán)。
Portal認(rèn)證狀態(tài)機(jī)
? 認(rèn)證通過前
客戶端通過手動(dòng)配置或DHCP獲取的一個(gè)公網(wǎng)IP進(jìn)行認(rèn)證,通過認(rèn)證前用戶的所有HTTP請(qǐng)求都重定向(利用的是HTTP協(xié)議中的302報(bào)文的特性)到Portal服務(wù)器。
? 認(rèn)證通過后
接入設(shè)備會(huì)打開端口,允許用戶訪問被管理員授權(quán)的互聯(lián)網(wǎng)資源。
? 認(rèn)證狀態(tài)的保持
客戶端和Portal 服務(wù)器定時(shí)發(fā)送心跳報(bào)文交互,對(duì)于客戶端來(lái)說,4個(gè)心跳報(bào)文沒有收到答復(fù),就認(rèn)為自己已經(jīng)下線,重新發(fā)起認(rèn)證;對(duì)于Portal服務(wù)器,在指定的時(shí)間內(nèi)沒有收到心跳報(bào)文,就認(rèn)為用戶下線,并通知接入設(shè)備將用戶下線。但在實(shí)際應(yīng)用中,以銳捷的交換機(jī)(交換機(jī)做NAS)為例,如果在一定時(shí)間內(nèi)沒有收到流量即認(rèn)為用戶下線。
? 下線方式
1) 物理端口Down——拔插網(wǎng)線、關(guān)機(jī)、斷開Wi-Fi等;
2) 重新認(rèn)證不通過或超時(shí);
3) 用戶主動(dòng)下線;
4) 網(wǎng)管強(qiáng)制下線。
Portal認(rèn)證基礎(chǔ)協(xié)議
? Portal協(xié)議
Portal協(xié)議是一種私有協(xié)議,承載于TCP上。Portal協(xié)議目前有兩個(gè)版本:Portal v1.0和Portal v2.0,v2.0協(xié)議是對(duì)原有v1.0協(xié)議存在的漏洞和不合理處進(jìn)行部分完善:
1. 修改了報(bào)文格式,在AttrNum字段之后增加了16個(gè)字節(jié)的Authenticator字段;
2. 增加對(duì)所有協(xié)議報(bào)文的校驗(yàn),包括上線流程、下線流程和查詢流程;
3. 修改了TextInfo屬性,使其完全符合TLV【Tag(標(biāo)簽),Length(長(zhǎng)度),Value(值)】格式。
若v1.0與v2.0有沖突的地方,目前均以v2.0版本為準(zhǔn)。
▲圖12:Portal報(bào)文格式
Portal報(bào)文如圖12,下面將對(duì)各字段進(jìn)行解釋:
● Ver:協(xié)議的版本號(hào),長(zhǎng)度為 1 字節(jié),Ver = 0x01或0x02;
● Type:定義報(bào)文的類型,長(zhǎng)度為 1 字節(jié);
● Pap/Chap :Pap/Chap字段定義此用戶的認(rèn)證方式,長(zhǎng)度為 1 字節(jié),只對(duì)Type值為 0x03 的認(rèn)證請(qǐng)求報(bào)文有意義:
? Chap方式認(rèn)證---值為0x00
? Pap 方式認(rèn)證---值為0x01
● Rsv:Rsv目前為保留字段,長(zhǎng)度為 1 字節(jié),在所有報(bào)文中值為 0;
● SerialNo:報(bào)文的序列號(hào),長(zhǎng)度為 2 字節(jié),由PortalServer隨機(jī)生成,該字段作用主要用于區(qū)別同類型但不同認(rèn)證流程中的報(bào)文;
● ReqID:2個(gè)字節(jié),由認(rèn)證設(shè)備隨機(jī)生成,該字段作用主要用于區(qū)別同類型但不同認(rèn)證流程中的報(bào)文,該字段對(duì)于PAP認(rèn)證無(wú)意義,在Chap認(rèn)證中,該字段低8位作為Chap_Password 生成過程中MD5函數(shù)的輸入;
● UserIP:Portal用戶的IP地址,長(zhǎng)度為 4 字節(jié),其值由PortalServer根據(jù)其獲得的IP地址填寫,在所有的報(bào)文中此字段都要有具體的值;
● UserPort:該字段目前沒有用到,長(zhǎng)度為 2 字節(jié),在所有報(bào)文中其值為0;
● ErrCode:該字段和Type字段一起表示一定的意義,長(zhǎng)度為 1字節(jié),各組合意義如下表:
▲表1: ErrCode值表
說明:其中type類型為9、10的兩個(gè)報(bào)文其ErrCode的定義為v2.0新增定義。
● AttrNum:表示其后邊可變長(zhǎng)度的屬性字段屬性的個(gè)數(shù),長(zhǎng)度為 1 字節(jié),即最多可攜帶屬性255個(gè)屬性。
Portal認(rèn)證流程詳解
Portal認(rèn)證流程如下:
▲圖13:Portal認(rèn)證流程
1. 用戶通過標(biāo)準(zhǔn)的DHCP協(xié)議獲取到規(guī)劃的IP地址;
2. 用戶打開IE,訪問某個(gè)網(wǎng)站,發(fā)起HTTP請(qǐng)求;
3. NAS截獲用戶的HTTP請(qǐng)求,由于用戶沒有認(rèn)證過,就強(qiáng)制到Portal服務(wù)器;
4. Portal服務(wù)器向用戶終端推送Web認(rèn)證頁(yè)面;
5. 用戶在認(rèn)證頁(yè)面上填入帳號(hào)、密碼等信息,提交到Portal服務(wù)器;
6. Portal服務(wù)器將接收到的用戶認(rèn)證信息發(fā)給NAS;
7. NAS向RADIUS服務(wù)器發(fā)起RADIUS認(rèn)證;
8. RADIUS服務(wù)器根據(jù)用戶信息判斷用戶是否合法,向NAS返回認(rèn)證結(jié)果報(bào)文;
9. NAS返回認(rèn)證結(jié)果給Portal服務(wù)器;
10. Portal服務(wù)器根據(jù)認(rèn)證結(jié)果,推送認(rèn)證結(jié)果頁(yè)面;
11. Portal服務(wù)器回應(yīng)NAS收到認(rèn)證結(jié)果報(bào)文,如果認(rèn)證失敗,則流程到此結(jié)束;
12. 認(rèn)證如果成功,NAS發(fā)起計(jì)費(fèi)開始請(qǐng)求給RADIUS服務(wù)器;
13. RADIUS服務(wù)器回應(yīng)計(jì)費(fèi)開始響應(yīng)報(bào)文,并將響應(yīng)信息返回給NAS,用戶上線完畢,開始上網(wǎng);
14. 在用戶上網(wǎng)過程中,為了保護(hù)用戶計(jì)費(fèi)信息,每隔一段時(shí)間NAS就向RADIUS服務(wù)器發(fā)送記賬更新報(bào)文;
15. RADIUS服務(wù)器回應(yīng)實(shí)時(shí)計(jì)費(fèi)確認(rèn)報(bào)文給NAS。
總 結(jié)
本文對(duì)802.1X 和Portal 認(rèn)證進(jìn)行了工作原理和認(rèn)證流程的詳細(xì)闡述。簡(jiǎn)單的說,802.1X認(rèn)證的最終目的,就是確定一個(gè)端口(物理端口或Wi-Fi連接)是否能被放通,從而實(shí)現(xiàn)對(duì)接入實(shí)體的管控。對(duì)于一個(gè)端口,如果認(rèn)證成功就打開這個(gè)端口,并提供網(wǎng)絡(luò)服務(wù);如果認(rèn)證失敗就使這個(gè)端口保持關(guān)閉,不提供網(wǎng)絡(luò)服務(wù)。Portal認(rèn)證的本質(zhì)其實(shí)和802.1X一樣,都是基于認(rèn)證結(jié)果判斷接口是否可用。相對(duì)于802.1X認(rèn)證來(lái)說,Portal更輕量化,無(wú)需安裝客戶端軟件,瀏覽器即可完成認(rèn)證。同時(shí),由于Portal服務(wù)器和用戶瀏覽器有頁(yè)面交互,用戶可以根據(jù)實(shí)際需求對(duì)認(rèn)證頁(yè)面進(jìn)行定制,將認(rèn)證主頁(yè)建設(shè)為企業(yè)網(wǎng)內(nèi)部員工信息發(fā)布平臺(tái)。
值得注意的是,現(xiàn)在很多認(rèn)證方案都是基于這兩種認(rèn)證的,比如雙因子認(rèn)證(用戶名密碼 短信驗(yàn)證碼)、無(wú)感知認(rèn)證(802.1X MAC或Portal MAC)、證書認(rèn)證(802.1X 證書或Portal 證書)、OTP認(rèn)證(802.1X 隨機(jī)驗(yàn)證碼或Portal 隨機(jī)驗(yàn)證碼)等。此外,還能通過認(rèn)證獲得不同的訪問權(quán)限。我們可以根據(jù)實(shí)際需求應(yīng)用不同的認(rèn)證方案,關(guān)于這些擴(kuò)展技術(shù)方案的實(shí)現(xiàn)方式,我們將會(huì)在后續(xù)的文章中和大家分享。