Rsa

HTTPS 加密是使用 RSA 算法嗎?

  • March 19, 2020

根據這篇文章 HTTPS 和 RSA 是一回事:https ://tiptopsecurity.com/how-does-https-work-rsa-encryption-explained/

從其他來源我了解到它們都是非對稱加密方法。

兩者有什麼區別?

兩者有什麼區別?

這個問題感覺就像是“卡車和 8 缸發動機有什麼區別?”的問題。

它們是不同的,因為它們服務於不同的目標。HTTPS 可能使用 RSA(就像卡車可能使用 8 缸發動機一樣),但是 HTTPS 有更多功能(就像卡車包含的不僅僅是引擎)。

RSA 是一種加密原語;它可用於實現公鑰加密(如頁面所述);也就是說,某人可以擁有一個公鑰(他們可以分發);任何人都可以使用該公鑰來加密只有私鑰持有者才能讀取的消息。RSA也可以實現簽名;擁有私鑰的人可以“簽名”消息,任何擁有公鑰的人都可以驗證該消息是否已“簽名”。

HTTPS 是一種加密協議;特別是,它試圖成為一種實現傳輸 HTTP 流量安全的方法。它確保您獲得的 HTTP 流量實際上來自您認為的 Web 伺服器,並且沒有人可以在傳輸過程中讀取或修改它。它可以使用 RSA 作為它所依賴的加密原語之一,但它不是必須的(實際上,目前的趨勢是擺脫 RSA 公鑰加密以支持其他原語)。此外,它還依賴於其他加密原語。

HTTPS 代表超文本傳輸協議,它只是 Web 伺服器處理來自 Web 客戶端(例如瀏覽器)的請求的方式。從某種意義上說,它可以處理任何類型的數據,甚至是二進制數據,這有點用詞不當。

S 代表安全或 SSL。這意味著 HTTP 連接是通過受 SSL 或現在稱為 TLS 保護的連接建立的。TLS 代表傳輸安全層,它使用加密技術保護 TCP(網際網路的傳輸控制協議)上的正常埠到埠連接。

TLS 只是在 HTTP 連接之前建立,安全層對 HTTP 連接基本上是透明的。換句話說,無論底層是否安全,HTTP 都將以相同的方式工作。


RSA 是一種加密原語。它依賴於 RSA 問題來保證安全,使用模冪作為加密或簽名生成的原語。RSA 本身可以用作TLS 協議的一部分來驗證和建立會話密鑰。它也可以用作所需的基於 PKIX 的證書基礎結構(來自證書頒發機構的基於 RSA 的證書)中的算法。

在 TLS 1.3 中,不再使用 RSA 來建立密鑰。它僅用於通過基於 PKIX 的證書鍊和由屬於伺服器或客戶端的葉證書生成的最終簽名來驗證伺服器和可選的客戶端。

RSA 可在 TLS 1.2 及更早版本中用於建立密鑰並同時對伺服器進行身份驗證。此使用 RSA 建立密鑰的選項不提供前向安全性,因此從 1.3 中完全刪除了它。客戶端身份驗證仍然是一種可能。


那麼RSA和HTTPS是一回事嗎?

不,兩者非常不同。RSA 是一種加密原語,而 HTTPS 是 OSI 層定義中的應用程序級協議。即使作為概念,它們也很難分開。是的,它們都可以用來加密數據,但這就是比較結束的地方。

HTTPS 可能使用也可能不使用 RSA;目前似乎在 RSA 上轉向橢圓曲線加密,因為它更高效、更安全。如果量子電腦成熟,TLS 可能不得不切換到後量子密碼學。在這種情況下,HTTPS 很可能在 RSA 或橢圓曲線已被棄用很久之後才實用。

RSA 是非對稱的,因為它使用公鑰和私鑰。HTTPS 通常使用對稱和非對稱加密,但在消息加密級別它只使用對稱會話密鑰。在 TLS 會話恢復或通過預共享密鑰 (PSK) 執行 TLS 實體身份驗證時,可能根本不使用非對稱加密。

請注意,我根本沒有看到文章中聲稱 RSA 和 HTTPS / TLS 是其中的內容。

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