RADIUS - 網路存取的守門員

在現今複雜的網路環境中,如何有效且安全地管理使用者的存取權限,是一項至關重要的任務。RADIUS (Remote Authentication Dial In User Service),中文全名為「遠端使用者撥入驗證服務」,就是為此而生的關鍵協定。它提供了一個集中式的管理框架,確保只有合法的用戶才能存取網路資源。

本文將探討 RADIUS 的起源、核心概念、運作架構以及安全性考量,幫助您更深入地了解這個在網路安全領域中扮演重要角色的協定。

RADIUS 的起源與核心:AAA 框架

RADIUS 協定最早由 Livingston 公司於 1991 年研發,並在後續透過多個 RFC (Request for Comments) 文件(如 RFC 2865)標準化,成為業界廣泛採用的標準。

RADIUS 的核心概念是實現 AAA 框架:

  1. 認證 (Authentication): 驗證「你是誰?」。此步驟負責確認使用者的身份是否合法,通常是透過檢查使用者名稱和密碼。
  2. 授權 (Authorization): 決定「你能做什麼?」。一旦使用者身份被確認,此步驟將決定該使用者被授予哪些網路存取權限或服務等級。
  3. 計費 (Accounting): 記錄「你做了什麼?」。此步驟負責收集和記錄使用者在連線期間的資源使用狀況,例如連線時長、傳輸的數據量等,常用於網路服務的計費或行為審計。

透過將這三個功能集中管理,網路管理員無需在每一台網路設備上單獨設定存取規則,大幅簡化了管理複雜度並提升了安全性。index image

RADIUS 的運作架構

一個典型的 RADIUS 環境主要由三個角色組成:

  • 使用者 (Supplicant): 任何試圖存取網路的終端設備,例如筆記型電腦、智慧型手機等。
  • NAS (Network Access Server): 網路存取伺服器,也稱為「認證者 (Authenticator)」。這是使用者直接連接的網路設備,例如無線基地台 (AP)、VPN 伺服器或交換器。NAS 本身不儲存使用者資料,而是扮演中介者的角色,將使用者的認證請求轉發給 RADIUS 伺服器。
  • RADIUS 伺服器 (Authentication Server): 整個架構的核心。它儲存了所有使用者的資料庫,負責接收並處理來自 NAS 的請求,並根據設定好的策略回覆「接受」、「拒絕」或「挑戰」等訊息。

認證流程

sequenceDiagram
    participant User as 使用者 (Supplicant)
    participant NAS as 網路存取伺服器 (Authenticator)
    participant Radius as RADIUS 伺服器

    User->>NAS: 1. 提供憑證 (如帳號密碼)
    activate NAS

    NAS->>Radius: 2. 轉發認證請求 (Access-Request)
    activate Radius
    
    Note over Radius: 3. 驗證使用者資訊...

    alt 成功
        Radius-->>NAS: 4a. 認證成功 (Access-Accept)
    else 失敗
        Radius-->>NAS: 4b. 認證拒絕 (Access-Reject)
    else 挑戰 (例如 EAP)
        Radius-->>NAS: 4c. 要求更多資訊 (Access-Challenge)
    end

    deactivate Radius

    NAS-->>User: 5. 根據伺服器回應,授予/拒絕/挑戰使用者
    deactivate NAS

RADIUS 的認證流程是一個標準的客戶端-伺服器模型:

  1. 請求存取: 使用者嘗試連接到 NAS,並提供其憑證(如帳號密碼)。
  2. 轉發請求: NAS 將使用者的憑證資訊封裝成一個 Access-Request 封包,並傳送給 RADIUS 伺服器。
  3. 驗證與決策: RADIUS 伺服器收到請求後,會在自己的資料庫中查詢並驗證使用者資訊的正確性。
  4. 回覆結果:
    • 如果驗證成功,伺服器會回傳一個 Access-Accept 封包給 NAS,其中可能包含授權資訊(例如允許的連線時間、分配到的 IP 位址等)。NAS 隨後便會允許使用者存取網路。
    • 如果驗證失敗,伺服器則回傳 Access-Reject 封包,NAS 會據此中斷使用者的連線。
    • 在某些情況下(例如使用 CHAP 或 EAP 協定),伺服器可能會回傳 Access-Challenge 封包,要求使用者提供進一步的資訊以完成驗證。

這個流程確保了所有存取控制都在中央的 RADIUS 伺服器上進行,NAS 只需遵循伺服器的指令即可。

安全性考量

儘管 RADIUS 應用廣泛,但它也存在一些固有的安全問題:

  • 密碼加密: 在原始的 RADIUS 協定中,只有使用者的密碼在傳輸時會經過加密,其餘資訊(如使用者名稱、屬性等)皆以明文傳輸,可能遭到竊聽。
  • 離線攻擊: 攻擊者可能攔截通訊封包,並對加密的密碼進行離線暴力破解。
  • 中間人攻擊 (MitM): 在某些部署情境下(如 NAS 漫遊),攻擊者有機會偽造或劫持通訊,冒充合法的使用者或設備。

為了應對這些挑戰,後續發展出了如 EAP (Extensible Authentication Protocol) 等更安全的認證方法,並將其運行在 RADIUS 之上,以增強整體安全性。此外,RADIUS 的後繼者 Diameter 協定也解決了許多 RADIUS 的不足之處。

結論

RADIUS 作為一個成熟且穩定的 AAA 協定,至今仍在各種網路環境中扮演著不可或缺的角色,特別是在 Wi-Fi (802.1X)、企業 VPN 和 ISP 撥接服務中。它提供了一個高效、可擴展且集中化的方式來管理使用者存取,是現代網路安全架構的基石之一。

參考資料

  • RFC 2865 - Remote Authentication Dial In User Service (RADIUS)
  • RFC 2866 - RADIUS Accounting
  • RFC 2869 - RADIUS Extensions
  • RFC 5176 - RADIUS Extensions for Dynamic Authorization
  • RFC 6614 - Transport Layer Security (TLS) Encryption for RADIUS

也許你也會想看看