簡介
EAP(Extensible Authentication Protocol)為可擴展身份驗證協定,是一系列驗證方式的集合,設計理念是滿足任何鏈路層的身份驗證需求,支持多種鏈路層認證方式。EAP協定是IEEE 802.1x認證機制的核心,它將實現細節交由附屬的EAP Method協定完成,如何選取EAP method由認證系統特徵決定。這樣實現了EAP的擴展性及靈活性,如圖所示,EAP可以提供不同的方法分別支持PPP,乙太網、無線區域網路的鏈路驗證。
EAP可分為四層:EAP底層,EAP層,EAP對等和認證層(EAP peer and authentication layer)和EAP方法層。
EAP底層負責轉發和接收被認證端(peer)和認證端之間的EAP frames;EAP層接收和轉發通過底層的EAP包;EAP對等和認證層在EAP對等層和EAP認證層之間對到來的EAP包進行多路分離;EAP方法層實現認證算法接收和轉發EAP信息。基於EAP衍生了許多認證協定,如EAP-TLS [RFC5216]和EAP-pwd [RFC5931]等。其中EAP-SIM,EAP-smartcard和LEAP可以較好的適用於資源受限的設備。
EAP 身份驗證方法
使用可擴展的身份驗證協定 (EAP),任意身份驗證機制都可以對遠程訪問連線進行身份驗證。通過遠程 VPN 客戶端和驗證程式(ISA 伺服器或 RADIUS 伺服器)協商要使用的確切身份驗證方案。ISA 伺服器包括默認情況下支持 Message Digest 5 Challenge (MD5-Challenge) 和 EAP-Transport Level Security (EAP-TLS)。
EAP 允許遠程 VPN 客戶端和驗證程式之間進行開端對話。對話由對身份驗證信息的驗證程式請求和遠程 VPN 客戶端的回響組成。例如,當 EAP 與安全標記卡一起使用時,驗證程式可以單獨查詢遠程訪問客戶端的名稱、PIN 和卡標記值。經過提問和回答一輪查詢之後,遠程訪問客戶端將通過身份驗證的另一個級別。正確回答所有問題之後,將對遠程訪問客戶端進行身份驗證。
特定的 EAP 身份驗證方案稱為 EAP 類型。遠程訪問客戶端和驗證程式必須支持相同的 EAP 類型才能成功進行身份驗證。
有關配置身份驗證方法的說明,請參閱配置 VPN 身份驗證方法。
結構
EAP 是一組以外掛程式模組的形式為任何 EAP 類型提供結構支持的內部組件。為了成功進行身份驗證,遠程訪問客戶端和驗證程式必須安裝相同的 EAP 身份驗證模組。ISA 伺服器支持兩種 EAP 類型:MD5-Challenge 和 EAP-TLS。
MD5-Challenge
Message Digest 5 Challenge (MD5-Challenge) 是一種必需的 EAP 類型,其使用與基於 PPP 的 CHAP 相同的質詢/握手協定,但是質詢和回響是作為 EAP 訊息傳送的。MD5-Challenge 的典型用法是通過使用用戶名和密碼安全系統對遠程 VPN 客戶端的憑據進行身份驗證。您還可以使用 MD5-Challenge 來測試 EAP 的互操作性。
EAP-TLS
EAP-Transport Level Security (EAP-TLS) 是在基於證書的安全環境中使用的 EAP 類型。如果您將智慧卡用於遠程訪問身份驗證,則必須使用 EAP-TLS 身份驗證方法。EAP-TLS 的訊息交換可以提供遠程 VPN 客戶端和驗證程式之間的相互身份驗證、加密方法的協商和加密密鑰的確定。EAP-TLS 提供了最強大的身份驗證和密鑰確定方法。
EAP-RADIUS
EAP-RADIUS 並不是一種 EAP 類型,但是可以通過驗證程式將任何 EAP 類型的 EAP 訊息傳遞到 RADIUS 伺服器,以便進行身份驗證。例如,將 ISA 伺服器配置為用於 RADIUS 身份驗證時,將封裝在遠程 VPN 客戶端和 ISA 伺服器之間傳送的 EAP 訊息,並在遠程訪問伺服器和 RADIUS 伺服器之間將格式設定為 RADIUS 訊息。
EAP-RADIUS 用在將 RADIUS 作為身份驗證提供程式的環境中。使用 EAP-RADIUS 的優勢在於不需要在每個遠程訪問伺服器上安裝 EAP 類型,只需要在 RADIUS 伺服器上安裝即可。在 Internet 驗證服務 (IAS) 中,只需要在 ISA 伺服器上安裝 EAP 類型。
EAP協定幀結構
802.1x協定在實現整個認證的過程中,其三個關鍵部分(客戶端、認證系統、認證伺服器)之間是通過不同的通信協定進行互動的,其中認證系統和認證伺服器之間是EAP報文。
EAP幀結構如下表所示:
欄位 | 位元組 |
Code | 1 |
Identifier | 2 |
Length | 3-4 |
Data | 5-N |
EAP幀格式中各欄位含義如下:
欄位 | 占用位元組數 | 描述 |
Code | 1個位元組 | 表示EAP幀四種類型:1.Request;2.Response 3.Success;4.Failure |
Identifier | 1個位元組 | 用於匹配Request和Response。Identifier的值和系統連線埠一起單獨標識一個認證過程 |
Length | 2個位元組 | 表示EAP幀的總長度 |
Data | 0或更多位元組 | 表示EAP數據 |
其中Code的取值如下:
1:Request
2:Response
3:Success
4:Failure
參考:EAPoL協定
802.1x協定定義了一種報文封裝格式,這種報文稱為EAPoL(EAP over LANs區域網路上的擴展認證協定)報文,主要用於在客戶端和認證系統之間傳送EAP協定報文,以允許EAP協定報文在LAN上傳送。
標準EAPoL幀結構如下表所示:
欄位 | 位元組 |
PAE Ethernet Type | 1-2 |
Protocol Version | 3 |
Packet Type | 4 |
Packet Body Length | 5-6 |
Packet Body | 7-N |
EAPoL幀格式中各欄位含義如下:
欄位 | 占用位元組 | 描述 |
PAE Ethernet Type | 2個位元組 | 表示協定類型,802.1x分配的協定類型為888E |
Protocol Version | 1個位元組 | 表示EAPOL 幀的傳送方所支持的協定版本號。本規範使用值為0000 0001 |
Packet Type | 1個位元組 | 表示傳送的幀類型,如下幾種幀類型: a) EAP-Packet.值為 0000 0000 b)EAPOL-Start.值為0000 0001 b) EAPOL-Logoff.值為0000 0010 |
Packet Body Length | 2個位元組 | 表示Packet Body的長度 |
Packet Body | 0/多位元組 | 如果Packet Type為EAP-Packet,取相應值。對於其他幀類型,該值為空。 |
EAPOL幀在二層傳送時,必須要有目標MAC地址,當客戶端和認證系統彼此之間不知道傳送的目標時,其目標MAC地址使用由802.1x協定分配的組播地址01-80-c2-00-00-03。