第五章公開金鑰基礎建設(Part 2)

Download Report

Transcript 第五章公開金鑰基礎建設(Part 2)

密碼學
Chapter 5 公開金鑰基礎建設
Public Key Infrastructure (PKI) (Part 2)
1
私密金鑰管理
• 保護私密金鑰
– 使用者的私密金鑰可能會要移動到別的地方
– 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
以密碼為基礎的加密(PBE)概念
13
使用密碼產生KEK
• 在PEB中,KEK被用來加密對稱性金鑰
• KEK決不會被儲存,其使用程序是產生
、使用並立即丟棄
• 產生KEK需要三項輸入(密碼、salt和疊代
數),其中密碼必需保密,而salt和疊代數
無需保密
14
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
• 目的
– 虛擬隨機數產生標準
• 細節
– 在目前發展下,此標準將會定義產生隨機數
的要求與程序。因為隨機數在密碼學中被廣
泛地利用,產生隨機數的標準化很重要。
電腦產生虛擬隨機數的方法
• 監視產生隨機資料的硬體
– 是最好也最貴的方法。產生器通常是一個電子
電路,對一些隨機實體事件是很敏感(二極體雜
訊、大氣改變)。這個無法預測的事件序列被轉
成一個隨機數
• 從使用者互動收集隨機資料
– 產生器會將使用互動當作隨機輸入(鍵盤打字、
滑鼠移動)
• 從電腦內部收集資料
– 牽涉到電腦內部的資料收集(系統時脈、磁碟上
檔案數目、磁碟區塊數目、未使用記憶體)
24
PKCS#15
• 目的
– 密碼學符記資訊與法標準
• 細節
– 定義密碼學符記的標準,如此它們才可以互
動操作。
• 說明
– 現今的智慧卡缺乏互通性, 智慧卡供應商提
供他們專屬的介面(API),無法與其他供應
商的介面互通,導致使用者不可能使用X的
智慧卡卻使用Y的軟體
XML、PKI 及安全性
• PKI的技術十分令人看好,但仍有一些障
礙
– 供應商的解決方案缺乏操作性
– 整合供應商X與供應商Y個別提供的PKI不容
易
• 延伸標示語言(extensible markup language,
XML)
– 廣泛應用在資訊的交換上
26
XML和安全性
27
XML加密
• XML加密可選擇加密整份文件或是選擇
部分的文件
• 對於一份XML文件,我們可以加密
– 整個 XML 文件
– 一個事件及其所有子事件
– XML 文件的內容
– XML 文件的外部參考文獻資源
28
XML的加密步驟
1. 選擇要加密的 XML(上述所列其中一項
,亦即全部或部分 XML 文件)
2. 將要加密的資料轉換成一標準的格式(可
選擇的)
3. 使用公開金鑰加密結果
4. 將加密的 XML 文件寄給指定的接收者
29
XML文件範例(信用卡資訊)
30
XML文件加密範例(信用卡資訊)
31
XML數位簽章
• 傳統的數位簽章是計算整個訊息
• XML數位簽章可以針對特定部分進行簽
章
• 可提供一個元素的簽章或多個元素的簽
章
32
執行XML數位簽章的步驟
1. 用簽章方法、標準化方法和參考檔案建
立一個簽章資訊元素
2. 標準化 XML 文件
3. 根據簽章資訊元素定義的演算法,計算
簽章值
4. 建立數位簽章(即簽章元素),包括簽章
資訊、金鑰資訊與簽章值元素
33
XML數位簽章程序的元素
34
XML金鑰管理規格(XKMS)
• 最初由全球資訊網組織(World Wide Web
Consortium, W3C)所提出
• 目的將XML加密/簽章程序中的信任決策
委託給一個或多個已經認證的處理器
• 可使企業更容易管理XML加密和數位簽
章技術
• XKMS定義了用來分配及註冊金鑰的協
定,並與XML加密和XML簽章運作地非
常順暢
35
XKMS分類
• XML金鑰資訊服務規格(X-KISS)
– 定義信任服務的協定,可分析符合XML簽章
標準文件中的公開金鑰資訊
– 允許客戶端對處理的XML簽章元素的必要工
作進行委託
– X-KISS可以掩蓋應用程式的差異
• XML金鑰註冊服務規格(X-KRSS)
– 定義網路服務的協定,接受公開金鑰資訊的
註冊
36
Microsoft 的 XML 加密和數位簽章
• .NET Framework 提供幾種類別,可為
XML 資料加密及解密,而且建立並驗證
XML 數位簽章
• 這些類別提供方法,維持 XML 資料的機
密性與完整性
資料來源:Microsoft MSDN
http://msdn.microsoft.com/zh-tw/library/ms229749(v=VS.90).aspx
37
Microsoft 中支援的平台
• .NET Framework
– 1.0 ~ 4.0
• 可用 C# 與 VB.NET 程式語言
• Visual Studio 2005 以上版本支援
– VS2005, VS2008, VS2010
38
提供的項目與功能
• 提供對稱金鑰加密與解密 XML 項目
– 使用 Rijndael 演算法 (AES 演算法),為 XML 項
目加密與解密
• 提供非對稱金鑰加密與解密XML 項目
– 使用 RSA 演算法,為 XML 項目加密與解密
• 提供 X.509 憑證加密與解密 XML 項目
– 使用憑證存放區的 X.509 憑證,為 XML 項目加
密與解密
• 提供數位簽章簽署 XML 文件與驗證 XML
文件的數位簽章
– 使用 RSA 演算法,簽署與驗證 XML 文件
39
提供的命名空間與類別
• System.Security.Cryptography.Xml
– (命名空間)提供連結至用來為 XML 執行
加密及數位簽章之類別的參考文件。
• System.Security.Cryptography.Xml.Signed
Xml
– (類別)描述 SignedXml 類別的功能,它是
用來簽署及驗證 XML 資料。
• System.Security.Cryptography.Xml.Encrypt
edXml
– (類別)描述 EncryptedXml 類別的功能,
它是用來為 XML 資料加密及解密。
40
章節總結
•
•
•
•
•
•
數位憑證可解決金鑰交換的問題。
數位憑證類似於一個人的駕照或護照。
數位憑證連結了使用者及其公開金鑰。
憑證管理中心 (CA) 可以發行數位憑證。
X.509 協定是用來定義數位憑證的架構。
CA 可以大量載入,也可以卸載一些任務
給註冊管理中心 (RA)。
• 根 CA 使用自我簽章憑證。
41
章節總結
• CA 階層幫助減少單一 CA 的負荷。
• 不同的 CA 在協同工作時需要交互憑證。
• 憑證的狀態可藉由 CRL、OCSP 和 SCVP
等協定來驗證。
• CRL 是離線檢查的。
• OCSP 及 SCVP 是線上檢查的。
• 數位憑證可為一般/特定目的而發行。
• CA 必須提供金鑰管理、建檔、儲存以及
回復。
42
章節總結
•
•
•
•
私密金鑰管理相當重要。
PKIX 模式處理與 PKI 有關的議題。
PKCS 標準涉及 PKI 技術的不同層面。
XML 安全現今已變成一個重要的概念。
43
The End
44