企业使用802.1X身份验证来管理其无线局域网,该过程依赖于可扩展身份验证协议及其各种类型。

IEEE 802.1X标准提供了用于管理无线LAN使用的网络接入框架。但是802.1X仅仅是携带某种类型的可扩展身份验证协议的信封。
在本文中,我们比较了802.1X使用的流行EAP类型、每种类型支持的身份验证方法、已知漏洞和合适的使用环境。

802.1X和EAP的工作原理

802.1X协议使用以下三个组件进行身份验证:

  1. 请求者(Supplicant),或对等者,如试图访问网络的无线客户端。
  2. 验证者(Authenticator),例如无线接入点(AP),它发起对请求者进行身份验证的请求。
  3. 身份验证服务器(Authentication server),如RADIUS服务器,用作数据库并允许设备连接到网络。
     

802.1X在加密的点对点网络上使用EAP在请求方和认证服务器之间发送信息。与客户端请求身份验证的其他身份验证协议不同,EAP是这样设计的,即身份验证程序启动请求以授予对客户端的访问权限。在整个身份验证过程中,验证器充当请求方和服务器之间的中介。

当认证者发起请求时,请求者提供其标识信息并等待来自认证服务器的许可。服务器然后用EAP请求回复请求者,并指定设备应该使用哪个EAP方法。一旦身份验证服务器以成功的身份验证进行响应,请求方就可以访问网络端口。

802.1X认证方法和EAP综述_客户端

802.1X uses EAP to enable communication among a client, authenticator and authentication server.

EAP通常运行在OSI模型的第2层,即数据链路层上,不需要第3层的IP连接。无线安全协议,如有线等效隐私(WEP)、Wi-Fi保护访问、WPA2和WPA3,也支持EAP。

企业可以根据安全要求、所需功能和员工专业知识选择应使用的EAP类型设备。

以下是一些用于身份验证的EAP类型:

  • EAP-Message Digest 5 (EAP-MD5).
  • Lightweight EAP (LEAP).
  • Protected EAP (PEAP).
  • EAP-Subscriber Identity Module (EAP-SIM).
  • EAP-Authentication and Key Agreement (EAP-AKA).
  • EAP-Transport Layer Security (EAP-TLS).
  • EAP-Microsoft Challenge Handshake Authentication Protocol (EAP-MS-CHAPv2).
  • EAP-Tunneled TLS (EAP-TTLS).
  • EAP-Flexible Authentication via Secure Tunneling (EAP-FAST).
  • EAP-Generic Token Card (EAP-GTC).。

EAP-MD5

MD5挑战是1995年互联网工程任务组(IETF)草案中提到的首批EAP身份验证方法之一,该草案最终以RFC 2284的形式发布。EAP-MD5提供单向客户端身份验证。服务器向客户端发送一个随机挑战,客户端通过MD5对挑战及其密码进行散列来证明其身份。

EAP-MD5提供的安全性很低,容易受到多种类型的攻击。因为中间的人可以看到挑战和响应,所以EAP-MD5在开放介质上使用时容易受到字典攻击。此外,在没有服务器身份验证的情况下,该协议容易受到欺骗。最后,EAP-MD5无法传递密钥。因此,EAP-MD5可以通过有线连接使用,但不应通过无线LAN(WLAN)使用。

由于EAP-MD5存在漏洞,Microsoft在发布Windows Vista后反对支持EAP类型。

LEAP

轻量级EAP,也称为EAP Cisco Wireless,通过Cisco WLAN提供相互客户端和服务器身份验证。与EAP-MD5一样,LEAP服务器向客户端发送一个随机质询,客户端使用该质询返回散列密码。经过身份验证的客户端向服务器询问其密码,然后使用动态WEP密钥进行密钥交换。

因为LEAP是一种专有协议,所以它只能在带有Cisco AP和Cisco兼容卡的企业WLAN中使用。与EAP-MD5一样,LEAP也容易受到字典攻击。攻击者可以使用许多工具来破解经过LEAP身份验证的密码,新的WLAN应该避免LEAP。有LEAP的组织应确保所有客户端和服务器使用长的随机密码,并尽快升级到更强的EAP类型。

