交通大學 資訊工程系 曾文貴 - National Chiao Tung Universityrjchen/Crypto2008/PKI.pdf ·...

Preview:

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

Email

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

Recommended