IEEE 802.1X是一項IEEE(Institute of Electrical and Electronics Engineers)基於端口的網絡訪問控制標准。制訂802.1x協議的初衷是為了解決無線局域網用戶的接入認證問題。它是IEEE 802.1網絡協議組的一部分。IEEE802 LAN協議定義的局域網並不提供接入認證,只要用戶能接入局域網控制設備 (如LAN Switch) ,就可以訪問局域網中的設備或資源。早期企業網有線LAN應用環境下並不存在明顯的安全隱患。但是隨着移動辦公及駐地網運營等應用的大規模發展,服務提供者需要對用戶的接入進行控制和配置它為連接到LAN(Local Area Network)或WLAN(Wireless Local Area Network)的設備提供了一種身份驗證機制。尤其是WLAN的應用和LAN接入在電信網上大規模開展,有必要對端口加以控制以實現用戶級的接入控制,802.lx就是IEEE為了解決基於端口的接入控制 (Port-Based Network Access Contro1) 而定義的一個標准。 IEEE 802.1X定義了基於IEEE 802.11的可擴展身份驗證協議(Extensible Authentication Protocol,EAP)的封裝,稱為“EAP over LAN”或 EAPOL。EAPOL適應其他IEEE 802 LAN 技術,例如802.1 中的IEEE 802.11無線和光纖分布式數據接口(ANSI X3T9.5/X3T12 和 ISO 9314) X-2004。EAPOL 也被修改為與802.1X-2010 中的IEEE 802.1AE(“MACsec”)和IEEE 802.1AR(安全設備身份,DevID)一起使用支持內部 LAN 段上的服務識別和可選的點對點加密。
802.1X認證過程涉及三方:請求者、認證者和認證服務器。請求者是希望連接到LAN/WLAN的客戶端設備(如筆記本電腦),也指在客戶端上運行的向身份驗證者提供憑據的軟件。身份驗證器是一種網絡設備,它在客戶端和網絡之前提供數據鏈路,並且可以允許或阻止兩者之間的網絡流量,例如以太網交換機或無線接入點。認證服務器通常是一個受信任的服務器,可以接收和響應網絡訪問請求,並且可以告訴身份驗證器是否允許連接,以及應該應用於該客戶端的連接或設置。身份驗證服務器通常運行支持(遠程身份驗證撥入用戶服務,Remote Authentication Dial-In User Service)RADIUS和(可擴展身份驗證協議)EAP協議的軟件。在某些情況下,認證服務器軟件可能在認證器硬件上運行。
圖1:802.1X認證過程示意圖
如圖1所示,對於 802.1X 基於端口的身份驗證,請求者必須首先向身份驗證者提供所需的憑據 - 這些憑據將由網絡管理員預先指定,並且可能包括用戶名/密碼或允許的數字證書. 身份驗證器將這些憑據轉發給身份驗證服務器,以決定是否授予訪問權限。如果身份驗證服務器確定憑據有效,它會通知身份驗證器,從而允許請求者(客戶端設備)訪問位於網絡受保護側的資源。
典型的身份驗證過程包括:
- 初始化 在檢測到新的請求者時,交換機(驗證器)上的端口被啟用並設置為“未授權”狀態。在這種狀態下,只允許 802.1X 流量;其他流量,例如Internet 協議(以及使用該TCP和UDP),將被丟棄。
- 啟動 為了啟動認證,認證器將定期將 EAP-Request Identity 幀發送到本地網段上的特殊第 2 層地址 (01:80:C2:00:00:03)。請求者偵聽此地址,並在收到 EAP-Request Identity 幀后,以包含請求者標識符(如用戶 ID)的 EAP-Response Identity 幀進行響應。然后,身份驗證器將此身份響應封裝在 RADIUS 訪問請求數據包中,並將其轉發到身份驗證服務器。請求者也可以通過向認證者發送一個 EAPOL-Start 幀來啟動或重新開始認證,然后認證者將回復一個 EAP-Request Identity 幀。
- 協商 (技術上是 EAP 協商)身份驗證服務器向身份驗證者發送回復(封裝在 RADIUS 訪問挑戰數據包中),其中包含指定 EAP 方法的 EAP 請求(它希望請求者執行的基於 EAP 的身份驗證類型)。驗證者將 EAP 請求封裝在 EAPOL 幀中,並將其傳輸給請求者。此時,請求者可以開始使用請求的 EAP 方法,或者執行 NAK(“否定確認”)並以它願意執行的 EAP 方法進行響應。
- 身份驗證 如果身份驗證服務器和請求者就 EAP 方法達成一致,則在請求者和身份驗證服務器之間發送 EAP 請求和響應(由身份驗證者翻譯),直到身份驗證服務器使用 EAP-Success 消息(封裝在 RADIUS 訪問-Accept 數據包)或 EAP-Failure 消息(封裝在 RADIUS Access-Reject 數據包中)。如果認證成功,認證者將端口設置為“授權”狀態並允許正常流量,如果不成功,則端口保持在“未授權”狀態。當請求者注銷時,它會向認證者發送一條 EAPOL-logoff 消息,然后認證者將端口設置為“未授權”狀態,再次阻止所有非 EAP 流量。
EAPOL在數據鏈路層上運行,在Ethernet II中,EtherType值為0x888E如圖3所示,EAPOL 的幀格式如下表所示:
MAC Header | Ethernet Type | Version | Packet Type | Packet Body Length | Packet Body | FCS |
---|---|---|---|---|---|---|
12 bytes | 2 bytes | 1 byte | 1 byte | 2 bytes | variable length | 4 bytes |
- MAC Header 表示 MAC 地址,前 6 個字節是目標地址,后 6 個字節是源地址。
- Ethernet Type 表示類型代碼,分配給 EAPoL 的是 0x888e。
- Version 表示 802.1X 版本。
- Packet Type 表示幀的類型,分配如下表所示:
Packet Type | Assignment |
---|---|
0 | EAP-Packet |
1 | EAPOL-Start |
2 | EAPOL-Logoff |
3 | EAPOL-Key |
4 | EAPOL-Encapsulated-ASF-Alert |
圖3:EAPOL協議字段