可延伸的驗證通訊協定

可延伸的驗證通訊協定(英語:Extensible Authentication Protocol,縮寫為 EAP),是一個在無線網絡對等協定中普遍使用的認證框架。它被定義在 RFC 3748 中,並且取代了舊版協定 RFC 2284,後來被新版協定 RFC 5247 取代。EAP 不僅可以用於無線區域網絡,還可以用於有線區域網絡,但它在無線區域網絡中使用的更頻繁。最近,WPA 和 WPA2 標準已經正式採納了 5 類 EAP 作為正式的認證機制。

如上圖形演示

EAP 是一個認證框架,不是一個特殊的認證機制。EAP 提供一些公共的功能,並且允許協商所希望的認證機制。這些機制被叫做 EAP 方法,現在大約有 40 種不同的方法。IETFRFC 中定義的方法包括:EAP-MD5、EAP-OTP、EAP-GTC、EAP-TLS、EAP-SIM 和 EAP-AKA,還包括一些廠商提供的方法和新的建議。無線網絡中常用的方法包括 EAP-TLS、EAP-SIM、EAP-AKA、PEAP、LEAP 和 EAP-TTLS。

當 EAP 被基於 IEEE 802.1X 的網絡接入裝置(諸如 802.11a/b/g無線存取點)呼叫時,現代的 EAP 方法可以提供一個安全認證機制,並且在用戶和網絡接入伺服器之間協商一個安全的 PMK。該 PMK 可以用於使用 TKIPAES 加密的無線對談。

輕量級 EAP(Lightweight Extensible Authentication Protocol, LEAP)

輕量級 EAP英語Lightweight Extensible Authentication Protocol,是一個由思科私人擁有的 EAP。思科通過允許其他廠家生產基於 EAP 的專案來保護該協定。在任何的 Windows 作業系統中不支援 LEAP,但 LEAP 被第三方的用戶軟件支援。該協定由於其如同 EAP-MD5 容易受到字典攻擊脆弱性,而在一開始便廣為人知。但直到 2003 年 Joshua Wright 發表了 ASLEAP 以後,人們才開始討論 LEAP 存在嚴重的安全問題。思科仍然認為如果使用十分複雜的密碼,LEAP 是安全的。但是在現實世界中人們幾乎不使用十分複雜的密碼,因為這對普通人來將是一件非常困難的事情。新的協定,諸如 EAP-TTLS 和 PEAP英語Protected Extensible Authentication Protocol 則沒有這些問題,因為他們給 MSCHAPv2 用戶認證對談建立了一個安全的傳輸層安全(TLS)通道,而且可以執行在使用思科裝置和不使用思科裝置的存取點上。

EAP-TLS

EAP-TLS 是 IETF 的一個開放標準,並且在無線廠商之間得到很好的支援。它能夠提供很好的安全保證。因為 TLS 被認為是 SSL 的繼承者。它使用 PKI 來保護 RADIUS 認證伺服器的通訊,這是很難完成的任務。所以即使 EAP-TLS 良好的安全,用戶端在認證時的負載成為它的致命傷。 EAP-TLS 是無線區域網絡 EAP 的原始版本,雖然它因為組態困難而很少被使用,但它仍被認為是最安全的 EAP 標準之一,而且廣泛地被無線區域網絡硬件和軟件製造廠商,包括微軟所支援。要求用戶方給出證書,雖然不是很流行,但是 EAP-TLS 在認證方面的長處,而且既方便又安全。一個脆弱的密碼不會導致入侵基於 EAP-TLS 的系統,因為攻擊者仍然需要用戶端的證書。當用戶端的證書是儲存在智能卡中時,EAP-TLS 提供了最安全的認證解決方案,因為如果不竊取智能卡是無法得到客戶端證書的。如果將智能卡偷竊的話則會立刻引起注意並且更換新卡。到 2005 年 4 月,EAP-TLS 是唯一廠商需要保證的 WPA 和 WPA2 的 EAP 類型。在微軟、思科蘋果Linux 中都有實現客戶端和伺服器端的原始碼。EAP-TLS 在 MAC OS 10.3 及以上、Windows 2000 SP4、Windows XPWindows Mobile 2003 及以上,和 Windows CE 4.2 中被支援。

