gpt4 book ai didi

java - 临时 RSA key 与临时 DH key ?

转载 作者:太空宇宙 更新时间:2023-11-03 13:40:50 25 4
gpt4 key购买 nike

我尝试设计加密文件(音频)并将它们存储在光盘中的系统,以便只有我的客户(小程序)解密和播放它们。所以我决定使用 AES 密码进行批量加密并将 key 存储在数据库中。我的问题是安全地传输 key 。

在现代系统中,使用 SSL 传输未加密存储的 key 和数据。在 SSL/TLS设计中,session key的生成有两种方式;

客户端创建 key 并加密服务器公钥(证书)的第一种方式。第二种选择更安全,在检测到 heartbleed 后变得更重要安全漏洞。在此选项中, key 由客户端和服务器使用 (EC)DHE 创建。每次 session 的关键协议(protocol)。

对于我的情况,也有两种选择。

第一种情况;

  1. 客户端(小程序)可以创建临时 RSA key 对并将公钥发送到服务器。
  2. 服务器用客户端的公钥加密 key 并发送给客户端。
  3. 客户端(applet)用私钥解密 key 。
  4. 客户端(小程序)可以流式解密音频文件并播放。

第二种情况;

  1. 客户端(applet)和服务器使用 (EC)DHE 就 session key 达成一致。
  2. 服务器用 session key 对 key 进行对称加密并发送给客户端。
  3. 客户端(applet)使用 session key 解密 key 。
  4. 客户端(小程序)可以流畅地解密音频文件并播放。

哪个选项适合我的场景?每种情况的优缺点是什么?

感谢您的回答。

最佳答案

这两种解决方案都容易受到处于中间人位置的主动攻击者的攻击,因为 key 交换未经过身份验证。通过使用 X.509 PKI,此问题在 SSL/TLS 中得到解决。例如,它也可以通过让您的客户事先了解服务器的公钥来解决。也就是说,在您的两个选项之间,选择 (EC)DHE 一个,因为从预先计算的 DH 组(也称为 DH 参数)生成新的 DH key 很快,而生成新的 RSA key 非常慢。

关于java - 临时 RSA key 与临时 DH key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23877886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com