Mer*_*rik 2 security encryption ssl https
我正在尝试了解 SSL 的工作原理。我的理解是,在您第一次到达服务器后(例如https://www.google.com),服务器会向您发送其公钥。然后,您的浏览器会检查以确保该公钥有效(未过期等)且合法;后者是通过与根 CA 进行检查来完成的,以确保公钥的签名与 CA 记录的内容相匹配。如果全部检查通过,那么您的浏览器将使用该公钥加密所有内容,并且只有服务器可以解密它(因为只有服务器拥有私钥)。
现在,考虑一个精心设计的中间人攻击:每次我的浏览器尝试检查 CA 时,中间服务器都会将我的请求重新路由到另一台服务器,而不是 CA。该服务器验证任何签名!这样,即使我得到了错误的证书,我的浏览器也不会知道。例如,这意味着我的 ISP 可以向我发送虚假证书并窃听我的连接。
防止这种情况的安全措施(如果我错了,请纠正我)是,为了与 CA 检查证书,浏览器会与 CA 建立 SSL 连接,但这一次不需要验证它获得的公钥来自 CA;它知道所有 CA 的正确公钥。
但我怎么知道有人没有在我的计算机上安装假 CA 的假证书呢?我如何知道每次升级浏览器时,是否都会安装恶意软件?
这不是证书验证的工作原理。
这是一个离线过程。未联系 CA。相反,服务器证书包含 CA 的签名。此签名使用浏览器(或操作系统)内置的 CA 证书进行验证。
您可以在浏览器设置中检查受信任的根证书列表。
我如何知道是否有人在我的计算机上安装了假 CA 的假证书?
嗯,这将是一个问题。事实上,这确实发生了。一些公司经常在向员工颁发的计算机上安装假根证书,以便他们拦截 HTTPS 连接。一些病毒扫描程序和防火墙产品也以这种方式工作。
如果您担心这一点,则需要锁定您的系统。
我如何知道每次升级浏览器时,是否都会安装恶意软件?
一样。您从 Mozilla、Microsoft、Apple、Google 或 Opera 下载软件,并且您必须信任它们。至少确保您从官方渠道获取该软件(而不是通过街头找到的 USB 设备)。
我的理解是,在您第一次到达服务器后(例如https://www.google.com),服务器会向您发送其公钥。
不会。它会向您发送其证书,并且每次都会这样做(忽略 SSL 会话恢复)。
然后,您的浏览器会检查以确保该公钥有效(未过期等)且合法;
不。它对证书执行此操作。单独的公钥没有有效期、数字签名等需要检查。
后者是通过与根 CA 进行检查来完成的,以确保公钥的签名与 CA 记录的内容相匹配。
否。这是通过检查证书的签署者(颁发者)是否已被本地安装的 CA 证书集信任来完成的。与颁发 CA 没有联系。
如果全部检查通过,那么您的浏览器将使用该公钥加密所有内容,并且只有服务器可以解密它(因为只有服务器拥有私钥)。
不。这是错误信息,经常重复,而且总是错误的。SSL 使用通过密钥协商协议协商的对称会话密钥。如果你说的是真的,SSL只能在一个方向上安全地通信,而且速度会像潮湿的一周一样慢。
现在,考虑一个精心设计的中间人攻击:每次我的浏览器尝试检查 CA 时,中间服务器都会将我的请求重新路由到另一台服务器,而不是 CA。该服务器验证任何签名!这样,即使我得到了错误的证书,我的浏览器也不会知道。例如,这意味着我的 ISP 可以向我发送虚假证书并窃听我的连接。
由于与CA没有通信,因此不存在此类攻击。
防止这种情况的安全措施(如果我错了,请纠正我)是,为了与 CA 检查证书,浏览器会与 CA 建立 SSL 连接,但这一次不需要验证它获得的公钥来自 CA;它知道所有 CA 的正确公钥。
不需要。不需要任何保护措施。往上看。
但我怎么知道有人没有在我的计算机上安装假 CA 的假证书呢?我如何知道每次升级浏览器时,是否都会安装恶意软件?
你不知道。
归档时间: |
|
查看次数: |
1543 次 |
最近记录: |