1

我想知道谷歌如何能够显示类似Cannot connect to the real mail.google.com或类似的消息?谷歌服务器的 IP 地址是简单地在 Chrome 中硬编码还是可以做类似的事情?这可以帮助确保客户没有访问网络钓鱼或诈骗网站。

此错误仅在尝试访问 Google 相关网站时显示,没有其他内容。

以下是 Google Chrome 在不提供代理凭据的情况下尝试连接到 Gmail 时显示的示例。

在此处输入图像描述

PS:我通常使用 C# & ASP.NET。我愿意接受建议。

编辑 :

根据 SilverlightFox 的回答,有没有办法“请求”固定我的网站证书?和/或如何将其添加到“STS 预加载列表”?

4

2 回答 2

1

正如@Ted Bigham在评论中提到的那样,这将通过证书固定来实现:-

检测和阻止多种 MITM 攻击的一种方法是“证书固定”,有时也称为“SSL 固定”。进行证书锁定的客户端在普通的 TLS 协议或 SSL 协议上增加了一个额外的步骤:在以标准方式获得服务器的证书后,客户端会根据受信任的验证数据检查服务器的证书。通常,受信任的验证数据以该证书的受信任副本、该证书的受信任哈希或指纹或证书的公钥的形式与应用程序捆绑在一起。例如,Chromium 和Google Chrome 包含 *.google.com 证书的验证数据,该证书在 2011 年检测到欺诈性证书. 在其他系统中,客户端希望它第一次获得服务器的证书时是可信任的并存储它;在以后与该服务器的会话期间,客户端会根据存储的证书检查服务器的证书,以防止以后的 MITM 攻击。

什么是证书固定?:-

一些较新的浏览器(例如 Chrome)将使用 HSTS 机制进行证书固定的变体。他们将一组特定的公钥哈希预加载到此 HSTS 配置中,这将有效证书限制为仅指示指定公钥的证书。

HTTP 严格传输安全 (HSTS)是一种通过 HTTP 响应标头(仅通过 HTTPS 发送)实现的技术,它告诉浏览器“记住”网站只能通过 HTTPS 访问一段时间。如果设置了 HSTS并且之前www.example.com的用户访问已过期,浏览器将改为请求,并且不会通过纯 HTTP 发送任何请求。HSTS 要求用户已经访问过该站点才能收到标头,但是 Google 在其 Chrome 浏览器代码中实施了一种解决方法:http://www.example.commax-agehttps://www.example.com

Google Chrome 和 Mozilla Firefox 通过实现“STS 预加载列表”来解决此限制,该列表包含支持 HSTS 的已知站点。此列表与浏览器一起分发,因此它也使用 HTTPS 对列出的站点进行初始请求。

更新以下问题编辑

根据 SilverlightFox 的回答,有没有办法“请求”固定我的网站证书?和/或如何将其添加到“STS 预加载列表”?

根据这篇博文,您应该联系浏览器开发人员以将其包含在 HSTS 列表中,并将您的公钥(或 CA)固定在浏览器中:

这个域 HSTS 预加载在 Chrome 中吗?现在它被硬编码在二进制文件中,并有望增长。您可以联系 Chromium 以将您的网站包含在该列表中。

因此,目前,唯一的解决方案是固定 CA 签署您的网站证书的公钥,即联系 Chromium 团队以将其包含在代码中。

于 2014-02-25T09:07:22.343 回答
0

与中间人作斗争的唯一方法是拥有一些预先共享的知识。在这种情况下,这些是您的浏览器信任的几个根权限的硬编码证书。他们的权威机构使用这些根证书来签署其他权威机构的证书,这些证书反过来也变得值得信赖。在您获得 mail.google.com 的证书之前,会建立信任链。

当您访问 mail.google.com 时,您会自动重定向到该站点的 HTTPS(注意S!)版本。HTTPS 表示证书。您的浏览器下载该站点的证书并检查签名链是否由您的浏览器信任的某些权威机构植根。如果不是:大胖警告!可能是中间人恶搞!

可能发生的另一件事是从 HTTP 到 HTTPS 的重定向失败,因为您和 Google 之间的某些防火墙阻止了 HTTPS。这可能是您收到的警告。

于 2014-02-25T05:34:04.323 回答