PEAP

受保护的EAP通过服务器证书、TLS隧道和加密隧道提供相互身份验证。从本质上讲,PEAP使用TLS隧道封装EAP,以增加加密和安全性。

Cisco、Microsoft和RSA Security共同开发了PEAP,它有两个主要版本:PEAPv0和PEAPv1。Microsoft产品支持PEPv0,而Cisco产品支持PEAPv0和PEAPv1。虽然IETF发布了PEAPv2草案,但PEAP版本并没有成功。

在客户端和服务器之间的信息交换过程中,PEAP使用TLS隧道提供外部身份验证。它要求客户端使用另一种EAP类型,如EAP-MS-CHAPv2、EAP-TLS或EAP-GTC,进行内部身份验证。例如,PEPv0通常与EAP-MS-CHAPv2配对,而PEPv1通常与EAP-GTC一起工作。

PEAP身份验证服务器必须解析EAP和包含的身份验证协议。在客户端和服务器上使用相同版本的PEAP是至关重要的。

EAP-SIM(EAP-Subscriber Identity Module)

第三代合作伙伴计划(3GPP)在RFC 4186中开发并定义了EAP-SIM。EAP-SIM提供基于在具有全球移动通信系统(GSM)网络的运营商销售的设备中发现的SIM卡的相互认证。SIM卡可能是插入手机、无线数据卡或U盘的一个小芯片。该智能卡实现了蜂窝设备通常用于向GSM网络进行认证的认证算法。

携带EAP-SIM的802.1X请求通过运营商的漫游网关中继到GSM认证服务器。这种EAP类型可用于认证在商业802.11热点和GSM网络之间漫游的智能手机等设备。

EAP-AKA   (Authentication and Key Agreement )

3GPP根据IETF RFC 4187开发了EAP-AKA协议。该协议用于移动设备或智能卡内的身份模块(如通用移动电信系统(UMTS)SIM(USIM))与运营商的网络基础设施之间的通信。这两个实体使用预定的密钥来交换验证信息并确认认证。

随着移动网络的发展,运营商通常使用不同代的标准来构建其网络基础设施。例如,移动运营商可能具有基于GSM标准的第二代网络。另一运营商可以使用第三代UMTS网络或第四代LTE网络。

这些代还需要不同的EAP类型。依赖SIM卡而非USIM的GSM网络通常使用EAP-SIM进行身份验证。同时,具有UMTS或LTE网络的非GSM运营商可以使用EAP-AKA,因为它支持这些网络上的设备所使用的USIM。尽管运营商的网络决定了智能手机必须使用哪种EAP类型,但EAP-AKA使用的永久身份验证密钥被认为比EAP-SIM使用的派生身份验证密钥更强。

IETF在RFC 5448中定义了EAP-AKA的更新版本,称为EAP-AKA',以支持3GPP和非3GPP移动网络之间的互操作性。EAP-AKA通过更新会话密钥的生成方式,并使用安全哈希算法-256而不是SHA-1,增加了额外的安全层。

