Public-Key

SSL - 用私鑰加密,然後用公鑰加密?

  • December 8, 2018

假設有 2 方希望進行通信: sideA和 side B。假設我們正在查看邊A發送消息。

在 SSL 協議中建立連接時,協議是否總是要求消息首先使用側A's私鑰加密(所以側B知道只能A對其進行加密)然後使用B's公鑰加密?這樣就只能B解密了?

在什麼情況下A僅使用公鑰對消息進行側面加密B's然後發送?

您不能使用私鑰“加密”。

加密提供加密消息的機密性。

如果公鑰執行解密,並且公鑰是公開的,那麼任何人都可以解密消息。所以“用私鑰加密”是不可能的。

這個概念可能很流行,但它是不正確的。

它源於這樣一個事實,即使用教科書 RSA 簽署消息相當於反向完成的公鑰加密。但是,這樣做有很多問題:

  • 教科書 RSA 不提供安全的簽名/加密方案,因此未使用
  • 填充和散列確保簽名過程實際上與反向完成的加密過程不同。
  • 很少,如果有的話,其他算法甚至以類似的方式執行。例如,存在無法加密的簽名方案,因此“使用私鑰加密”的簽名甚至不是一個模糊正確的類比。

所以你的問題可以被翻譯成更準確的東西:

在 SSL 協議中建立連接時,協議是否總是要求首先使用 A 方的私鑰對消息進行簽名(因此 B 方知道只有 A 可以對其進行簽名)然後使用 B 的公鑰加密,這樣只有 B可以解密嗎?

建立連接時,假定 A 的公鑰已經由證書頒發機構(已審查 A 的身份)簽署。首先將證書和公鑰呈現給B。B預先安裝了證書頒發機構的公鑰驗證密鑰,可以用它來驗證證書和公鑰上的簽名。在我們的資訊安全姊妹網站上有一個很好的流程大綱。

在什麼情況下,A 方會僅使用 B 的公鑰加密消息然後發送?

消息未簽名的情況包括:

  • 易受中間人攻擊的損壞協議

  • 當 A 和 B 已經相互共享公鑰時

    • 初始密鑰交換可以使用簽名,但實際來回發送的消息可能只使用 MAC 而不是簽名。
  • 當 A 想要否認已將消息發送給 B 時

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