Signature

簽名消息是否通常包含簽名者的公鑰?

  • June 5, 2018

在使用 ECDSA 的協議/系統中,消息包含消息簽名者的公鑰是否常見?

如果不是,收件人如何知道消息已由正確的私鑰簽名,以及他們如何知道使用哪個公鑰來驗證簽名?

我會說大多數時候簽名都附有簽名者的證書。該證書包含公鑰。大多數容器格式,例如 CMS(在 S/MIME 中使用,也稱為 PKCS#7)或 XML digsig 都包含可能包含證書的特定欄位 - 通常是這樣。

收到證書後,可以使用公鑰基礎設施 (PKI) 來驗證證書。在 X.509 PKI 的情況下,例如將包括驗證導致可信證書的證書鏈(可能由證書頒發機構發布並包含在瀏覽器或系統密鑰庫中)。當然應該執行額外的驗證/驗證,例如測試證書的有效性和撤銷狀態。正如您已經指出的,另一種方法是通過信任網路驗證證書或公鑰,例如用於(開放)PGP。

PKI 確實是一個信任框架,雖然我不會直接稱它為“可信通道”。


對於特定協議,可能只是根據使用者名或密鑰 ID 在信任庫中查找公鑰。例如,在 SSH 中就是這種情況,其中公鑰儲存在包含可信公鑰的文件中並綁定到特定使用者。

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