Encryption Diffie Hellman代替SSL?

Encryption Diffie Hellman代替SSL?,encryption,ssl,diffie-hellman,Encryption,Ssl,Diffie Hellman,Diffie-Hellman密钥交换算法能否代替SSL用于加密网页上的客户机-服务器通信?如果可以,缺点是什么(即,为什么标准使用需要证书颁发机构的SSL)?据我所知,Diffie Hellman可用于秘密建立共享密钥,然后可用于加密任何进一步的通信。实际上,Diffie Hellman是SSL的一部分。 但一部分并不能取代其他部分 来自SSL的Diffie Helman用于: 这是一个困难的赫尔曼钥匙交换 哪个是服务器的证书 包含Diffie Hellman公共 由证书签名的参数 管理局(CA

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

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

来自SSL的Diffie Helman用于:

这是一个困难的赫尔曼钥匙交换 哪个是服务器的证书 包含Diffie Hellman公共 由证书签名的参数 管理局(CA)。就是 公钥证书包含 Diffie-Hellman公钥参数。 客户提供其Diffie Hellman 公钥参数在 证书,如果是客户端身份验证 是必需的,或在密钥交换中 消息此方法会导致 修复了两个对等方之间的密钥, 基于Diffie Hellman 使用固定公共资源进行计算 钥匙


这两个事实上并不具有可比性。DH是一种密钥交换算法,不多也不少。SSL试图确定您连接的服务器实际上就是它所说的服务器。要做到这一点,它使用一个可以追溯到您(应该能够)信任的人的证书

DH本身只能阻止其他人读取传输的数据。SSL的目的远不止于此(但可以使用DH阻止其他人读取流)

只是一个明显的例子,使用DH(本身)一个中间人攻击是相当简单的。如果我可以让你连接到我的服务器,而不是你想要连接的服务器,我可以使用DH与你建立一个“安全”会话。然后,我连接到您最初打算连接的服务器。我从你那里得到的每一个数据包,我解密,用我用来连接到那个服务器的密钥重新加密,然后发送到那个服务器。我对它的所有响应包都做了同样的处理。对您来说,一切看起来都像是直接来自原始服务器,您所购买的(例如)与正常情况一样正常。唯一改变的是我还存储了你的信用卡号,当你第二天试图给汽车加油时,费用被拒绝了,因为在此期间我已经花光了你所有的信用卡

SSL中的身份验证至少旨在防止这种情况发生。如果您的浏览器尝试连接到(例如)www.amazon.com,如果我的SSL证书没有指定它是颁发给www.amazon.com的,那么它应该给您一个警告——CA不应该向amazon以外的任何人颁发这样的证书


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

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

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


如果缺少证书使您无法在真正需要的地方使用SSL,请从Diffie-Hellman密钥交换仅用于密钥交换获得免费证书。它不会给你身份验证(你正在和谁交谈),你需要证书和PKI


是的,你可以做加密,但是你不知道你在和谁说话,DH密钥交换本身不能做加密。它用于建立会话密钥,但不用于加密。因此,在这个层次上,问题被错误地陈述,或者显示出缺乏精确性或缺乏理解(我怀疑精确性是这次的问题)

问题是:

  • 你想和任何人一起加密数据吗
  • 你想确定你在和谁说话吗

如前所述,SSL使用DH密钥交换来建立会话密钥。但是,它还确保另一端的程序是您信任的人(直接或间接)。如果您不需要担心对方是否值得信任,您可以使用简单的DH密钥交换,然后发送加密数据,而不需要证书。但是,除非进行验证,否则您将无法确定您正在与谁交谈,SSL等使用的证书有助于验证。

因此,我想没有办法避免使用PKI。我只是好奇地想知道是否有一种方法可以让两方(不管算法开销如何)在不使用第三方的情况下可靠地建立加密链接。理论上没有。因为没有任何第三方的使用,你无法确定你正在与你想要的目标建立加密链接。当然,有。例如,如果双方在密钥签名过程中交换公钥,那么他们不需要任何第三方来建立安全连接。更一般地说,安全通道不能完全在频带内建立。无论是双方之间带外交换密钥材料,还是带外接收第三方密钥,您都需要额外的帮助来建立安全链接。+1-整洁链接,我一直在为我的个人家庭服务器创建自己的证书。。。不幸的是,我不知道有免费证书使用内置在浏览器中的CA,所以访问者不必添加例外。我不认为IE支持这些证书。我最近没有看过,所以我不确定是否仍然是这样。事实上,在startcom.org上快速查看一下,就会发现他们确实支持我