首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复SSL算法以获得更高的安全性

如何修复SSL算法以获得更高的安全性
EN

Security用户
提问于 2014-10-02 05:28:41
回答 3查看 727关注 0票数 4

SSL使用如下非对称加密:

  1. 服务器发送其非对称公钥的副本。
  2. 浏览器创建对称会话密钥,并使用服务器的非对称公钥对其进行加密。
  3. 服务器对非对称公钥及其非对称私钥进行解密,以获得对称会话密钥。
  4. 服务器和浏览器现在使用对称会话密钥加密和解密所有传输的数据。

但是,如果有人在“步骤1”中倾听这种交流,并执行以下操作,会发生什么情况:

  1. 在步骤1中,聆听服务器和客户端之间的通信。
  2. 当服务器发送其非对称公钥的副本时,黑客将其更改为自己的公钥(该公钥也有私钥)并将其发送给客户端。
  3. 客户端创建会话密钥并使用黑客的公钥对其进行加密。
  4. 黑客监听该行并获取会话密钥并使用其私钥对其进行解密。

所以他在这里得到了会话密钥。然后..。

  1. 黑客用最后一个公钥(服务器发送的)加密会话密钥(解密)。
  2. 黑客现在有会话密钥了..。

我在我的项目中使用了这个算法,用于服务器和客户端之间的通信。他们之间没有任何认证。我在公钥中添加一些字符并对它们进行客户端检查并使其有效是对的吗?

我们怎么才能修好它?有什么想法吗?

EN

回答 3

Security用户

回答已采纳

发布于 2014-10-02 05:45:55

TLS没有被破坏,只有你对TLS的理解;)

的回答中解释了完整的TLS,但要回答具体的问题:

  • 服务器不会简单地向客户端发送公钥。服务器向客户端发送证书(链)。
  • 客户端使用其存储区中的一个受信任证书验证服务器证书。

因此,要像您描述的那样使用MitM (Man中间)-Attack,攻击者必须替换服务器证书(这也是可能的,但要困难得多)。

证书是由CA (证书颁发机构)签名的公钥。因此,客户端可以通过验证证书上的签名来检查服务器证书。

所有证书都有一个由自签名证书组成的证书链。此自签名证书称为根证书,已包含在浏览器中。

您可以通过颁发根证书创建自己的CA,并使用此证书对自己的证书进行签名。然后,您只需将创建的根证书导入浏览器证书存储区。这仅适用于小用户群或对浏览器进行更新的公司。

票数 8
EN

Security用户

发布于 2014-10-02 05:52:24

您缺少的是身份验证,即确认您收到的公钥确实是由服务器发送的。

例如,在https中,使用了证书颁发机构系统。某些组织被选为我们可以信任的组织。这些组织生成一个公钥,然后将其包含在浏览器中。因此,例如,在下载firefox时,会包含一组可信的CA证书。然后,当通过https连接到站点时,浏览器检查服务器提供的证书是否由受信任的CA证书之一签名。

CA则负责接收签署证书的请求,并验证证书是否由该站点的真正所有者发送。

在个人项目中,这意味着您需要在某个地方包含服务器的公钥,以便根据收到的证书进行验证。

票数 2
EN

Security用户

发布于 2014-10-02 05:39:42

此攻击不起作用,因为客户端验证服务器的证书。如果中间人(在您的场景中是黑客)用自己的公钥替换服务器的公钥,那么证书就不会生效,客户端就知道出了什么问题,并中止了事务。客户端不会使用错误的公钥加密会话密钥,因此,这不会构成威胁。

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

https://security.stackexchange.com/questions/68786

复制
相关文章

相似问题

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