SSL对MITM攻击的安全性如何? [重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSL对MITM攻击的安全性如何? [重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

所以我(可能不正确)理解SSL握手的工作方式是:

  1. 客户端向服务器发送(可能是未加密的,因为客户端没有加密信息)请求到服务器发送回客户端的公钥(MITM易于访问)。
  2. 客户端生成一个永远不会与任何人共享的随机密码,并使用公钥(只能用于加密数据)对其进行加密,然后将此加密密码发送到服务器。
  3. 服务器用其私钥解密加密密码(只有它知道,并且只能用于解密数据),从而获得客户端的密码,而不让MITM得到它,因为他没有私钥。
  4. 不知何故,这用于在客户端和服务器之间传输敏感信息(我不确定使用的是随机密码。所有敏感信息都不能用公钥加密吗?)。

我想知道为什么MITM无法解密敏感信息:

  1. 将所有流量从客户端重定向到MITM拥有的站点。这包括客户端对公钥的请求,该公钥将被MITM的服务器公钥替换。此外,回复应伪装成来自真实服务器的回复。
  2. MITM的服务器将使用其私钥解密此流量,从而泄露敏感信息。然后,可以使用真实服务器的公钥对此敏感信息进行加密,并将其发送到真实服务器,以便客户端获取所需的任何信息。
答案

至于MitM伪造公钥 - 这就是使用证书的原因。证书将公钥与其所有者绑定,如果网站是其域名。因此,如果您输入ab.com,您将从服务器获得带有ab.com证书的公钥(如果没有,浏览器会抱怨)。如果中间有一个人,他们必须拥有为ab.com颁发的证书,这不是(轻松)可能的,但是看到CA黑客,攻击者利用证书颁发机构漏洞发布欺诈性证书。

SSL握手也比这复杂得多,其中一部分称为密钥交换,并且是基于先前商定的算法提出用于流量加密的会话密钥。请注意,有多种算法可用于提供会话密钥(在客户端上生成它并使用公钥加密发送它是一种非常简单的方法),以及使用此类密钥进行加密的多种算法。

在SSL / TLS会话期间使用的“密码套件”实际上是为不同目的选择的算法列表。

另一答案

客户端向服务器发送(可能是未加密的,因为客户端没有加密信息)请求到服务器发送回客户端的公钥(MITM易于访问)。

否。服务器将签名证书发送回客户端,该证书包含其公钥,签名者和使用服务器私钥的数字签名。

客户端生成一个永远不会与任何人共享的随机密码,并使用公钥(只能用于加密数据)对其进行加密,然后将此加密密码发送到服务器。服务器用其私钥解密加密密码(只有它知道,并且只能用于解密数据),从而获得客户端的密码,而不让MITM得到它,因为他没有私钥。

只在一些密码套房。不是全部。

不知何故,这用于在客户端和服务器之间传输敏感信息(我不确定随机密码用于什么。

除了某些密码套件外,它根本不被使用。无论如何,对称会话密钥由两个对等体协商并且根本不传输。

难道所有敏感信息都不能用公钥加密吗?)。

不。您还必须建立身份,即进行身份验证。

我想知道为什么MITM无法解密敏感信息:

因为MITM无法在证书上伪造数字签名。否则,你正和任何人进行秘密谈话。

将所有流量从客户端重定向到MITM拥有的站点。这包括客户端对公钥的请求,该公钥将被MITM的服务器公钥替换。此外,回复应伪装成来自真实服务器的回复。

不可能,见上文。

MITM的服务器将使用其私钥解密此流量,从而泄露敏感信息。然后,可以使用真实服务器的公钥对此敏感信息进行加密,并将其发送到真实服务器,以便客户端获取所需的任何信息。

不可能,见上文。

您对TLS和PKI的理解存在严重缺陷。

以上是关于SSL对MITM攻击的安全性如何? [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Android安全之Https中间人攻击漏洞

安全牛学习笔记中间人攻击ARP MITM中间人攻击Pass the Hash

ettercap 实施中间人攻击

在 Safari 中保护 Web 服务器免受 MITM 攻击

针对 MITM 验证 SSL 证书

如何防止对 API Key 和 API Secret 的 MITM 攻击?