RADIUS(remote authentication dial-in user servic,远程拨号认证服务),广泛应用于AAA(authentication、authorization、accounting,认证、授权、计费)系统。使用该协议,因特网服务提供商(Internet service provider,ISP)可为用户提供统一的因特网接入认证计费服务,企业则可控制内部用户访问特定网络。
RADIUS协议
一种C/S(client/server,客户端/服务器)结构的上网认证计费协议。
- 英文名称
- Radius protocol
- 所属学科
- 计算机科学技术
RADIUS协议典型的组网应用如图1所示。
远程用户可通过调制解调器、非对称数字用户线(asymmetric digital subscriber line,ADSL)、虚拟专用网(virtual private network,VPN)等多种方式连接RADIUS协议的客户端。客户端通常是一个网络接入服务器(network access server,NAS),负责向指定的RADIUS服务器发送“接入-请求”信息,包括用户名、密码、客户端ID和用户正在访问的端口ID。用户密码则要作安全处理,即先计算MD5摘要值,之后用RSA算法计算签名。RADIUS服务器查阅合法用户数据库验证用户信息是否匹配,并根据验证情况返回不同的应答消息。如果验证不合法,则返回拒绝接入信息,应答消息可包含拒绝的原因。如果验证合法,根据认证需要可要求客户端提供用户额外信息(比如PIN码、Token等)进行“挑战/应答”以便进一步验证,并在应答消息中提示需要“挑战/应答”的信息。如果初次验证合法且不需要挑战应答或者若干次挑战应答均通过,则返回认证成功信息,应答消息可包含对用户表示欢迎的信息。在认证成功的情况下,RADIUS服务器将允许用户访问指定网络,并对用户上网开始计费。
RADIUS客户端与RADIUS服务器交互的消息种类和流程如图2所示。
RADIUS服务器支持代理模式,可作为其他RADIUS服务器(包括没有采用RADIUS协议但功能类似且与RADIUS协议兼容的服务器)的中转服务器,也支持对非归属地的用户提供代理从而为用户提供漫游服务。
RADIUS协议是基于事务的协议,使用用户数据报协议(user datagram protocol,UDP)进行通信,这是由RADIUS协议的技术特性决定的。在使用UDP的情况下,若主服务器发生故障,辅助服务器能够快速提供服务,减少等待时间;能够很好地适应RADIUS服务器无状态的特性,灵活可靠;简化了服务器实现,可通过多线程技术提高服务器运行效率。相比而言,使用TCP(transmission control protocol,传输控制协议)达不到上述效果。
RADIUS协议支持多种认证方式,包括口令验证协议(password authentication protocol,PAP)、询问握手认证协议(challenge handshake authentication protocol,CHAP)等。RADIUS客户端与RADIUS服务器之间的数据通信采用一个共享密钥进行加密认证。用户密码在客户端与服务器之间传递时也采用加密方式,以防被恶意用户在非安全网络中通过监听方式窃取。