SSL如何从MITM攻击中获得安全保护?
这个问题在这里已经有了答案:
至于通过MitM伪造公钥 - 这就是为什么使用证书的原因。 证书将公共密钥与其所有者联系在一起,如果是网站,则是其域名。 因此,如果您输入ab.com,您将从服务器获得一个带有ab.com证书的公钥(如果没有,浏览器将会投诉)。 如果中间有一个人,他们必须拥有为ab.com颁发的证书,但这并不(很容易),但请参阅CA黑客攻击者利用证书颁发机构漏洞发布欺诈证书的方法。
此外,SSL握手比这更复杂,其中一部分被称为密钥交换,并且将基于先前同意的算法提出会话密钥用于流量加密。 请注意,提供会话密钥有多种算法(在客户端生成它并使用公钥加密发送它是一种非常幼稚的方法),以及使用这些密钥进行加密的多种算法。
在SSL / TLS会话期间使用的“密码套件”实际上是为不同目的而选择的算法列表。
客户端向服务器发送一个(可能未加密的,因为客户端没有要加密的信息)请求服务器发送回客户端的公钥(该信息很容易被MITM访问)。
否。服务器将签名证书发送回客户端,客户端包含其公钥和签名者,以及使用服务器私钥的数字签名。
客户端生成一个永远不会与任何人共享的随机密码,并使用公钥(只能用于加密数据)对其进行加密,然后将此加密密码发送到服务器。 服务器使用其私钥解密加密的密码(只有它知道,并且只能用于解密数据),从而得到客户的密码,而不让MITM得到密码,因为他没有私钥。
只在一些密码套件中。 并非全部。
不知何故,这是用来传输客户端和服务器之间的敏感信息(我不知道什么是随机密码用于。
除了某些密码套件以外,它完全不用。 无论如何,对称协议密钥由双方协商并且根本不会传输。
难道所有敏感信息都不能用公钥加密吗?)。
不需要。你还必须建立身份认证。
我想知道为什么MITM不能解密敏感信息:
因为MITM无法伪造证书上的数字签名。 否则,你正在与任何人进行秘密对话。
将客户端的所有流量重定向到MITM拥有的站点。 这包括客户对公钥的请求,公钥将被MITM的服务器公钥替换。 此外,应答应该伪装成真实服务器的回复。
不可能,见上文。
MITM的服务器将使用其私钥解密该流量,从而揭示敏感信息。 然后可以使用真实服务器的公钥对敏感信息进行加密,然后将其发送到真实服务器,以便客户端获得所需的任何信息。
不可能,见上文。
您对TLS和PKI的理解存在严重缺陷。
链接地址: http://www.djcxy.com/p/21731.html