440 likes | 662 Views
密碼學. Chapter 5 公開金鑰基礎建設 Public Key Infrastructure (PKI) (Part 2). 私密金鑰管理. 保護私密金鑰 使用者的私密金鑰可能會要移動到別的地方 PKCS#12 標準使用一個對稱性金鑰來保護導出的數位憑證與私密金鑰 多重金鑰對 可分別用於簽署與加密 簽章用的私密金鑰到期需要銷毀 加解密用的金鑰到期後需要保存 金鑰更新 金鑰對應該需要定期更新以維持安全性 金鑰留存 CA 必須計畫及保存使用者的憑證與金鑰紀錄. 保護私密金鑰的機制. PKIX 模式. X.509 標準定義了數位憑證架構、格式及欄位
E N D
密碼學 Chapter 5 公開金鑰基礎建設Public Key Infrastructure (PKI) (Part 2)
私密金鑰管理 • 保護私密金鑰 • 使用者的私密金鑰可能會要移動到別的地方 • PKCS#12標準使用一個對稱性金鑰來保護導出的數位憑證與私密金鑰 • 多重金鑰對 • 可分別用於簽署與加密 • 簽章用的私密金鑰到期需要銷毀 • 加解密用的金鑰到期後需要保存 • 金鑰更新 • 金鑰對應該需要定期更新以維持安全性 • 金鑰留存 • CA必須計畫及保存使用者的憑證與金鑰紀錄
PKIX 模式 • X.509標準定義了數位憑證架構、格式及欄位 • 它也定義了分配公開金鑰的程序 • IETF成立了公開金鑰基礎建設X.509 (PKIK)工作群組 • PKIX延伸X.509標準的基本原理,並定義數位憑證如何在網際網路世界中配置
PKIX服務 • 註冊 • 初始化 • 憑證 • 金鑰對復原 • 金鑰產生 • 金鑰更新 • 交互憑證 • 廢止
PKIX結構模式 • X.509 V3 憑證和 V2 憑證清冊剖繪 • 操作協定 • 管理協定 • 憑證管理協定 • 政策大綱 • 憑證政策 • 憑證實務作業基準 • 時間戳記和資料憑證服務 • 時間戳記 • 時間戳記管理中心 • 資料憑證服務
公開金鑰密碼學標準 (PKCS) • PKCS模式起初由RSA實驗室及政府、工業於學術界代表共同發展 • PKCS主要目的在將公開金鑰基礎建設(PKI)標準化 • 格式化 • 演算法 • API
PKCS#1 • 目的 • RSA加密標準 • 細節 • 定義RSA公開金鑰函數的基本格式規則,尤其是數位簽章。此定義數位簽章應如何計算,包含被簽章的資料結構及簽章格式。此標準也定義了RSA私密和公開金鑰的語法。
PKCS#2 • 目的 • 訊息摘要RSA加密標準 • 細節 • 這個標準略述訊息摘要計算。然而,它現在已與PKCS#1合併,而不單獨存在。
PKCS#3 • 目的 • Diffie-Hellman金鑰協議標準 • 細節 • 定義實施Diffie-Hellman金鑰協議協定的機制。
PKCS#4 • 目的 • 無 • 細節 • 與PKCS#1合併
PKCS#5 • 目的 • 以密碼為基礎的加密(PBE)標準 • 細節 • 描述以對稱性金鑰密碼八進制字串的方法。對稱性金鑰是由密碼導出。 • 說明 • 對稱性金鑰加密訊息,再以金鑰加密金鑰(key encryption key, KEK) • 定義如何保護KEK
使用密碼產生KEK 在PEB中,KEK被用來加密對稱性金鑰 KEK決不會被儲存,其使用程序是產生、使用並立即丟棄 產生KEK需要三項輸入(密碼、salt和疊代數),其中密碼必需保密,而salt和疊代數無需保密
PKCS#6 • 目的 • 延伸憑證與法標準 • 細節 • 為延伸X.509數位憑證的基本屬性定義與法。
PKCS#7 • 目的 • 訊息加密與法標準 • 細節 • 定義密碼學操作結果資料的格式/語法。此類例子包含數位簽章和數位信封。這個標準提供許多格式化的選擇,例如只有簽章訊息、只有密封、簽章和密封等。
PKCS#8 • 目的 • 私密金鑰資訊語法標準 • 細節 • 描述私密金鑰資訊之語法,亦即用來產生私密金鑰的演算法與屬性。 • 說明 • 這個標準描述安全地儲存使用者私密金鑰的語法 • 基於密碼的加密演算法(使用PKCS#5)可以用來加密私密金鑰資訊
PKCS#9 • 目的 • 選擇的屬性型態 • 細節 • 定義使用在PKCS#6延伸憑證中的選擇屬性型態,例如電子郵件住址、沒有結構的名稱與住址。
PKCS#10 • 目的 • 憑證要求語法標準 • 細節 • 定義要求數位憑證的語法。憑證要求包含識別名稱(DN)和公開金鑰。
PKCS#11 • 目的 • 密碼學符記介面標準 • 細節 • 這個標準亦稱為Cyptoki,為包含密碼學資訊(例如私密金鑰、數位憑證)的單一使用者裝置定義API。智慧卡就是這類裝置的例子。 • 說明 • 金鑰的產生、加密或數位簽章這類密碼學操作是直接在卡片內部執行,使用者的數位簽章及私密金鑰也是儲存在卡內,且私密金鑰從不會暴露到外部應用程式
PKCS#12 • 目的 • 個人資訊交換語法標準 • 細節 • 定一個人身分資訊與法,例如私密金鑰、數位憑證等。這允許使用者使用一個標準機制,將他們的憑證和其他個人身分資訊從一個裝置傳輸到另外一個。
PKCS#13 • 目的 • 橢圓曲線密碼學標準 • 細節 • 在目前發展之下,此標準處理一個新的密碼學機制,稱為橢圓曲線密碼學。
PKCS#14 • 目的 • 虛擬隨機數產生標準 • 細節 • 在目前發展下,此標準將會定義產生隨機數的要求與程序。因為隨機數在密碼學中被廣泛地利用,產生隨機數的標準化很重要。
電腦產生虛擬隨機數的方法 • 監視產生隨機資料的硬體 • 是最好也最貴的方法。產生器通常是一個電子電路,對一些隨機實體事件是很敏感(二極體雜訊、大氣改變)。這個無法預測的事件序列被轉成一個隨機數 • 從使用者互動收集隨機資料 • 產生器會將使用互動當作隨機輸入(鍵盤打字、滑鼠移動) • 從電腦內部收集資料 • 牽涉到電腦內部的資料收集(系統時脈、磁碟上檔案數目、磁碟區塊數目、未使用記憶體)
PKCS#15 • 目的 • 密碼學符記資訊與法標準 • 細節 • 定義密碼學符記的標準,如此它們才可以互動操作。 • 說明 • 現今的智慧卡缺乏互通性,智慧卡供應商提供他們專屬的介面(API),無法與其他供應商的介面互通,導致使用者不可能使用X的智慧卡卻使用Y的軟體
XML、PKI 及安全性 • PKI的技術十分令人看好,但仍有一些障礙 • 供應商的解決方案缺乏操作性 • 整合供應商X與供應商Y個別提供的PKI不容易 • 延伸標示語言(extensible markup language, XML) • 廣泛應用在資訊的交換上
XML加密 • XML加密可選擇加密整份文件或是選擇部分的文件 • 對於一份XML文件,我們可以加密 • 整個 XML 文件 • 一個事件及其所有子事件 • XML 文件的內容 • XML 文件的外部參考文獻資源
XML的加密步驟 選擇要加密的 XML(上述所列其中一項,亦即全部或部分 XML 文件) 將要加密的資料轉換成一標準的格式(可選擇的) 使用公開金鑰加密結果 將加密的 XML 文件寄給指定的接收者
XML數位簽章 傳統的數位簽章是計算整個訊息 XML數位簽章可以針對特定部分進行簽章 可提供一個元素的簽章或多個元素的簽章
執行XML數位簽章的步驟 用簽章方法、標準化方法和參考檔案建立一個簽章資訊元素 標準化 XML 文件 根據簽章資訊元素定義的演算法,計算簽章值 建立數位簽章(即簽章元素),包括簽章資訊、金鑰資訊與簽章值元素
XML金鑰管理規格(XKMS) 最初由全球資訊網組織(World Wide Web Consortium, W3C)所提出 目的將XML加密/簽章程序中的信任決策委託給一個或多個已經認證的處理器 可使企業更容易管理XML加密和數位簽章技術 XKMS定義了用來分配及註冊金鑰的協定,並與XML加密和XML簽章運作地非常順暢
XKMS分類 • XML金鑰資訊服務規格(X-KISS) • 定義信任服務的協定,可分析符合XML簽章標準文件中的公開金鑰資訊 • 允許客戶端對處理的XML簽章元素的必要工作進行委託 • X-KISS可以掩蓋應用程式的差異 • XML金鑰註冊服務規格(X-KRSS) • 定義網路服務的協定,接受公開金鑰資訊的註冊
Microsoft 的 XML 加密和數位簽章 資料來源:Microsoft MSDN http://msdn.microsoft.com/zh-tw/library/ms229749(v=VS.90).aspx .NET Framework 提供幾種類別,可為 XML 資料加密及解密,而且建立並驗證 XML 數位簽章 這些類別提供方法,維持 XML 資料的機密性與完整性
Microsoft 中支援的平台 • .NET Framework • 1.0 ~ 4.0 • 可用 C# 與 VB.NET 程式語言 • Visual Studio 2005 以上版本支援 • VS2005, VS2008, VS2010
提供的項目與功能 • 提供對稱金鑰加密與解密 XML 項目 • 使用 Rijndael 演算法 (AES 演算法),為 XML 項目加密與解密 • 提供非對稱金鑰加密與解密XML 項目 • 使用 RSA 演算法,為 XML 項目加密與解密 • 提供 X.509 憑證加密與解密 XML 項目 • 使用憑證存放區的 X.509 憑證,為 XML 項目加密與解密 • 提供數位簽章簽署 XML 文件與驗證 XML 文件的數位簽章 • 使用 RSA 演算法,簽署與驗證 XML 文件
提供的命名空間與類別 • System.Security.Cryptography.Xml • (命名空間)提供連結至用來為 XML 執行加密及數位簽章之類別的參考文件。 • System.Security.Cryptography.Xml.SignedXml • (類別)描述 SignedXml 類別的功能,它是用來簽署及驗證 XML 資料。 • System.Security.Cryptography.Xml.EncryptedXml • (類別)描述 EncryptedXml 類別的功能,它是用來為 XML 資料加密及解密。
章節總結 • 數位憑證可解決金鑰交換的問題。 • 數位憑證類似於一個人的駕照或護照。 • 數位憑證連結了使用者及其公開金鑰。 • 憑證管理中心 (CA) 可以發行數位憑證。 • X.509 協定是用來定義數位憑證的架構。 • CA 可以大量載入,也可以卸載一些任務給註冊管理中心 (RA)。 • 根 CA 使用自我簽章憑證。
章節總結 CA 階層幫助減少單一 CA 的負荷。 不同的 CA 在協同工作時需要交互憑證。 憑證的狀態可藉由 CRL、OCSP 和 SCVP 等協定來驗證。 CRL 是離線檢查的。 OCSP 及 SCVP 是線上檢查的。 數位憑證可為一般/特定目的而發行。 CA 必須提供金鑰管理、建檔、儲存以及回復。
章節總結 私密金鑰管理相當重要。 PKIX 模式處理與 PKI 有關的議題。 PKCS 標準涉及 PKI 技術的不同層面。 XML 安全現今已變成一個重要的概念。