Bar*_*ard 5 man-in-the-middle web-server tls
假设我经营一家公司“Example Inc”,并有一个网站:
现在,因为出于安全意识,我正在使用 https,并希望设置 HSTS 标头以强制使用它。我还会包含子域名很长一段时间,比如说一年。
严格传输安全:max-age=31536000;包含子域
现在我也是一个优秀的网站所有者,因此我设置了以下 301 重定向到上述网站:
最后一个也有 HSTS 标头及其 https 站点。
据我了解,这是运行 https 网站的推荐设置(显然还有许多其他设置),并且相当常见。
到目前为止,一切都很好。
现在,在公司内部网上,我在互联网上不可用,有大量服务器并使用 example.com 域。所以我有:
现在假设其中一些机器运行 Web 服务器,但并非所有机器都是 https。
这是否意味着如果我的任何员工碰巧访问https://example.com那么他们的浏览器将设置 HSTS 标头并拒绝访问任何子域的 http,因此无法再访问其中一些内部 http-仅网络服务器?
这有什么办法吗?
我是否应该通过不使用 includeSubDomains 设置来危及外部网站的安全?至少不在https://example.com网站上?为了内部问题而牺牲外部安全似乎是错误的。
我是否应该强制所有内部应用程序也采用 https?说起来容易做起来难。
我应该在内部使用不同的域吗?例如 machine1.intraexample.com?似乎浪费了一个域,并且某些项目(例如电子邮件服务器)需要位于主域上,尽管如果它们甚至需要运行它们,它们可能仅限于仅 https 的 Web 服务器。
还有其他想法吗?
另外,认为这可能会给公司带来大问题,可能应该在规范和其他地方更多地强调。许多网站所有者没有针对非 www 版本的单独配置,因此可能会无意中在顶级域上设置 includeSubDomain 标志。只是在实施之前想到了这个场景,我才避免了这种情况。我最初会将到期时间设置得很低(一天),以解决这些问题,恕我直言,这也可以更有力地建议。这很容易被忽视,并给许多潜在用户带来奇怪的问题。
编辑 2015 年 6 月 这是一个网站在这个问题上犯错误的真实示例: https: //github.com/NuGet/NuGetGallery/issues/2535
编辑 2015 年 10 月 一篇文章建议您确实应该使用 TLD 的 includeSubDomains 来解决 cookie 中的缺陷: http: //www.kb.cert.org/vuls/id/804060。这是事实(具有 DNS 访问权限的黑客可能会创建一个虚构的子域并使用它在 TLD 级别设置 cookie)。然而,上述自我 DoSing 内部仅 HTTP 站点的风险仍然存在,这只会为您转到 TLD 或预加载 HSTS 提供保护。
不服务于 includeSubDomains - 标志的方法意味着更多的工作和纪律,但并不被认为是有害的,特别是当您有理由这样做时。
您可以在每个外部 HTTPS 服务器上显式设置 HSTS 标头(不包含包含子域)。
此外,确保每个 HTTPS 服务器都有额外的 HTTP -> HTTPS 重定向。
但最佳实践是对内部网站也使用 https-traffic。您可以使用自己的 CA 或不再那么昂贵的通配符证书
| 归档时间: |
|
| 查看次数: |
1829 次 |
| 最近记录: |