李 雷
北京铁路局北京通信段G 网车间,北京100086
RADIUS:Remote Authentication Dial in User Service,远程客户端拨号认证授权计费系统,是目前在各领域应用最为广泛的AAA 协议【即-身份验证 (Authentication)、授权 (Authorization)和计费(Accounting)】。
简要的概括来说,RADIUS 的主要突出特性如下。
1)客户端/服务端模式(Client/Server)。
RADIUS 是一种C/S 架构的协议,客户端最一开始指网络接入服务器NAS 设备,RADIUS 系统客户端软件运行在任何硬件上的方式都可以作为RADIUS 的客户端。客户端的职责是把用户相关信息(用户名,密码等)发送给指定的RADIUS 服务器,并负责进行返回的响应。
RADIUS 服务器的职责是处理用户的接入请求,对用户身份进行识别和认证操作,如果认证通过则反回所有为用户提供服务所必须的配置信息给客户端。
2)在网络的安全领域,客户端和RADIUS 服务器之间的数据信息传送经过了共享加密字的认证。另一方面,为了消除非法人员在安全级别不高的网络上监听盗取用户密码的隐患,客户端和RADIUS 服务器之间所使用的用户密码都是被加密后才进行传输的。
3)认证方式的多样性。
RADIUS 服务器可以使用多种方式进行用户合法性的甄别。RADIUS 收到客户端提供的用户名和密码后,可以支持的认证方式包括:
点到点的CHAP 认证(PPP CHAP)、点到点的PAP 认证(PPP PAP)、UNIX 的登录命令(UNIX Login)等。
4)其他扩展相关协议。
RADIUS 协议中的所有交互信息均包括可变长度的属性字段。为了满足实际的应用,用户可以根据要求加入新的属性值。新的属性值可以在不中断已存在协议执行的前提下,自行定义新的属性。
以RADIUS 协议为基础的接入环境通常由三个主要的部分组成:接入客户端(USER),网络接入服务器(Net Access Server),RADIUS 服务器。
接入客户端(USER)可以是利用拨号方式连接到一个提供服务的网络来访问其他的Internet 网站的一个用户(这是最通常的用户角色)。同理,接入客户端也可以是一个设备,比如是一个手持移动台、列车CIR 操作台,在GSM-R 高铁运营中,每台高铁列车的CIR 台都通过RADIUS 认证后获取一个独立的静态IP 地址,实现与CTC 中心的通信。
网络接入服务器(Network Access Server),其简称为NAS,它的职责是对来自网络“边缘”的连接请求进行识别和处理。“边缘”可以是一个ISDN 桥,或一个调制解调器池(modem pool),也可以是一个Wlan 的接入点,当一个用户将接入请求消息发送到NAS 后,NAS会与用户进行接入协商(协商方法如:EAP,SLIP 或PPP),通过协商会得到一些用户的数据信息(如:用户名,密码,NAS 设备地址,NAS 接入端口号等),然后NAS 会把这些数据发送给RADUS 服务器,并请求RADIUS对这个用户进行认证。
RADIUS 服务器(RADIUS server),主要职责是对客户端进行认证和授权。RADIUS 服务器首先把从NAS 接入请求中获得的数据与本身数据库中存储的数据实施比对。如果找到了相匹配的信息,那么RADIUS 服务器就会允许(Accept)这个用户接入,反之,这个用户就会被拒绝(Reject)。NAS 会根据RADIUS 服务器的响应来决定是否为这个用户建立连接。如果用户成功建立连接,NAS 将发送一个计费数据到RADIUS 服务器来记录这个事件;根据需要,RADIUS 服务器可以记录下这个数据,同时也可以把这个数据发给指定的计费系统来为这次服务提供计费依据(话单等)。
RADIUS 服务器和NAS 之间的通信方式采用UDP 协议,RADIUS 服务器负责认证的端口号为1812,负责计费的端口号为1813。
之所以采用UDP 协议进行通信,主要是因为NAS和RADIUS 服务器多存在于同一个局域网中,使用UDP更加快捷方便。
RADIUS 协议旨在简化认证过程。通常的认证授权工作流程如下。
1)客户端系统向NAS 设备发出网络连接请求。
2)NAS 收集客户端的用户名和密码,并转发给RADIUS 服务器。
3)RADIUS 按照一定的加密算法将收到的认证信息和自身数据库信息比对,然后将结果反馈给NAS 设备,可能是接受、拒绝或者其他。
4)NAS 设备根据返回结果决定是否为这个用户建立连接。
5)如果认证通过,RADIUS 服务器对用户进行授权,NAS 设备根据授权结果配置用户的上网环境。
6)如果需要计费,NAS 设备将收集用户上网期间的网络资源使用情况,并将数据送交计费服务器,产生话单以及费用等。
RADIUS 的报文结构,主要包括:Code 字段、Identifier 字段、Length 字段、Authenticator 字段等。
1)CODE 部分定义了数据包的类型,编码信息如下:
◆1、请求接入(Access-Request);
◆2、允许接入(Access-Accept);
◆3、拒绝接入(Access-Reject);
◆4、计费申请(Accounting-Request);
◆5、计费回应(Accounting-Response);
◆11、挑战访问(Access-Challenge);
◆12、 服 务 器 状 态(Status-Server —Experimental);
◆13、 客 户 端 状 态(Status-Client —Experimental);
◆255、预留(Reserved)。
2)Identifier 域长度为1 个字节,指明匹配请求与响应。在很短的时间间隔里,如果一个请求存在重复的客户源IP 地址、源UDP 端口号以及标识符,RADIUS服务器会认为收到的是重复的请求。
3)Length 域长度为2 个字节,它指明了编码、标识符、长度、鉴别码和属性域在内的数据包的长度。多出长度域的字节将被视为填充,在接收时忽略它。如果包的长度比指定的短,则此包会被直接丢弃。
4)Authenticator 域长度为16 字节,为认证字域。用于RADIUS 客户端和服务器之间信息认证的有效性和密码隐藏加密算法。
6.1 主要功能
在GSM-R 高速铁路网络中,RADIUS 负责为全路高速列车提供认证服务,所有机车通过机车号和相应的密码进行认证,认证通过后由NAS 设备(GGSN)进行固定IP 地址的分配。所有机车做为CLIENT 用户端成功获取IP 地址后方可进行数据业务的使用:无线车次号校核、调度命令传送、进路预告传送等。
6.2 系统组成
铁路GSM-R 网络中接入客户端(用户)即为列车;网络接入服务器设备(NAS)即为GGSN(GPRS 网关节点);RADIUS 为认证服务器。
GGSN(GPRS 网关节点)主要功能:GGSN 内部配置了接入点(APN)的详细信息,包括:移动用户地址池、RADIUS 配置信息、最大PDP 激活数量等,并负责为列车分配静态IP 地址。
RADIUS 服务器在全路范围内共设置两套,地理位置在不同的铁路局,形成地理冗余机制,正常情况下一个铁路局的RADIUS 为主用、另一个铁路局的RADIUS 为备用,其功能为:RADIUS 服务器内记录了全路所有G网区段列车的机车号信息以及认证密码信息,并将每个机车号与一个固定IP 地址绑定,列车开始运行时将机车号、接入点、密码等信息通过网络送到RADIUS 服务器认证,认证通过后即可获取对应IP 地址,完成PDP激活请求。
6.3 认证流程
1)列车→GGSN:列车发起PDP 激活请求,请求信息中包括机车号信息、接入点信息等;
2)GGSN→RADIUS:GGSN 收到机车的PDP 请求后向RADIUS 认证中心发送Access-Request 消息 ;
3)RADIUS→GGSN:RADIUS 认证中心收到GGSN 发来的认证请求后对用户进行认证,如果为合法用户就将用户的静态IP 以Access-Accept 消息回送给GGSN;否则,用户为非法用户,则返回Access-Reject 拒绝消息;
4)GGSN→列车:列车用户认证成功后,GGSN 从其接入点中的地址池中选出列车用户对应的IP 地址并将IP 地址以PDP 激活响应消息送回给列车用户,此时用户成功获取IP 地址,完成PDP 激活;
5)GGSN→RADIUS:用户合法且正常获取IP 后,GGSN 向RADIUS 发送计费请求包Accounting-Request(start);
6)RADIUS→GGSN:RADIUS 服务器收到并成功记录请求包后要给予相应Accounting-Response(start);
7)GGSN→RADIUS:当用户断开连接,结束PDP 激活(也可以由GGSN 断开),GGSN 向RADIUS 发送计费停止包Accounting-Request(stop);
8)RADIUS→GGSN:RADIUS 服务器收到并成功记录停止包后要给予相应Accounting-Response(stop);
9)GGSN→列车:最后GGSN 给用户发送结束PDP激活响应。
[1] 钟章队,等.铁路数字移动通信系统(GSM-R)应用基础理论[M].北京:清华大学出版社有限公司,2009.
[2] 韩斌杰,等.GPRS 原理及其网络优化[M].北京:机械工业出版社,2009.