当前位置:文档之家› Radius协议原理与应用-20020404-C

Radius协议原理与应用-20020404-C

资料编码产品名称宽带产品使用对象工程师/合作方工程师/用户产品版本所有版本编写部门固网宽带技术支持部资料版本V1.0Radius协议原理与应用拟制:尹启龙日期:2002-02-02 审核:陈锐日期:2005-03-07 审核:日期:批准:任远日期:2005-03-07华为技术有限公司版权所有侵权必究目录第1章 AAA和RADIUS介绍 (1)第2章 RADIUS协议 (3)2.1 引论 (3)2.2 客户服务器模式 (3)2.3 用户<->NAS<->Radius业务流程说明 (4)2.4 网络安全 (4)2.4.1 包签名: (5)2.4.2 口令加密: (5)2.5 AAA在协议栈中的位置 (8)2.6 良好的可扩展性 (8)第3章标准RADIUS协议 (9)3.1 标准Radius协议包结构 (9)3.2 常用标准Radius属性说明 (12)3.3 华为公司宽带产品Radius标准属性 (13)第4章华为公司的Radius扩展协议——Radius+ v1.1 (16)4.1 Radius+简介 (16)4.1.1 扩展Radius+的目的 (16)4.1.2 可靠性、安全性与Radius相同 (16)4.2 Radius+报文 (16)4.2.1 Radius+认证报文 (16)4.2.2 Radius+计费报文 (21)4.2.3 Radius+新增报文 (25)第5章华为NAS设备与Radius Server对接应用实例 (29)5.1 组网图 (29)5.2 用户认证计费应用实例分析 (29)5.2.1 合法用户 (29)5.2.2 非法用户 (33)修订记录日期修订版本描述作者2002-02-02 V1.0 初稿完成尹启龙关键词:RADIUS AAA PAP CHAP PPP NAS TCP UDP。

摘要:Radius是Remote Authentication Dial In User Service的简称,即远程验证拨入用户服务。

当用户想要通过某个网络(如电话网)与NAS(网络接入服务器)建立连接从而获得访问其他网络的权利时,NAS可以选择在NAS上进行本地认证计费,或把用户信息传递给RADIUS服务器,由Radius进行认证计费;RADIUS 协议规定了NAS与RADIUS 服务器之间如何传递用户信息和记账信息;RADIUS服务器负责接收用户的连接请求,完成验证,并把传递服务给用户所需的配置信息返回给NAS。

本文即针对Radius协议的基本原理和应用做详细介绍。

缩略语清单:RADIUS:Remote Authentication Dial-In User Service ——远程验证拨入用户服务,一种实现远程AAA的协议。

AAA:Authentication,Authorization,and Accounting ——验证、授权、计费。

PAP:Password Authentication Protocol——口令验证协议。

CHAP:Challenge-Handshake Authentication Protocol——挑战握手验证协议。

PPP: Point-to-Point Protocol——点到点协议,一种链路层协议。

NAS:Network Access Server——网络接入服务器。

TCP:Transmission Control Protocol——传输控制协议。

UDP:User Datagram Protocol——用户数据报协议。

Radius协议原理与应用Radius协议原理与应用文档密级:内部公开第1章 AAA和RADIUS介绍图1 PSTN,ISDN用户通过NAS上网示意图如图:用户 lqz, lst 要求得到某些服务(如SLIP, PPP,telnet),但必须通过NAS, 由 NAS依据某种顺序与所连服务器通信从而进行验证。

注:lst 通过拨号进入NAS, 然后NAS按配置好的验证方式(如PPP PAP, CHAP 等)要求lst输入用户名, 密码等信息。

lst 端出现提示,用户按提示输入。

通过与NAS 的连接,NAS得到这些信息。

而后,NAS把这些信息传递给响应验证或记账的服务器,并根据服务器的响应来决定用户是否可以获得他所要求的服务。

AAA是验证,授权和记账(Authentication,Authorization,and Accounting)的简称。

它是运行于NAS上的客户端程序。

它提供了一个用来对验证,授权和记账这三种安全功能进行配置的一致的框架。

AAA的配置实际上是对网络安全的一种管理。

这里的网络安全主要指访问控制。

包括哪些用户可以访问网络服务器?具有访问权的用户可以得到哪些服务?如何对正在使用网络资源的用户进行记账?下面简单介绍一下验证, 授权,记账的作用。

验证(Authentication): 验证用户是否可以获得访问权。

可以选择使用RADIUS协议。

授权(Authorization) :授权用户可以使用哪些服务。

Radius协议原理与应用Radius协议原理与应用文档密级:内部公开记账(Accounting) :记录用户使用网络资源的情况。

AAA的实现可采用 RADIUS 协议。

RADIUS 是Remote Authentication Dial In User Service 的简称,用来管理使用串口和调制解调器的大量分散用户。

网络接入服务器简称NAS(Network Access Server) 。

当用户想要通过某个网络(如电话网)与 NAS建立连接从而获得访问其他网络的权利(或取得使用某些网络资源的权利)时, NAS起到了过问用户(或这个连接)的作用。

NAS负责把用户的验证,授权,记账信息传递给RADIUS服务器。

RADIUS 协议规定了NAS与RADIUS 服务器之间如何传递用户信息和记账信息,即两者之间的通信规则。

RADIUS服务器负责接收用户的连接请求,完成验证,并把传递服务给用户所需的配置信息返回给NAS。

用户获得授权后,在其正常上线、在线和下线过程中,Radius服务器还完成对用户帐号计费的功能。

第2章 RADIUS协议2.1 引论RADIUS 协议常用的认证端口号为1812或1645,计费端口号为1813或1646。

一个网络允许外部用户通过公用网对其进行访问,于是用户在地理上可以极为分散。

大量分散用户通过Modem等设备从不同的地方可以对这个网络进行随机的访问。

用户可以把自己的信息传递给这个网络,也可以从这个网络得到自己想要的信息。

由于存在内外的双向数据流动,网络安全就成为很重要的问题了。

大量的modem形成了Modem pools。

对modem pool 的管理就成为网络接入服务器或路由器的任务。

管理的内容有:哪些用户可以获得访问权,获得访问权的用户可以允许使用哪些服务,如何对使用网络资源的用户进行记费。

AAA很好的完成了这三项任务。

RADIUS通过建立一个唯一的用户数据库,存储用户名,用户的密码来进行验证;存储传递给用户的服务类型以及相应的配置信息来完成授权。

2.2 客户服务器模式图2 用户,NAS,RADIUS 服务器的关系RADIUS采用客户/服务器(Client/Server)结构:NAS上运行的AAA程序对用户来讲为服务器端,对RADIUS服务器来讲是作为客户端。

1、RADIUS的客户端通常运行于接入服务器(NAS)上,RADIUS服务器通常运行于一台工作站上,一个RADIUS服务器可以同时支持多个RADIUS客户(NAS)。

2、RADIUS的服务器上存放着大量的信息,接入服务器(NAS)无须保存这些信息,而是通过RADUIS协议对这些信息进行访问。

这些信息的集中统一的保存,使得管理更加方便,而且更加安全。

3、RADIUS服务器可以作为一个代理,以客户的身份同其他的RADIUS服务器或者其他类型的验证服务器进行通信。

用户的漫游通常就是通过RADIUS代理实现的。

2.3 用户<->NAS<->Radius业务流程说明1812)1813)图3 用户——NAS——Radius认证计费流程1、用户拨入后(1),所拨入的设备(比如NAS)将拨入用户的用户的信息(比如用户名、口令、所占用的端口等等)打包向RADIUS服务器发送(2)。

2、如果该用户是一个合法的用户,那么Radius告诉NAS该用户可以上网,同时传回该用户的配置参数(3);否则,Radius反馈NAS该用户非法的信息(3)。

3、如果该用户合法,MAS就根据从RADIUS服务器传回的配置参数配置用户(4)。

如果用户非法,NAS反馈给用户出错信息并断开该用户连接(4)。

4、如果用户可以访问网络,RADIUS客户要向RADIUS服务器发送一个记费请求包表明对该用户已经开始记费(5),RADIUS服务器收到并成功记录该请求包后要给予响应(6)。

5、当用户断开连接时(连接也可以由接入服务器断开)(7),RADIUS客户向RADIUS服务器发送一个记费停止请求包,其中包含用户上网所使用网络资源的统计信息(上网时长、进/出的字节/包数等)(8),RADIUS服务器收到并成功记录该请求包后要给予响应(9)。

2.4 网络安全RADIUS协议的加密是使用MD5加密算法进行的,在RADIUS的客户端(NAS)和服务器端(Radius Server)保存了一个密钥(key),RADIUS协议利用这个密钥使用MD5算法对RADIUS中的数据进行加密处理。

密钥不会在网络上传送。

RADIUS的加密主要体现在两方面:2.4.1 包签名:在RADIUS包中,有16字节的验证字(authenticator)用于对包进行签名,收到RADIUS包的一方要查看该签名的正确性。

如果包的签名不正确,那么该包将被丢弃,对包进行签名时使用的也是MD5算法(利用密钥),没有密钥的人是不能构造出该签名的。

包的签名与加密详细说明如下:包的签名指的是RADIUS包中16字节的Authenticator,我们称其为"验证字"。

认证请求包RequestAuth=Authenticator,认证请求包的验证字是一个不可预测的16字节随机数。

这个随机数将用于口令的加密。

认证响应包ResponseAuth = MD5(Code+ID+Length+Authenticator+Attributes+Key)。

记费请求包RequestAcct = MD5(Code+ID+Length+16ZeroOctets+Attributes+Key)。

记费响应包ResponseAcct = MD5(Code+ID+Length+RequestAcct+Attributes+Key)。

相关主题