簡體   English   中英

如何使用 RSA 加密對 http 響應進行加密

[英]How to encrypt http response using RSA encryption

我正在開發一個 Web 服務,我使用 RSA 加密來加密請求-響應。 我已經與客戶端共享了公鑰,並且能夠使用我的私鑰解密傳入的請求。 現在我的問題是如何加密要返回給客戶端的響應。 為此,我有兩個選擇:

(1) 使用我的私鑰對響應進行加密,客戶端將使用已共享的公鑰對其進行解密。

(2) 要求客戶提供他們的公鑰並用該公鑰加密響應。

請建議使用哪種策略來加密響應?

你不能用私鑰加密,因為公鑰應該是公開的。 使用私鑰加密本質上是不安全的,編程 API 通常不允許使用它。

所以(2)確實是唯一的選擇:讓客戶公鑰並讓他們用私鑰解密。 然而,這並不是故事的全部:

  1. 公鑰需要被信任,你可能需要設置一個完整的 PKI 來信任這些密鑰;
  2. 使用 RSA 無法輕松加密較大的消息,因此您可能需要混合加密(加密隨機 AES 密鑰並使用該密鑰加密消息);
  3. padding oracle 攻擊是非常真實的,並且確實適用於 RSA,因此僅執行 RSA 是非常危險的。

這就是為什么通常建議依賴 TLS(僅)。 TLS 並不總是安全的,但它幾乎總是比自制方案更安全。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM