一、AAA认证架构

 理解AAA基本概念与架构

  • 先介绍: AAA是什么(认证、授权、计费)

  • 重点理解: 为什么需要AAA?它的三大功能分别解决什么问题?

  • 关联后续: 这是所有后续协议(RADIUS/TACACS+)的基础。

1.基础概念

AAA是一个安全框架,它包含三个独立但紧密相关的功能,共同构成了网络访问控制的基础。

功能 (Function)核心问题 (Core Question)关键动作 (Key Actions)类比 (Analogy)
认证 (Authentication)“你是谁?” (Who are you?)验证用户/设备的身份。检查用户名、密码、证书等凭据。进入大楼时,保安查看你的工牌(身份标识)。
授权 (Authorization)“你能做什么?” (What can you do?)决定用户/设备有权访问哪些资源和服务。授予特定权限。保安根据你的工牌权限,告诉你能去哪些楼层(权限划分)。
计费 (Accounting)“你做了什么?” (What did you do?)记录用户/设备使用网络资源的情况。用于审计、计费、监控。保安在登记本上记录你进出大楼的时间(行为审计)。

💡关键理解:这三个功能是按顺序执行的。必须先通过认证(证明你是谁),才能进行授权(决定你能干嘛),同时计费全程记录你的行为。

2.AAA架构与实现方式

AAA服务可以通过两种主要方式部署,这是面试中必问的重点。

1. 本地认证 

  • 工作原理:网络设备(如路由器、交换机)自身扮演AAA服务器的角色。用户的用户名和密码信息直接配置在设备的本地数据库中。

  • 工作流程

    1. 用户尝试登录设备。

    2. 设备检查输入的用户名和密码是否与本地配置的完全匹配。

    3. 设备直接告知用户成功或失败。

  • 优点:简单、快速,不依赖外部网络和服务。

  • 缺点:用户信息分散在各个设备上,难以管理和维护,安全性较低。

  • 适用场景:小型网络、设备管理登录(如console/SSH)、设备间协议认证(如BGP邻居认证)

2. 远程认证 

  • 工作原理:网络设备(称为NAS,网络接入服务器)作为客户端,将用户的认证信息转发给专门的AAA服务器进行处理。

  • 工作流程

    1. 用户尝试登录或接入网络。

    2. NAS(客户端)将用户凭证打包成协议报文(如RADIUS)发送给AAA服务器。

    3. AAA服务器查询中央数据库,验证凭证,并将结果(接受/拒绝)返回给NAS。

    4. NAS根据结果允许或拒绝用户访问。

  • 优点集中化管理,安全性高,易于审计,支持复杂策略。

  • 缺点:依赖网络连通性和服务器性能。

  • 适用场景:中大型企业网络,需要对大量用户进行统一接入控制的场景(如Wi-Fi、VPN、网络登录)。

3.NAS的关键角色

  • 定义:NAS是AAA架构中的客户端,是用户进入网络的“门户”或“关卡”。

  • 职责

    • 接收用户的接入请求(如PPPoE拨号、连接Wi-Fi、发起VPN隧道)。

    • 收集用户的认证信息(用户名、密码)。

    • 与AAA服务器进行通信(使用RADIUS或TACACS+协议)。

    • 执行AAA服务器下发的授权指令(如为用户分配IP地址、下发ACL访问策略)。

    • 向AAA服务器发送计费信息。

常见NAS设备:路由器、交换机、无线控制器(AC)、VPN网关、宽带接入服务器(BRAS)。

4.AAA支持的服务

AAA保护的服务类型 
  • FTP: 文件传输服务。AAA可以对登录FTP服务器的用户进行认证和授权(如允许访问哪个目录)。

  • TELNET: 远程登录服务。这是最经典的用例,对登录网络设备的用户进行认证和授权(如授予不同操作权限级别)。

  • PPP: 点对点协议(如宽带拨号上网)。AAA是PPPoE拨号认证的核心(比如ADSL上网需要输入账号密码,那就是AAA在后台工作)。

  • 端口接入: 如IEEE 802.1X认证。用户连接交换机的一个端口后,必须通过认证才能让该端口打开并接入网络。

