Diffie-Hellman取代SSL?

kmn*_*nan 15 encryption ssl diffie-hellman

是否可以使用Diffie-Hellman密钥交换算法来加密网页上的客户端 - 服务器通信而不是SSL?如果可以,有哪些缺点(即为什么标准使用需要证书颁发机构的SSL)?我的理解是,Diffie-Hellman可用于秘密建立共享密钥,然后可用于加密任何进一步的通信.

Jer*_*fin 23

这两者并不具有可比性.DH是一种密钥交换算法,仅此而已.SSL会尝试确定您要连接的服务器确实是它所说的那个.为此,它使用的证书可以追溯到您(应该能够)信任的人.

DH本身只能阻止其他人阅读传输的数据.SSL旨在建立远远不止于此(但可以使用DH来阻止其他人阅读流).

仅举一个明显的例子,使用DH(单独)中间攻击的人非常简单.如果我可以让您连接到我的服务器而不是您想要的服务器,我可以使用DH与您建立"安全"会话.然后我连接到您原本打算使用的服务器.我从你那里得到的每一个数据包,我解密,用我用来连接到该服务器的密钥重新加密,然后发送到该服务器.我对其所有响应数据包都这样做.对你而言,一切看起来都直接来自原始服务器,你所做的购买(例如)就像正常一样.唯一改变的是我还会存储您的信用卡号码,当您第二天尝试用汽车装满燃油时,费用会被拒收,因为在此期间我已经花了您所有的信用.

SSL中的身份验证至少旨在防止这种情况发生.如果您的浏览器试图连接到(例如)www.amazon.com,如果我的SSL证书没有指明它是发布到www.amazon.com的话,它会给你一个警告 - 并且CA不应该发出这样的证书给亚马逊以外的任何人.

编辑:重读这一点,我应该补充一点:DH本身并不能保证我上面所说的大部分内容.DH本身只是交换密钥的一种方式(或许,它可以被称为"双方创建相同密钥所必需的交换信息,而不用明确地交换密钥本身").在双方拥有密钥之后,他们可以(并且可能会)使用它来加密/解密数据 - 但是加密实际上与DH本身是分开的.


ale*_*xkr 9

实际上,Diffie-Hellman是SSL的一部分.但有一部分并不能取代其他部分.

这里 SSL Diffie-Helman用于:

这是Diffie-Hellman密钥交换,其中服务器的证书包含由证书颁发机构(CA)签名的Diffie-Hellman公共参数.也就是说,公钥证书包含Diffie-Hellman公钥参数.客户端在证书中,如果需要客户端身份验证,或在密钥交换消息中提供其Diffie-Hellman公钥参数.该方法基于使用固定公钥的Diffie-Hellman计算在两个对等体之间产生固定的密钥.

  • 更一般地,安全信道不能完全在带内建立.无论是双方之间的密钥材料的带外交换,还是带外第三方密钥的接收,您都需要额外的帮助来建立安全链接. (2认同)