# Key Management > 資料來源:NCKU 李南逸教授之**密碼學**課程-密碼學應用 1。 ## 金鑰分配(Key Distribution) ### Symmetric Key Distribution Key Distribution Center(KDC)用以分發金鑰給使用者。 其有兩大使用場景: - Flat Multiple KDCs ![圖片](https://hackmd.io/_uploads/rkyjcf2AR.png =60%x) - Hierarchical Multiple KDCs ![圖片](https://hackmd.io/_uploads/ByN2qG20R.png =60%x) **Session Key**: - KDC 為每個成員創建一把密鑰,此密鑰僅能在「成員與 KDC 之間」使用,不能在兩個成員之間使用。 - 兩方之間的對稱式 session key 僅能使用一次。 ### Simple Protocol Based on KDC ![圖片](https://hackmd.io/_uploads/rJacoG2CA.png =80%x) 如果 $K_{AB}$ 洩漏了(被丟掉,又被駭客撿回來),則 1. 駭客可偽裝 Bob。 2. 駭客可竊聽 A ↔ B。 ### Needham-Schroeder Protocol Based on KDC ![圖片](https://hackmd.io/_uploads/HkT_3f3CR.png =70%x) > 第 `4`、`5` 步是 Bob 對 Alice 作 challenge,確認該 session key 是 **fresh** 的。 ### Otway-Rees Protocol Based on KDC ![圖片](https://hackmd.io/_uploads/ryxmazhA0.png =70%x) > 老師:這設計得很好。 其實是 4 Steps(第 5 步是傳訊息)。 但加解密都需要「4 次」,因此有人設計加解密各 3 次的變形。 ![圖片](https://hackmd.io/_uploads/SyfipG2RR.png =25%x) ### Kerberos ![圖片](https://hackmd.io/_uploads/rkVGCGh0C.png =80%x) ## 金鑰協議(Key Agreement) ### Symmetric Key Agreement 定義:A 和 B 可以在「不使用 KDC」的情況下創建一把 session key。 ### Diffie-Hellman Key Agreement ![圖片](https://hackmd.io/_uploads/BJ1xJ730A.png =70%x) > 把 `5`、`6` 步展開,都會得到下方 $K$ 的式子。 注意:可能會遭 MITM 攻擊,如下圖(Eve 為攻擊者)。 ![圖片](https://hackmd.io/_uploads/HJkSy72AC.png =50%x) ### Station to Station Key Agreement ![圖片](https://hackmd.io/_uploads/Byid17nRA.png =70%x) ## 金鑰憑證 X.509 ### Asymmetric Key Distribution ![圖片](https://hackmd.io/_uploads/BkjMl7nRC.png =60%x) ### Certification Authority(CA) ![圖片](https://hackmd.io/_uploads/SJjXruCRR.png =70%x) CA 是一個可信賴的機構,它負責「驗證證書持有人的身份」,並使用自己的私鑰簽署證書。 使用者透過 CA 來驗證證書是否可信,並確保通信的安全性。 ### X.509 Authentication Service - 「分佈式伺服器集」維護一個關於使用者的資料庫。 - 每個證書包含「使用者的公鑰」,並使用 CA 的私鑰簽章。 - 用於 S/MIME、IP Security、SSL/TLS 和 SET。 - 建議使用 RSA。 ### X.509 Format ![圖片](https://hackmd.io/_uploads/SyM5BORA0.png) ### X.509 運作流程 1. 證書申請 (Certificate Request): - 某 Entity 創建一個 Certificate Signing Request(CSR),其中包含「公鑰」和「身份」,然後提交給 CA。 2. 證書發行: - CA 核實申請者的身份,並且「使用 CA 的私鑰對申請者的公鑰和身份作簽章」,產生 X.509 證書,並發送給申請者。 3. 證書驗證: - 當證書被使用時,接收方會檢查證書的有效性,包括「驗證簽章、檢查證書的有效期、並檢查證書是否在信任鏈中」。 - 若證書屬於信任的 CA 所發行,則視為有效。 4. 證書撤銷: - 若某個證書被發現無效(例如私鑰泄露或身份變更),CA 可以將其列入 Certificate Revocation List(CRL),或使用 Online Certificate Status Protocol(OCSP)進行即時狀態查詢。 ## 補充 ### Authentication(確認) ![圖片](https://hackmd.io/_uploads/HyrkD_RRA.png =60%x) ### Identification(鑑定) ![圖片](https://hackmd.io/_uploads/SyhgP_RAR.png =60%x) ### Signature(簽章) ![圖片](https://hackmd.io/_uploads/ryUzP_R00.png =60%x)