Transcript 第七章使用者鑑別機制
密碼學 Chapter 7 使用者鑑別機制 User Authentication Mechanisms 1 前言 • 鑑別是密碼學與網路安全中一個極重要 的觀念,藉由辨識特定使用者或系統來 建立可信度 • 鑑別能驗證使用者的真實身分 • 傳統上使用了使用者身份識別碼與通行 密碼 • 鑑別符記在通行密碼基礎之機制中增加 了隨機性,使它更為安全 • 由於 PKI 技術的出現,憑證基礎鑑別已 成為近代常使用的一種鑑別機制 2 鑑別基礎 • 任何密碼學方法中第一步就是鑑別 – 除非知道與誰聯繫,否則通訊內容加密沒有 意義 • 鑑別可被定義為判定使用者身分是否符 合要求 – 工作識別證 – 金融卡使用個人識別碼(PIN) • 鑑別主要的概念是以秘密為基礎 3 通行密碼 • 鑑別方法中最常見的形式就是通行密碼 • 通行密碼是一連串的英文字母、數字和 特別字元,並假設只有被鑑別者這個實 體(通常是人)才知道 4 明文通行密碼(運作流程) 步驟1 : 提示輸入使用者身份識別碼和通行密碼 步驟2 : 輸入使用者身份識別碼和通行密碼 5 明文通行密碼(運作流程) 步驟3 : 驗證使用者身份識別碼和通行密碼 步驟4 : 鑑別結果 6 明文通行密碼(運作流程) 步驟5 : 告知使用者符合鑑別結果 7 明文通行密碼(此機制的問題) • 通行密碼是以明文的方式儲存於資料庫 中 • 通行密碼是以明文的方式從使用者電腦 傳送到伺服器 8 在儲存和驗證密碼前先行加密通行密碼 9 原始通行密碼的變化 • 這種基本通行密碼鑑別的變化不使用原 始通行密碼,而是使用從原始通行密碼 導出的新通行密碼 • 方法運作需滿足 – 對於相同的通行密碼,此演算法必須每次都 能產生相同的結果 – 演算法的輸出(即由通行密碼所導出的資料) 不能提供任何有關原始通行密碼的線索 – 攻擊者應該無法使用錯誤的通行密碼而得到 正確的演算法結果 10 通行密碼摘要 • 一種避免以明文通行密碼儲存和傳送的 簡單方法就是使用訊息摘要 – MD5、SHA-1 • 運作方法 1. 將訊息摘要當成導出通行密碼儲存於使用 者資料庫中 2. 使用者鑑別 3. 伺服器端的驗證 11 將通行密碼訊息摘要儲存於資料庫 12 包含通行密碼訊息摘要之使用者鑑別 13 使用者鑑別程式確認身份與通行密碼 14 增加隨機性 • 為了改善安全性,需要增加一個不可預 測性或隨機性的位元到早先的機制中 • 保證通行密碼訊息摘要一直是相同的, 但使用者電腦和伺服器之間的訊息交換 不會相同,可避免重送攻擊 15 增加隨機性 • 運作方式 – 將訊息摘要當成導出通行密碼儲存於使用者 資料庫中 – 使用者送出登入要求 – 伺服器建立 一個隨機挑戰 – 使用者簽署包含通行密碼訊息摘要的隨機挑 戰 – 伺服器驗證來自使用者的加密隨機挑戰 – 伺服器傳回一個適當的訊息給使用者 16 只包含使用者身份的登入要求 17 建立並傳送隨機挑戰給使用者 18 使用者送出身分識別碼與加密的隨機挑戰 19 伺服器比較兩個加密的隨機挑戰 20 伺服器傳回一個適當的訊息給使用者 21 通行密碼加密 • 早期解決傳送明文通行密碼的問題,在 使用者電腦加密通行密碼 • 在主從式應用程式架構下沒有問題 • 在客戶端為瀏覽器狀況下則無法對通行 密碼加密 • 現經使用SSL來解決傳送明文密碼的問題 22 加密的時機 • 第一次加密發生在通行密碼被儲存在使 用者資料庫之前 • 另一次在使用者電腦端的通行密碼加密 在傳送到伺服器之前被執行 • 可使用相同或是不同的加密技術 23 在客戶端電腦和資料庫加密通行密碼 24 通行密碼的問題 • 一個主要的錯誤觀念 – 通行密碼是最簡單也是最便宜的鑑別機制形 式 • 對於使用者 – 所有的系統使用相同的密碼 – 將密碼記錄在各地方(日記、鍵盤下、螢幕 上…) • 對管理者 – 花費40%的時間來建立、重置或更改使用者 通行密碼 25 通行密碼政策 • 組織都會詳細指明通行密碼政策,也就 是訂定通行密碼結構 • 可能的政策 – 通行密碼長度不可少於8個字元 – 不能包含空白 – 通行密碼中至少必須有一個小寫字母、一個 大寫字母、一個數字和一個特殊符號 – 通行密碼必須從字母開始 • 對使用者不方便記憶 – 造成使用者將通行密碼記錄下來導致安全問 題 26 鑑別符記 • 一個非常有用的通行密碼替代品 • 鑑別符記是一個很小的裝置,每次使用 時會產生一個新的隨機值,此隨機值會 成為鑑別的基礎 • 通常鑑別符記有下列組件 – 處理器 – 輸出顯示為液晶顯示器 – 電池 – (選擇性的)輸入工具為小型鍵盤 – (選擇性的)即時時鐘 27 鑑別符記 • 每個鑑別符記(每個裝置)以唯一的號碼預 先程式化,這個號碼稱為隨機種子或種 子 • 這個種子形成確保符記產生的輸出會獨 一無二的基礎 28 運作步驟 1. 符記建立 2. 符記的使用 • • • 鑑別符記自動產生虛擬隨機數,稱為一次 性密碼或一次性通行碼 一次性:產生、使用、丟棄 簡單說,程式使用同步化技術,經由鑑別 符記產生相同的一次性密碼 3. 伺服器傳回一個適當的訊息給使用者 29 儲存在資料庫和鑑別符記中的隨機種子 30 伺服器驗證一次性密碼 31 伺服器寄回一個適當的訊息給使用者 32 鑑別符記類型 • 挑戰/回應符記 • 時間基礎符記 33 挑戰/回應符記 • • • 鑑別符記中的預先程式化種子是秘密且 唯一的 此技術中,種子成為加密金鑰 步驟 使用者送出登入要求 伺服器建立一個隨機挑戰 使用者以密碼的訊息摘要簽署隨機挑戰 伺服器驗證來自使用者端被加密過的隨機 挑戰 5. 伺服器寄回一個適當的訊息給使用者 1. 2. 3. 4. 34 登入要求只包含使用者身份識別碼 35 建立隨機挑戰並傳送給使用者 36 挑戰/回應符記登入螢幕 37 使用者傳送使用者身份和加密的隨機挑戰 38 伺服器比較這兩個加密隨機挑戰 39 伺服器寄回一個適當的訊息給使用者 40 時間基礎符記 • 挑戰/回應符記的問題 – 需要三次的輸入 • 使用者輸入PIN存取符記 • 使用者閱讀螢幕並輸入隨機挑戰至符記 • 使用者閱讀符記LCD並輸入至密碼欄 – 過程中可能因使用者的失誤發生認證失敗 • 時間基礎符記解決上述問題 41 時間基礎符記 • • • 不需要小鍵盤 使用時間作為輸入的變數 步驟 1. 密碼產生和登入要求 2. 伺服器端認證 3. 伺服器寄回一個適當的訊息給使用者 42 使用者端寄登入要求給伺服器 43 伺服器驗證使用者送出的密碼 44 伺服器寄回一個適當的訊息給使用者 45 憑證基礎鑑別 • • • 另一新興的機制是憑證基礎鑑別,以使 用者數位憑證為基礎 FIPS-196 是定義此機制運作的一個標準 運作步驟 1. 2. 3. 4. 5. 建立、儲存和分配數位憑證 登入要求 伺服器建立一個隨機挑戰 使用者簽署隨機挑戰 伺服器回傳一個適當的訊息給使用者 46 建立、儲存和分配數位憑證 47 登入要求 48 伺服器建立一個隨機挑戰 49 開啟私密金鑰檔案密碼提示 50 使用者簽署隨機挑戰 51 伺服器比較兩個隨機挑戰 52 伺服器寄回一個適當的訊息給使用者 53 智慧卡的使用 • • • • • 智慧卡的使用與憑證基礎鑑別有關 智慧卡允許產生一私密-公開金鑰對 秘密金鑰通常被密密的存在卡內 公開金鑰與憑證可展示在外部 智慧卡也在卡內執行密碼學函數運算 – 加密、解密、建立訊息摘要與簽署 • 智慧卡便於攜帶 54 智慧卡技術的問題與解決方案 55 生物特徵辨識鑑別 • 生物特徵辨識裝置的運作是以一些人類 特徵為基礎 – 指紋、聲音、眼睛中虹膜的線模式 • 在生物特徵辨識中,因使用者生理狀況 可能會改變,故不需要精確的樣本進行 比對,只要大略符合即可接受 • 任何生物特徵辨識鑑別系統定義出兩個 配置參數 – 錯誤接收比 – 錯誤拒絕比 56 Kerberos • 許多真實的系統使用一個稱為 Kerberos 的鑑別協定 • 由MIT設計以允許工作站存取網路資源 的安全方法 57 Kerberos 協定包含四個部分 • 使用者 – 客戶端工作站(Ex. Alice) • 鑑別伺服器 – 在登入期間鑑別使用者 • 票根同意伺服器 – 發行票根以做為身分證明 • 服務伺服器 – 伺服器提供服務,例如網路印表機、檔案共 享或是應用程式(Ex. Bob) 58 Kerberos的步驟 1. 登入 2. 獲得一個服務同意票根(SGT) 3. 使用者聯繫伺服器存取服務 59 登入 60 AS將加密的交談金鑰和TGT寄給使用者 61 使用者寄出一個SGT請求給TGS 62 TGS寄出回覆給使用者 63 使用者安全地寄出KAB給伺服器 64 伺服器確認收到KAB 65 單一簽入方法 • Single Sign On (SSO) Approaches • 有兩個方法可以實現SSO – 腳本(script) • 腳本用來協助使用者對系統進行回應 – 代理人(agent) • 透過特定的軟體進行認證 66 各類實際應用 • HiNet動態密碼鎖 • BATTLE.NET • beanfun!樂豆 67 HiNet動態密碼鎖 • 帳號+密碼+動態密碼鎖 • RSA技術 • 可用於其他企業服務 68 BATTLE.NET • 多種類型的動態密碼鎖 – iPhone, iPod touch, Android手機, Windows Phone 7, 驗證器鑰匙圈 • 用於保護暴風雪 (Buzzard) 旗下所有遊戲 與戰網網站 69 beanfun!樂豆 • 提供多種保護機制 – 聰明鎖, OTP動態密碼安全卡, PLAYSAFE數 位安全卡, GAMEOTP手機鎖 • 用於保護旗下各類遊戲 70 章節總結 • 鑑別就是確認一個使用者或系統的身 分 • 明文通行密碼是最普遍的鑑別機制 • 明文通行密碼會有安全性的問題 • 對通行密碼加密是一個較好的方法 • 從通行密碼衍生出來的某些事物也在 鑑別中使用 • 隨機挑戰增加通行密碼機制的安全性 71 章節總結 • 通行密碼政策可幫助密碼基礎鑑別機 制更安全 • 鑑別符記是更安全的 • 每一個鑑別符記的登入要求可以產生 一個新的密碼 • 鑑別符記是一個二因子的鑑別機制 • 鑑別鑑別可以是挑戰/回應或是時間 基礎的型態 72 章節總結 • 時間基礎符記是較受歡迎的,因為它 們比較自動化 • 智慧卡是高度安全的裝置,因為它們 是在卡內執行密碼學函數 • 目前智慧卡有許多不相容的問題 • 生物特徵辨識裝置是以人類特徵為基 礎 • Kerberos 是一個廣泛使用的鑑別協定 73 章節總結 • 單一簽入(SSO)允許使用者在多台伺 服器/應用程式上只使用唯一一組使 用者身分和密碼 • SSO 可由腳本或代理人來實行 74 The End 75