Security SSL和中间人误解
我已经阅读了大量与这个问题相关的文档,但是我仍然不能把所有的部分都整理好,所以我想问几个问题Security SSL和中间人误解,security,ssl,man-in-the-middle,Security,Ssl,Man In The Middle,我已经阅读了大量与这个问题相关的文档,但是我仍然不能把所有的部分都整理好,所以我想问几个问题 首先,我将简要描述我所理解的身份验证过程,因为在这方面我可能会弄错:客户机启动连接,服务器使用公钥、一些元数据和可信机构的数字签名的组合来响应该连接。然后,客户机决定是否信任服务器,用公钥加密一些随机会话密钥并将其发回。此会话密钥只能使用存储在服务器上的私钥解密。服务器执行此操作,然后HTTPS会话开始 所以,如果我上面说的是对的,问题是在这种情况下,中间人攻击是如何发生的?我的意思是,即使有人用公钥截
除了关于会话密钥的部分外,您所说的一切都是正确的。CAs的目的是击败中间人攻击——其他一切都由SSL本身完成。客户端身份验证是用户名和密码方案的替代方案
只有当SSL的前提条件之一被打破时,才有可能对SSL进行中间人攻击,下面是一些示例
- 服务器密钥已被盗-意味着攻击者可能看起来就是服务器,而客户端无法知道
- 客户机信任不可信的CA(或其根密钥被盗的CA)-任何持有可信CA密钥的人都可以生成一个假装是服务器的证书,客户机将信任它。现在浏览器中已有大量CA,这可能是一个真正的问题。这意味着服务器证书似乎会更改为另一个有效证书,这是大多数客户端对您隐藏的内容
- 客户端不需要根据其受信任的CA列表正确验证证书-任何人都可以创建CA。如果不进行验证,“Ben的汽车和证书”将与Verisign一样有效
- 客户端受到攻击,并且在其受信任的根权限中注入了一个伪造的CA-允许攻击者生成他喜欢的任何证书,客户端将信任它。恶意软件倾向于这样做,例如将你重定向到伪造的银行网站