[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的簽章

Public Key Infrastructures

  • CA發行certificate
  • 檢索certificate的資料庫(repository)
  • 撤銷certificate的方法
  • 衡量certificate的"chain"的方法
  • RA(registration authority)與CA並用
    • 同意certificate的請求

Certificate Revocation List (CRL)

  • 被CA簽署過的list,其中的certificate都未到期(expired)

Online Certificate Status Protocol(OCSP)

  • OCSP允許certificate未過期的query
    • OCSP回傳list中的certificate的狀態
  • CRL和OCSP的比較
    • CRL
      • :negative_squared_cross_mark: CRL會過長,難以搜尋
      • :negative_squared_cross_mark: 撤銷具有週期性
      • :white_check_mark: query哪個certificate不會被CA知道
    • OCSP
      • :white_check_mark: 可隨時撤銷
      • :negative_squared_cross_mark: CA會知道哪個certificate被查詢
      • :negative_squared_cross_mark: 若query太多會是CA的流量負擔
      • 雞蛋問題:如果網路連線前要網站的secure access(要去OCSP retrieval)
      • 可以用OCSP stapling解決:用最近的OCSP的結果,也解決流量問題

Using Certificates to Protect Diffie-Hellman

  1. First try
    • 流程:
      1. Alice送 \(h_A,sig_A,cert_A\)
      2. Bob用\(pub_A\)驗算\(sig_A\),用\(pub_{CA}\)驗算\(cert_A\)
    • Problem:
      • Signature沒有跟此protocal結合
      • 攻擊者可以記錄Alice的訊息並且再重傳給Bob(replay)


  1. Second try
    • 流程:
      1. Alice送 \(h_A\)
      2. Bob用 \(h_A\)跟 \(h_B\)做簽章 \(sig_B:=gensig(priv_B,h_B||\)\(h_A\)\()\)
      3. Bob傳送 \(h_B,sig_B,cert_B\)
      4. Alice驗證 \(sig_B\) 是否包含 \(h_A\),則可以知道Bob收到的 \(h_A\) 有沒有被竄改過
      5. Alice也用上列的方法簽章 \(sig_A:=gensig(priv_A,h_A||\)\(h_B\)\()\)
      6. Alice傳送 \(sig_A,cert_A\)
      7. Bob驗證


    • Problem:
      • 攻擊者仍竄改Bob的public key,傳送自己的signature
  1. Secure Authentic Diffie-Hellman
    • 流程:
      1. Alice傳送 \(h_A\)
      2. Bob傳送 \(h_B\)
      3. Alice用\(h_B^a\)作為對稱式key \(k\)
        用 \(k\) 加密 \(c_A:=enc(k,sig_A||cert_A)\) (\(sig_A\)如上定義)
      4. Alice傳送 \(c_A\)
      5. Bob也計算對稱式key \(k=h_A^b\)
        用 \(k\) 解密 \(sig_A||cert_A:=dec(k,c_A)\)
      6. Bob也傳算 \(c_B\)


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)

留言

這個網誌中的熱門文章