如何针对HSTS标头检查Wesbites列表?

时间:2019-07-09 11:14:45

标签: google-chrome ssl tls1.2 hsts strict-transport-security

我需要检查网站列表,以检查它们是否支持HSTS政策。

我抓住了他们的响应头。但是,我现在很困惑,因为似乎可以通过预加载的列表而不只是标头来完成HSTS策略订阅(我可能是错的,但我没有明白这一点)。

检查网站响应标头(即查找Strict-Transport-Security标头)是否可以正确回答以下问题:网站是否支持HSTS政策?

因为有一个预加载的列表。我不确定:网站是否可以订阅列表而不发送HSTS标头?即网站是否可以在不发送Strict-Transport-Security标头的情况下支持HSTS策略?

我在Chrome的页面上检查了HSTS预加载列表订阅here。它说:

  

如果您的网站已承诺使用HTTPS,并且您要预加载HSTS,则我们   建议采取以下步骤:[...]添加严格的运输安全   所有HTTPS响应的标头,并使用逐步增加最大使用期限   以下标头值:[...]

任何人都可以向我澄清。首先,Chrome页面中的suggest一词不清楚。这是必须的吗?还是可选的?其次,如果必须的话,如果想要订阅列表的网站仍然需要发送HSTS标头,为什么要订阅列表?该列表是否仅是为了提供保护第一个连接的手段(不能使用HSTS标头方法保护它)?还是重复检查之类的手段?请给我澄清一下。

最重要的问题:我是否足以检查标题以说明给定的网站是否支持HSTS策略,而无需对照Chrome的预加载列表检查网站?

如果需要根据Chrome的HSTS预加载列表检查网站,请您指出如何自动执行此操作(我无法手动执行此操作,因为我有一个或两个以上的网站列表)。另外,如何根据过去(几个月前)的特定日期列表检查网站。

1 个答案:

答案 0 :(得分:0)

  

检查网站响应标头(即查找Strict-Transport-Security标头)是否可以正确回答以下问题:网站是否支持HSTS政策?

是的

  

因为有一个预加载的列表。我不确定:网站是否可以订阅列表而不发送HSTS标头?即网站是否可以在不发送Strict-Transport-Security标头的情况下支持HSTS策略?

从技术上讲,他们可以。但是,它们可能会从预加载列表中删除。同样,并非所有浏览器都支持预加载(尽管主流浏览器都支持),并且它们也不都使用相同的预加载列表。因此,标头是必须的,列表是可选的。

  

任何人都可以向我澄清。首先,Chrome页面中的“建议”一词不清楚。这是必须的吗?还是可选的?

通常,规则是必须的,如果不遵守规则,则不会自动将其接受到列表中,并且可以将它们从预加载列表中删除。但是,规则已被打破,您可以根据需要手动请求添加。例如,https://gov.uk(英国政府)在预加载列表中,但HSTS标头上没有includeSubDomain属性。据推测,这是因为他们尚未将所有子域都转换为HTTPS,但仍希望为这个重要的顶级站点提供预加载保护。并非所有人都拥有英国政府的控制权,因此在其余情况下,最好遵循所有规则并自动提交。

  

第二,如果必须的话,如果想要订阅该列表的网站仍然需要发送HSTS标头,为什么要订阅该列表?该列表是否仅是为了提供保护第一个连接的手段(不能使用HSTS标头方法保护它)?还是重复检查之类的手段?请给我澄清一下。

正确。预加载是为了保护第一个负载。没有这个,浏览器就看不到HSTS标头,因此不知道该站点支持HSTS。

说实话,我认为对于大多数网站来说,预加载是多余的,并且我真的不喜欢在您无法控制的地方对它进行硬编码的概念,这就像在this blog post中讨论的那样,是步枪。通常(但并非总是如此!),第一个请求相对安全(因为您没有cookie),并且只要您使用安全的网站技术(安全,HTTPOnly cookie,HSTS和重定向到HTTPS),风险就相对较低。但是,如果您是全球知名站点(例如英国政府),那么预加载确实可以提供最佳保护。

  

最重要的问题:我是否足以检查标题以说明给定的网站是否支持HSTS策略,而无需对照Chrome的预加载列表检查网站?

如上所述,差不多。尽管您可能在某些情况下仍会预加载(is?),但已停止发布标头。这取决于您究竟为什么需要知道是否使用HSTS。

  

如果需要根据Chrome的HSTS预加载列表检查网站,请您指出如何自动执行此操作(我无法手动执行此操作,因为我有一个或两个以上的网站列表)。另外,如何根据过去(几个月前)的特定日期列表检查网站。

您需要检查此against the HSTS source code,并查看此列表的历史版本。不是other browsers may not use this same list。为了手动检查一个或两个站点的当前状态,诸如SSLLabsHardenize之类的工具基本上可以为您解析此列表。