定义
AAA协议是网络系统中用于完成认证、授权和计费三类功能的一组协议的统称。认证指在使用网络资源时对用户身份作出确认,授权指决定被认证的用户可以以何种方式使用哪些资源,计费则指收集和记录用户对网络资源的占用情况,用于收费或审计[3]。三者共同实现对特定用户资源使用情况的准确记录,既保障合法用户的权益,也保障网络系统安全可靠地运行[3]。
国际电信联盟在ITU-T Y.2703建议书中把这三项功能表述为:认证用于在最终用户获准接入网络前验证其身份,授权用于界定其应享有的特权和业务,计费则提供衡量资源消耗的手段[1]。按该建议书的描述,AAA业务系统由AAA服务器和AAA客户机两部分构成,服务器可访问用户资料与配置数据,并与置于网元上的客户机及路由器通信,从而以分布式方式提供AAA业务[1]。
原理
主流AAA协议采用客户端-服务器模型。以RADIUS为例,网络接入服务器(NAS)充当客户端,负责把用户信息传递给指定的RADIUS服务器,再根据返回的响应决定是否放行[4]。服务器接收连接请求、验证用户身份,并返回客户端交付业务所需的配置信息[4]。客户端与服务器之间通过共享密钥相互认证,该密钥不在网络上传输;用户口令在传输时经过加密处理[4]。
RADIUS的全部交互都由可变长度的「属性-长度-值」三元组组成,新增属性值不会影响已有的协议实现,这种设计使其具备可扩展性[4]。其报文头部依次包含类型码、标识码、报文总长和16字节的验证码,验证码用于证明发送方未被伪造、内容未被篡改,标识码由客户端设定并被服务器原样回抄,以便客户端将响应与先前的请求对应起来[5]。
Diameter作为对等协议,任一节点都可以发起请求。它把认证、授权、计费三项功能完全分开,通过属性值对(AVP)承载数据,并支持能力协商、错误通知以及代理、中继和重定向等消息转发方式,可为用户会话和计费提供基础服务[6]。
发展历程
RADIUS由Livingston公司于1991年开发,最初面向拨号用户的认证与计费,后被IEEE 802相关标准与IETF标准采纳[7]。其认证与授权部分定义于RFC 2865,计费部分由RFC 2866描述,两份RFC均于2000年6月发布[4]。RADIUS不限定于某家企业的知识产权,逐渐成为互联网AAA领域事实上的国际标准,并被广泛部署在企业无线网络、虚拟专用网和互联网服务提供商基础设施中[8]。
互联网工程任务组于1998年设立AAA工作组,着手为网络接入制定认证、授权与计费的需求与评估标准,其工作建立在早期接入厂商的实践之上[9]。2000年11月发布的RFC 2989汇总了来自NASREQ、ROAMOPS和移动IP等工作组的需求,从可扩展性、故障倒换、客户端与服务器双向认证、实时计费等方面给出AAA协议的评估准则[2]。
为解决RADIUS在复杂网络下的局限,Diameter被提出并被AAA工作组确认为新一代AAA协议。2003年9月,Diameter基础协议成为标准,其编号先为RFC 3588,后由RFC 6733取代[10]。该协议提供AAA基础规范并包含计费支持,可通过新增命令或属性值对扩展出移动IPv4、网络接入等应用[10]。
应用
AAA协议最典型的场景是接入控制:用户或设备提出接入请求,AAA客户机请求AAA服务器完成认证,服务器验证凭证后转入授权流程,再把允许接入的信息逐级返回[1]。用户与网络、业务连接之后,每个AAA客户机都会通知其AAA服务器有关用户资源耗费的信息,以便服务器汇总该用户的计费数据[1]。
在运营商网络中,RADIUS用于宽带用户认证,如数字用户线、光纤和固定无线场景下PPPoE与IPoE会话的建立,也用于企业及公共无线保真热点的802.1X接入控制、移动虚拟网络运营的接入管理以及虚拟专用网远程接入[11]。Diameter则成为4G/LTE核心网的信令协议,承担移动管理实体与归属用户服务器之间的认证与签约数据交互、策略与计费控制以及在线计费等功能,在5G非独立组网和4G与5G互通的网关中仍有使用[11]。
除上述两者外,终端访问控制器访问控制系统增强版(TACACS+)也提供类似的AAA功能,但它把三项功能拆分为独立的协议交互,主要面向网络设备管理人员的身份验证,而非接入网络的用户[8]。
局限
RADIUS在设计上存在若干结构性弱点。它不为响应之外的报文提供完整性保护,不支持逐包机密性,代理、重定向和中继的行为未被标准化定义,因而缺乏代理链的标准规范[12]。该协议也不允许服务器主动发起消息,因此无法实现按需认证和非请求式断开连接,同时不支持错误消息与能力协商,属性的强制与非强制标志也未定义[12]。
RADIUS运行于UDP之上,可靠性因实现而异,计费报文丢失可能导致收入损失;协议本身未定义标准的故障倒换机制,计费重放保护被假定由服务器承担而非由协议提供[12]。其服务器名称和地址需在客户端手工配置,带来管理负担,也容易诱发共享密钥的重复使用[12]。
Diameter虽然在可靠性、漫游、服务质量协商和会话状态管理上有所增强,但RFC 6733同时指出,并不存在能普遍满足所有应用的通用AAA协议,新应用的设计者必须在使用前弄清自身的需求[10]。RFC 2989所列的可扩展性要求也说明,此类协议须能支撑数以百万计的用户和数以万计的同时请求,以及在故障时切换到备用服务器的机制,这些都属于协议必须满足而非可选的能力[2]。
参见
参考资料
- dologin_pub [引用日期2026-10-14]
- Criteria for Evaluating AAA Protocols for Network Access [引用日期2026-10-14]
- CN1809072A(PDF) [引用日期2026-10-14]
- rfc2865 [引用日期2026-10-14]
- 远端用户拨入验证服务 [引用日期2026-10-14]
- rfc3588 [引用日期2026-10-14]
- epfl.ch 上的网页 [引用日期2026-10-14]
- Access protocols | IEEE Technology Navigator [引用日期2026-10-14]
- centralized-authentication-services-bill-stackpole [引用日期2026-10-14]
- rfc6733 - A.1. This Document [引用日期2026-10-14]
- alepo.com 上的网页 [引用日期2026-10-14]
- AAA Part II [引用日期2026-10-14]