802.1X
Wi-Fi 802.1X 是一种网络访问控制协议,常用于保护无线网络。它提供了一种基于端口的网络访问控制机制,主要用于在用户和网络之间建立安全的连接。以下是 802.1X 的一些关键特点:
认证框架
802.1X 使用 EAP(可扩展认证协议)作为其认证框架,支持多种认证方法,如 EAP-TLS、PEAP 等。
三方模型
802.1X 采用客户端(被称为“请求者”)、认证服务器(如 RADIUS 服务器)和网络设备(如交换机或无线接入点,称为“验证者”)三方模型。
安全性
通过强制用户在访问网络之前进行身份验证,802.1X 提供了增强的安全性,防止未经授权的设备接入网络。
动态密钥管理
在认证过程中,802.1X 可以协商动态加密密钥,用于保护无线通信的机密性和完整性。
广泛应用
802.1X 广泛应用于企业无线网络中,确保只有经过认证的用户和设备才能访问网络资源。
通过使用 802.1X,网络管理员可以有效地管理和保护无线网络,防止未经授权的访问和潜在的安全威胁。
EAP
Wi-Fi EAP(Extensible Authentication Protocol)是一种用于无线网络的认证框架,广泛应用于企业级无线网络中。EAP本身并不是一种认证方法,而是一个支持多种认证方法的框架。以下是一些常见的EAP类型:
EAP-TLS(Transport Layer Security):使用TLS协议进行认证,提供了强大的安全性。需要客户端和服务器都安装证书。
EAP-TTLS(Tunneled Transport Layer Security):类似于EAP-TLS,但只需要服务器端的证书。客户端的认证信息通过一个安全的隧道传输。
PEAP(Protected Extensible Authentication Protocol):由微软、思科和RSA开发,类似于EAP-TTLS,使用TLS隧道保护EAP交换。
EAP-SIM:用于GSM移动网络,通过SIM卡进行认证。
EAP-AKA:用于UMTS网络,通过USIM卡进行认证。
EAP协议的选择通常取决于网络的安全需求和基础设施支持。企业网络通常选择EAP-TLS或PEAP以确保高安全性
802.1X认证过程
802.1X认证
IEEE 802.1x是一种基于端口的网络接入控制技术,该技术提供一个可靠的用户认证和密钥分发的框架,可以控制用户只有在认证通过以后才能连接网络。IEEE 802.1x本身并不提供实际的认证机制,需要和上层认证协议(EAP)配合来实现用户认证和密钥分发。EAP允许无线终端支持不同的认证类型,能与后台 不同的认证服务器进行通信,如远程接入用户服务(Radius)。
Bgate系列AC支持802.1X认证方式,这里以设备端PAE对EAP报文进行中继转发为例,IEEE 802.1X认证系统的基本业务流程如下图所示。
在WLAN网络中,WLAN客户端Station为客户端PAE,提供WLAN服务的设备为设备端PAE。设备端通过产生一个随机Challenge发送给客户端;客户端会使用配置的密钥对该Challenge进行加密处理并将处理后的信息返回设备端;设备端根据客户端返回的加密后的Challenge以及原始的Challenge进行比较判断,设备端完成对客户端的单项认证。
IEEE 802.1X认证系统的EAP方式业务流程
整个802.1x的认证过程可以描述如下
(1) 客户端向接入设备发送一个EAPoL-Start报文,开始802.1x认证接入;
(2) 接入设备向客户端发送EAP-Request/Identity报文,要求客户端将用户名送上来;
(3) 客户端回应一个EAP-Response/Identity给接入设备的请求,其中包括用户名;
(4) 接入设备将EAP-Response/Identity报文封装到RADIUS Access-Request报文中,发送给认证服务器;
(5) 认证服务器产生一个Challenge,通过接入设备将RADIUS Access-Challenge报文发送给客户端,其中包含有EAP-Request/MD5-Challenge;
(6) 接入设备通过EAP-Request/MD5-Challenge发送给客户端,要求客户端进行认证
(7) 客户端收到EAP-Request/MD5-Challenge报文后,将密码和Challenge做MD5算法后的Challenged-Pass-word,在EAP-Response/MD5-Challenge回应给接入设备
(8) 接入设备将Challenge,Challenged Password和用户名一起送到RADIUS服务器,由RADIUS服务器进行认证
(9)RADIUS服务器根据用户信息,做MD5算法,判断用户是否合法,然后回应认证成功/失败报文到接入设备。如果成功,携带协商参数,以及用户的相关业务属性给用户授权。如果认证失败,则流程到此结束;
(10) 如果认证通过,用户通过标准的DHCP协议 (可以是DHCP Relay) ,通过接入设备获取规划的IP地址;
(11) 如果认证通过,接入设备发起计费开始请求给RADIUS用户认证服务器;
(12)RADIUS用户认证服务器回应计费开始请求报文。用户上线完毕。
为了提高WLAN服务的数据安全性,IEEE 802.1X中使用了EAPOL-Key的协商过程,设备端和客户端实现动态密钥协商和管理;同时通过802.1X协商,客户端PAE和设备端PAE协商相同的一个种子密钥PMK,进一步提高了密钥协商的安全性。802.1X支持多种EAP认证方式,其中EAP-TLS为基于用户证书的身份验证。EAP-TLS 是一种相互的身份验证方法,也就是说,客户端和服务器端进行相互身份验证。在EAP-TLS 交换过程中,远程访问客户端发送其用户证书,而远程访问服务器发送其计算机证书。如果其中一个证书未发送或无效,则连接将终断。下图描述了EAP TLS认证方式过程:
EAP TLS认证消息序列图
当EAP TLS认证成功时,客户端PAE和Radius服务器会对应产生公用的对称的Radius Key,Radius服务器会在认证成功消息中将Radius Key通知设备端PAE。客户端PAE和设备端PAE会根据该Radius Key,客户端MAC地址以及设备端MAC地址,产生种子密钥PMK以及对应的索引PMKID。根据IEEE802.11i协议定义的算法,设备端PAE和客户端PAE可以获得相同的PMK,该种子密钥将在密钥协商过程(EAPOL-Key密钥协商)中使用。
- WPA
WPA采用了802.1x和TKIP来实现WLAN的访问控制、密钥管理与数据加密。802.1x是一种基于端口的访问控制标准,用户必须通过了认证并获得授权之后,才能通过端口使用网络资源。TKIP虽然与WEP同样都是基于RC4加密算法,但却引入了4个新算法:
● 扩展的48位初始化向量(IV)和IV顺序规则(IV Sequencing Rules);
● 每包密钥构建机制(per-packet key construction);
● Michael(Message Integrity Code,MIC)消息完整性代码;
● 密钥重新获取和分发机制。
WPA系统在工作的时候,先由AP向外公布自身对WPA的支持,在Beacons、Probe Response等报文中使用新定义的WPA信息元素(Information Element),这些信息元素中包含了AP的安全配置信息(包括加密算法和安全配置等信息)。STA根据收到的信息选择相应的安全配置,并将所选择的安 全配置表示在其发出的Association Request和Re-Association Request报文中。WPA通过这种方式来实现STA(一般为客户端Station)与AP之间的加密算法以及密钥管理方式的协商。
支持WPA的AP工作需要在开放系统认证方式下,STA以WPA模式与AP建立关联之后,如果网络中有RADIUS服务器作为认证服务器,那么 STA就使用802.1x方式进行认证;如果网络中没有RADIUS,STA与AP就会采用预共享密钥(PSK,Pre-Shared Key)的方式。
STA通过了802.1x身份验证之后,AP会得到一个与STA相同的Session Key, AP与STA将该Session Key作为PMK(Pairwise Master Key,对于使用预共享密钥的方式来说,PSK就是PMK)。随后AP与STA通过EAPOL-KEY进行WPA的四次握手(4-Way Handshake)过程,如图2所示。
图2 AP与STA的四次握手 |
在这个过程中,AP和STA均确认了对方是否持有与自己一致的PMK,如不一致,四次握手过程就告失败。为了保证传输的完整性,在握手过程中使 用了名为MIC(Message Integrity Code)的检验码。在四次握手的过程中,AP与STA经过协商计算出一个512位的PTK(Pairwise Transient Key),并将该PTK分解成为五种不同用途的密钥,如图3所示。
图3 PTK的产生过程
其中前128位用做计算和检验EAPOL-KEY报文的MIC的密钥,随后的128位作为加密EAPOL-KEY的密钥;接下来的128位作为 AP与该STA之间通信的加密密钥的基础密钥(即由该密钥再经过一定的计算后得出的密钥作为二者之间的密钥);最后两个64位的密钥分别作为AP与该 STA之间的报文的MIC计算和检验密钥。
由PTK分解出来的这一组(五个)密钥是AP与该STA之间使用的密钥(所以也叫每用户密钥,用于AP与STA之间的单播报文的加密),这些密 钥永远也不会以任何形式出现在无线网络上。在确认双方所持的PMK一致后, AP会根据自身是否支持每用户密钥的能力来指示STA是否安装并使用这个每用户密钥。
为了使现有的设备能够通过软件/固件升级实现WPA,协议规定AP可以不采用PTK方式,而是利用下面将要描述的GTK作为AP向STA发送单 播报文时的密钥。如果AP通知STA安装并使用PTK,那么STA在向AP发送一个EAPOL-KEY相应报文后,再把相应的密钥安装到无线网卡中。
四次握手成功后,AP要生成一个256位的GTK(Group Transient Key),GTK是一组全局加密密钥,所有与该AP建立关联的STA均使用相同的GTK,AP用这个GTK来加密所有与它建立关联的STA的通信报文, STA则使用这个GTK来解密由AP发送的报文并检验其MIC。该密钥可以分解为三种不同用途的密钥, 最前面的128位作为构造全局"每报文密钥"(Per-packet Encryption Key)的基础密钥(Base Key),后面的两个64位的密钥分别作为计算和检验WPA数据报文的MIC的密钥。AP使用EAPOL-KEY加密密钥将GTK加密并发送给STA,并 指明该GTK是否允许STA用作发送报文所使用,STA成功接收到该报文,将GTK解密后,向AP发送应答报文,并根据AP所指示的Key Index将其安装无线网卡的相应位置,如果AP使用GTK作为向某一STA单播传输的密钥,则该STA也需要使用GTK作为向AP发送单播报文的密钥。
TKIP并不直接使用由PTK/GTK分解出来的密钥作为加密报文的密钥,而是将该密钥作为基础密钥(Base Key),经过两个阶段的密钥混合过程,从而生成一个新的每一次报文传输都不一样的密钥,该密钥才是用做直接加密的密钥。 通过这种方式可以进一步增强WLAN的安全性。密钥的生成方式如图4所示。
图4 最终密匙的生成形式 |
在WPA中,AP支持WPA和WEP无线客户端的混合接入。在STA与AP建立关联时,AP可以根据STA的Association Request中是否带有WPA信息元素来确定哪些客户端支持使用WPA。但是在混合接入的时候,所有WPA客户端所使用的加密算法都得使用WEP,这就 降低了无线局域网的整体安全性。