chapter 13 digital signatures & authentication protocols

40
Chapter 13 Digital Signatures & Authentication Protocols

Post on 20-Dec-2015

254 views

Category:

Documents


10 download

TRANSCRIPT

Page 1: Chapter 13 Digital Signatures & Authentication Protocols

Chapter 13 Digital Signatures &

Authentication Protocols

Page 2: Chapter 13 Digital Signatures & Authentication Protocols

Digital Signatures

• have looked at message authentication – but does not address issues of lack of trust

• digital signatures provide the ability to: – verify author, date & time of signature– authenticate message contents – be verified by third parties to resolve disputes

• hence include authentication function with additional capabilities

Page 3: Chapter 13 Digital Signatures & Authentication Protocols

Digital Signature Properties

• must depend on the message signed• must use information unique to sender

– to prevent both forgery and denial

• must be relatively easy to produce• must be relatively easy to recognize & verify• be computationally infeasible to forge

– with new message for existing digital signature– with fraudulent digital signature for given message

• be practical save digital signature in storage

Page 4: Chapter 13 Digital Signatures & Authentication Protocols

Direct Digital Signatures

• involve only sender & receiver

• assumed receiver has sender’s public-key

• digital signature made by sender signing entire message or hash with private-key

• can encrypt using receivers public-key

• important that sign first then encrypt message & signature

• security depends on sender’s private-key

Page 5: Chapter 13 Digital Signatures & Authentication Protocols

Arbitrated Digital Signatures

• involves use of arbiter A– validates any signed message– then dated and sent to recipient

• requires suitable level of trust in arbiter

• can be implemented with either private or public-key algorithms

• arbiter may or may not see message

Page 6: Chapter 13 Digital Signatures & Authentication Protocols
Page 7: Chapter 13 Digital Signatures & Authentication Protocols

Authentication Protocols

• used to convince parties of each others identity and to exchange session keys

• may be one-way or mutual

• key issues are– confidentiality – to protect session keys– timeliness – to prevent replay attacks

Page 8: Chapter 13 Digital Signatures & Authentication Protocols

Replay Attacks

• where a valid signed message is copied and later resent– simple replay– repetition that can be logged– repetition that cannot be detected– backward replay without modification

• countermeasures include– use of sequence numbers (generally impractical)– timestamps (needs synchronized clocks)– challenge/response (using unique nonce)

Page 9: Chapter 13 Digital Signatures & Authentication Protocols

重現 (replay)的破壞行為 A使用者

竊聽者

訊息

加密過的密碼

2: , ,步驟 假冒合法使用者 重現竊聽所得到的資訊

A使用者

竊聽者

訊息

加密過的密碼

保留該訊息有用的資訊

1: 步驟 竊聽具有使用者密碼資訊的訊息

加密過的密碼

Page 10: Chapter 13 Digital Signatures & Authentication Protocols

Using Symmetric Encryption

• as discussed previously can use a two-level hierarchy of keys

• usually with a trusted Key Distribution Center (KDC)– each party shares own master key with KDC– KDC generates session keys used for

connections between parties– master keys used to distribute these to them

Page 11: Chapter 13 Digital Signatures & Authentication Protocols

Needham-Schroeder Protocol

• original third-party key distribution protocol

• for session between A B mediated by KDC

• protocol overview is:1. A→KDC: IDA || IDB || N1

2. KDC→A: EKa[Ks || IDB || N1 || EKb[Ks||IDA] ]

3. A→B: EKb[Ks||IDA]

4. B→A: EKs[N2]

5. A→B: EKs[f(N2)]

Page 12: Chapter 13 Digital Signatures & Authentication Protocols

Key Distribution Scenario

Page 13: Chapter 13 Digital Signatures & Authentication Protocols

Needham-Schroeder Protocol

• used to securely distribute a new session key for communications between A & B

• but is vulnerable to a replay attack if an old session key has been compromised– then message 3 can be resent convincing B

that is communicating with A

• modifications to address this require:– timestamps (Denning 81)– using an extra nonce (Neuman 93)

Page 14: Chapter 13 Digital Signatures & Authentication Protocols

Denning Protocol• protocol overview is:

1. A→KDC: IDA || IDB

2. KDC→A: EKa[Ks || IDB || T || EKb[Ks||IDA || T ] ]

3. A→B: EKb[Ks||IDA || T]

4. B→A: EKs[N1]

5. A→B: EKs[f(N1)]

• Verify timeliness by | Clock-T| <Δt1+Δt2, where Δt1 is the estimated normal discrepancy between the KDC’s clock and the local clock(at A or B) and Δt2 is the expected network delay time.

• Clock synchronization• Suppress replay attacks

Page 15: Chapter 13 Digital Signatures & Authentication Protocols

Neuman Protocol• protocol overview is:

1. A→B: IDA || Na

2. B→KDC: IDB || Nb || EKb[ IDA || Na || Tb]

3. KDC→A: EKa[IDB ||Na ||Ks||Tb] || EKb[IDA||Ks||Tb] || Nb

4. A→B: EKb[IDA||Ks||Tb] || EKs[Nb]

• Tb: expiration time

• This timestamp does not require synchronized clocks because B checks only self-generated timestamps

Page 16: Chapter 13 Digital Signatures & Authentication Protocols

Using Public-Key Encryption

• have a range of approaches based on the use of public-key encryption

• need to ensure have correct public keys for other parties

• using a central Authentication Server (AS)

• various protocols exist using timestamps or nonces

Page 17: Chapter 13 Digital Signatures & Authentication Protocols

Denning AS Protocol - timestamps

• Denning 81 presented the following:1. A→AS: IDA || IDB

2. AS→A: EKRas[IDA||KUa||T] || EKRas[IDB||KUb||T]

3. A→B: EKRas[IDA||KUa||T] || EKRas[IDB||KUb||T] || EKUb[EKRa[Ks||T]]

• note session key is chosen by A, hence AS need not be trusted to protect it

• timestamps prevent replay but require synchronized clocks

Page 18: Chapter 13 Digital Signatures & Authentication Protocols

Woo & Lam Protocol - nonces

• Woo 92b presented the following:1. A→KDC: IDA || IDB

2. KDC→A: EKRauth[IDB || KUb]

3. A→B: EKUb[Na || IDA]

4. B→KDC: IDB || IDA || EKUauth[Na]

5. KDC→B: EKRauth[IDA||KUa] || EKUb[EKRauth [Na ||Ks|| IDB]]

6. B→A: EKUa[EKRauth [Na ||Ks|| IDB] || Nb]

7. A→B: Eks[Nb]

Page 19: Chapter 13 Digital Signatures & Authentication Protocols

One-Way Authentication

• required when sender & receiver are not in communications at same time (eg. email)

• have header in clear so can be delivered by email system

• may want contents of body protected & sender authenticated

Page 20: Chapter 13 Digital Signatures & Authentication Protocols

Using Symmetric Encryption

• can refine use of KDC but can’t have final exchange of nonces, 1. A→KDC: IDA || IDB || N1

2. KDC→A: EKa[Ks || IDB || N1 || EKb[Ks||IDA] ]

3. A→B: EKb[Ks||IDA] || EKs[M]

• does not protect against replays– could rely on timestamp in message, though

email delays make this problematic

Page 21: Chapter 13 Digital Signatures & Authentication Protocols

Public-Key Approaches

• have seen some public-key approaches

• if confidentiality is major concern, can use:A→B: EKUb[Ks] || EKs[M]

– has encrypted session key, encrypted message

• if authentication needed use a digital signature with a digital certificate:A→B: M || EKRa[H(M)] || EKRas[T||IDA||KUa]

– with message, signature, certificate

Page 22: Chapter 13 Digital Signatures & Authentication Protocols

加解密技術及雜湊函式混合使用保證訊息的私密性,完整性及做身份確認