🎯 面试重点与理解提示

  • 不要死记硬背服务列表: 关键是理解“任何需要验证身份、控制权限、记录行为的网络服务,都可以集成AAA” 这一核心思想。

  • 理解“授权”的灵活性: 授权下发的不仅仅是“通过”或“拒绝”,而是一套精细化的策略(Policy),比如VLAN、ACL、用户级别、路由策略等。这是AAA功能强大的体现。

  • 计费的目的不仅是收费: “计费”一词听起来像是为了赚钱,但在企业网中,它更重要的目的是安全审计(Auditing)和网络行为分析。记录“谁在什么时间做了什么”,这对于合规性和故障排查至关重要。

总结:这一页PPT让你从抽象概念落地到具体应用,是理论联系实际的关键一环。

二、RADIUS协议

1.协议概述

为什么用UDP而不用TCP?

  • 效率更高: 无连接,开销小,速度快。对于大规模接入场景,性能至关重要。

  • 简单: 实现起来比TCP简单。

  • 重传机制: RADIUS在应用层自己实现了重传机制(通过Identifier字段和超时计时器),弥补了UDP不可靠的缺点。

  • 客户端/服务器模型 (C/S): NAS是客户端,负责将用户请求转发给RADIUS服务器。

  • 共享密钥 (Shared Secret): 客户端和服务器之间配置一个共享的密钥,用于验证消息的完整性和加密密码(使用MD5哈希)。注意: 仅密码被加密,报文头和其他属性是明文传输的。

  • 协议效率高: 基于无连接的UDP,开销小,速度快,适合大规模用户接入场景。

  • 基本报文类型:

    • Access-Request (认证请求)

    • Access-Accept (认证接受)

    • Access-Reject (认证拒绝)

    • Accounting-Request (计费请求)

    • Accounting-Response (计费响应)

2. 安全机制:共享密钥

  • 作用:

    1. 加密密码: 用于加密User-Password属性。

    2. 验证消息完整性: 用于生成Response Authenticator,防止数据篡改。

    3. 身份验证: 确保消息来自合法的客户端或服务器。

  • 密码是如何加密的? 使用共享密钥和Request Authenticator,通过MD5算法生成一个16字节的散列值,与密码进行异或操作。(不是直接加密,而是混淆)

  • 哪些信息被加密? 只有User-Password等极少数敏感属性被加密,其他报文头部和属性都是明文传输的。这是RADIUS的一个安全弱点。

3.报文结构

Authenticator (16字节): 验证器,有两种类型:

  • Request Authenticator: 在Access-Request中,是一个随机数,用于加密密码。

  • Response Authenticator: 在响应报文中,是一个MD5散列值,由Code+ID+Length+Request Auth+共享密钥+Attributes计算得出,用于验证响应是否合法。

3.1 属性 (Attributes) - TLV结构

1 - User-Name: 用户名

2 - User-Password: 加密后的密码

4 - NAS-IP-Address: NAS的IP地址

8 - Framed-IP-Address: 下发分配给用户的IP地址

11 - Filter-Id: 下发给NAS的ACL名称

26 - Vendor-Specific: 厂商特定属性 (VSA)是RADIUS强大扩展性的基石。

31 - Calling-Station-ID: 主叫号码/用户MAC地址

4.交互流程

