保護軟體的核心觀念 Part 2 – IAM
IAM(Identification and Access Management,身分與存取管理)由四個部分組成:Identification(身分識別)、Authentication(認證)、Authorization(授權)與 Accounting(記錄稽核)——這套俗稱 IAAA 的機制,是保護軟體系統存取權限的核心觀念。本文是 CSSLP 學習筆記系列 Part 2,逐一說明四個環節的重點。
前言
今年希望能學會資安相關知識,透過寫部落格直接讓社群上的專家驗證筆記是否正確。
什麼是 IAM?
應用程式負責控制存取權限,對於整個業務流程來說,應用程式通常是通往資料存取的最前線。IAM (Identification and Access Management) 由四個部分組成:Identification、Authentication、Authorization、Accounting。
什麼是 Identification(身分識別)?
身分證明是用來幫助我們辨識,是誰正在試圖獲得權限存取系統、網路、資料或是設施。身分一定得要是獨特的,而非共享的身分。防止偽造身分可以透過 CAPTCHA 來防止機器人代為申請,或透過 Proof of Possession 來驗證。
什麼是 Authentication(認證)?
認證是對身份進行驗證或是證明的過程。通常有三種身份驗證方法:透過使用者提供所知道的知識(密碼、PIN 碼)、透過擁有的東西(Smart Card、ID Card)、或是透過個人特徵(生物辨識)。
Biometrics
生物辨識提供了一種更安全且便利的方式來確認個人身份,基於每個人獨有的生理或行為特徵,例如指紋、虹膜、臉部特徵或聲音等。
Single Sign-on (SSO)
SSO 是一個讓使用者可以透過一組憑證來存取多個相關但獨立的應用程式或服務。早期最有名的 SSO 就是 Google Login, Facebook Login。
什麼是 Authorization(授權)?
授權是用以給某個使用者或系統是否有權存取特定的資源或進行特定的操作。一般我們會透過 RBAC(角色基礎的存取控制)或 ABAC(屬性基礎的存取控制)的概念來決定使用者的存取權限。
什麼是 Accounting(記錄稽核)?
Accounting 是指追蹤和記錄使用者的存取和系統使用情況的過程。包括 Log 保存、風險管理,以及注意過度記錄對系統效能的影響。我們應該先辨識重要的事件進行紀錄,並定期評估和調整系統指標。
重點整理
- IAM 四環節環環相扣:Identification 確認「你是誰」、Authentication 證明「真的是你」、Authorization 決定「你能做什麼」、Accounting 記錄「你做了什麼」。
- 認證三要素:所知(密碼/PIN)、所有(Smart Card)、所是(生物辨識);SSO 讓一組憑證存取多個獨立服務。
- 授權常用 RBAC(依角色)或 ABAC(依屬性);稽核則要先辨識重要事件再記錄,避免過度記錄拖垮系統效能。
常見問題
為什麼身分一定要獨一無二,不能共用帳號?
因為共用帳號會讓 IAAA 的最後一環直接失效。Accounting 記下來的是「這個帳號做了什麼」,一旦三個人共用,稽核紀錄就無法對應到人,事故追查會停在原地;責任歸屬與權限最小化也跟著失守。實務上最常見的共用來源是維運用的服務帳號與交接時沒收回的離職帳號,這兩類要優先盤點。
加了多因子驗證(MFA)就一定安全嗎?
要看你組合的是不是真的不同因子。密碼加上「安全問題」仍然同屬「所知」,不算多因子。而即使因子選對了,簡訊 OTP 這類方式仍可能被 SIM swap 或即時轉發的釣魚頁面繞過:使用者照樣會把收到的碼輸進假網站。安全性較高的做法是綁定裝置的驗證方式,讓憑證無法離開原本的裝置被轉述。
RBAC 和 ABAC 差在哪?
RBAC(Role-Based Access Control)依使用者的「角色」決定權限,管理簡單;ABAC(Attribute-Based Access Control)依使用者、資源與環境的「屬性」組合判斷,更細緻靈活,適合複雜情境。

Leave a Reply