【轉】淺談802.1X認證


轉自:https://blog.csdn.net/u013181216/article/details/51490044

 

一、起源

802.1x協議起源於802.11協議,后者是標准的無線局域網協議。802.1x協議的主要目的是為了解決局域網用戶的接入認證問題,現在已經開始被應用於一般的有線LAN的接入。在802.1x出現之前,企業網有線LAN應用都沒有直接控制到端口的方法,也不需要控制到端口。但是隨着無線LAN的應用以及LAN接入到電信網上大規模開展,有必要對端口加以控制,以實現用戶級的接入控制。802.1x就是IEEE為了解決基於端口的接入控制而定義的一個標准。

二、作用

1.802.1x是一個認證協議,是一種對用戶進行認證的方法和策略。

2.802.1x是基於端口的認證策略(可以是物理端口也可以是VLAN一樣的邏輯端口,相對於無線局域網“端口”就是一條信道)

3.802.1x的認證的最終目的就是確定一個端口是否可用。對於一個端口,如果認證成功就“打開”這個端口,允許所有報文通過;如果認證不成功就使這個端口保持“關閉”,此時只允許802.1x的認證報文EAPOL(Extensible Authentiaction Protocol over LAN)通過。

三、體系

802.1x的認證系統分為三部分結構:

 

 

Suppliant System 客戶端(PC / 網絡設備):

客戶端是一個需要接入LAN,及享受Switch提供服務的設備,客戶端需要支持EAPOL協議,客戶端必須運行802.1x客戶端軟件。

Authentiactor System 認證系統:

switch(邊緣交換機或無線接入設備)是根據客戶的認證狀態控制物理接入的設備,switch在客戶和認證服務器之間充當代理角色(proxy)。switch與client間通過EAPOL協議進行通訊,swith與認證服務器間通過EAPOR(EAP over Radius)s或EAP承載在其他高層協議上,以便穿越復雜的網絡到達認證服務器;switch要求客戶端提供identity,接收到后將EAP報文承載在Radius格式的報文中,再發送到認證服務器,返回等同;switch根據認證結果控制端口是否可用。(802.1x協議在設備內終結並轉換成標准的RADIUS協議報文,加密算法采用PPP和CHAP認證算法,所有支持PPP CHAP認證算法的認證計費服務器都可以與我們對接成功)

Authentiaction Server System 認證服務器:

認證服務器對客戶進行實際認證,認證服務器核實客戶的identity,通知switch是否允許客戶端訪問LAN和交換機提供的服務。認證服務器接受客戶端傳遞過來的認證需求,認證完成后將認證結果下發給客戶端,完成對端口的管理。由於EAP協議較為靈活,除了IEEE802.1x定義的端口狀態外,認證服務器實際上也可以用於認證和下發更多用戶相關的信息,如VLAN、QOS、加密認證密鑰、DHCP響應等。

四、認證端口

非受控端口:可以看成EAP端口,不進行認證控制,始終處於雙向連接狀態,主要用於傳遞在通過認證前必須的EAPOL協議幀,保證客戶端始終能夠發出或者接收認證報文。

受控端口:在通過認證之前,只允許認證報文EAPOL報文和廣播報文(DHCP、ARP)通過端口,不允許任何其他業務數據流通過。認證通過后處於雙向連通狀態,可進行正常的業務報文傳遞。

邏輯受控端口:多個客戶端公用一個物理端口,當某個客戶端沒有通過認證之前,只允許認證報文通過該物理端口,不允許業務數據,但其他已通過認證的客戶端業務不受影響。

現在在使用中有下面三種情況:

1.僅對同一個物理端口的任何一個用戶進行認證(僅對一個用戶進行認證,認證過程中忽略其他用戶的認證請求),認證通過后其他用戶也可利用該端口訪問網絡服務。

2.對同一個物理端口的多個用戶分別進行認證控制,限制同時使用同一物理端口的用戶數目(限制MAC地址數量),但不指定MAC地址,讓系統根據先到先得原則進行MAC地址學習,系統將拒絕超過限制數目的請求,若有用戶退出,則可以覆蓋已退出的MAC地址。

3.對利用不同物理端口的用戶進行VLAN認證控制,即只允許訪問指定VLAN,限制用戶訪問非授權VLAN;用戶可以利用受控端口,訪問指定VLAN,同一用戶可以在不同的端口訪問相同的VLAN。

五、觸發方式和認證方式

802.1x的認證過程可以有客戶端主動發起,也可以有設備端主動發起。在“客戶端主動發起”中,由客戶端主動向設備端發送EAPOL-Start報文觸發認證。而“設備端主動發起”中用於支持不能主動發送EAPOL-Start報文的客戶端。在“設備主動觸發方式”分為兩種具體觸發方式:

1.DHCP報文觸發:設備在收到用戶的DHCP請求報文后主動觸發對用戶的802.1x認證,僅適用於客戶端采用DHCP方式自動分配IP的情形。

2.源MAC未知報文觸發:當設備收到源MAC地址未知的報文時主動觸發對用戶的802.1x認證。若設備在設置好的時長內沒有收到客戶端的響應,則重新發該報文。

無論哪種觸發方式,802.1x認證系統都是使用EAP協議來實現客戶端、設備端和認證服務器之間的認證信息交換。在客戶端和設備端之間使用的是基於以太局域網的EAPOL格式封裝EAP報文,然后承載於以太網數據幀中進行交互,而設備端與RADIUS服務器之間的EAP報文可以使用以下兩種方式進行交互:

