gpt4 book ai didi

sockets - SSL 和 Diffie-Hellman

转载 作者:行者123 更新时间:2023-12-04 15:00:30 26 4
gpt4 key购买 nike

所以我在阅读 this并对莱姆斯的回答感到惊讶。因为我认为情况正好相反。

所以,至于我的问题。为什么使用 diffie-hellman key 交换来确定共享 key 来加密/解密消息的程序(通常)不如 SSL 安全?

编辑:我知道 SSL 使用数字证书,但由于我的程序只与自身(客户端-服务器)通信,这并不重要,对吧?

最佳答案

Remus 的帖子主要警告不要创建自己的加密协议(protocol)(因为您可能会犯一些致命的错误),而是使用现有的解决方案 SSL。

您可以仅使用 Diffie-Hellman 作为非对称加密以及一些对称加密来编写安全网络协议(protocol)。我最喜欢的安全网络协议(protocol)就是这样工作的。使用 DH 的程序本身并不弱于 SSL,但最有可能由非加密专家设计协议(protocol)的程序是。

但是,如果您设计自己的协议(protocol),则需要学习一些密码才能正确完成。您可能还需要专家对您的设计和代码进行审查,以防您在某个地方犯了错误。但是,除非您的产品足够有名或您付钱给他们,否则获得该评论并不容易。

SSL 握手主要做两件事情:

  • 它使用证书来验证服务器是否有权代表您要与之通信的域。

    在最常见的情况下,证书颁发机构保证某个 key 对的所有者是某个域的合法所有者(这采用证书的形式)。这部分仅与公认的最弱 CA 一样安全。

    如果您只需要与单个服务器进行通信,您可以硬编码服务器的指纹,从而删除整个 CA 和 PKI 部分。这种方法类似于您通常处理 SSH 指纹的方式。
  • 它生成一个 session key

  • 强 SSL 套件使用证书来验证服务器和 DH 来生成 session key 。较弱的套件对两者都使用证书。

    简单的基于 DH 的协议(protocol)可能会忘记对服务器进行身份验证,从而允许主动攻击者对连接进行中间人攻击。您需要以某种方式对服务器进行身份验证,即使它只是通过在客户端中硬编码服务器的公钥。

    关于sockets - SSL 和 Diffie-Hellman,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16427894/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com