有一朋友这样问到“dh是密钥协商交换用的,为什么只有在服务器上有dh.pem文件,而客户端里没有,我就不明白了,客户端与服务器都有rsa公私钥了,可以传输对称密钥了,为什么还需要dh算出对称密钥呢?”
创新互联专注于兴隆网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供兴隆营销型网站建设,兴隆网站制作、兴隆网页设计、兴隆网站官网定制、微信小程序开发服务,打造兴隆网络公司原创品牌,更为您提供兴隆网站排名全网营销落地服务。我们先一下,Open×××的man帮助是如何说dh选项的。
--dh file
File containing Diffie Hellman parameters in .pem format (required for --tls-server only).
Set file=none to disable Diffie Hellman key exchange (and use ECDH only). Note that this requires peers to be using an SSL library that supports ECDH TLS cipher suites(e.g. OpenSSL 1.0.1+, or mbed TLS 2.0+).
Use openssl dhparam -out dh3048.pem 2048 to generate 2048-bit DH parameters. Diffie Hellman parameters may be considered public.
1、使用阶段不同:DH用于TLS握手期间,RSA是用于数据通信阶段。
2、如果没有这个选项,启动Open×××服务器会出错 Options error: You must define DH file (--dh)
那么什么是Diffie-Hellman参数文件?
迪菲·赫尔曼密钥交换(Diffie–Hellman key exchange,简称「D–H」) 是一种安全协议。它可以让双方在完全没有对方任何预先信息的条件下通过不安全信道创建起一个密钥。这个密钥可以在后续的通讯中作为对称密钥来加密通讯内容。这个DH参数不是安全敏感的,所以只要在Open×××服务器有一份就可以了,而且即使被第三方拿到了,也无所谓。
如果想深入一些,可以这样来理解:
1、RSA和DH都基于非对称算法。
2、RSA: 常用的示例是Alice向Bob发送消息,并使用Bob的公钥加密消息。向Bob发送消息。鲍勃用他的私钥解密。验证签名以确保Alice发送签名。该消息将成为对称加密密钥。这是用于保护连接的内容。
3、DH Diffie Hellman交换依赖于生成秘密值的两个单独实体。通过一些数学算法,他们都能够产生共同的密钥值。这是一个对称密钥。
4、使用RSA,可以进行加密和签名的密钥对。使用DH,只执行加密,没有签名机制。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。