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本身是分开的.
实际上,Diffie-Hellman是SSL的一部分.但有一部分并不能取代其他部分.
从这里 SSL Diffie-Helman用于:
这是Diffie-Hellman密钥交换,其中服务器的证书包含由证书颁发机构(CA)签名的Diffie-Hellman公共参数.也就是说,公钥证书包含Diffie-Hellman公钥参数.客户端在证书中,如果需要客户端身份验证,或在密钥交换消息中提供其Diffie-Hellman公钥参数.该方法基于使用固定公钥的Diffie-Hellman计算在两个对等体之间产生固定的密钥.
| 归档时间: |
|
| 查看次数: |
10956 次 |
| 最近记录: |