HSTS理解

时间:2018-05-24 08:07:55

标签: security ssl https tls1.2 hsts

我对HSTS机制感兴趣,并希望澄清以下时刻:

例如,存在网站https://example.com。我使用chrome://net-internals/#hsts检查是否在那里启用了HSTS。它显示了下一个信息:

static_sts_domain: 
static_upgrade_mode: UNKNOWN
static_sts_include_subdomains: 
static_sts_observed: 
static_pkp_domain: 
static_pkp_include_subdomains: 
static_pkp_observed: 
static_spki_hashes: 
dynamic_sts_domain: example.com
dynamic_upgrade_mode: FORCE_HTTPS
dynamic_sts_include_subdomains: true
dynamic_sts_observed: 1524145911.957196
dynamic_sts_expiry: 1555681911.957194
dynamic_pkp_domain: 
dynamic_pkp_include_subdomains: 
dynamic_pkp_observed: 
dynamic_pkp_expiry: 
dynamic_spki_hashes:

所以我希望并且认为那里启用了HSTS。但在同一时刻,没有Strict-Transport-Security标题作为回应。为什么chrome会显示此类信息并为该站点启用HSTS?

2 个答案:

答案 0 :(得分:2)

  

但同时没有Strict-Transport-Security标头作为回应。

它必定存在,因为动态条目已添加到您的Chrome实例中。

还要记住,HSTS可以在任何资源上发送,而不仅仅是主文档。因此,如果您在徽标资源上发送它,那么将为整个域设置它。

您可以使用相同的chrome://net-internals/#hsts页面清除它,看看它是否在浏览后回来了?如果是这样,那么仍然会发送一些内容,如果没有,那么可能该网站用于宣传HSTS但不再发布。

它被设定为活跃一年:

(1555681911.957194 - 1524145911.957196) / 365 / 24 / 60 = 1 year

根据我试图转换这些日期戳的粗略计算,看起来它是2018年4月20日的最后一次。

如果网站确实已停止使用HSTS,无论出于何种原因,最好宣传0标头,以便至少通过HTTPS访问的访问者现在将删除该策略:

Strict-Transport-Security: max-age=0; includeSubDomains

任何未通过HTTPS访问的人都不会在到期之前将其清除。

答案 1 :(得分:0)

HSTS表示HTTP严格传输安全性。当您获得HSTS支持时,它不允许在使用301重定向之前将站点最初堆叠在HTTP中。这意味着任何程序员都没有时间将其插入HTTP并将其与HTTP一起使用,以防止该站点堆积HTTPS。 HSTS允许站点仅以HTTPS进行堆栈,从而为站点提供了额外的安全性。此安全层告诉程序该站点具有HTTPS保证,并且没有令人信服的理由尝试使用HTTP访问该站点。这将关闭程序员在301重定向过程中获得的小窗口。 请参阅以下步骤:

enter image description here

要了解对超文本协议和HSTS支持click here的详细了解。