跳到主要內容

AAA | Authentication, Authorization, Audit Logging

簡單介紹 AAA(驗證、授權、審計),打造更安全的系統!

YeeeYeee · 約 2 分鐘
AAA | Authentication, Authorization, Audit Logging
目錄
  1. What is AAA
  2. Authentication - 驗證
  3. Authorization - 授權
  4. Audit Logging - 審計
  5. 一點例子
  6. 小結

What is AAA

AAA 是一套關於「誰、能做什麼、做了什麼」的標準流程,確保系統安全且可溯源。

就像走進銀行金庫:

  • 你先證明自己是誰 -> 驗證(Authentication)
  • 銀行決定你能否進金庫 -> 授權(Authorization)
  • 銀行會記錄你進出過金庫、動過哪些保險箱 -> 審計Audit Logging)

驗證(Authentication)和授權(Authorization)常被混淆,我以前也搞錯過。
搞清楚它們的界線,是打造安全系統的第一步。少了其中任何一個,資安防線就會 ——
◢▆▅▄▃ 崩╰(〒皿〒)╯潰 ▃▄▅▆◣


Authentication - 驗證

Authentication(簡稱 AuthN),是「證明你就是你所說的那個人」。

常見驗證方式:

  • 你知道的事:密碼、PIN、金鑰、安全問題(別用問題「你第一隻寵物的名字」當答案噢!)
  • 你擁有的物品:身份證、工作卡、安全金鑰、行動裝置
  • 你本身的特徵:指紋、臉、聲音、虹膜

建議採用多因素驗證(MFA),就像大門有雙重鎖:指紋不夠,還需虹膜辨識才能進門,大幅提升安全性。

有更多疑問?請參考~~ 電影《Mission: Impossible》~~ OWASP Authentication Cheat Sheet


Authorization - 授權

Authorization(簡稱 AuthZ)是「你被允許做哪些事」。

通過身份驗證後,系統會根據你的角色與權限,決定能存取哪些資源。 常見的授權實作如下:

  • 角色權限(RBAC):例如員工、經理、系統管理員
  • 資源存取控制清單(ACL):針對每個檔案或 API 設定權限
  • 條件式規則:根據地理位置、時間或裝置來源決定能否操作(像 Netflix 根據地區顯示不同影片)

進階概念

  • 零信任(Zero Trust):不信任任何用戶,每次操作都需驗證。
  • 最小權限原則:只給予完成任務所需的最低權限,例如實習生無法刪除資料庫。
  • 限時授權:權限有時間限制,過期後自動失效,減少風險。

Audit Logging - 審計

Audit Logging(或稱為 Accounting)記錄「誰在什麼時間做了什麼」。

這一步常被忽略,但它是優秀系統的核心支柱。
它不只是「流水帳」,更是資安事件發生時的真相來源,幫助追蹤責任與還原事件。 就像是飛機上的黑匣子!

在帳號系統中,Audit Logging 通常包括:

  • 登入與登出紀錄
  • API 存取日誌
  • 權限變更紀錄
  • 管理員操作追蹤

換句話說,它能回答這些問題:

  • 誰刪除了那筆資料?
  • 誰在凌晨三點登入了伺服器?
  • 誰把客戶的錢轉走再轉回來?

沒有這層紀錄,整個系統就像沒有監視器的銀行:出了事,每個人都會說不是我。

小提醒:日誌需妥善儲存並防止篡改,確保可信度。


一點例子

例子 1

  1. 你登入 Netflix,系統確認你是帳號主人。 → 驗證 AuthN
  2. Netflix 檢查你的方案與地區,只開放 1080p 的台灣片庫 → 授權 AuthZ
  3. Netflix 紀錄你昨天看了三集《The Big Bang Theory》 → 審計 Audit Logging

例子 2

  1. 你呼叫 API /users/login → 驗證帳號密碼(AuthN)
  2. 後端發出 JWT Token,限制角色 user 只能呼叫 /profile 而非 /admin → (AuthZ)
  3. 系統在資料庫的 audit_logs 表裡記下 "user_id=123"2025-10-12 19:45 呼叫了 /profile/update → (Audit Logging)

小結

AAA 是系統安全的三層保險:

  • AuthN:我是不是我
  • AuthZ:我能不能做
  • Audit Logging:我做了什麼

理解這三個「A」,能讓你的系統更安全,無論是個人帳號還是企業應用。
試著在你的專案中實作 AAA,打造固若金湯的資安防線吧!