IEEE的802.1X使用了EAP认证框架,因为EAP提供了可扩展的认证方法,但是这些认证方法的安全性完全取决于具体的认证方法,比如EAP- MD5、EAP-LEAP、EAP-GTC等,而802.1X最开始是为有线接入设计的,后来被用于无线网的接入,有线接入在安全性方面考虑毕竟少,如果 要窃取信息需要物理上连接网络,而无线网完全不同,无线网信号没有物理边界,所以要使用802.1X的话,需要对802.1X进行安全性方面的增强,也就 是增强EAP认证框架的安全性,而且要进行双向认证,那么EAP使用了IETF的TLS(Transport Layer Security)来保证数据的安全性,见如下描述:


  1. 802.1x was initially developed for authentication of users on traditional wired LANs, and therefore did not require strong encryption. Eavesdropping is certainly possible on wired networks, though it requires physical access to network equipment. Wireless networks are much easier to perform traffic analysis on because physical access to the network does not require physical access to the network equipment. Frames on wireless networks can be easily intercepted in transit with wireless network analysis software. Wireless networks also have additional authentication requirements. Without physical access to the equipment, users need to ensure that they are connecting to legitimate access points that are part of the organization's network, not "rogue" access points set up as part of a man-in-the-middle attack. In addition to the requirement for user (client) authentication, wireless network users also need to authenticate the networks they connect to.


  2. These two requirements, strong encryption to prevent eavesdropping and mutual authentication to ensure that sensitive information is transmitted only over legitimate networks, must drive your wireless authentication strategy. In practice, only methods based on the IETF's well-known Transport Layer Security (TLS) standard can satisfy strict encryption and authentication requirements. Three TLS-based protocols have been developed for use with EAP and are suitable for deployments with wireless LANs:


  3. EAP-Transport Layer Security (EAP-TLS)

  4. Tunneled Transport Layer Security (TTLS)

  5. Protected EAP (PEAP)

    现在有3种基于TLS的EAP认证方法:

  1. EAP-TLS:

    EAP-TLS使用TLS握手协议作为认证方式,TLS有很多优点,所以EAP选用了TLS作为基本的安全认证协议,并为TTLS和PEAP建立安全隧道,TLS已经标准化,并且进过了长期应用和分析,都没有发现明显的缺点。

    TLS认证是基于Client和Server双方互相验证数字证书的,是双向验证方法,首先Server提供自己的证书给Client,Client验证Server证书通过后提交自己的数字证书给Server,客户端的证书可以放到本地、放到key中等等.

    TLS有一个缺点就是TLS传送用户名的时候是明文的,也就是说抓包能看到EAP-Identity的明文用户名。

    TLS是基于PKI证书体系的,这是TLS的安全基础,也是TLS的缺点,PKI太庞大,太复杂了,如果企业中没有部署PKI系统,那么为了这个认证方法而部署PKI有些复杂,当然,如果企业已经部署了PKI,那么使用EAP-TLS还是不错的选择。

  2. EAP-TTLS:  

  3. EAP-PEAP:

    正因为TLS需要PKI的缺点,所以设计出现了TTLS和PEAP,这两个协议不用建立PKI系统,而在TLS隧道内部直接使用原有老的认证方法,这保证了安全性,也减小了复杂度。

    把TTLS和PEAP放到一起介绍的原因是他们俩很像,两个都是典型的两段式认证,在第一阶段建立TLS安全隧道,通过Server发送证书给 Client实现Client对Server的认证(这里TTLS和PEAP仍然使用证书,但是这里的证书都是服务器证书,管理起来比TLS客户端证书要 简单那的多);当安全隧道一旦建立,第二阶段就是协商认证方法,对Client进行认证;

    TTLS利用TLS安全隧道交换类似RADIUS的AVPs(Attribute-Value-Pairs),实际上这些AVPs的封装和RADIUS都 十分相似,TTLS这种AVPs有很好的扩展性,所以它几乎支持任何认证方法,这包括了所有EAP的认证方法,以及一些老的认证方法,比如PAP、 CHAP、MS-CHAP、MS-CHAPv2等,TTLS的扩展性很好,通过新属性定义新的认证方法。

    PEAP之所以叫Protected EAP,就是它在建立好的TLS隧道之上支持EAP协商,并且只能使用EAP认证方法,这里为什么要保护EAP,是因为EAP本身没有安全机制,比如 EAP-Identity明文显示,EAP-Success、EAP-Failed容易仿冒等,所以EAP需要进行保护,EAP协商就在安全隧道内部来 做,保证所有通信的数据安全性。其实PEAP最大的优点就是微软支持开发,微软在Windows系统内集成了客户端,微软和Cisco都支持PEAP,但 是他们的实现有所区别。


    他们之间关系如下: