[IT-Security-1] 認證機制 Certificates and Public Key Infrastructures
Certificates and Public Key Infrastructures
Notes from RWTH Aachen University course
“IT security 1” Wintersemester 2019/20
professor: Meyer, Ulrike Michaela
- Trusted Third Parties
- 假設Alice和Bob有trusted thrid party的public key
- trusted third party對發行的key做簽章(包含可以擁有key的人的名字)
- Bob可以驗證是不是由trusted third party發行的key
- 稱為Certification Authority
- certificate至少包含:
- public key
- owner的名字
- 發行者的名字
- 對剩下的內容的hash的簽章
- 假設Alice和Bob有trusted thrid party的public key
- trusted third party對發行的key做簽章(包含可以擁有key的人的名字)
- Bob可以驗證是不是由trusted third party發行的key
- 稱為Certification Authority
- public key
- owner的名字
- 發行者的名字
- 對剩下的內容的hash的簽章
Public Key Infrastructures
- CA發行certificate
- 檢索certificate的資料庫(repository)
- 撤銷certificate的方法
- 衡量certificate的"chain"的方法
- RA(registration authority)與CA並用
- 同意certificate的請求
- 同意certificate的請求
Certificate Revocation List (CRL)
- 被CA簽署過的list,其中的certificate都未到期(expired)
Online Certificate Status Protocol(OCSP)
- OCSP允許certificate未過期的query
- OCSP回傳list中的certificate的狀態
- CRL和OCSP的比較
- CRL
CRL會過長,難以搜尋
撤銷具有週期性
query哪個certificate不會被CA知道
- OCSP
可隨時撤銷
CA會知道哪個certificate被查詢
若query太多會是CA的流量負擔- 雞蛋問題:如果網路連線前要網站的secure access(要去OCSP retrieval)
- 可以用OCSP stapling解決:用最近的OCSP的結果,也解決流量問題
- OCSP回傳list中的certificate的狀態
- CRL
CRL會過長,難以搜尋
撤銷具有週期性
query哪個certificate不會被CA知道
- OCSP
可隨時撤銷
CA會知道哪個certificate被查詢
若query太多會是CA的流量負擔
- 雞蛋問題:如果網路連線前要網站的secure access(要去OCSP retrieval)
- 可以用OCSP stapling解決:用最近的OCSP的結果,也解決流量問題
Using Certificates to Protect Diffie-Hellman
- First try
- 流程:
- Alice送 hA,sigA,certA
- Bob用pubA驗算sigA,用pubCA驗算certA
- Problem:
- Signature沒有跟此protocal結合
- 攻擊者可以記錄Alice的訊息並且再重傳給Bob(replay)
- Second try
- 流程:
- Alice送 hA
- Bob用 hA跟 hB做簽章 sigB:=gensig(privB,hB||hA)
- Bob傳送 hB,sigB,certB
- Alice驗證 sigB 是否包含 hA,則可以知道Bob收到的 hA 有沒有被竄改過
- Alice也用上列的方法簽章 sigA:=gensig(privA,hA||hB)
- Alice傳送 sigA,certA
- Bob驗證
- Problem:
- 攻擊者仍竄改Bob的public key,傳送自己的signature
- Secure Authentic Diffie-Hellman
- 流程:
- Alice傳送 hA
- Bob傳送 hB
- Alice用haB作為對稱式key k
用 k 加密 cA:=enc(k,sigA||certA) (sigA如上定義) - Alice傳送 cA
- Bob也計算對稱式key k=hbA
用 k 解密 sigA||certA:=dec(k,cA) - Bob也傳算 cB
ReadingsKaufmann et al., Chapter 15RFC 5280: X.509 Certificates and CRLsRFC 2560: Online Certificate Revocation ProtocolRFC 2559: X.509 Public Key Infrastructure Operational Protocols - LDAPv2RFC 4210: Certificate Management Protocol (CMP)
- 流程:
- Alice送 hA,sigA,certA
- Bob用pubA驗算sigA,用pubCA驗算certA
- Problem:
- Signature沒有跟此protocal結合
- 攻擊者可以記錄Alice的訊息並且再重傳給Bob(replay)
- 流程:
- Alice送 hA
- Bob用 hA跟 hB做簽章 sigB:=gensig(privB,hB||hA)
- Bob傳送 hB,sigB,certB
- Alice驗證 sigB 是否包含 hA,則可以知道Bob收到的 hA 有沒有被竄改過
- Alice也用上列的方法簽章 sigA:=gensig(privA,hA||hB)
- Alice傳送 sigA,certA
- Bob驗證
- Problem:
- 攻擊者仍竄改Bob的public key,傳送自己的signature
- 流程:
- Alice傳送 hA
- Bob傳送 hB
- Alice用haB作為對稱式key k
用 k 加密 cA:=enc(k,sigA||certA) (sigA如上定義) - Alice傳送 cA
- Bob也計算對稱式key k=hbA
用 k 解密 sigA||certA:=dec(k,cA) - Bob也傳算 cB
Readings
Kaufmann et al., Chapter 15
RFC 5280: X.509 Certificates and CRLs
RFC 2560: Online Certificate Revocation Protocol
RFC 2559: X.509 Public Key Infrastructure Operational Protocols - LDAPv2
RFC 4210: Certificate Management Protocol (CMP)
留言
張貼留言