Encryption

是否可以將 X.509 用於對稱密鑰算法?

  • April 3, 2019

我在維基百科上讀到什麼是 X.509:

在密碼學中,X.509 是定義公鑰證書格式的標準。X.509 證書用於許多 Internet 協議,包括 TLS/SSL,它是 HTTPS 的基礎

$$ 1 $$,用於瀏覽網頁的安全協議。它們還用於離線應用程序,如電子簽名。

但是作為一個初學者,我仍然不清楚,請問您有關於 X.509 的日常案例的具體範例嗎?

正如我假設它是定義公鑰證書格式的標準,它仍然可以用於對稱密鑰算法嗎?

不,X.509 不能直接用於對稱加密。證書內部是證書主題的公鑰。主體控制私鑰。

X.509 名稱是對 CCITT / ITU-T X.509 的引用;X.509 證書用作 PKIX(公鑰基礎結構)的基礎。PKIX 是一種樹形結構,證書頒發機構可用於通過使用自己的私鑰對最終實體證書進行簽名來信任它們。這樣就創建了從根證書到葉證書的信任鏈。如果最終使用者在初始信任庫中收到根證書或任何中間證書,則可以驗證這些證書鏈。驗證者收到包含頒發者的葉證書,該證書可用於創建指向最初受信任證書的鏈。當然證書也應該被驗證:實體名稱(TLS的伺服器名稱),有效期,

這種信任不能使用對稱密碼學來建立。顯然不可能將密鑰放入證書中,因為它應該是公開的;畢竟需要對方信任。由於對稱加密缺乏公鑰,對稱加密不能直接用於 X.509 證書。


X.509 證書最普遍的用途可能是 TLS。TLS 也可以用於其他身份驗證方法,但 X.509 是最常見的。使用 TLS,初始信任庫隨您的瀏覽器一起分發。TLS 本身確實使用對稱加密技術,例如 AES 和/或 HMAC。但是,在這種情況下,X.509 主要用於實體身份驗證,對伺服器進行身份驗證,也可以對客戶端進行身份驗證。這

TLS 1.2 及更早版本還使用證書中的公鑰來加密對稱主密鑰材料。然後可以使用此密鑰材料來導出會話密鑰。這些會話密鑰用於保護傳輸層的消息,在 Web 技術的情況下是 HTTP 數據。然而,通常,RSA 密鑰僅用於驗證 Diffie-Hellman 密鑰交換,該密鑰交換執行密鑰協商,在雙方創建相同的主密鑰材料。在這種情況下,RSA 不直接參與協議的對稱部分。對於 TLS 1.3,不再使用 RSA 通過加密和發送來直接建立密鑰。


通常,X.509 證書及其私鑰可用於任何需要身份驗證、不可否認性(即文件簽名)和加密/解密的目的。簽名者將私鑰用於前兩個目的,而接收者將私鑰用於後兩個目的。

除了 TLS 之外,使用 X.509 的協議有:加密消息語法(文件簽名和加密)、XML-DigSig 和 XML-Enc,包括 Web 安全、PDF 簽名、應用程式碼簽名、Windows 身份驗證等。有使用政府身份/認證、駕駛執照、銀行等部門的案例

顯然,autentication、non-rep 和加密/解密非常廣泛,因此無數公共或專有協議可以從非對稱加密以及基於 X.509 的 PKI 中受益。


如果無法聯網,X.509 可能會更難使用,因為證書狀態的檢查通常依賴於網路的存在。同樣,通常也需要受信任的時間源,儘管網路 NTP 通常是可能的。顯然,各方還需要信任一個或多個證書頒發機構。

最後,許多協議和方案還需要存在某種隨機數生成器。最後,特別是對於嵌入式設備和(智能)卡,生成密鑰、簽名或解密的處理要求可能難以滿足或難以保護​​。


作為一種極端的黑客攻擊,您可以為多方使用相同的證書/私鑰或兩個證書作為相同的私鑰,將私鑰變成某種秘密密鑰。由於X.509 證書中必須存在公鑰,這比採用 PKI 進行對稱加密要容易。

但是,要做到這一點,對所使用的密碼學有很好的理解是絕對必要的,因為攻擊者可以使用公鑰進行加密,而這在使用對稱密碼學時是不可能的。

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