Keys

術語“pre-master secret”、“master secret”、“private key”和“shared secret”之間的區別?

  • January 10, 2022

crypto.SE和security.SE都有關於 TLS 如何生成會話密鑰的優秀問答(我在底部連結了一些)。

在閱讀這些執行緒時,我遇到了術語問題,因為以下術語似乎與重疊的上下文一起使用,儘管它們顯然是不同的概念。閱讀定義只是部分有用,因為它們沒有顯示它們用法之間的差異。

  • 預主秘密
  • 主秘
  • 私鑰
  • 共享密鑰/會話密鑰

據我了解,預主密鑰與私鑰有關,但與算法無關,主密鑰(通常?)用作會話密鑰。但我確信這些定義還有更多細微差別。


相關問題:

簡化的 SSLv3/TLS 本書 中的簡化 SSLv3/TLS注意, $ R_{(Alice|Bob)} $ 是分別由 Alice 或 Bob 選擇的隨機數,並且 $ {S}_{Bob} $ 是用 Bob 的公鑰加密。

預主秘密

如您連結到的答案之一所述,“premaster secret 的目的是在 TLS 密碼套件之間提供更大的一致性。”

在上圖中,premaster secret 是 $ S $ (在消息 3 中)。在這種情況下,它是隨機生成的。它可能來自 diffie-hellman 交換或其他方法,具體取決於商定的密碼套件。

它並不是真正“與私鑰相關”,但它的生成/同意方式取決於圖中第二條消息中選擇的密碼套件。

主秘

在上圖中,主密鑰是 $ K $ . 從側面顯示,它是前主密鑰和前兩條消息中發送的兩個隨機值的函式。

私鑰

我不確定這是從哪裡來的。它可以引用 Bob 在消息 2 中發送的證書的私鑰。它還可以引用在 diffie-hellman 密鑰交換中使用的私鑰。如果進行客戶端身份驗證,它可以引用與其證書關聯的客戶端私鑰。

共享密鑰/會話密鑰

這就是圖中最後一步所指的內容。會話密鑰被稱為“從 K 派生的密鑰”。許多密鑰實際上是從 K 派生的。這可能是加密密鑰、完整性保護密鑰(例如 HMAC)、密碼的 IV 等。而且,它通常是每個方向的不同集合。

引用自:https://crypto.stackexchange.com/questions/27131