随着5G技术的发展,IETF专注于对EAP-AKA’的扩展,即RFC 9048草案中定义的EAP AKA完美前向保密【EAP-AKA-Perfect Forward Secrecy】(EAP-AKA'-PFS)。EAP-AKA’-PFS有望为5G网络提供更好的支持,同时增加前向保密性,以防止攻击者访问预先共享的机密和解密旧数据。

EAP-TLS (EAP-Transport Layer Security)
 

EAP-TLS协议是在RFC 5216中定义的。它提供客户端和服务器之间的相互数字证书身份验证,使用TLS协议来保护数据。数字证书验证实体的身份并证明其拥有公钥。大多数企业从证书颁发机构为其客户端和服务器获取数字证书,证书颁发机构是负责颁发和维护证书的第三方组织。

EAP服务器使用TLS来证明它持有数字证书,并向客户端请求相同的证书。客户端使用其证书来证明其身份,并且两个实体交换密钥材料。身份验证完成后,TLS隧道结束,但EAP-TLS提供的密钥可用于使用高级加密标准、临时密钥完整性协议或WEP加密数据。

EAP-TLS通常被认为是最强的EAP,也是部署成本最高的,因为它需要证书而不是凭据进行身份验证。该协议非常适合于客户端已经拥有数字证书的WLAN,或者需要高安全性来证明投资公钥基础设施来管理这些证书的合理性的WLAN。

EAP-MS-CHAPv2 (Microsoft Challenge Handshake Authentication Protocol )

EAP-MS-CHAPv2将Microsoft CHAP封装在EAP中。这种EAP类型也可以在PEAP创建的TLS隧道内使用,称为PEAP-MS-CHAPv2。

EAP-MS-CHAPv2遵循客户端、验证器和验证服务器之间传统的质询、响应和验证过程,使用相互验证和密钥推导。它需要来自身份验证服务器的证书,但只请求客户端的密码。因此,该协议更容易受到漏洞的影响,如字典、邪恶双胞胎和中间人攻击。

该协议非常适合那些希望重用Microsoft用户凭据和服务器(如Active Directory)进行无线身份验证的公司。但专家建议过渡到更安全的EAP类型,如EAP-TLS。

EAP-TTLS (EAP-Tunneled TLS )

根据RFC 5281定义的EAP-TTLS,使用TLS封装客户端和服务器之间的数据交换。该协议要求服务器通过证书对自己进行身份验证,并建立TLS隧道,通过该隧道对客户端进行质询。与同时使用服务器和客户端数字证书的EAP-TLS不同,EAP-TTLS要求客户端使用被TLS隧道掩盖的密码进行响应。

EAP-TTLS通过用传统的密码身份验证方法(如密码身份验证协议、CHAP和MS-CHAPv2)替换客户端证书来平衡安全性与部署成本。虽然EAP方法由于其基于凭据的客户端身份验证而仍然容易受到攻击,但TLS加密确实提高了凭据交换过程中的安全性。

为了避免暴露客户端的名称,应将EAP-TTLS配置为在802.1X启动时发送匿名身份,然后通过TLS隧道发送实际身份。当身份验证完成并交付密钥时,该隧道结束。

EAP-TTLS可以在以安全方式重用遗留用户身份验证数据库的WLAN中工作。该协议类似于PEAP,但使用不同的客户端身份验证协议。与PEAP一样,它提供相互身份验证,并使用服务器证书和TLS隧道对客户端进行身份验证。

EAP-FAST

思科创建了EAP-FAST作为LEAP的替代品,可根据RFC 5422使用。与PEAP和EAP-TTLS一样,FAST为相互身份验证提供TLS隧道。但是,EAP-FAST使服务器可以选择使用数字证书进行身份验证,而客户端可以交换凭据。相反,一次性供应交换建立了一个共享机密,称为受保护访问凭据(PAC)密钥。该PAC密钥用于所有后续身份验证。

EAP-FAST为占地面积较小的客户提供服务,这些客户会因数字证书签名验证而明显变慢。该协议是思科的专有协议,但企业可以获得思科模块在Windows中使用EAP-FAST。苹果设备也支持EAS-FAST。

EAP-GTC  (Generic Token Card)

首先在RFC 2284中定义的EAP-GTC是一种使用安全令牌的内部身份验证方法。该协议通常在PEAP创建的TLS隧道中使用,称为PEAPv1/EAP-GTC。EAP-GTC定义了一个EAP信封来携带令牌卡生成的一次性密码,并要求服务器使用证书进行身份验证。

EAP-GTC非常适合那些使用双因素身份验证来避免常见密码泄露(如共享密码或不正确的密码卫生)的公司。

检查EAP兼容性

网络团队应该仔细检查他们的产品支持哪些EAP类型。那些使用多供应商WLAN的设备应确保其设备使用兼容的EAP类型。

选择使用基于凭据的EAP类型的组织应确保其员工和设备遵守适当的密码卫生,而选择数字认证方法的组织应仔细记录已安装的证书并保持系统更新。

编者按:本文进行了更新,以反映802.1X身份验证和EAP类型的演变。

802.1X认证方法和EAP综述_客户端_02