AAA认证架构
AAA框架
- 认证(Authenication)
- 授权(Authorization)
- 计费(Accounting)
AAA基本结构

AAA包含三种功能:认证、授权、计费
- 常用RADIUS协议和TACACS+协议
- 使用远程服务器,或交换机设备本身作本地认证服务器
AAA支持的服务
- AAA通过对服务器的详细配置,对多种服务提供安全保证
- 支持FTP、TELNET、PPP、端口接入
- 验证动作包含核对用户名、密码、证书
- 授权表现为下发用户权限、访问目录、用户级别等
- 计费表现为记录用户上网流量、时长等
Radius与TACACS+协议
RADIUS协议概述
- RADIUS(Remote Authentication Dial-In User Service,远程认证拨号系统)是分布式的交互协议
- 客户端/服务器结构
- 基于UDP传输,1812(认证、授权)、1813端口(计费)
- 共享密钥、多种认证方式
- TLV结构,利于扩展
RADIUS报文结构

Code字段决定报文类型
- 值为1、2、3表示认证报文
- 值为4、5表示计费报文
RADIUS消息交互流程

RADIUS属性

RADIUS扩展属性

因为标准的RADIUS属性(Type范围是1-255)是IETF定义的通用的属性,比如用户名、NAS IP地址、过滤ID等。但不同的厂商设备可能有特殊的功能或需要传递特殊的信息,标准的属性不够用。26号属性就为这种需求提供了一个标准的扩展方式。
TACACS+协议概述
- TACACS+(Terminal Access Controller Access Control System,终端访问控制器控制系统协议)是一种增强的安全协议
- H3C设备实现的HWTACACS是在TACACS+基础上进行了功能增强的安全协议
- 实现了多种类型用户的AAA功能
TACACS+报文结构

TACACS+交互过程(Telnet)

TACACS+ 与 RADIUS 的核心区别
特性 | TACACS+ | RADIUS |
---|---|---|
传输协议 | TCP (端口49) | UDP (端口1812, 1813) |
安全性 | 加密整个报文体(全面加密) | 仅加密密码 (User-Password属性),其他大部分属性明文传输 |
AAA模型 | 完全分离认证、授权、计费为三个独立过程 | 耦合认证和授权(一起完成),计费独立 |
协议交互 | 多请求-多响应,更复杂,支持更多交互 | 简单的请求-响应模式 |
主要应用场景 | 网络设备 的管理访问(命令行CLI)控制 | 网络接入控制(用户上网、VPN、无线认证) |
授权粒度 | 非常精细 ,支持命令级别的授权 | 相对较粗,通常授权VLAN、ACL、IP地址等网络层参数 |
标准性 | 最初由思科开发,后成为事实标准(RFC草案) | 开放标准(由IETF定义,有多份RFC) |
计费功能 | 功能相对较弱 | 功能非常强大,是设计重点之一 |
总结与类比
为了帮助记忆,可以做一个简单的类比:
-
RADIUS 像一个小区的门禁系统。
- **认证(刷卡)和授权(允许进入小区)**几乎同时完成。
- 计费是记录你什么时候回家、什么时候离开(如果需要物业费按时间计算的话)。
- 它关心的是**"谁"** 在 "什么时候" 可以 "进入" 网络。
-
TACACS+ 像一个公司的服务器机房授权系统。
- 你先用工牌认证身份(进门第一次刷卡)。
- 进去后,安保系统会根据你的身份授权你能操作哪几台服务器(授权)。
- 你每对服务器执行一个操作(比如重启),系统都会记录下来(计费)。
- 它关心的是**"谁"** 在 "什么设备上" 执行了 "什么命令"。
因此,选择哪个协议取决于你的需求:
- 需要对员工或客户上网进行认证 ? -> 首选RADIUS。
- 需要对网络运维人员操作路由器、交换机进行精细化的权限控制和审计 ? -> 首选TACACS+
典型应用案例
- 用户接入认证授权

- 登录设备认证授权
- 设备间协议认证