RADIUS 远程用户拨号认证系统

2020-06-15 14:21 更新

一、简介

1.简述

RADIUS:Remote Authentication Dial In User Service,远程用户拨号认证系统由RFC2865,RFC2866定义,是应用最广泛的AAA协议。AAA是一种管理框架,因此,它可以用多种协议来实现。在实践中,人们最常使用远程访问拨号用户服务(Remote Authentication Dial In User Service,RADIUS)来实现AAA。

2.作用

RADIUS是一种C/S结构的协议,它的客户端最初就是NAS(Net Access Server)服务器,任何运行RADIUS客户端软件的计算机都可以成为RADIUS的客户端。RADIUS协议认证机制灵活,可以采用PAP、CHAP或者Unix登录认证等多种方式。RADIUS是一种可扩展的协议,它进行的全部工作都是基于Attribute-Length-Value的向量进行的。RADIUS也支持厂商扩充厂家专有属性。 由于RADIUS协议简单明确,可扩充,因此得到了广泛应用,包括普通电话上网、ADSL上网、小区宽带上网、IP电话、VPDN(Virtual Private Dialup Networks,基于拨号用户的虚拟专用拨号网业务)、移动电话预付费等业务。IEEE提出了802.1x标准,这是一种基于端口的标准,用于对无线网络的接入认证,在认证时也采用RADIUS协议。

二、报文

1.报文格式

2.报文字段

字段 长度 描述
Code 1 byte 用来标识RADIUS报文类型。
Packet Identifier 1 byte 用于匹配请求和回应报文。果在一个很短的时间内接收到相同的源IP地址、源UDP端口号和相同的Identifier域的请求报文,RADIUS服务器就可以认为是重复的请求报文。
Packet Length 2 bytes 包含了报文中的Code域,Identifier域,Length域,Authenticator域和属性域的总长度。如果收到的报文实际长度超过Length,超过部分被当做填充内容忽略掉,如果实际长度小于Length,报文被丢弃。
Authenticator 16 bytes 用于认证来自服务端的响应,也用于用户密码的加密处理中。
AVPs 变长 属性字段,承载认证、授权、计费以及配置等信息。采用TLV格式。

3.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 = 255: Reserved,保留

4.Authenticator域

占用16个字节,用于Radius Client 和Server之间消息认证的有效性,和密码隐藏算法。访问请求Access-Request报文中的认证字的值是16字节随机数,认证字的值要不能被预测并且在一个共享密钥的生命期内唯一。

  1. 访问请求认证字 在Access-Request包中认证字的值是16字节随机数,认证字的值要不能被预测,并且在一个共享密钥的生命期内唯一;
  2. 访问回应认证字 Access-Accept Access-Reject 和Access-Challenge包中的认证字称为访问回应认证字,访问回应认证字的值定义为MD5(Code+ID+Length+RequestAuth+Attributes+Secret);
  3. 计费请求认证字 在计费请求包中的认证字域称为计费请求认证字,它是一个16字节的MD5校验和,计费请求认证字的值定义为MD5(Code + Identifier + Length + 16 zero octets + request attributes +shared secret);
  4. 计费回应认证字 在计费回应报文中的认证字域称为计费回应认证字,它的值定义为MD5(Accounting-Response Code + Identifier + Length + the RequestAuthenticator field from the Accounting-Request packet being replied to +the response attributes + shared secret);

4.优势特点

RADIUS协议承载于UDP之上,官方指定端口号为认证授权端口1812、计费端口1813。RADIUS协议简单明确、扩展性好,因此得到了广泛应用,具有以下特点: 采用通用的客户端/服务器结构组网 NAS作为RADIUS的客户端负责将用户信息传递给指定的RADIUS服务器,然后处理RADIUS服务器的返回结果。RADIUS服务器负责接收用户的连接请求,对用户进行认证,给客户端返回用户配置信息。 采用共享密钥保证网络传输安全性 客户端与RADIUS服务器之间的交互是通过共享密钥来进行相互认证的,以减少在不安全的网络中用户密码被侦听到的可能性。 具有良好的可扩展性 RADIUS是一种可扩展的协议,所有的交互报文由多个不同长度的ALV(Attribute-Length-Value)三元组组成,新增加属性和属性值不会破坏到协议的原有实现。因此RADIUS协议也支持设备厂商扩充厂家专有属性。 协议认证机制灵活 RADIUS协议认证机制灵活,支持多种认证用户的方式。如果用户提供了用户名和用户密码的明文,RADIUS协议能够支持PAP、CHAP、UNIX login等多种认证方式。 RADIUS协议简单明确、扩展性强,因此得到了广泛应用。在普通电话拨号上网、ADSL拨号上网、社区宽带上网、VPDN业务、移动电话预付费等业务中都能见到RADIUS的身影。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号