我有一个轻型http服务器(嵌入式软件解决方案)。这个http服务器调用openssl函数来处理https连接。
我想让https服务器优先考虑一些密码。因为根据以下link,当DH密码被优先处理时,https连接更安全:
而不是使用RSA方法来交换会话密钥 应该使用Elliptic Curve Diffie-Hellman(ECDHE)密钥交换。 请注意,您仍然可以使用RSA公钥密码系统作为 加密算法,不作为密钥交换算法。 ECDHE是 比普通的DH(Diffie-Hellman)快得多,但都创造了会话 只有SSL连接中涉及的实体才能访问的密钥。 因为会话密钥没有链接到服务器的密钥对,所以 仅服务器的私钥不能用于解密任何SSL会话。
要启用Perfect Forward Secrecy,您必须执行以下操作:
1-重新排序密码套件以放置ECDHE(椭圆曲线 列表顶部的Diffie-Hellman)套件,其次是DHE (Diffie-Hellman)套房。
2-配置服务器以启用其他非DH密钥交换密码 来自SSL客户端提供的密码套件列表中的套件。
如何更改openssl服务器上的密码顺序以使DH密码首先出现?
答案 0 :(得分:2)
在OpenSSL文档中,此处的相关函数调用是SSL_set_cipher_list
这里使用的OpenSSL推荐字符串是HIGH:!aNULL:!kRSA:!PSK:!SRP:!MD5:!RC4
,因为!kRSA
禁止使用RSA作为密钥交换,并强制使用短暂的DH,它提供了你在你描述的完美前向保密。问题
作为免责声明,上面的密码字符串可能不是今天推荐的字符串,这正是OpenSSL文档中推荐的。