簡介
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),任意身份驗證機制都可以對
遠程訪問連線進行身份驗證。通過遠程 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。