检查域 HSTS 状态

信息安全 铬合金 hsts
2021-08-12 16:48:34

chrome://net-internals/#hstsGoogle Chrome 浏览器提供了一种通过页面(查询域部分)检查域的 HSTS(HTTP 严格传输安全)状态的快速方法

查询结果如下所示:

Found:
domain: owasp.org
static_upgrade_mode: UNKNOWN
static_sts_include_subdomains: 
static_pkp_include_subdomains: 
static_sts_observed: 
static_pkp_observed: 
static_spki_hashes: 
dynamic_upgrade_mode: STRICT
dynamic_sts_include_subdomains: false
dynamic_pkp_include_subdomains: false
dynamic_sts_observed: 1409173001.03746
dynamic_pkp_observed: 1409173001.03746
dynamic_spki_hashes: 

这些线是什么意思?HSTS 模式是否启用?dynamic_结果的和static_条目有什么区别?

3个回答

如果static_upgrade_mode:dynamic_upgrade_mode:行中的任何一个设置为,STRICT则启用 HSTS。

动态的

Dynamic 表示浏览器已通过类似于以下内容的 HTTP 响应标头(通过 TLS 服务)指示启用 HSTS:

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

这很容易受到攻击,即浏览器第一次向http://(不是https://)对手请求域时会拦截通信。

静止的

为了克服这个弱点,我们有static允许将 HSTS 记录直接硬编码到浏览器源中的模式。更改标题以表明管理员的意图:

Strict-Transport-Security: max-age=157680000; includeSubDomains; preload

注意最后的包含preload然后提交该域以供审核。如果获得批准,则会将其添加到Chromium 列表中,该列表也包含在 Firefox、Safari 和 IE 11+Edge 列表中。

当您查询时,chrome://net-internals/#hsts它仅查询您使用 chrome 访问过的已存储 HSTS 站点。该部分显示了启用 STS 进行通信的方法 static_dynamic_

结果表明没有static定义方法,只有dynamic方法存在。结果分别代表公钥固定pop严格的传输安全为域启用 STS 的时间也是如此该域允许使用 STS,但子域不允许使用 STS。 stsdynamic_pkp_observeddynamic_sts_obeserved

最好使用“curl”来检查 sts。
例如:
curl -siL "owasp.org" | grep "Strict" (-L 重定向到 https)

如果域配置为使用 STS,那么在服务器响应中您将看到标头Strict-Transport-Security: max-age =
这就是为什么我要抓住Strict.

static表示浏览器(在本例中为 Chrome)预加载的 HSTS 站点
dynamic表示“在旅途中”获取或手动添加的站点

pkp代表Public Key Pinning,因为 Chrome 69 deprecated
spki_hashes代表SubjectPublicKeyInfo 哈希

_include_subdomains表示是否在请求中包含子域
_observed浏览器首次观察到请求UNIX时间是浏览器将忘记该请求的 UNIX 时间
_expiry