260 likes | 548 Views
密碼學與網路安全 第 14 章 認證的應用. 認證的應用. 認證的功能 支援應用層的認證與數位簽章 Kerberos - 私密金鑰的認證服務 X.509 - 目錄認證服務. Kerberos. 源自麻省理工學院的可信任金鑰伺服器系統 在分散式網路系統由第三方提供中央控管的私密金鑰認證: 允許使用者透過網路存取分散式服務 不需要信任所有的工作站 將認證的工作集中到一台特定的伺服器上 目前使用的有兩個主要版本: Kerberos 4 、 Kerberos 5. Kerberos. 第一份針對 Kerberos 的報告指出 Kerberos 系統必須符合以下條件:
E N D
認證的應用 • 認證的功能 • 支援應用層的認證與數位簽章 • Kerberos - 私密金鑰的認證服務 • X.509 - 目錄認證服務
Kerberos • 源自麻省理工學院的可信任金鑰伺服器系統 • 在分散式網路系統由第三方提供中央控管的私密金鑰認證: • 允許使用者透過網路存取分散式服務 • 不需要信任所有的工作站 • 將認證的工作集中到一台特定的伺服器上 • 目前使用的有兩個主要版本:Kerberos 4、Kerberos 5
Kerberos • 第一份針對Kerberos的報告指出Kerberos系統必須符合以下條件: • 安全性 • 可靠性 • 透明性 • 可塑性 • 以Needham-Schroeder認證協定為基礎而加以實作
Kerberos 4 • 基本的第三方認證方式 • 認證伺服器 (AS) • 使用者先向AS證明自己的身份 • AS發出有效的認證憑據 (通行授與票,TGT) • 通行授與伺服器 (TGS) • 使用者接著再以TGT向TGS要求存取其他服務
Kerberos驗證流程 • 用戶端代表使用者向AS申請通往通行授與伺服器的票 • AS收到用戶端的請求後,利用使用者的ID查詢資料庫得到使用者的密碼,並且利用這個密碼產生一把金鑰,將通往TGS的票加密起來傳送給用戶端 • 用戶端以使用者的身份向TGS申請通往某個伺服器的通行票。用戶端傳送一個訊息給TGS,內容包含使用者的ID,欲存取的伺服器ID,以及從AS所得到的通行授與票 • TGS將收到的通行授與票解密,並且核對解密後所得的TGS ID是否與自己的ID相同,以判別解密的過程是否正確 • 用戶端代表使用者向伺服器請求服務。用戶端傳送一個訊息給伺服器,其內容包含使用者的ID以及從TGS所得到的服務授與通行票。伺服器利用這張票的內容來做認證
Kerberos實境 • Kerberos環境包含: • 一台Kerberos伺服器 • 數個都已向Kerberos伺服器註冊的用戶端 • 與Kerberos伺服器共用金鑰的應用伺服器 • 這樣的環境稱為「實境」 • 這通常是一個單一的管理範圍 • 若有多個實境,這些Kerberos伺服器必須共用一把秘密金鑰,並且要彼此註冊
Kerberos 5 • 自1990年中開始發展 • 針對Kerberos 4提供改進 • 改進環境缺陷 • 加密演算法、網路協定、訊息的位元順序、通行票的有效期限、認證的轉移實境間的認證 • 改進技術缺點 • 雙重加密、非標準的加密方式、連線金鑰、密碼攻擊 • Kerberos 5定義在RFC 1510
X.509 認證服務 • CCITT X.500目錄服務標準的一部份 • 維護使用者相關資料庫的分散式伺服器 • 定義了供使用者認證服務的框架 • 目錄儲存了使用者的公開金鑰憑證 • 且憑證已經CA背書 • X.509也定義了認證協定 • 使用公開金鑰加密和數位簽章 • 並無明確指定演算法,但推薦使用RSA
X.509憑證 • X.509的公開金鑰憑證是由CA發行,包含: • 版本 (1、2 或 3) • 獨一無二的序列號碼 • 數位簽章演算法的識別號 • 發行者名稱 • 有效期間 • 對象名稱 • 對象公開金鑰的資訊 • 發行者的單一識別號 • 對象的單一識別號 • 擴充部分 • 簽章 • CA以 CA<<A>> 符號表示憑證
取得憑證 • 任何使用者皆可向CA取得任何憑證 • 只有CA可以修改憑證 • 因為無法被偽造,因此可以將憑證放在公開的目錄
CA的階層式架構 • 若兩位使用者共用相同的CA,那麼他們能知道其公開金鑰 • 否則必須以階層式架構來安排CA • 子層都信任父層的憑證 • 以階層連結成員的憑證來確認其他的CA: • 每個CA都包含子層(往前)和父層(往後)的憑證 • 階層架構中所有CA的使用者都能確認其他CA的憑證
憑證的廢除 • 憑證都有期限 • 有時會希望廢止尚未過期的憑證,例如: • 使用者的私密金鑰被洩漏 • 使用者不再使用此CA的憑證 • CA的憑證被洩漏 • CA會記錄廢除的憑證名冊 • 稱為「已廢止憑證名冊」 (CRL) • 使用者應該以CA的CRL檢查憑證是否被廢除
認證程序 • X.509包含三種不同的認證程序: • 單向認證 • 雙向認證 • 三方認證 • 這些程序都使用公開金鑰的數位簽章
單向認證 • 傳送單一資訊(A→B): • A的識別號以及訊息是由A所產生 • 訊息是要傳送給B • 訊息是完整且原始 • 訊息最少要包含一個時間戳記、隨意值以及B的識別號 • 整個訊息會以A的公開金鑰來加密
雙向認證 • 傳送兩個訊息(A→B、B→A),除上述三點又再包括: • B的身份以及回應的訊息是由B所產生 • 訊息是要傳送給A • 訊息是完整且原始 • 回應的訊息包含從A所取得的原始隨意值,以及時間戳記和由B所產生的隨意值
三方認證 • 傳送3個訊息(A→B、B→A、A→B),讓雙方認證不需要同步時脈 • 從A回覆給B的訊息包含B的簽署過的隨意值副本 • 這表示不需要檢查時間戳記
X.509 第三版 • 憑證所包含的資訊已經不敷所需,還需要以下的資訊: • email/URL、安全策略細節、使用限制 • X.509 第三版包含了許多選擇性的擴充欄位 • 每一個擴充欄位包含: • 擴充的識別號 • 是否必要的指示子 • 擴充值
憑證的擴充欄位 • 金鑰與策略資訊 • 表達有關於接收對象與發行者的金鑰資訊,以及指示使用何種憑證策略 • 憑證接收對象與發行者屬性 • 讓憑證接收者或憑證發行者有不同的名稱,具有不同的格式 • 憑證途徑的限制 • 讓CA發行給其他CA的憑證能指定限制
總結 • Kerberos認證機制 • X.509 認證服務 • PKI