认证系统示例(e.g. 远程用户拨号认证系统)
PPP认证协议包括两种:PAP认证协议及CHAP认证协议
PAP认证协议:
二次握手机制。
认证方发送明文格式的用户名和密码,服务器回复是否认证成功。
(链路建立阶段进行PAP认证,建立成功后不再进行认证检测)
CHAP认证协议:
三次握手机制。
第一步:主认证方发送挑战信息,<认证请求报文标识,认证序列号id1,随机数据,主认证方用户名>。被认证方接收到挑战信息后,根据主认证用户名查询对应密码,使用MD5算法计算Hash(psw,id,随机数据);
第二步:被认证方回复认证请求,<认证响应报文标识,认证序列号id1,Hash值,被认证方用户名>。主认证方根据被认证方发来的认证用户名+id1+随机数据,根据MD5算法计算Hash。若与被认证方回馈的Hash值一致,则回复认证通过;否则回复认证失败。
(在链路建立成功后可多次进行认证检测)
RFC2865 标准中对认证过程的描述
用户创建访问请求,使用链路帧协议如PPP中的认证数据包,来封装用户属性向量并发送给服务端(用户密码可通过MD5摘要算法变换为160bit的固定长度数据)。
<ID,用户名,f(用户密码),client ID,client port>
服务器收到用户请求后,先验证是否享有共同的会话密钥,即是否可以完全正确的还原数据包。而后在数据库中验证用户信息。验证通过后,会向客户端发送一个伪随机序列作为“access/challenge”包,拥有smart card或者布设相关软件的设备能够完成相应计算。而后客户端将用户属性向量发送给服务器。
<new ID,用户名,f(用户密码),client ID,client port,f'(challege response)>
服务器根据用户response选择Access accept或是Access reject。如果当前服务器未存储该用户的认证信息,可以向周边服务器发出认证请求。
NAS:网络接入服务器,位于公用电话网(PSTN/ISDN)和IP网之间的一种远程访问接入设备。在该认证系统中可作为客户端与服务器间的信息传递代理。