存取控制(access control)是資訊安全的核心項目之一,它特別重要一方面因為它是大多數資訊系統的入口,將入口顧好,就能解決大半的安全問題。另一方面因為它定義了每位使用者的身分,在見不到實體的資訊與網路時代,電子身分就代表個人,若被冒用,很容易造成名譽與財產的損失。存取控制決定使用者與系統之間的溝通,防止系統資源或資料被未經授權地存取。存取控制在組織中有以下三種操作模式:
- 強制存取控制(mandatory access control, MAC)是一種比較嚴格卻沒有彈性的存取控制模式,由系統管理員(administrator)統一規定組織中的哪些人能夠存取哪些系統、檔案或資料。
- 任意存取控制(discretionary access control, DAC)是比較有彈性的一種模式,它讓每位系統、檔案或資料的所有人(owner)決定組織內使用者對它們的存取權限。
- 角色基準存取控制(role-based access control, RBAC)是一種DAC,但它不針對使用者訂定存取權限,而用他在組織中的角色(如職務)。
身分認證的方法:
身分認證(authentication)是存取控制裡的重要環節,它讓使用者或要求存取的系統能夠證明自己的身分。認證有以下三種要素(factors):
- 「所知之事(something you know)」是利用正確的使用者才知道的事情進行認證,例如通關密碼或PIN。
- 「所持之物(something you have)」是利用正確的使用者才會持有的東西進行認證,例如智慧卡。
- 「所具之形(something you are)」是利用正確使用者本身的生物特徵進行認證,例如指紋或視網膜比對。
以上三者各有優缺點, 同時使用多種要素的認證方法( multi-factor authentication)比較安全。例如同時使用智慧卡與通關密碼,可以降低智慧卡失竊或密碼遭窺視等單一事件所造成的傷害。
「所知之事」是最常用的認證方法,大部分作業系統都以「使用者名稱」和「通關密碼」做為登入時的身分證明。一種簡單的方法是以Password Authentication Protocol(PAP)將使用者名稱與密碼送到伺服器上進行比對,但由於PAP 傳輸並未加密,這種簡單的認證方法並不安全。
安全代符(security tokens)憑「所持之物」做身分認證。這種隨身攜帶的元件上儲存著比人腦記憶的通關密碼複雜的認證資訊,使身分認證程序更加安全。安全代符的種類很多,較常見的有:
- 一次性密碼代符(one-time password tokens):元件上所顯示的數字與遠端伺服器上的數字同步變化,因此在每次登入時都可以驗證代符的真實性。
- 智慧卡(smart cards):本身具有運算功能的晶片卡,可以讓元件與系統進行互相認證。
- 記憶卡(memory cards):只儲存金鑰而不做複雜運算的晶片卡。
- 無線射頻身分證明(RFID):非接觸式晶片卡。
生物特徵(biometrics)藉由使用者「所具之形」做身分認證。主要的方式包括手的比對(指紋、掌紋、手掌尺寸),臉部特徵,視網膜(retina)與虹膜(iris)掃描等。DNA 比對技術若進入實用階段,可以有效降低生物特徵的誤判率。
較先進的身分認證協定
前述 PAP 是一種簡單卻不安全的協定,只在沒有其它選擇的情況下使用。Challenge Handshake Authentication Protocol ( CHAP ) 是一種握手協定(handshake protocol),提供比較好的安全性。CHAP 的運作方法可見圖1-2,客戶端(client)送一個登入要求(logon request)給伺服器;伺服器回應一個挑戰(challenge)給客戶端,挑戰通常是一串隨機數。客戶端以金鑰(key)將挑戰加密後做成回應(response)送給伺服器,伺服器再以對應的金鑰驗證回應之正確性,來決定是否授權客戶端開始使用伺服器的資源。
圖 1-2
憑證(certificates)是另一種常用的身分認證方法。如圖1-3 的右圖所示,客戶端要使用應用伺服器的資源,它先與安全伺服器完成認證(例如使用CHAP)之後取得一張憑證,客戶端以憑證就可以存取應用伺服器。憑證可能是一串很長的數字,或一張儲存著很長數字的智慧卡。圖 1-3 的左圖是Kerberos,一種常用的單點登錄(single sign-on, SSO)技術。電腦設備(例如客戶端與應用伺服器)之間的對話都以較有效率的對稱式(symmetric)加解密來完成,而密鑰則由密鑰分派中心(key distribution center, KDC)掌控。相較之下,憑證系統因為使用非對稱式(asymmetric)加解密。
圖 1-3