这两天研究EAP认证,随便写了一个点笔记,发出来共享一下:
MSCHAP方式是,首先服务器发一个challenge给用户,
用户向RADIUS发一个用MD4加密的(password,challenge)给RADIUS(叫response),
radius的MSCHAP模块向LDAP询问NTPASSWORD,
然后自己再用challenge和NTPASSWORD,
来计算一个response,
两个response相比较完成验证.
如果LDAP无法给出NTPASSWORD或送出SHA加密的NTPASSWORD,MS-CHAP就无法验证了.
唯一可行的办法是把LDAP的SCHEMA中加入NTPASSWORD域,并明文存放
,才能满足MS-CHAP的要求.
PEAP-MSCHAPV2流程:
1、创建一个连接后,AP发送一个EAP-Request/Identity消息给客户端。
2、客户端回复一个EAP-Response/Identity消息,包含客户端的标识,通常是名字。
3、AP把这个消息传递给Radius服务器。从现在开始,逻辑通信就从Radius服务器到无线客户端了,AP,AC是一个中介设备。
4、Radius服务器发送一个EAP-Request/Start PEAP消息给客户端。
5、无线客户端和Radius服务器发送一系列的TLS消息通过协商建立的隧道。Raiuds服务器发送一个证书链让客户端认证。最后,Radius服务器已经认证了无线客户端。两端都决定使用的加密信息。
在PEAP TLS隧道创建后,采用MS-CHAPV2认证。
6、Radius服务器发送一个EAP-Request/Identity消息。
7、无线客户端发送一个EAP-Response/Identity 消息,消息包用户名。
8、Radius服务器发送一个EAP-Request/EAP-MS-CHAP-V2挑战消息,包含挑战字符串。
9、无线客户端回复一个EAP-Response/EAP-MS-CHAPV2回复消息,包含对这个挑战的应答和一个自己的挑战。
10、Radius服务器发送一个EAP-Request/EAP-MS-CHAPV2成功的消息,指出无线客户端的回应是正确的,且包含无线客户端的挑战字符串。
11、无线客户端回应一个EAP-Response/EAP-MS-CHAPV2的ACK消息,指示Radius服务器的回应消息是正确的。
12、Radius服务器发送一个EAP-Success消息。
EAP-TLS是一个IETF标准。TLS即传输层安全(Transport Layer Security),也称为SSL。它原本是一种传输层的安全协议,主要实现两个功能:身份鉴别与信息加密。TLS可实现基于证书的单向身份鉴别(只鉴别服务器)和双向身份鉴别(同时鉴别客户端与服务器)。TLS在完成身份鉴别的同时,还交换密钥信息,通过密钥信息可导出会话密钥用于信息加密。
需要指出的是,在这里TLS并不是作为一个安全传输层协议跑在TCP/IP层之上,而是将TLS的Handshake Record直接嵌套在EAP数据包中,作为EAP Request/Response的数据来传送,通过TLS的Handshake Record完成单向或双向的身份鉴别。EAP-TLS只利用了TLS的身份鉴别功能,并没有利用TLS建立的加密通道。
为了能够进一步利用TLS建立的安全通道交换EAP身份鉴别信息,IETF随后出台了PEAP(Protected EAP Protocol)标准草案。PEAP不但通过EAP Request/Response数据包传送TLS的Handshake Record完成身份鉴别,并且完成身份鉴别后进一步通过TLS的Data Record再传送EAP身份鉴别协议。
对于秘钥:
der “专有编码规则”文件。.der 文件包含证书的二进制表示,包含其公共密钥,但不包含其专用密钥。它与 .arm 文件非常相似,除了表示是二进制的,而非 ASCII。
.p12 "PKCS 12" 文件,其中 PKCS 代表“公共密钥密码术标准 (Public-Key CryptographyStandards)”。.p12 文件包含证书的二进制表示,包含其公共密钥和专用密钥。一个 .p12 文件中也可能包含多个证书;例如,证书、发出证书的 CA 的证书、CA 证书的发出者以及他的发出者等等。因为 .p12 文件包含专用密钥,它是受口令保护的。