-
EAP協議
鎖定
EAP協議簡介
EAP(Extensible Authentication Protocol)為可擴展身份驗證協議,是一系列驗證方式的集合,設計理念是滿足任何鏈路層的身份驗證需求,支持多種鏈路層認證方式。EAP協議是IEEE 802.1x認證機制的核心,它將實現細節交由附屬的EAP Method協議完成,如何選取EAP method由認證系統特徵決定。這樣實現了EAP的擴展性及靈活性,如圖1所示,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 類型提供結構支持的內部組件。為了成功進行身份驗證,遠程訪問客户端和驗證程序必須安裝相同的 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協議幀結構
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,取相應值。對於其他幀類型,該值為空。 |