RADIUS(Remote Authentication Dial In User Service)协议最初是由Livingston公司提出的,原先的目的是为拨号用户进行认证和计费。后来经过多次改进,形成了一项通用的认证计费协议。
RADIUS是一种C/S结构的协议,它的客户端最初就是NAS(Net Access
Server)服务器,现在任何运行RADIUS客户端软件的计算机都可以成为RADIUS的客户端。RADIUS协议认证机制灵活,可以采用PAP、
CHAP或者Unix登录认证等多种方式。RADIUS是一种可扩展的协议,它进行的全部工作都是基于Attribute-Length-Value的向
量进行的。
RADIUS的基本工作原理。用户接入NAS,NAS向RADIUS服务器使用Access-Require数据包提交用
户信息,包括用户名、密码等相关信息,其中用户密码是经过MD5加密的,双方使用共享密钥,这个密钥不经过网络传播;RADIUS服务器对用户名和密码的
合法性进行检验,必要时可以提出一个Challenge,要求进一步对用户认证,也可以对NAS进行类似的认证;如果合法,给NAS返回Access-
Accept数据包,允许用户进行下一步工作,否则返回Access-Reject数据包,拒绝用户访问;如果允许访问,NAS向RADIUS服务器提出
计费请求Account-Require,RADIUS服务器响应Account-Accept,对用户的计费开始,同时用户可以进行自己的相关操作。
RADIUS还支持代理和漫游功能。简单地说,代理就是一台服务器,可以作为其他RADIUS服务器的代理,负责转发RADIUS认证和计费数据包。所谓漫游功能,就是代理的一个具体实现,这样可以让用户通过本来和其无关的RADIUS服务器进行认证。
RADIUS服务器和NAS服务器通过UDP协议进行通信,RADIUS服务器的1812端口负责认证,1813端口负责计费工作。采用UDP的基本考虑是因为NAS和RADIUS服务器大多在同一个局域网中,使用UDP更加快捷方便。
RADIUS协议还规定了重传机制。如果NAS向某个RADIUS服务器提交请求没有收到返回信息,那么可以要求备份
RADIUS服务器重传。由于有多个备份RADIUS服务器,因此NAS进行重传的时候,可以采用轮询的方法。如果备份RADIUS服务器的密钥和以前
RADIUS服务器的密钥不同,则需要重新进行认证。
RADIUS协议应用范围很广,包括普通电话、上网业务计费,对VPN的支持可以使不同的拨入服务器的用户具有不同权限。最近IEEE提出了802.1x标准,这是一种基于端口的标准,用于对无线网络的接入认证,在认证时也采用RADIUS协议。
常见的认证计费机制与系统:任重而道远
当前常见的认证机制主要有以下几种:
● 基于DCE/Kerberos的认证机制;
● 基于公钥的认证机制;
● 基于挑战/应答(Challenge/Response)的认证机制。
当前常见的计费系统有以下几种:
● IP电话计费:采用RADIUS协议进行计费,对协议本身进行了比较小的改动。由于RADIUS协议本来就是为拨号用户进行认证计费服务的,所以在IP电话业务方面,它基本可以胜任。
● 根据流量进行的网络服务计费:在很多大学中都对校园网用户采用了这样的计费方式。这种计费方式的特点是对计费没有实时性的要求、时间粒度大、计费方式相对单一。
在实际进行流媒体点播收费时会遇到很多问题,对现有的计费协议和解决方案提出了挑战。随着接入网发展的进一步加快,宽带
IP网将承载丰富的数据、语音、图像等多媒体综合业务,作为流媒体业务支撑平台的用户管理和计费系统,有其自身的新业务特点,如时间、流量、多种计费规
则、多种媒体格式等,在选择性、高效性、实时性、可靠性及安全性方面将会提出比电信业务的用户管理和计费系统更高的要求。其中最主要的一点是,流媒体支持
多种媒体格式,并且可以支持多种不同码率,甚至可以在传输的时候根据网络条件来自适应地调整码率,这就给实时流量计费带来了困难,当前的协议不支持实时流
量信息。
对于流媒体点播系统的用户认证和计费,现有的电信系统的管理经验有借鉴意义,但简单生硬地把电信业务的用户管理和计费系统
照搬到流媒体系统中是不可取的,只能在吸收电信系统成熟经验的基础上,根据流媒体业务的自身特点,量身定做用户管理和计费系统,才能真正成为流媒体增值业
务有效的支撑平台,使得流媒体的商业运营成为可能,帮助运营商在激烈的竞争中处于有利地位。
我准备开发一套基于RADIUS协议的用户认证和计费系统,运行在Linux系统上,并可以完成多种用户类型、多种计费策略的认证计费方式。
该计费系统的核心是基于Oracle或MySQL数据库。在数据库里实现对用户的分类和不同计费费率以及计费策略。通信的
核心是RADIUS协议。认证计费分别在两台服务器上实现,前台服务器主要负责认证工作,与Linux流媒体服务器之间采用RADIUS协议进行通信。前
台的另一项工作就是作为RADIUS的代理,给后台服务器转发前台传来的计费数据包。由于RADIUS协议对计费和认证的工作没有更多的规定,其核心就是
对数据适当封装,并进行安全、保密的传送,所以关于RADIUS协议方面的程序通信部分就采用普通的socket编程。
由于要处理多用户并发,所以需要产生多个子进程,对多个用户同时登录的信息进行处理,并且,在函数中要实现一个进程仅处理
一个请求,如果登录数据包的IP和会话ID是相同的,则RADIUS服务器要比较它们请求Attribute中的向量,如果相同则过滤掉一个,通过这种方
式来防止重复处理。
前台要完成的另一个任务就是给后台转发计费数据包。这里主要应用了RADIUS的代理协议。前台后台分别放在两台服务器上
的一个基本考虑是因为后台服务器需要对某些用户进行实时计费,这样就要经常访问数据库,而访问数据库需要大量的系统资源,为了提高系统性能,所以把它们放
在两台服务器上实现。
后台的计费服务器可以实现不同的计费策略。根据用户的类型,可以分为普通和预付费用户两种,在这些用户中,根据消费情况,还可以分成不同的等级。对于节目来说,可以根据流量或者点播的时间进行计费,还可以根据不同的节目内容进行计费,每个节目都有其相应的费率。
RADIUS协议:要不断改进
RADIUS是目前最常用的认证计费协议之一,它简单安全,易于管理,扩展性好,所以得到广泛应用。但是由于协议本身的缺陷,比如基于UDP的传输、简单的丢包机制、没有关于重传的规定和集中式计费服务,都使得它不太适应当前网络的发展,需要进一步改进。
当前IETF成立了专门的工作组讨论关于认证、授权和计费(Authentication, Authorization and Accounting, AAA)的问题,他们认为,一个良好的AAA协议必须具有如下特点:
● 协议必须对典型的信息和协同工作的需求进行明确的规定。
● 协议必须定义错误信息类别,并且可以正确地根据错误类别返回。错误信息类别必须覆盖所有的操作错误。
● 计费操作模型必须描述所有的上网方式。
● 协议必须能够在IP v6上正常运行。
● 协议应该能够在传输过程中正确处理拥塞问题。
● 支持代理。
● 与RADIUS兼容。
● 协议应该定义轻量级数据对象,以便于NAS实现。
● 协议应该提供协议本身和数据模型的逻辑区别,并且支持更多的数据类型。
● 必须定义MIB,支持IP v4和IP v6操作。
基于上述考虑,IETF的AAA工作组在2002年3月提出了一个被称为Diameter的认证计费协议草案。
Diameter协议支持移动IP、NAS请求和移动代理的认证、授权和计费工作,协议的实现和RADIUS类似,也是采用Attribute-
Length-Value三元组来实现,但是其中详细规定了错误处理等内容。
分享到:
相关推荐
配置采用RADIUS协议对用户进行认证和计费,详细讲解华为路由器RADIUS配置
压缩包中的"Radius协议介绍专题.pdf"可能涵盖了以下内容:Radius协议的基本原理、消息结构、操作流程、安全特性、与其他认证协议(如TACACS+、 Diameter)的比较、如何配置和管理Radius服务器、以及在实际网络环境中...
Radius 认证协议能够与各种网络设备和服务器集成,提供强有力的身份验证和访问控制。 在无线网络中,无线 Radius 认证主要用于验证无线用户的身份和权利,以确保无线网络的安全。无线 Radius 认证可以与无线控制器...
Radius协议主要用于网络设备的认证、授权和计费(AAA,Authentication, Authorization, and Accounting)。当用户尝试连接到网络服务时,网络设备会将用户的凭据发送到Radius服务器进行验证。如果验证通过,服务器还...
该协议允许网络设备(如路由器、交换机、无线接入点等)将用户的认证、授权和计费请求转发给集中式的Radius服务器处理。 标题“radius 协议相关文档比较完整的”表明这是一组全面介绍Radius协议的资料,涵盖了协议...
使用RADIUS的好处包括集中管理用户认证、灵活的计费策略、支持多种认证协议(如PAP、CHAP、EAP等),以及与其他网络设备和服务的广泛兼容性。对于需要控制网络访问权限和进行详细用户活动审计的企业和ISP来说,...
**Radius**(Remote Authentication Dial In User Service,远程认证拨入用户服务)是一种广泛应用于网络访问控制领域的认证、授权及计费(AAA)协议。该协议最初由Livingston公司开发,并在1993年首次作为RFC 1588...
- **扩展性**:RADIUS协议支持多种认证协议和标准,易于与其他系统集成。 - **可定制性**:可以根据企业需求自定义计费策略,如按时间、流量或服务类型计费。 6. **RADIUS服务器实现** 常见的开源RADIUS服务器有...
介绍了Radius协议的原理以及网络计费的原理和各种类型,并在此基础上给出了一个基于Radius 协议的局域网计费系统的实现方案。
4 RADIUS系统下用户认证过程 9 4.1 报文1:EAPOL-Start 9 4.2 报文2:EAP-Request/Identity 10 4.3 报文3:EAP-Response/Identity 10 4.4 报文4:RADIUS Access-Request 11 4.5 报文5:RADIUS Access-Challenge 12 ...
基于MAC地址的Radius认证在Linux下的实现 在计算机网络技术飞速发展的今天,信息安全已经成为计算机网络安全中一个非常重要的内容。客户认证技术是计算机网络安全中最常用、最普遍的一种认证技术。Radius认证是客户...
总结起来,RADIUS协议是网络访问控制的关键工具,它提供了安全的认证、授权和计费服务。通过集中管理用户信息,支持多种认证机制,以及利用UDP和加密技术保证通信安全,RADIUS成为了现代网络环境中不可或缺的一部分...
RADIUS协议提供了一种集中式的用户认证、授权和计费(AAA)解决方案。 ToughRADIUS计费引擎的核心功能包括: 1. **认证与授权**:ToughRADIUS支持多种认证方式,如PAP、CHAP、MS-CHAPv1/v2等,同时可与其他认证...
RADIUS(Remote Authentication Dial-In User Service)是一种远程认证拨号用户服务协议,广泛应用于网络电话系统中,用于认证和计费。 该论文首先介绍了RADIUS服务器在网络电话系统中的重要性,然后讨论了基于...
- **远端认证**:通过RADIUS或HWTACACS协议与外部认证服务器交互。这种方式便于集中管理用户信息,并能提供更丰富的业务特性,但需确保服务器的正常运行及其配置的准确性。 #### 授权功能详解 授权功能主要决定了...
FreeRadius是一款广泛应用于网络认证、授权和计费(AAA)的开源软件,尤其在无线网络、802.1X认证、PPP拨号等方面有着重要应用。它支持多种认证协议,如PAP、CHAP、EAP等,适用于Windows和各种Unix/Linux系统。在...
通信方面,RADIUS服务器与NAS之间通过无连接的UDP(User Datagram Protocol)协议进行交互,认证消息在1812端口传输,计费消息在1813端口传输。UDP的使用是因为通常NAS和RADIUS服务器位于同一局域网内,UDP提供了...
RADIUS(Remote Authentication Dial In User Service,远程认证拨号用户服务)是一种网络协议,主要用于远程用户的身份验证、授权和计费(AAA)。它广泛应用于网络接入场景,如宽带接入、无线网络和移动通信等领域...
EAP-TLS(Extensible Authentication Protocol - Transport Layer Security),是一种基于数字证书的认证方式,它结合了802.1X标准与TLS协议的安全特性,提供了一种高度安全的无线网络接入认证方法。相比于传统的...