我尝试设计加密文件(音频)并将其存储在光盘中的系统,以便只有我的客户端(applet)解密并播放它们。所以我决定使用AES密码进行批量加密并将密钥存储在数据库中。我的问题是安全地传输密钥。
在现代系统中,使用SSL传输未以密码方式存储的密钥和数据。在SSL/TLS设计中,会话密钥以两种方式生成;
第一种方式客户端创建密钥并加密服务器的公钥(证书)。 第二个选项更安全,在检测到heartbleed安全漏洞后变得更加重要。在此选项中,密钥由客户端和服务器创建,每个会话都有(EC)DHE密钥协议。
就我的情况而言,还有两种选择。
第一个案例;
第二种情况;
哪种选择适合我的情况?每种情况的利弊是什么?
感谢您的回答。
答案 0 :(得分:0)
由于密钥交换未经过身份验证,因此这两种解决方案都容易受到攻击者的攻击,处于中间位置。通过使用X.509 PKI在SSL / TLS中解决了此问题。例如,也可以通过让客户事先了解服务器的公钥来解决这个问题。 话虽如此,在你的两个选项之间,使用(EC)DHE,因为从预先计算的DH组(也称为DH参数)生成新的DH密钥很快,而生成新的RSA密钥非常慢。