Upload
others
View
13
Download
0
Embed Size (px)
Citation preview
PKI原理與應用
交通大學資訊工程系曾文貴
1
2
最早有關密碼的書--1920
3
WWI 密碼室
4
Enigma (WWII, 德國)
5
6
Big machine (WWII, 美國)
7
聽不懂即可 (少數民族語言)
8
新時代 (Cray-XMP)
10
新時代(特殊IC)
11
解碼成果(美國)
安全需求
機密性 (privacy)
資料內容不外洩給非授權的人
完整性 (integrity)
資料未被竄改
驗證性 (authentication)
個人身份證明
資料來源證明
不可否認性 (non-repudiation)
無法否定送過的訊息
12
紙本世界 vs 電子世界
13
紙本世界 電子世界
機密性 實體保護 加密
完整性 紙張特性 雜湊函數
驗證性 手寫簽名 數位簽章
不可否認性 紙張特性+簽名 數位簽章
身份證明:紙本世界
身份證
參與的人來確認
不易仿冒
簽名
本人
驗簽
參與的人來確認
14
身份證明:電子世界
電子憑證 (數位證書)
自動確認
易拷貝?
誰來確認電子憑證是真的?有效的?
簽名
如何做?
驗簽
如何做?
15
電子憑證 (certificate)
16
X.509 v3
17
如何相信這張憑證是 F1220XXXXX 的?
PKI:公開金鑰基礎建設
PKI: Public Key Infrastructure
由主管單位、使用單位、使用者、政策、硬體、軟體、執行程序等單元組成
提供使用者在電子世界裡
取的合法的電子憑證,代表身份
確認他人電子憑證真確性的機制
數位簽章的機制
確認簽章的機制(驗章)
加密機制
解密機制
18
PKI 模組
資訊安全政策
註冊管理中心 RA (Registration Authority)
憑證管理中心 CA(Certificate authority)
目錄服務系統 (Directory service)
PKI 應用程式
憑證申請程式
憑證驗證程式
簽章、驗章程式
加密、解密程式
19
資訊安全政策
定義組織的最高資訊安全原則
資訊安全發展方向
憑證的處理方式
管理金鑰與機密資料方針
風險層級的定義
金鑰使用規範
…
20
憑證的生命週期
21
使用
產生公布
註銷逾期
使用期限到期 遺失、收回 …
憑證的申請
22
使用者
目錄服務X500/LDAP/
Website
RA (政府單位
、銀行 …)
CA
申請
登錄、註銷、查詢 、認證、…
憑證的發行
使用者 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 做簽章
利用密碼簽章法計算 =f1 (U-SK, M)
公布 (M, )
他人確認(M, )的正確性
拿到U的憑證 U-Cert
驗證 U-Cert
利用密碼驗章法計算 b=f2 (U-Cert, M, )
b=1 接受
b=0 拒絕
25
26
簽章者 U 驗章者 A
目錄服務X500/LDAP/
Website
(U-Cert, M, )
U-CertRevoked?CA-Cert
Check:f2(CA-Cert, U-Cert) f2(U-Cert, M, )
Compute = f1(U-SK, M)
憑證的使用:加密
他人加密訊息 M 給 U
拿到 U-Cert
驗證 U-Cert
利用密碼加密法計算 =g1 (U-Cert, M)
傳送 給 U
U 解密
利用密碼解密法計算 M=g2 (U-SK, M)
27
28
接收者 U加密者 A
目錄服務X500/LDAP/
Website
(U, )
U-CertRevoked?CA-Cert
Check b=f2(CA-Cert, U-Cert) Compute =g1(U-Cert, M)
Compute M= g2(U-SK, )
憑證的註銷
在 U-Cert 的使用期限到期前,因為某些原因,CA可以註銷之
CA在其目錄服務中有一「憑證廢止清冊」(Certificate Revocation List, CRL),供所有人查詢
CA-CRL= (#1, #2, …, )
=f1 (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
32
CA1
CA2
CA4 CA5
CA3
CA6
Alice: A-CertBob: B-CertCarol: C-Cert…
David: D-CertEve: E-Cert…
信賴起點
33
每一 個CA 簽發憑證給其下的 CA
每一使用者擁有 CA1 的憑證
認證路徑 (validation path)
Alice 驗證 David 的憑證 D-Cert
CA1 CA3 CA6
CA 互簽憑證
34
CA2CA1CA1-Cert
CA2-Cert
每一 CA 簽發憑證給其下的 CA 及其上的 CA
憑證路徑
Alice 擁有 CA4 的憑證
Alice 驗證 David 的憑證 D-Cert
CA4 CA2 CA1 CA3 CA6
PKI的應用
身份認證與簽章 自然人憑證:由GCA所發 個人所得稅報稅
監理所資料查詢
…
金融憑證:由各金融單位所發 轉帳
外匯買賣
網路股票交易
訊息加密
電子商務
35
應用實例: SSL/TLS
36
Transport Layer Security
建立client-server間的安全通道 身份認證
通道加密
應用範圍 Web browsing
Instant messaging
…
SSL/TLS
Applications (HTTP, FTP, Telnet, SMTP, …)
IP
TCP
37
38
39
電子簽章法
40
2001年通過
為推動電子交易之普及運用,確保電子交易之安全,促進電子化政府及電子商務之發展,特制定本法。
RSA公開金鑰簽章技術
參數選擇 p, q: large primes
N=pq, (N)=(p-1)(q-1)
公開金鑰 PK=(N, e), gcd(e, (N))=1
私密金鑰 SK=(N, d), de-1 (mod (N))
41
RSA 簽章演算法
計算 = f1(SK, M) = h(M)d mod N
h(M): 雜湊 (hash) 函數
42
M
h h(M)e mod N
M||
SK=(N, d)
RSA 驗章演算法
輸入:PK, M,
檢查 h(M) = e mod N
43
=?h
e mod N
M||
PK=(N, e)
M h(M)
accept/reject
安全條件
無法分解 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= 1k 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 subgroupGq = {ak mod p | aZp
* }
y=gx mod p
公開金鑰 PK=(p, g, y)
私密金鑰 SK=(p, g, x)
46
簽章演算法
Randomly choose k
Compute r=(gk 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= ((gh(M)w yrw ) mod p) mod q
Accept if and only if v=r
47
DSA 原理
為何檢查 v= ((gh(M)w yrw ) mod p) mod q
((gh(M)w yrw ) mod p) mod q= ((gh(M)w gxrw ) mod p) mod q= (gw(h(M)+xr) mod p) mod q= (gk 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), de-1 (mod (N))
RSA 加密演算法
計算 = g1(PK, M) = Me mod N
RSA 解密演算法
計算 M=g2(SK, ) = d mod N
49
結論
PKI 成功的因素
具備足夠的安全性
政府政策支持
容易使用
多樣的應用
互通性與彈性
密碼技術開發
更有效率的演算法
更安全的密碼演算法
創新性的應用
50