我们将一个完整的用户会话(如PPP拨号或Wi-Fi连接)分为两个完全独立的阶段:

  1. 认证与授权阶段(使用UDP端口1812

  2. 计费阶段(使用UDP端口1813

🔍 流程步骤详解

阶段一:认证与授权(端口 1812)

第1步:用户发起连接

  • 用户在网络接入点(如拨号连接、Wi-Fi认证页面)输入用户名和密码。

  • NAS 接收到这些凭证。

第2步:NAS发送 Access-Request

  • NAS 扮演RADIUS客户端角色,将用户信息打包成一个 Access-Request 报文

  • 关键字段和操作:

    • Code = 1 (Access-Request)

    • Identifier: 生成一个随机数(例如X),用于匹配请求和响应。

    • Request Authenticator: 生成一个16字节的随机数

    • 加密密码:使用共享密钥和Request Authenticator,通过MD5算法对用户密码进行加密,填入 User-Password 属性。

    • 添加其他属性,如 User-NameNAS-IP-AddressNAS-PortCalled-Station-ID(AP MAC地址)等。

  • 将此报文发送给RADIUS服务器(1812端口)。

第3步:RADIUS服务器处理并响应

  • RADIUS服务器 收到请求后:

    1. 验证客户端:根据NAS的源IP地址查找配置的共享密钥。

    2. 验证密码:使用查到的共享密钥和收到的 Request Authenticator,用相同的算法解密 User-Password 属性,得到明文密码。

    3. 认证查询:将 User-Name 和解密后的密码与用户数据库(如LDAP、本地文件)进行比对。

    4. 授权查询:如果认证成功,服务器会查询该用户的授权策略。

  • 服务器返回三种响应之一:

    • Access-Accept (Code=2): 认证成功该报文内直接包含授权属性,如:

      • Framed-IP-Address: 分配给用户的IP地址。

      • Filter-Id: 下发给NAS的访问控制列表(ACL)名称,用于控制用户访问权限。

      • Session-Timeout: 会话超时时间(秒)。

    • Access-Reject (Code=3): 认证失败(密码错误、用户不存在等)。

    • Access-Challenge (Code=11): 请求挑战(用于更复杂的多因子认证,如SMS验证码。本次讨论暂不展开)。

  • Identifier字段必须与请求报文中的完全相同(即X)。

第4步:NAS执行操作

  • NAS收到响应后,根据 Code 执行操作:

    • Access-Accept: 允许用户接入,并根据报文中的授权属性为用户配置网络参数(如分配IP、应用ACL)。

    • Access-Reject: 拒绝用户接入,断开连接。

阶段二:计费(端口 1813)

第5步:NAS发送计费开始请求

  • 一旦用户会话被建立,NAS会立即向RADIUS服务器发送一个 Accounting-Request 报文。

  • 关键字段和操作:

    • Code = 4 (Accounting-Request)

    • Status-Type = Start (1): 表示这是一个“开始”计费记录。

    • Acct-Session-ID: 一个唯一的会话标识符,用于将开始和结束记录关联起来。

    • 包含用户和会话信息,如 User-NameFramed-IP-AddressNAS-Port

  • 使用一个新的 Identifier (例如Y),通过1813端口发送。

第6步:服务器确认计费开始

  • RADIUS服务器收到后,会记录会话开始事件(通常写入数据库或日志文件)。

  • 回复一个 Accounting-Response (Code=5) 作为确认。Identifier 同样为Y。

第7&8步:(可选)临时更新

  • 对于长会话,NAS可能会定期(如每30分钟)发送 Status-Type = Interim-Update (3) 的 Accounting-Request,上报截至当前的使用量(流量、时长)。

  • 服务器每次都会回复 Accounting-Response

第9&10&11步:用户断开,NAS发送计费结束请求

  • 用户主动断开或超时断开连接。

  • NAS发送一个 Status-Type = Stop (2) 的 Accounting-Request

  • 此报文中包含最终的会话统计数据,如:

    • Acct-Session-Time: 会话总时长(秒)。

    • Acct-Input-Octets: 用户接收的总字节数。

    • Acct-Output-Octets: 用户发送的总字节数。

  • 服务器记录最终数据并回复 Accounting-Response。会话生命周期结束。


三、TACACS 协议详解

1.基本概念

核心特性:

  • 模块化设计: 将认证、授权、计费三个功能完全分离,每个功能都使用独立的报文类型和会话。

  • 增强的安全性: 加密整个报文载荷(除头部)。

  • 精细化的控制 : 支持极其细致的命令行授权。

1. 传输层协议与端口

  • 协议: TCP

  • 端口: 49

  • 面试重点:为什么用TCP?

    • 可靠性: 确保管理配置命令等关键消息不丢失、不乱序。

    • 复杂交互: TACACS+的交互可能是多回合的(挑战-应答),TCP的面向连接特性更适合这种长对话。

    • 安全性: 为整个报文加密提供了稳定的传输基础。

2. 安全机制:加密整个报文正文

  • 加密方式: 使用MD5算法和共享密钥,对整个报文正文(Payload) 进行加密。

  • 对比RADIUS:

    RADIUSTACACS+
    加密范围仅加密 User-Password 等少数属性加密整个报文正文
    报文头明文明文
    安全性较低,易被嗅探,防止流量分析

3. 模块化设计:认证、授权、计费分离

这是TACACS+最核心、最区别于RADIUS的特性。

功能RADIUSTACACS+
认证 (AuthN)与授权捆绑在 Access-Request/Accept 中完成独立流程,使用 STARTCONTINUEREPLY 报文
授权 (AuthZ)随认证响应一并下发独立流程,使用 REQUESTRESPONSE 报文
计费 (Acct)独立,但功能相对简单独立流程,记录更详细的管理操作日志

这种分离使得每个过程可以独立进行,非常灵活。例如,一个用户可以通过一种方式认证(如LDAP),但授权信息却来自另一个数据库。

2.报文结构

  • major/minor version: 版本号。

  • type (1字节): 定义报文的主要类型,这是最重要的字段。

    • 0x01 - Authentication (认证)

    • 0x02 - Authorization (授权)

    • 0x03 - Accounting (计费)

  • seq_no (1字节): 序列号。指示当前会话中的报文序号。第一个请求报文为1,后续每次发送加1。用于管理多回合交互。

  • flags: 标志位,如UNENCRYPTED位(不建议使用)。

  • session_id: 会话ID,用于唯一标识一个会话。

  • length (4字节): 被加密的正文字段的长度。

报文正文 (Body)

  • 头部之后的部分。

  • 整个正文部分都被加密

  • 正文的具体格式和含义由type字段决定。

3.交互流程 

以最经典的用户通过Telnet/SSH登录网络设备为例,展示了一个完整的、成功的交互过程:

⚖️ 4.TACACS+ vs. RADIUS 核心对比总结

特性维度RADIUSTACACS+
传输协议UDP (无连接,高效)TCP (面向连接,可靠)
加密方式仅加密密码加密整个报文正文
协议设计认证 & 授权 合并认证、授权、计费 完全分离
交互特性简单,通常1-2回合复杂,支持多回合挑战应答
控制粒度较粗,基于用户组极细,可控制到单条命令
主要场景用户网络接入 (IP级)网络设备管理 (字符型CLI)
标准性开放标准 (IETF RFC)Cisco私有 (事实标准)

四、典型应用案例

1.AAA技术最主要的三大应用场景

1.1 用户接入认证授权

  1. 一个用户通过多种方式发起连接:“用户直接发起VPN连接” 和 “LAN或wlan接入”
  2. 用户的请求到达一台路由器(ROUTER,它在此处扮演NAS的角色)。
  3. 路由器将用户的认证信息(如用户名密码)发送给后端的 RADIUS 服务器进行验证。
  4. 验证通过后,用户被允许接入“总部”网络。

1.2登录设备认证授权

1.3设备间协议认证

应用场景首选协议原因备选方案
用户接入网络 (VPN, WiFi)RADIUS高效、标准,适合处理大量用户和网络层授权本地认证 (小规模)
用户登录设备 (SSH, Telnet)TACACS+提供最精细的命令级授权和完整的审计日志RADIUS (基本认证)、本地认证 (备用)
设备间协议认证 (BGP, OSPF)本地认证简单、可靠、不依赖外部服务 (几乎不使用远程认证)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/96791.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/96791.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/96791.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

客户生命周期价值帮助HelloFresh优化其营销支出

1 引言 了解客户的长期价值对HelloFresh至关重要。客户生命周期价值(CLV)代表了客户与公司关系的整个过程中所产生的总价值。通过预测这一指标,我们可以更明智地决定如何分配营销资源,以获得最大的影响。 在本文中,我…

Vue 2 中的 v-model和Vue3中的v-model

你问的是 v-model&#xff08;不是 v-modal 吧 &#x1f604;&#xff09;&#xff0c;我来帮你梳理一下 Vue2 和 Vue3 的 v-model 区别。&#x1f539; Vue 2 中的 v-model语法<input v-model"msg">v-model 本质上是 语法糖&#xff0c;等价于&#xff1a;<…

朴素贝叶斯算法学习总结

一、贝叶斯理论基础 1. 贝叶斯思想的核心 贝叶斯算法由 18 世纪英国数学家托马斯・贝叶斯提出&#xff0c;其核心是解决 “逆概” 问题 —— 区别于 “正向概率” 已知条件求结果概率的思路&#xff0c;逆概是通过观测到的结果&#xff0c;反推导致该结果的原因概率。比如在日常…

【Protues仿真】基于AT89C52单片机的舵机和直流电机控制

目录 1 PWM信号 1.1 三个最基本的量 1.1.1 周期 T&#xff08;Period&#xff09; 1.1.2脉冲宽度 Th&#xff08;High Time&#xff09; 1.1.3占空比 D&#xff08;Duty Cycle&#xff09; 1.2 为什么要用 PWM 1.3 关键参数对照表 1.4单片机里产生 PWM 的四种套路 1.4…

vue家教预约平台设计与实现(代码+数据库+LW)

摘要 随着互联网技术的不断发展&#xff0c;在线家教平台逐渐成为家长和学生选择教育服务的重要途径。尤其在现代社会中&#xff0c;个性化教育需求日益增多&#xff0c;传统的线下家教形式已无法完全满足广大家长和学生的需求。在线家教平台不仅能为学生提供更多选择&#xf…

AI系列 - Claude 与 Qwen 模型自动补全对比:谁更胜一筹?

Claude 与 Qwen 模型自动补全对比&#xff1a;谁更胜一筹&#xff1f; 导读&#xff1a;随着大语言模型的快速发展&#xff0c;自动补全功能在代码编写、文本生成等领域变得越来越重要。本文将对比 Anthropic 的 Claude 系列模型与 Alibaba 的 Qwen 系列模型在自动补全任务中的…

【ARM】MDK在debug模式下断点的类型

1、 文档目标本文旨在深入探讨嵌入式开发环境中&#xff08;以MDK为例&#xff09;调试模式下的断点类型&#xff0c;帮助开发者全面了解不同断点的工作原理及其应用场景。通过掌握这些知识&#xff0c;开发者可以更高效地进行代码调试&#xff0c;快速定位和解决问题。2、 问题…

CF2133C 下界(The Nether)

CF2133C 下界&#xff08;The Nether&#xff09; 洛谷题目传送门 题目描述 这是一道交互题。 最近发现下界&#xff08;The Nether&#xff09;后&#xff0c;Steve 在他的世界中建造了一个由 nnn 个下界传送门组成的网络&#xff0c;每个传送门位于不同的位置。 每个传送…

无线USB转换器TOS-WLink网盘更新--TOS-WLink使用帮助V1.0.pdf

1&#xff0c;编写原因 随着当前视频越来越多&#xff0c;对于首次接触到WLink的朋友、首次开箱使用的朋友不够友好&#xff0c;常常感觉无从下手&#xff0c;为此编写了TOS-WLink使用帮助V1.0.pdf&#xff1b;按照文档进行一步一步驱动安装&#xff0c;配网&#xff1b;文档中…

Redis面试精讲 Day 29:Redis安全防护与最佳实践

【Redis面试精讲 Day 29】Redis安全防护与最佳实践 在“Redis面试精讲”系列的第29天&#xff0c;我们聚焦于一个在生产环境中至关重要、却常被开发者忽视的核心主题——Redis的安全防护与最佳实践。随着Redis广泛应用于高并发、分布式系统中&#xff0c;其暴露在公网或内网中…

【数据结构】LeetCode160.相交链表 138.随即链表复制 牛客——链表回文问题

文章目录一、相交链表问题问题描述解题思路分析思路一&#xff1a;暴力遍历法思路二&#xff1a;双指针对齐法&#xff08;最优解&#xff09;二、链表的回文结构问题描述解题思路完整代码三、 随即链表的复制问题描述解题思路复杂度分析一、相交链表问题 问题描述 给定两个单…

Mysql InnoDB 底层架构设计、功能、原理、源码系列合集【四、事务引擎核心 - MVCC与锁机制】

Mysql InnoDB 底层架构设计、功能、原理、源码系列合集 一、InnoDB 架构先导。【模块划分&#xff0c;各模块功能、源码位置、关键结构体/函数】 二、内存结构核心 - 缓冲池与性能加速器 三、日志系统 - 事务持久化的基石 四、事务引擎核心 - MVCC与锁机制 五、InnoDB 高阶…

[ pytorch ] 基于CLIP的zero-shot图像分类

论文&#xff1a;Learning Transferable Visual Models From Natural Language Supervision 地址&#xff1a;Learning Transferable Visual Models From Natural Language Supervision 一、关于CLIP 基于图文匹配的特征学习&#xff1a;该论文证明了预测哪个标题与哪个图像…

SP95N65CTO:一款高性能650V SiC MOSFET的全面解析

碳化硅&#xff08;SiC&#xff09;功率器件因其优异的性能&#xff0c;在高频、高温、高效率的应用中越来越受到重视。本文将以SP95N65CTO为例&#xff0c;详细介绍这款650V SiC MOSFET的关键特性、电气参数与应用场景。一、产品概述SP95N65CTO是一款采用TOLI&#xff08;TO-2…

week4-[二维数组]平面上的点

week4-[二维数组]平面上的点 题目描述 有 NNN 个二维平面上的点&#xff0c;每个点的坐标都是整数且坐标范围都在 0∼9990\sim 9990∼999 之间&#xff0c;求其中出现最频繁的点的出现次数及其坐标。 输入格式 第一行有一个整数 NNN&#xff0c;表示平面上点的个数。 接下来 NN…

领域专用AI模型训练指南:医疗、法律、金融三大垂直领域微调效果对比

领域专用AI模型训练指南&#xff1a;医疗、法律、金融三大垂直领域微调效果对比 &#x1f31f; Hello&#xff0c;我是摘星&#xff01; &#x1f308; 在彩虹般绚烂的技术栈中&#xff0c;我是那个永不停歇的色彩收集者。 &#x1f98b; 每一个优化都是我培育的花朵&#xff0…

在自动驾驶中ESKF实现GINS时,是否将重力g作为变量考虑进去的目的是什么?

在自动驾驶的ESKF中&#xff0c;是否将重力 g 作为估计变量&#xff0c;可以从多个维度来比较这两种方法的差异。对比维度不将重力 g 作为变量将重力 g 作为变量核心假设重力矢量 g 是已知且恒定的完美参考量。重力矢量 g 是需要被估计或校准的量&#xff0c;其值可能存在不确定…

Dify 从入门到精通(第 55/100 篇):Dify 的模型微调(进阶篇)

Dify 从入门到精通&#xff08;第 55/100 篇&#xff09;&#xff1a;Dify 的模型微调 Dify 入门到精通系列文章目录 第一篇《Dify 究竟是什么&#xff1f;真能开启低代码 AI 应用开发的未来&#xff1f;》介绍了 Dify 的定位与优势第二篇《Dify 的核心组件&#xff1a;从节点…

《Password Guessing Using Large Language Models》——论文阅读

1.研究背景LLM在文本生成和理解方面表现出色&#xff0c;但直接用于密码猜测存在以下问题&#xff1a;密码与自然语言的差异&#xff08;短、无语法、需精确匹配&#xff09;生成效率低、重复率高伦理限制&#xff08;如GPT-4拒绝生成大量密码&#xff09;2.本文研究提出PASSLL…

C# 使用OPCUA 与CODESYS进行标签通讯

目录 1.导出的标签 识别标签名称 2.引用OPCUA的包 3.读写方法的封装 4.完整的业务模块封装 1.导出的标签 识别标签名称 从CODESYS导出使用标签通讯的模块文档 大概是这样子的 <?xml version"1.0" encoding"utf-8"?> <Symbolconfiguratio…