802.1X協(xié)議是IEEE802 LAN/WAN委員會為了解決無線局域網(wǎng)網(wǎng)絡(luò)安全問題提出的。后來該協(xié)議作為局域網(wǎng)端口的一個普通接入控制機制應(yīng)用于以太網(wǎng)中,主要用于解決以太網(wǎng)內(nèi)認證和安全方面的問題,在局域網(wǎng)接入設(shè)備的端口這一級對所接入的設(shè)備進行認證和控制。
802.1X體系結(jié)構(gòu)
802.1X的系統(tǒng)是采用典型的Client/Server體系結(jié)構(gòu),包括三個實體,如圖所示。
1) 客戶端:局域網(wǎng)中的一個實體,多為普通計算機,用戶通過客戶端軟件發(fā)起802.1X認證,并由設(shè)備端對其進行認證??蛻舳塑浖仨殲橹С?02.1X認證的用戶終端設(shè)備。
2) 設(shè)備端:通常為支持802.1X協(xié)議的網(wǎng)絡(luò)設(shè)備,如本交換機,為客戶端提供接入局域網(wǎng)的物理/邏輯端口,并對客戶端進行認證。
3) 認證服務(wù)器:為設(shè)備端提供認證服務(wù)的實體,例如可以使用RADIUS服務(wù)器來實現(xiàn)認證服務(wù)器的認證和授權(quán)功能。該服務(wù)器可以存儲客戶端的相關(guān)信息,并實現(xiàn)對客戶端的認證和授權(quán)。為了保證認證系統(tǒng)的穩(wěn)定,可以為網(wǎng)絡(luò)設(shè)置一個備份認證服務(wù)器。當(dāng)主認證服務(wù)器出現(xiàn)故障時,備份認證服務(wù)器可以接替認證服務(wù)器的工作,保證認證系統(tǒng)的穩(wěn)定。
802.1X認證工作機制
IEEE 802.1X認證系統(tǒng)使用EAP(Extensible Authentication Protocol,可擴展認證協(xié)議)來實現(xiàn)客戶端、設(shè)備端和認證服務(wù)器之間認證信息的交換。
1) 在客戶端與設(shè)備端之間,EAP協(xié)議報文使用EAPOL封裝格式,直接承載于LAN環(huán)境中。
2) 在設(shè)備端與RADIUS服務(wù)器之間,可以使用兩種方式來交換信息。一種是EAP協(xié)議報文使用EAPOR(EAP over RADIUS)封裝格式承載于RADIUS協(xié)議中;另一種是設(shè)備端終結(jié)EAP協(xié)議報文,采用包含PAP(Password Authentication Protocol,密碼驗證協(xié)議)或CHAP(Challenge Handshake Authentication Protocal,質(zhì)詢握手驗證協(xié)議)屬性的報文與RADIUS服務(wù)器進行認證。
3) 當(dāng)用戶通過認證后,認證服務(wù)器會把用戶的相關(guān)信息傳遞給設(shè)備端,設(shè)備端根據(jù)RADIUS服務(wù)器的指示(Accept或Reject)決定受控端口的授權(quán)/非授權(quán)狀態(tài)。
802.1X認證過程
認證過程可以由客戶端主動發(fā)起,也可以由設(shè)備端發(fā)起。一方面當(dāng)設(shè)備端探測到有未經(jīng)過認證的用戶使用網(wǎng)絡(luò)時,就會主動向客戶端發(fā)送EAP-Request/Identity報文,發(fā)起認證;另一方面客戶端可以通過客戶端軟件向設(shè)備端發(fā)送EAPOL-Start報文,發(fā)起認證。
802.1X系統(tǒng)支持EAP中繼方式和EAP終結(jié)方式與遠端RADIUS服務(wù)器交互完成認證。以下關(guān)于兩種認證方式的過程描述,都以客戶端主動發(fā)起認證為例。
1. EAP中繼方式
EAP中繼方式是IEEE 802.1X標準規(guī)定的,將EAP(擴展認證協(xié)議)承載在其它高層協(xié)議中,如EAP over RADIUS,以便擴展認證協(xié)議報文穿越復(fù)雜的網(wǎng)絡(luò)到達認證服務(wù)器。一般來說,EAP中繼方式需要RADIUS服務(wù)器支持EAP屬性:EAP-Message和Message-Authenticator。本交換機支持的EAP中繼方式是EAP-MD5,EAP-MD5認證過程如圖所示。
1) 當(dāng)用戶有訪問網(wǎng)絡(luò)需求時打開802.1X客戶端程序,輸入已經(jīng)申請、登記過的用戶名和密碼,發(fā)起連接請求(EAPOL-Start報文)。此時,客戶端程序?qū)l(fā)出請求認證的報文給設(shè)備端,開始啟動一次認證過程。
2) 設(shè)備端收到請求認證的數(shù)據(jù)幀后,將發(fā)出一個請求幀(EAP-Request/Identity報文)要求用戶的客戶端程序發(fā)送輸入的用戶名。
3) 客戶端程序響應(yīng)設(shè)備端發(fā)出的請求, 將用戶名信息通過數(shù)據(jù)幀(EAP-Response/Identity報文)發(fā)送給設(shè)備端。設(shè)備端將客戶端發(fā)送的數(shù)據(jù)幀經(jīng)過封包處理后(RADIUS Access-Request報文)送給認證服務(wù)器進行處理。
4) RADIUS服務(wù)器收到設(shè)備端轉(zhuǎn)發(fā)的用戶名信息后,將該信息與數(shù)據(jù)庫中的用戶名表對比,找到該用戶名對應(yīng)的密碼信息,用隨機生成的一個加密字對它進行加密處理,同時也將此加密字通過RADIUS Access-Challenge報文發(fā)送給設(shè)備端,由設(shè)備端轉(zhuǎn)發(fā)給客戶端程序。
5) 客戶端程序收到由設(shè)備端傳來的加密字(EAP-Request/MD5 Challenge報文)后,用該加密字對密碼部分進行加密處理(此種加密算法通常是不可逆的,生成EAP-Response/MD5 Challenge報文),并通過設(shè)備端傳給認證服務(wù)器。
6) RADIUS服務(wù)器將收到的已加密的密碼信息(RADIUS Access-Request報文)和本地經(jīng)過加密運算后的密碼信息進行對比,如果相同,則認為該用戶為合法用戶,反饋認證通過的消息(RADIUS Access-Accept報文和EAP-Success報文)。
7) 設(shè)備收到認證通過消息后將端口改為授權(quán)狀態(tài),允許用戶通過端口訪問網(wǎng)絡(luò)。在此期間,設(shè)備端會通過向客戶端定期發(fā)送握手報文的方法,對用戶的在線情況進行監(jiān)測。缺省情況下,兩次握手請求報文都得不到客戶端應(yīng)答,設(shè)備端就會讓用戶下線,防止用戶因為異常原因下線而設(shè)備無法感知。
8) 客戶端也可以發(fā)送EAPOL-Logoff報文給設(shè)備端,主動要求下線,設(shè)備端把端口狀態(tài)從授權(quán)狀態(tài)改變成未授權(quán)狀態(tài)。
1. EAP終結(jié)方式
EAP終結(jié)方式將EAP報文在設(shè)備端終結(jié)并映射到RADIUS報文中,利用標準RADIUS協(xié)議完成認證、授權(quán)和計費。設(shè)備端與RADIUS服務(wù)器之間可以采用PAP或者CHAP認證方法。本交換機支持的EAP終結(jié)方式是PAP,PAP認證過程如圖所示。
在PAP模式中,交換機對用戶口令信息進行加密,然后把用戶名、隨機加密字和客戶端加密后的口令信息一起轉(zhuǎn)發(fā)給認證服務(wù)器進行相關(guān)的認證處理;而在EAP-MD5模式中,隨機加密字由認證服務(wù)器產(chǎn)生,交換機只負責(zé)把認證信息報文封裝后轉(zhuǎn)發(fā)。
802.1X定時器
802.1X認證過程中會啟動多個定時器以控制接入用戶、設(shè)備以及RADIUS服務(wù)器之間進行合理、有序的交互。本交換機中的802.1X定時器主要有以下三種:
1) 客戶端認證超時定時器:當(dāng)交換機向客戶端發(fā)送報文后,交換機啟動此定時器,若在該定時器設(shè)置的時長內(nèi),交換機沒有收到客戶端的響應(yīng),交換機將重發(fā)該報文。
2) 認證服務(wù)器超時定時器:當(dāng)交換機向認證服務(wù)器發(fā)送報文后,交換機啟動此定時器,若在該定時器設(shè)置的時長內(nèi),交換機沒有收到認證服務(wù)器的響應(yīng),交換機將重發(fā)認證請求報文。
3) 靜默定時器:對用戶認證失敗以后,交換機需要靜默一段時間(該時間由靜默定時器設(shè)置),在靜默期間,交換機不再處理該用戶的認證請求。