导航

忆龙2009:RADIUS协议简介

Posted on 2009-12-20 11:49  忆龙2009  阅读(686)  评论(0编辑  收藏  举报

      RADIUS(Remote Authentication Dial-In User Service,远程认证拨号用户服务)是一种分布式的、客户端/服务器结构的信息交互协议,能保护网络不受未授权访问的干扰,常应用在既要求较高安全性、又允许远程用户访问的各种网络环境中。该协议定义了基于UDP的RADIUS帧格式及其消息传输机制,并规定UDP端口1812、1813分别作为认证、计费端口。

      RADIUS最初仅是针对拨号用户的AAA协议,后来随着用户接入方式的多样化发展,RADIUS也适应多种用户接入方式,如以太网接入、ADSL接入。它通过认证授权来提供接入服务,通过计费来收集、记录用户对网络资源的使用。

客户端/服务器模式

      客户端:RADIUS客户端一般位于NAS设备上,可以遍布整个网络,负责传输用户信息到指定的RADIUS服务器,然后根据从服务器返回的信息进行相应处理(如接受/拒绝用户接入)。

      服务器:RADIUS服务器运行在中心计算机或工作站上,维护相关的用户认证和网络服务访问信息,负责接收用户连接请求并认证用户,然后给客户端返回所有需要的信息(如接受/拒绝认证请求)。

      RADIUS服务器通常要维护三个数据库:

  • “Users”:用于存储用户信息(如用户名、口令以及使用的协议、IP地址等配置信息)。
  • “Clients”:用于存储RADIUS客户端的信息(如接入设备的共享密钥、IP地址等)。
  • “Dictionary”:用于存储RADIUS协议中的属性和属性值含义的信息。
 

安全和认证机制

     RADIUS客户端和RADIUS服务器之间认证消息的交互是通过共享密钥的参与来完成的,并且共享密钥不能通过网络来传输,增强了信息交互的安全性。另外,为防止用户密码在不安全的网络上传递时被窃取,在传输过程中对密码进行了加密。

      RADIUS服务器支持多种方法来认证用户,如PAP、CHAP认证。另外,RADIUS服务器还可以为其它类型的认证服务器提供代理客户端的功能,向其提出认证请求。

 

 

RADIUS的基本消息交互流程

      用户、RADIUS客户端和RADIUS服务器之间的交互流程。

     消息交互流程如下:

(1) 用户发起连接请求,向RADIUS客户端发送用户名和密码。

(2) RADIUS客户端根据获取的用户名和密码,向RADIUS服务器发送认证请求包(Access-Request),其中的密码在共享密钥的参与下由MD5算法进行加密处理。

(3) RADIUS服务器对用户名和密码进行认证。如果认证成功,RADIUS服务器向RADIUS客户端发送认证接受包(Access-Accept);如果认证失败,则返回认证拒绝包(Access-Reject)。由于RADIUS协议合并了认证和授权的过程,因此认证接受包中也包含了用户的授权信息。

(4) RADIUS客户端根据接收到的认证结果接入/拒绝用户。如果允许用户接入,则RADIUS客户端向RADIUS服务器发送计费开始请求包(Accounting-Request)。

(5) RADIUS服务器返回计费开始响应包(Accounting-Response),并开始计费。

(6) 用户开始访问网络资源;

(7) 用户请求断开连接,RADIUS客户端向RADIUS服务器发送计费停止请求包(Accounting-Request)。

(8) RADIUS服务器返回计费结束响应包(Accounting-Response),并停止计费。

(9) 用户结束访问网络资源。