我正在开发一个客户端服务器应用程序,其中数据通过服务器在两个客户端之间传输。
数据应该加密,我想使用AES。我的想法是使用PBKDF2从客户端的密码中获取 AES 密钥。
在这种情况下,客户端将对数据进行编码,服务器将对其进行解码,使用第二个客户端的密码对其进行重新编码并将其发送给第二个客户端。
您认为这是实现这一目标的最佳方式吗?
有没有办法让第一个客户端编码和第二个客户端在没有服务器干扰的情况下解码?
如何加密 AES 密钥并将其从一个客户端传输到另一个客户端?
您如何看待以下解决方案?
- 客户端和服务器使用 Diffie-Hellman 创建一个私有 AES 密钥(此密钥特定于每个客户端)。
- 传输客户端创建会话 AES 密钥并使用私有 AES 密钥对其进行编码。
- 服务器解密会话密钥并为会话中的每个客户端重新加密(使用每个客户端的私钥)。
- 传输客户端使用会话 AES 密钥加密数据并将其发送到服务器。
- 服务器将数据发送到所有接收客户端,无需任何处理。