security - RSA 加密 AES key 的强度

标签 security encryption cryptography rsa aes

我目前正在开发一个在客户端和服务器之间传输数据的系统,并且想知道我计划使用的加密强度是多少。

我的想法是拥有一个私钥/公钥 RSA key 对并将公钥分发给每个客户端(将私钥单独留在服务器上)。然后,每个客户端将生成自己的 AES key 并 RSA 对其进行加密。然后,他们将对他们的数据进行 AES 加密,并将加密的数据和加密的 AES key 发送到服务器。然后,服务器将使用私钥解密 AES key ,然后使用 AES key 解密数据。

我是否缺少任何安全漏洞和/或有更好的方法来做到这一点?

最佳答案

这几乎就是 SSL/TLS有效(查看握手部分)。唯一让它更强大的是为每个连接生成 AES key ,而不是每次都使用相同的 key 。您可能还希望对来回发送的消息进行数字签名,以避免中间人攻击和其他欺骗攻击。

一般来说,创建一个好的密码系统是非常困难的。如果可能,您应该始终支持现有的(受信任的)应用程序来提供帮助。在这种情况下,您可能会考虑使用 HTTPS 发送消息,而不是创建自己的系统。

关于security - RSA 加密 AES key 的强度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1664255/

相关文章:

Android AES加密/解密——输入流&字节数组输出流

java - 黑客可以通过从客户端的信任库中提取证书来创建 MITM 攻击吗?

encryption - 如何在 C# 中从内存中删除加密 key ?

java - Java 8 更新后的 RC4 相关问题

Java : how to create java. security.Key 来自 .asc 文件?

python - 使用 node.js crypto aes256 加密并使用 python2.7 PyCrypto 解密

javascript - 加密安全数组随机播放

asp.net - 为什么我收到此错误 : System. Security.SecurityException:请求类型 'System.Web.AspNetHostingPermission, ...' 的权限失败

c# - 为 ASP.NET 网站构建安全 token 服务 (STS) 应用程序

mysql - Symfony 3 中带有 Guard 身份验证系统的 LDAP