Certificates

準確理解證書中的公鑰

  • May 14, 2022

證書在加密貨幣中經常使用。從搜尋中,我有點困惑證書中的“公鑰”到底是什麼?它總是一個簽名驗證密鑰,還是它也可以是加密密鑰

據我了解,對於根 CA 證書和中間 CA 證書,公鑰始終是簽名驗證密鑰。但是對於葉子證書(最終實體)也是如此嗎?

請添加指向真實資源的連結以支持您的答案和進一步閱讀。

我認為您現在理解正確,但我想我可以簡明扼要地總結一下。

證書頒發機構,無論是根證書頒發機構還是任何子 CA 都用於簽署其他證書。因此,要驗證到受信任證書的信任路徑(通常是根證書),他們需要在其中擁有一個公鑰,該公鑰可用於驗證他們已頒發的證書。這對應於指示此類用法的關鍵用法擴展:

keyCertSign當主題公鑰用於驗證公鑰證書上的簽名時,該位被置位。如果該 keyCertSign位被斷言,則基本約束擴展(第 4.2.1.9 節)中的 cA 位也必須被斷言。

cRLSign當主題公鑰用於驗證證書撤銷列表(例如,CRL、增量 CRL 或 ARL)上的簽名時,該位被斷言。

通常這兩種密鑰用法會同時啟用,因為證書頒發機構通常負責頒發證書但也負責撤銷它們。這對應於使用公鑰對證書頒發機構頒發的證書進行簽名驗證。


葉證書可用於除簽名證書(根據定義)和 CRL(根據慣例)之外的任何內容。這意味著密鑰用法可能指示其他任何內容。當然,密鑰對和公鑰的類型應該是可以滿足密鑰使用的:

筆記:

  • 在 TLS 1.3 中,葉子密鑰專門用於實體身份驗證,對應於digitalSignature.

下表說明瞭如何使用特定的密鑰類型。

在公鑰的情況下,前兩種用途的操作將是簽名驗證和加密。

密鑰協商和密鑰封裝都可用於密鑰建立。但是,如果密鑰是持久證書的一部分,則它們不能用於前向保密,這就是為什麼在例如 TLS 1.3 中使用臨時密鑰執行密鑰協商,並且簽名密鑰用於所需的實體身份驗證。

密鑰協商算法可用於實現集成加密方案或 IES。因此任何密鑰協議密鑰對也可以間接用於加密。


這些表格是原創內容;X.509 RFC 沒有明確提到公鑰應該與密鑰用法中指示的意圖兼容 - 似乎暗示它們應該兼容。

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