PKI 原理與應用 交通大學資訊工程系曾文貴 1
最早有關密碼的書 --1920 2
WWI 密碼室 3
Enigma (WWII, 德國 ) 4
5
Big machine (WWII, 美國 ) 6
聽不懂即可 ( 少數民族語言 ) 7
新時代 (Cray-XMP) 8
新時代 (U.S. Navy) 9
新時代 ( 特殊 IC) 10
解碼成果 ( 美國 ) 11
安全需求 機密性 (privacy) 資料內容不外洩給非授權的人 完整性 (integrity) 資料未被竄改 驗證性 (authentication) 個人身份證明 資料來源證明 不可否認性 (non-repudiation) 無法否定送過的訊息 12
紙本世界 vs 電子世界 紙本世界 電子世界 機密性實體保護加密 完整性紙張特性雜湊函數 驗證性手寫簽名數位簽章 不可否認性紙張特性 + 簽名 數位簽章 13
身份證明 : 紙本世界 身份證 參與的人來確認 不易仿冒 簽名 本人 驗簽 參與的人來確認 14
身份證明 : 電子世界 電子憑證 ( 數位證書 ) 自動確認 易拷貝? 誰來確認電子憑證是真的? 有效的? 簽名 如何做? 驗簽 如何做? 15
電子憑證 (certificate) X.509 v3 16
如何相信這張憑證是 F1220XXXXX 的? 17
PKI: 公開金鑰基礎建設 PKI: Public Key Infrastructure 由主管單位 使用單位 使用者 政策 硬體 軟體 執行程序等單元組成 提供使用者在電子世界裡 取的合法的電子憑證, 代表身份 確認他人電子憑證真確性的機制 數位簽章的機制 確認簽章的機制 ( 驗章 ) 加密機制 解密機制 18
PKI 模組 資訊安全政策 註冊管理中心 RA (Registration Authority) 憑證管理中心 CA(Certificate authority) 目錄服務系統 (Directory service) PKI 應用程式 憑證申請程式 憑證驗證程式 簽章 驗章程式 加密 解密程式 19
資訊安全政策 定義組織的最高資訊安全原則 資訊安全發展方向 憑證的處理方式 管理金鑰與機密資料方針 風險層級的定義 金鑰使用規範 20
憑證的生命週期 產生公布 使用期限到期 逾期 使用 遺失 收回 註銷 21
憑證的申請 CA 使用者 申請 RA ( 政府單位 銀行 ) 目錄服務 X500/LDAP/ Website 登錄 註銷 查詢 認證 22
憑證的發行 使用者 U 透過前端應用程式向 RA 申請憑證 RA 確認 U 的身份與資格 U 透過前端應用程式產生 電子憑證所需資訊 ( 含公開金鑰 U-PK) 電子憑證相對的私密金鑰 U-SK( 簽章或加密用 ), 存入自己的電腦或智慧卡 RA 將 傳給 CA CA 產生 U 的電子憑證 U-Cert 傳給 RA RA 將 U-Cert 給小明, 並公布到目錄服務 23
憑證的驗證 連到發行 U- Cert 的 CA 的目錄服務 確認憑證未過期與未被註銷 拿到 CA 的憑證 CA-Cert 利用應用程式及密碼演算法, 驗證 U-Cert 是否為 U 的憑證 如果為正確, 使用之 否則, 拒絕使用 24
憑證的使用 : 驗章 U 對訊息 M 做簽章 利用密碼簽章法計算 =f 1 (U-SK, M) 公布 (M, ) 他人確認 (M, ) 的正確性 拿到 U 的憑證 U-Cert 驗證 U-Cert 利用密碼驗章法計算 b=f 2 (U-Cert, M, ) b=1 接受 b=0 拒絕 25
簽章者 U (U-Cert, M, ) 驗章者 A Check: f 2 (CA-Cert, U-Cert) f 2 (U-Cert, M, ) Compute = f 1 (U-SK, M) U-Cert Revoked? CA-Cert 目錄服務 X500/LDAP/ Website 26
憑證的使用 : 加密 他人加密訊息 M 給 U 拿到 U-Cert 驗證 U-Cert 利用密碼加密法計算 =g 1 (U-Cert, M) 傳送 給 U U 解密 利用密碼解密法計算 M=g 2 (U-SK, M) 27
Check b=f 2 (CA-Cert, U-Cert) Compute =g 1 (U-Cert, M) 加密者 A 接收者 U (U, ) U-Cert Revoked? CA-Cert Compute M= g 2 (U-SK, ) 目錄服務 X500/LDAP/ Website 28
憑證的註銷 在 U-Cert 的使用期限到期前, 因為某些原因,CA 可以註銷之 CA 在其目錄服務中有一 憑證廢止清冊 (Certificate Revocation List, CRL), 供所有人查詢 CA-CRL= (#1, #2,, ) =f 1 (CA-SK, #1, #2, ) 驗證 CA-CRL 取得 CA-Cert 驗章 29
私密金鑰的管理 每一張憑證 U-Cert ( 內含 U 的公開金鑰 U-PK) 有一相對應的私密金鑰 U-SK U-SK = 345a54bc648ffde398123afd 89eda36 thousands of bits 儲存 智慧卡 (suggested) 密碼計算在智慧卡裡執行 電腦檔案 備份 需使用通行碼 (password) 保護 30
憑證的信賴架構 得到 U-Cert, 需要 CA-Cert 來驗證 U-Cert 如何驗證 CA-Cert? 解決方法 :X.500 憑證驗證架構 31
X.509 Hierarchy 信賴起點 CA1 CA2 CA3 CA4 CA5 CA6 Alice: A-Cert Bob: B-Cert Carol: C-Cert David: D-Cert Eve: E-Cert 32
每一個 CA 簽發憑證給其下的 CA 每一使用者擁有 CA1 的憑證 認證路徑 (validation path) Alice 驗證 David 的憑證 D-Cert CA1 CA3 CA6 33
CA 互簽憑證 CA1 CA2-Cert CA1-Cert CA2 每一 CA 簽發憑證給其下的 CA 及其上的 CA 憑證路徑 Alice 擁有 CA4 的憑證 Alice 驗證 David 的憑證 D-Cert CA4 CA2 CA1 CA3 CA6 34
PKI 的應用 身份認證與簽章 自然人憑證 : 由 GCA 所發 個人所得稅報稅 監理所資料查詢 金融憑證 : 由各金融單位所發 轉帳 外匯買賣 網路股票交易 訊息加密 電子商務 35
應用實例 : SSL/TLS Transport Layer Security 建立 client-server 間的安全通道 身份認證 通道加密 應用範圍 Web browsing Email Instant messaging Applications (HTTP, FTP, Telnet, SMTP, ) SSL/TLS TCP IP 36
37
38
39
電子簽章法 2001 年通過 為推動電子交易之普及運用, 確保電子交易之安全, 促進電子化政府及電子商務之發展, 特制定本法 40
RSA 公開金鑰簽章技術 參數選擇 p, q: large primes N=pq, (N)=(p-1)(q-1) 公開金鑰 PK=(N, e), gcd(e, (N))=1 私密金鑰 SK=(N, d), d e -1 (mod (N)) 41
RSA 簽章演算法 計算 = f 1 (SK, M) = h(m) d mod N h(m): 雜湊 (hash) 函數 M M h h(m) e mod N SK=(N, d) 42
RSA 驗章演算法 輸入 :PK, M, 檢查 h(m) = e mod N M M h h(m) =? accept/reject e mod N PK=(N, e) 43
安全條件 無法分解 N 從公開金鑰 PK=(N, e), 無法計算 d 沒有 SK=(N, d), 無法計算 =h(m) d mod N 到目前為止, 沒有人 / 實用機器可以破解 44
RSA 原理 Euler s Theorem: x (N) mod N=1, for x with gcd(x, N)=1 ed = k (N)+1 為何檢查 h(m) =? e mod N e mod N = h(m) de mod N = h(m) k (N)+1 mod N = (h(m) (N) ) k h(m) mod N = 1 k h(m) mod N = h(m) mod N = h(m) 45
DSS 公開金鑰簽章標準 參數選擇 p=kq+1 p, q: large prime, q =160 g: a generator of the subgroup G q = {a k mod p a Z p * } y=g x mod p 公開金鑰 PK=(p, g, y) 私密金鑰 SK=(p, g, x) 46
簽章演算法 Randomly choose k Compute r=(g k mod p) mod q Compute s=k -1 (h(m)+xr) mod q 簽章 =(r, s) --> 320 bit long only 驗章演算法 輸入 PK, M, (r, s) Compute w=s -1 mod q Compute v= ((g h(m)w y rw ) mod p) mod q Accept if and only if v=r 47
DSA 原理 為何檢查 v= ((g h(m)w y rw ) mod p) mod q ((g h(m)w y rw ) mod p) mod q = ((g h(m)w g xrw ) mod p) mod q = (g w(h(m)+xr) mod p) mod q = (g k mod p) mod q = r 48
RSA 公開金鑰加密技術 參數選擇 p, q: large primes N=pq, (N)=(p-1)(q-1) 公開金鑰 PK=(N, e), gcd(e, (N))=1 私密金鑰 SK=(N, d), d e -1 (mod (N)) RSA 加密演算法 計算 = g 1 (PK, M) = M e mod N RSA 解密演算法 計算 M=g 2 (SK, ) = d mod N 49
結論 PKI 成功的因素 具備足夠的安全性 政府政策支持 容易使用 多樣的應用 互通性與彈性 密碼技術開發 更有效率的演算法 更安全的密碼演算法 創新性的應用 50