1.EAP中繼:來自客戶端的EAP報文到達設備端后,直接使用EAPOR格式封裝在RADIUS報文中,再發送給RADIUS服務器,則RADIUS服務器來從封裝的EAP報文中獲取客戶端認證信息,然后再對客戶端進行認證。這種認證方式的優點是設備端的工作很簡單,不需要對來自客戶端的EAP報文進行任何處理,只需要用EAPOR對EAP報文進行封裝即可,根本不管客戶端的認證信息。同時在這種認證方式中,設備端與RADIUS服務器之間支持多種EAP認證方法,但要求服務器端也支持相應的認證方法。

2.EAP終結:來自客戶端的EAP的報文在設備端進行終結,然后由設備端將從EAP報文中提取的客戶端認證信息封裝在標准的RADIUS(不再是EAPOR格式)中,與RAIDUS服務器之間采用PAP或CHAP方式對客戶端進行認證(當然在RADIUS服務器端必須配置合法用戶的用戶名和密碼信息)。這種認證方式的優點是現在的RADIUS服務器基本均可支持PAP和CHAP認證,無需升級服務器,但設備端的工作比較繁重,因為在這種認證方式,設備端不僅要從來自客戶端的EAP報文中提取客戶端認證信息,還要通過標准的RADIUS協議來對這些信息進行封裝,且不能支持除MD5-Challenge之外的EAP認證方式。

六、認證過程

EAP中繼認證原理

在EAP中繼認證的過程中,設備端起一個中繼代理的角色,用於通過EAPOR封裝和解封裝的過程轉發客戶端和認證服務器之間的交互報文。整個認證過程是先進行用戶名認證,再進行對應的密碼認證。如圖所示:

 

 

1.當用戶訪問網絡時自動打開802.1x客戶端程序,提示用戶輸入已經在RADIUS服務器中創建的用戶名和密碼,發送連接請求。因為端口最初的狀態是未授權狀態,所以此時端口除了IEEE 802.1x協議包外不能接收和發送任何包。此時,客戶端程序向設備端發出認證請求幀(EAPOR-start),啟動認證過程。

2.設備端在收到客戶端的認證請求幀后,將發出一個identity(標識)類型的EAP請求幀(EAP-Request/Identity),要求用戶的的客戶端發送上一步用戶所輸入的用戶名。

3.客戶端程序在收到設備端的identity請求幀后,將用戶名信息通過identity類型的EAP響應幀(EAP-Response/Identity)發送給設備端,響應設備端發出的請求。

4.設備端將客戶端發送的Identity響應幀中的EAP報文原封不動地使用EAPOR格式封裝在RADIUS(RADIUS Access-Request)中,發送給認證服務器進行處理。

5.RADIUS服務器收到設備端發來的RADIUS報文后從中提取用戶名信息后,將該信息與數據庫中的用戶名列表中對比,找到該用戶名對應的密碼信息,並用隨機生成的一個MD5 Challenge信息對密碼進行加密處理,然后將此MD5-Challenge消息同樣通過EAPOR格式封裝以RADIUS Access-Challenge報文發送給設備端。

6.設備端在收到來自RADIUS服務器的EAPOR格式的Access-Challenge報文后,通過解封裝,將其中的MD5 Challenge消息轉發給客戶端。

7.客戶端收到來自設備端傳來的MD5 Challenge消息后,用該Challenge消息對密碼部分進行加密處理,然后生成EAP-Response/MD5 Challenge報文,發送給設備端。

8.設備端又將此EAP-Response/MD5 Challenge報文以EAPOR格式封裝在RADIUS報文(RADIUS Access-Request)中發送給RADIUS服務器。

9.RADIUS服務器將收到的已加密的密碼信息后,與第5步在本地加密運算后的密碼信息進行對比,如果相同則認為是合法用戶,並向設備端發送認證通過報文(RADIUS Access-Accept)。

10.設備收到RADIUS Access-Accept 報文后,經過EAPOR解封裝再以EAP-Success報文向客戶端,並將端口改為授權狀態,允許用戶通過端口訪問網絡。

11.用戶在線期間設備端會通過向客戶端定期發送握手報文,對用戶的在線情況進行監測。

12.客戶端收到握手報文后向設備發送應答報文,表示用戶仍然在線。默認情況下,若設備發送的兩次握手請求報文都未得到客戶端應答,設備端就會讓用戶下線,防止用戶因為異常原因下線而設備無法感知。

13.客戶端可以發送EAPOL-Logoff幀給設備端,主動要求下線。

14.在設備端收到客戶端發送的EAPOL-Logoff幀后,把端口狀態從授權狀態改變成未授權狀態,並向客戶端發送EAP-Failure報文,確認對應客戶端下線。

EAP終結認證方式

EAP終結方式和EAP中繼方式的認證流程相比,主要不同在於步驟4中用來對用戶密碼信息進行加密處理的MD5 Challenge是由設備端生成的(而不是由RADIUS服務器生成),之后設備端會把用戶名、MD5 Challenge和客戶端加密后的密碼信息一起發送給RADIUS服務器,進行認證處理,具體流程如下。

 

 

 

MAC旁路認證

在802.1x認證過程中,設備端會首先觸發用戶采用802.1x認證方式,但若用戶長時間內沒有進行802.1x認證,則以的MAC地址作為用戶名和密碼上送給認證服務器進行認證。MAC旁路認證可使802.1x認證系統中無法安裝和使用802.1x客戶端軟件的終端,例如打印機等,以自身MAC地址作為用戶名和密碼進行認證。

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM