当前位置:文档之家› RADIUS协议的原理及应用讲义(doc 22页)

RADIUS协议的原理及应用讲义(doc 22页)

RADIUS协议的原理及应用讲义(doc 22页)

RADIUS协议的原理及应用

目录

培训目标

●了解RADIUS协议基本概念;

●熟悉RADIUS协议报文结构;

●熟悉RADIUS协议工作原理;

前言

企业要求只有授权的用户才能访问自己的内部网络,教育网采取根据流量计费的策略,VOD系统根据点播的时间收费等等。这些最常见的网络应用却面临一个同样的问题:如何对用户进行认证和计费?一种常见的认证计费方法——RADIUS协议会帮助我们解决这些问题。RADIUS是目前最常用的认证计费协议之一,它简单安全,易于管理,扩展性好,所以得到广泛应用。

1 RADIUS协议简介

RADIUS ( Remote Authentication Dial In User Service )是远程认证拨号用户服务的简称。RADIUS原先设计的目的是为拨号用户进行认证和计费。后来经过多次改进,形成了一项通用的认证计费协议,主要完成在网络接入设备和认证服务器之间承载认证、授权、计费和配置信息。RADIUS是一种C/S结构的协议,它的

客户端最初就是NAS服务器,现在任何运行RADIUS客户端软件的计算机都可以成为RADIUS的客户端。

RADIUS基本原理:用户接入NAS,NAS向RADIUS 服务器使用Access-Request数据包提交用户信息,包括用户名、密码等相关信息,其中用户密码是经过MD5加密的,双方使用共享密钥,这个密钥不经过网络传播;RADIUS服务器对用户名和密码的合法性进行检验,必要时可以提出一个Challenge,要求进一步对用户认证,也可以对NAS进行类似的认证;如果合法,给NAS返回Access-Accept数据包,允许用户进行下一步工作,否则返回Access-Reject数据包,拒绝用户访问;如果允许访问,NAS向RADIUS服务器提出计费请求Account-Request,RADIUS服务器响应Account-Accept,对用户开始计费,同时用户可以进行自己的相关操作。

RADIUS协议具有以下特点:

●客户端/服务器结构;

●采用共享密钥保证网络传输安全性;

●良好的可扩展性;

●认证机制灵活;

RADIUS 协议承载于UDP 之上,官方指定端口号为认证授权端口1812、计费端口1813。RADIUS协议在

RFC2865、RFC2866 中定义。锐捷网络RG-SAM系统和NAS

之间的通讯采用RADIUS协议。由于RADIUS协议的良好扩

展性,很多厂家对RADIUS作了扩展,我们公司也对其进

行了扩展。使用时我们应该注意不同公司对RADIUS协议

扩展部分不能完全兼容。

2 RADIUS协议报文结构

2.1 Radius协议报文格式

RADIUS报文格式如下图所示,各域内容按照从左向

右传送

0 1 2 3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

-+-+-+-+-+-+-+-+-+-+-+

| Code | Identifier | Length |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

-+-+-+-+-+-+-+-+-+-+-+

| Authenticator

|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -+-+-+-+-+-+-+-+-+-+-+

| Attributes ...

+-+-+-+-+-+-+-+-+-+-+-+-+-

2.2 Code域

Code域长度为1个字节,用于标明RADIUS报文的类型,如果Code域中的内容是无效值,报文将被丢弃RADIUS Code域的有效值如下:

Code=1 Access-Request

Code=2 Access-Accept

Code=3 Access-Reject

Code=4 Accounting-Request

Code=5 Accounting-Response

Code=11 Access-Challenge

Code=12 Status-Server (experimental)

Code=13 Status-Client (experimental)

Code=65 业务修改请求消息

Code=66 业务修改请求回应消息

Code=67 业务修改请求回应拒绝消息

Code=255 Reserved

其中12 13 255 为保留的Code值一般不会遇到,1 2 3 4 5 11比较常见,分别标明报文类型为认证请求、认证接受、认证拒绝、计费请求、计费回应、计费成功和访问质询。

2.3 Identifier域

Identifier域长度为1个字节,用于匹配请求的回应。如果在短时间内RADIUS服务器收到从相同的源IP,相同源端口,相同标识域的报文,则认为收到的是重复的请求。

2.4 Length域

Length域占两个字节,用于指明报文的有效长度,多出长度域的字节部分将被视为填充。在接收时被忽略。如果报文长度小于长度域中的值,整个报文将被丢弃。长度域的范围在20和4096之间。

2.5 Authenticator

认证字域占用16个字节,用于Radius Client 和Server之间消息认证的有效性,和密码隐藏算法。

访问请求Access-Request报文中的认证字的值是16字节随机数,认证字的值要不能被预测并且在一个共

相关主题