Protocol-Design

當 TLS 已經存在時,為什麼人們還要使用像 PGP 這樣的協議?

  • November 20, 2021

TLS 是 Internet 上的標準加密協議,許多網站使用它來保護他們的通信。但是,對於個人用途,大多數人使用 PGP 等其他協議,而不是使用 TLS 密鑰/證書。

似乎沒有任何理由不為這些事情使用 TLS,或者至少在加密/簽名部分。TLS 的傳輸部分並不總是需要,因為人們有不同的需求。

那麼為什麼人們使用 PGP(和其他協議/工具,例如 age/signify)而不是直接使用 TLS 密鑰呢?他們不這樣做有什麼技術原因嗎?

這些是不同的協議,它們服務於不同的目的。

TLS 是兩個不同方之間的線上協議。它旨在確保連接的兩個端點之間的連接安全。連接是短暫的,雙方必須同時線上並具有足夠的頻寬。

OpenPGP 是一種離線協議。它可用於加密可能永遠不會同時線上的兩方之間的數據。更常見的是,它用於簽署數據以供一方分發軟體(或其他用途),然後由其他方接收並在以後驗證。

如果要使用用於 TLS 的 X.509 密鑰和證書,可以使用 CMS,它也是一個離線協議。它在開源社區中的受歡迎程度大大降低,因為通常所需的證書時間較短,而且通常要花錢,導致採用率下降。

在許多情況下,答案是兩者都是好主意。通常,您現在應該通過 TLS 提供所有 HTTP 連接,如果您正在分發軟體,您可能需要使用某種數字簽名來驗證其完整性。TLS 對於防止洩露傳輸的數據非常重要,因為它是敏感的(出於法律原因或其他原因),並且數字簽名(例如,通過 OpenPGP)意味著可以破壞遠端伺服器儲存的攻擊者無法分發修改後的軟體,前提是密鑰儲存在其他地方。

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