Bio*_*cle 6 sockets encryption
所以我正在读这篇文章,并对Remus的回答感到惊讶.因为我认为这恰恰相反.
所以,至于我的问题.为什么使用diffie-hellman密钥交换的程序要使用共享密钥来加密/解密消息(通常)比SSL更不安全?
编辑:我知道SSL使用数字证书,但因为我的程序只与自身(客户端 - 服务器)进行通信,无论如何,对吧?
Remus 帖子主要警告不要创建自己的加密协议(因为您可能会犯一些致命的错误),而应使用现有的解决方案 SSL。
您可以仅使用 Diffie-Hellman 作为非对称加密和一些对称加密来编写安全网络协议。我最喜欢的安全网络协议就是这样工作的。使用 DH 的程序本身并不比 SSL 弱,但由非加密专家设计协议的程序很可能会弱。
但如果你设计自己的协议,你将需要学习一些加密技术才能正确完成它。您可能还需要专家对您的设计和代码进行审查,以防您在某个地方犯了错误。但获得这样的评价并不容易,除非你的产品足够有名或者你付钱给他们。
SSL 握手主要做两件事:
它使用证书来验证服务器是否有权代表您要与之通信的域。
在最常见的情况下,证书颁发机构保证某个密钥对的所有者是某个域的合法所有者(这采用证书的形式)。这部分的安全性取决于最弱的公认 CA。
如果您只需要与单个服务器通信,则可以对服务器的指纹进行硬编码,从而删除整个 CA 和 PKI 部分。此方法类似于通常处理 SSH 指纹的方式。
它生成一个会话密钥
强大的 SSL 套件使用证书来验证服务器和 DH 来生成会话密钥。较弱的套件使用两者的证书。
基于 DH 的简单协议可能会忘记对服务器进行身份验证,从而允许主动攻击者对连接进行中间人攻击。您需要以某种方式对服务器进行身份验证,即使只是通过在客户端中对服务器的公钥进行硬编码也是如此。
| 归档时间: |
|
| 查看次数: |
801 次 |
| 最近记录: |