Paul

K秘密鑰匙

M訊息明文

Alan P的公開鑰匙 alan

雜湊函式 摘要

Paul S的私有鑰匙 paul

ESpaul( )摘要

Ek(M, E Spaul( ))摘要

Ek(M, E Spaul( ))摘要EPalan(K)

ESpaul( )摘要

Alan將訊息送給

EPalan(K)DES產生

秘密鑰匙 RSA加密

RSA加密

DES加密

Page 23: Chapter 13 Digital Signatures & Authentication Protocols

加解密技術及雜湊函式混合使用保證訊息的私密性,完整性及做身份確認

Alan S的私有鑰匙 alan

K秘密鑰匙 M訊息明文 ESpaul( )摘要

Paul P的公開鑰匙 paul

摘要

雜湊函式

摘要

比較

訊息正確訊息已遭篡改

相同不同

Alan

RSA解密

Ek(M, ESpaul( ))摘要EPalan(K)

DES解密

RSA解密

Page 24: Chapter 13 Digital Signatures & Authentication Protocols

認證中心 (Certificate Authority)

• 申請電子證書 (Digital Certificate);用來證明身份的合法性及訊息發送者的不可否認性

• 電子證書的結構• 認證中心產生電子證書和簽章• 使用者驗證電子證書之合法性

Page 25: Chapter 13 Digital Signatures & Authentication Protocols

電子證書的結構 : ITU-T X.509 之規格• V(版本 ): 此電子證書格式的版本。• SN(序號 ): 認證中心簽發此份電子證書所給的唯一序號。• AI(演算法 ): 認證中心在此電子證書所採用的簽章演算法。• CA(認證中心 ): 簽發此電子證書的認證中心名稱。• TA(證書有效期限 ): 此電子證書的使用有效期限。• A(使用者 ): 擁有此電子證書上所記錄的公開鑰匙的使用者名稱。

• Ap(公鑰資料 ): 此電子證書上所記錄的的公開鑰匙及所使用的加解密演算法名稱。

• UCA( 認證中心識別號 ): 簽發此電子證書的認證中心獨有的唯一識別碼。

• UA(使用者識別號 ): 擁有此電子證書上所記錄的公開鑰匙的使用者獨有的識別碼。

• signature(of hash of all fields in certificate)

Page 26: Chapter 13 Digital Signatures & Authentication Protocols

X.509 Certificates

• issued by a Certification Authority (CA), containing: – version (1, 2, or 3) – serial number (unique within CA) identifying certificate – signature algorithm identifier – issuer X.500 name (CA) – period of validity (from - to dates) – subject X.500 name (name of owner) – subject public-key info (algorithm, parameters, key) – issuer unique identifier (v2+) – subject unique identifier (v2+) – extension fields (v3) – signature (of hash of all fields in certificate)

• notation CA<<A>> denotes certificate for A signed by CA

Page 27: Chapter 13 Digital Signatures & Authentication Protocols

電子證書的結構 : ITU-T X.509 之規格

V:

3.0SN:

969082790AI:

MD5CA:

NYUST-CNETLAB-CAUCA

: 8413012

A:

Paul

UA: 8713704

Ap: 7208397740478991...., RSA

TA: 1998/12/28

公開鑰匙以及加解密演算法

認證中心的數位簽章

Page 28: Chapter 13 Digital Signatures & Authentication Protocols

X.509 Certificates

Page 29: Chapter 13 Digital Signatures & Authentication Protocols

Obtaining a Certificate

• any user with access to CA can get any certificate from it

• only the CA can modify a certificate

• because cannot be forged, certificates can be placed in a public directory

Page 30: Chapter 13 Digital Signatures & Authentication Protocols

認證中心產生電子證書和簽章

•步驟一:依據申請者提供的資料產生一未加認證中心簽章之電子證書。

•步驟二:用雜湊函式對電子證書的內容計算出證書摘要 (Certificate Digest)。

