一、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服務器的角色。用戶的用戶名和密碼信息直接配置在設備的本地數據庫中。
工作流程:
用戶嘗試登錄設備。
設備檢查輸入的用戶名和密碼是否與本地配置的完全匹配。
設備直接告知用戶成功或失敗。
優點:簡單、快速,不依賴外部網絡和服務。
缺點:用戶信息分散在各個設備上,難以管理和維護,安全性較低。
適用場景:小型網絡、設備管理登錄(如console/SSH)、設備間協議認證(如BGP鄰居認證)。
2. 遠程認證?
工作原理:網絡設備(稱為NAS,網絡接入服務器)作為客戶端,將用戶的認證信息轉發給專門的AAA服務器進行處理。
工作流程:
用戶嘗試登錄或接入網絡。
NAS(客戶端)將用戶憑證打包成協議報文(如RADIUS)發送給AAA服務器。
AAA服務器查詢中央數據庫,驗證憑證,并將結果(接受/拒絕)返回給NAS。
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.?安全機制:共享密鑰
作用:
加密密碼:?用于加密
User-Password
屬性。驗證消息完整性:?用于生成
Response Authenticator
,防止數據篡改。身份驗證:?確保消息來自合法的客戶端或服務器。
密碼是如何加密的??使用共享密鑰和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連接)分為兩個完全獨立的階段:
認證與授權階段(使用UDP端口
1812
)計費階段(使用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-Name
、NAS-IP-Address
、NAS-Port
、Called-Station-ID
(AP MAC地址)等。將此報文發送給RADIUS服務器(
1812
端口)。第3步:RADIUS服務器處理并響應
RADIUS服務器?收到請求后:
驗證客戶端:根據NAS的源IP地址查找配置的共享密鑰。
驗證密碼:使用查到的共享密鑰和收到的?
Request Authenticator
,用相同的算法解密?User-Password
?屬性,得到明文密碼。認證查詢:將?
User-Name
?和解密后的密碼與用戶數據庫(如LDAP、本地文件)進行比對。授權查詢:如果認證成功,服務器會查詢該用戶的授權策略。
服務器返回三種響應之一:
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-Name
、Framed-IP-Address
、NAS-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:
RADIUS TACACS+ 加密范圍 僅加密? User-Password
?等少數屬性加密整個報文正文 報文頭 明文 明文 安全性 較低,易被嗅探 高,防止流量分析
3. 模塊化設計:認證、授權、計費分離
這是TACACS+最核心、最區別于RADIUS的特性。
功能 | RADIUS | TACACS+ |
---|---|---|
認證 (AuthN) | 與授權捆綁在?Access-Request/Accept ?中完成 | 獨立流程,使用?START ,?CONTINUE ,?REPLY ?報文 |
授權 (AuthZ) | 隨認證響應一并下發 | 獨立流程,使用?REQUEST ,?RESPONSE ?報文 |
計費 (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 核心對比總結
特性維度 | RADIUS | TACACS+ |
---|---|---|
傳輸協議 | UDP?(無連接,高效) | TCP?(面向連接,可靠) |
加密方式 | 僅加密密碼 | 加密整個報文正文 |
協議設計 | 認證 & 授權 合并 | 認證、授權、計費 完全分離 |
交互特性 | 簡單,通常1-2回合 | 復雜,支持多回合挑戰應答 |
控制粒度 | 較粗,基于用戶組 | 極細,可控制到單條命令 |
主要場景 | 用戶網絡接入?(IP級) | 網絡設備管理?(字符型CLI) |
標準性 | 開放標準 (IETF RFC) | Cisco私有?(事實標準) |
四、典型應用案例
1.AAA技術最主要的三大應用場景
1.1 用戶接入認證授權
- 一個用戶通過多種方式發起連接:“用戶直接發起VPN連接”?和?“LAN或wlan接入”。
- 用戶的請求到達一臺路由器(ROUTER,它在此處扮演NAS的角色)。
- 路由器將用戶的認證信息(如用戶名密碼)發送給后端的?RADIUS?服務器進行驗證。
- 驗證通過后,用戶被允許接入“總部”網絡。
1.2登錄設備認證授權
1.3設備間協議認證
應用場景 | 首選協議 | 原因 | 備選方案 |
---|---|---|---|
用戶接入網絡?(VPN, WiFi) | RADIUS | 高效、標準,適合處理大量用戶和網絡層授權 | 本地認證 (小規模) |
用戶登錄設備?(SSH, Telnet) | TACACS+ | 提供最精細的命令級授權和完整的審計日志 | RADIUS (基本認證)、本地認證 (備用) |
設備間協議認證?(BGP, OSPF) | 本地認證 | 簡單、可靠、不依賴外部服務 | 無?(幾乎不使用遠程認證) |