使用单一域名识别多台服务器提高安全性?(谷歌对 1e100.net 的使用)

信息安全 网络 xss dns
2021-09-02 18:04:54

自 2009 年以来,Google 一直使用单一域名来识别其跨多个产品的服务器:

按照标准的行业惯例,我们确保每个 IP 地址都有一个对应的主机名。2009 年 10 月,我们开始在所有 Google 产品中使用单一域名来标识我们的服务器,而不是使用不同的产品域,例如 youtube.com、blogger.com 和 google.com。我们这样做有两个原因:首先,让事情变得更简单,其次,通过防范跨站点脚本攻击等潜在威胁来主动提高安全性

问题:它如何防御 XSS 等应用程序级威胁?从安全的角度来看,使用这种技术还有其他优点吗?

2个回答

每个生产 IP 地址都有一个唯一的主机名,它是可预测的、一致的、确定的,并且对任何人都完全无用,但我怀疑他们可以像地图一样阅读这些地址的一些工程师。这些名字对那些人来说很重要。但对于我们其他人来说,我们只关心它不会产生新问题。

这就是 XSS 的用武之地,因为域名在安全方面非常重要。在 Web 上,域名是安全边界。Cookie、浏览器对象和其他资源在域内自由共享,但如果没有某些规定,则不能跨越该边界。因此,如果每个地址的主机名都以“google.com”或“youtube.com”或任何其他具有相关网络资源的域结尾,那么理论上攻击者可以请求通常在受信任域之外的资源,但是也可以通过 IP 分配的主机名访问。

与其查找和修复所有此类潜在问题,更安全的解决方案是将主机名放在它们自己的唯一域中,该域永远不会用于任何其他目的,因此不会产生意外的惊喜。

值得注意的是,并非所有Google 的 IP 都使用 1e100.net。受用户控制的地址(例如分配给 Google Compute 实例的地址)解析回以 googleusercontent.com 结尾的名称。

免责声明:我为谷歌工作。
Reclaimer:这不是 Google 的官方回应。我不代表谷歌。这些想法和观点是我自己的,并不反映我的雇主、国会议员或 80 年代摇滚乐队 Toto 的观点。

我怀疑安全方面(他们的第二个原因)与 1e100.net 与产品域(youtube.com、blogger.com、google.com)不同。所有服务器都由相同的主机名标识这一事实很简单(它们的第一个原因),但对于安全性可能并不重要。

我不确定这里的威胁配置文件到底是什么,但如果他们要将服务器识别为 server-xyx.google.com,那么利用 google.com 来源可能会更容易。通过将其标识为 server-xyz.1e100.net,他们不一定需要将 google.com 域名委托给它。

对此有一个有趣的黑客新闻讨论:https ://news.ycombinator.com/item?id=3338938