•步驟三:認證中心用自己的私有鑰匙對證書摘要作加 密 , 產 生 證 書 簽 章 (Certificate Signature)。

•步驟四:將步驟一產生的證書和步驟三產生的證書簽章組合起來,便成為完整具有身份認證功能的電子證書。。

•步驟五:將電子證書傳送給申請者。

Page 31: Chapter 13 Digital Signatures & Authentication Protocols

認證中心產生電子證書和簽章

產生電子證書

雜湊函式

電子證書

認證中心的私有鑰匙

證書摘要

證書簽章

電子證書

送給申請者使用者資訊

RSA加密

Page 32: Chapter 13 Digital Signatures & Authentication Protocols

使用者驗證電子證書之合法性

電子證書 雜湊

認證中心的公開鑰匙

RSA解密

證書摘要

電子證書

證書簽章

比較

Paul P的公開鑰匙 paul

放棄此訊息

相同

不同

電子證書

認證中心的公開鑰匙

證書摘要

證書簽章

比較 放棄此訊息

相同

不同

電子證書

電子證書RSA解密 證書摘要

Paul P的公開鑰匙 paul

取出公開鑰匙

雜湊函式

Page 33: Chapter 13 Digital Signatures & Authentication Protocols

ElGamal Public Key Cryptosystem • security relies on the difficulty of computing discrete

logarithms (similar to factoring) – hard• User Alice wants to send a message m to Bob• Bob: q - prime number - a primitive root of q X - private key = X mod q – public key• Alice:

– Downloads (, q, )– Chooses a secret random integer k– Encryption: r k mod q; t km mod q– Send (r, t)=(k, km) to Alice

• Bob:– Decryption: t/rX = m

Page 34: Chapter 13 Digital Signatures & Authentication Protocols

ElGamal Digital Signature Scheme • User Bob wants to send an authenticated message

m to Alice• Bob: q - prime number

- a primitive root of q

X - private key

= X mod q – public key• Bob:

– Chooses a secret random integer k, 0<k<q, gcd(k, q-1)=1– Computes r k mod q; S k-1(m-Xr) mod (q-1)– Digital signature (r, s)

• Alice:– Verifies m = rrs

Page 35: Chapter 13 Digital Signatures & Authentication Protocols

Digital Signature Standard (DSS)

• US Govt approved signature scheme FIPS 186• uses the SHA hash algorithm • designed by NIST & NSA in early 90's • DSS is the standard, DSA is the algorithm• a variant on ElGamal and Schnorr schemes • creates a 320 bit signature, but with 512-1024 bit

security • security depends on difficulty of computing

discrete logarithms

Page 36: Chapter 13 Digital Signatures & Authentication Protocols
Page 37: Chapter 13 Digital Signatures & Authentication Protocols

DSA Key Generation

• have shared global public key values (p,q,g): – a large prime p = 2L

• where L= 512 to 1024 bits and is a multiple of 64

– choose q, a 160 bit prime factor of p-1 – choose g = h(p-1)/q

• where h<p-1, h(p-1)/q (mod p) > 1

• users choose private & compute public key: – choose x<q – compute y = gx (mod p)

Page 38: Chapter 13 Digital Signatures & Authentication Protocols

DSA Signature Creation

• to sign a message M the sender:– generates a random signature key k, k<q – nb. k must be random, be destroyed after

use, and never be reused

• then computes signature pair: r = (gk(mod p))(mod q)

s = (k-1.SHA(M)+ x.r)(mod q)

• sends signature (r,s) with message M

Page 39: Chapter 13 Digital Signatures & Authentication Protocols

DSA Signature Verification

• having received M & signature (r,s)

• to verify a signature, recipient computes: w = s-1(mod q)

u1= (SHA(M).w)(mod q)

u2= (r.w)(mod q)

v = (gu1.yu2(mod p)) (mod q)

• if v=r then signature is verified

• see book web site for details of proof why

Page 40: Chapter 13 Digital Signatures & Authentication Protocols