EAP-MD5

EAP-MD5 是另一個 IETF 開放標準,但提供最少的安全。MD5 Hash 函數容易受到字典攻擊,它被使用在不支援動態 WEP 的 EAP 中。

EAP-FAST

EAP-FAST(基於安全隧道的靈活認證,Flexible Authentication via Secure Tunneling)是一個由思科提出的協定方案,用於替代輕量級 EAP(LEAP)英語Lightweight Extensible Authentication Protocol。設計該協定是為了解決 LEAP 實現「輕量級」時的缺點。在 EAP-FAST 中使用伺服器證書是可選的。EAP-FAST 使用一個保護訪問憑證(Protected Access Credential,PAC)來建立 TLS 隧道,並通過該隧道對客戶端證書進行驗證。EAP-FAST 擁有三個階段。 階段 0 是一個可選的階段,在該階段 PAC 可以是手工或者動態設置,但超出了 RFC 4851 中定義的 EAP-FAST 的範圍。

儘管 PAC 設置存在着許多實現,但是官方的實現依然在進行狀態。PAC 典型地只需要為 RADIUS 伺服器和客戶端設置一次。 在階段 1 中,客戶端和 AAA 伺服器使用 PAC 來建立 TLS 隧道。 在階段 2 中,客戶端證書在該加密的隧道中進行傳輸。當自動 PAC 設置開啟之後,EAP-FAST 擁有一個小漏洞。攻擊者可以攔截該 PAC 並隨後使用它來獲得用戶證書。該漏洞可以通過手動組態 PAC 或者在 PAC 組態階段使用伺服器證書來解決。

還有一個漏洞黑客AP 可以使用同一個 SSID,拒絕用戶 PAC 並提供新的 PAC。大多數懇求將會被設置來使得用戶接收它。如果用戶不這樣做,那麼用戶將使用內部方法傳送他的證書給黑客。而黑客將會獲得明文的密碼(EAP-FAST w/GTC)或者易受字典攻擊MSCHAPv2 雜湊。值得一提的是,PAC 檔案的發放時基於每個用戶的。這是 RFC 4851 第 7.4.4 節中的要求,因此如果一個新的用戶從裝置進入網絡,他首先需要一個新的已組態的 PAC 檔案。這是為什麼很難不以非安全匿名設置模式執行 EAP-FAST 的原因。另一種方式是使用裝置密碼來替代,但這就不是在網絡中對用戶進行認證了。

EAP-FAST 可以不使用 PAC 檔案,則為普通的 TLS。

EAP-TTLS

EAP-TTLS 是由 Funk Software 和 Certicom 合作開發的。它目前是 IETF 的開放標準草案。它可跨平台支援,提供非常優秀的安全,並且在認證伺服器上使用 PKI 證書。 TTLS 與 TLS 最大的區別是 TTLS 不需要客戶端認證的協定。

PEAP

PEAP 由思科微軟RSA Security 聯合提出的開放標準的建議。它早已被運用在產品中,而且提供很好的安全。它在設計上和 EAP-TTLS 相似,只需要一份伺服器端的 PKI 證書來建立一個安全的傳輸層安全通道(TLS)以保護用戶認證。 到 2005 年 5 月,已有兩個 PEAP 的子類型被 WPA 和 WPA2 標準批准。它們是:

  • PEAPv0/EAP-MSCHAPv2
  • PEAPv1/EAP-GTC

EAP-AKA

EAP-AKA(EAP for UMTS Authentication and Key Agreement)是用來在使用 USIM 接入 UMTS 流動通訊網絡時進行用戶認證和金鑰協商的方案。EAP-AKA 定義於 RFC 4187 中。