首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Diffie-Hellman代替SSL?

Diffie-Hellman代替SSL?
EN

Stack Overflow用户
提问于 2009-10-28 03:13:57
回答 5查看 11.4K关注 0票数 15

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

EN

回答 5

Stack Overflow用户

发布于 2009-10-28 03:28:04

这两者并不是真正的可比性。DH是一个密钥交换算法,不多也不少。SSL试图确定您所连接的服务器确实是它所说的那个服务器。为此,它使用了一个可以追溯到您(应该能够)信任的人的证书。

DH本身只会阻止其他人读取传输的数据。SSL旨在建立比这多得多的内容(但可以使用DH来防止其他人读取流)。

举一个明显的例子,使用DH (本身)一个中间人攻击是相当简单的。如果我可以让您连接到我的服务器,而不是您打算连接的服务器,我就可以使用DH与您建立一个“安全”会话。然后,我连接到您最初想要连接的服务器。我从你那里得到的每一个包,我都会解密,用我用来连接到那个服务器的密钥重新加密,然后发送到那个服务器。我对它的所有响应包也是这样做的。对你来说,一切看起来都像是直接来自原始服务器,你购买的东西(例如)就像平常一样工作。唯一不同的是,我还存储了你的信用卡号码,当你第二天试着给你的车加满油时,费用就会下降,因为在此期间,我花光了你所有的信用。

SSL中的身份验证至少是为了防止这种情况发生。如果您的浏览器试图连接(例如) www.amazon.com,如果我的SSL证书没有指定它是颁发给www.amazon.com的,它应该给您一个警告-- CA不应该向除亚马逊之外的任何人颁发这样的证书。

DH本身甚至不能保证我上面所说的大部分内容。就其本身而言,DH只是一种交换密钥的方法(或者,也许它可以被表述为“交换双方创建相同密钥所需的信息,而不需要在明文中交换密钥本身”)。在双方获得密钥之后,它们可以(并且可能会)使用它来加密/解密数据--但是这种加密实际上与DH本身是分开的。

票数 23
EN

Stack Overflow用户

发布于 2009-10-28 03:18:16

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

来自here SSL的Diffie-Helman用于:

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

票数 9
EN

Stack Overflow用户

发布于 2009-10-28 03:28:15

您可以使用带有SSL的匿名Diffie-Hellman密钥协议。这在通道上提供了隐私,但没有身份验证。

当然,如果没有身份验证,你就不能拥有隐私,因为你的私人频道可能会连接到“中间人”。这就是为什么不鼓励匿名DH密码套件。

如果缺少证书使您无法在真正需要的地方使用SSL,可以从startcom.org.获得一个免费的证书。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1633046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档