HSTS的必要性及如何加入HSTS Preload List

教程 · 2022-08-14

HSTS是什么

HTTP严格传输安全(英语:HTTP Strict Transport Security,缩写:HSTS)是一套由互联网工程任务组发布的互联网安全策略机制。网站可以选择使用HSTS策略,来让浏览器强制使用HTTPS与网站进行通信,以减少会话劫持风险。

HSTS的作用是强制客户端(如浏览器)使用HTTPS与服务器创建连接。服务器开启HSTS的方法是,当客户端通过HTTPS发出请求时,在服务器返回的超文本传输协议(HTTP)响应头中包含Strict-Transport-Security字段。非加密传输时设置的HSTS字段无效。

作用

HSTS可以用来抵御SSL剥离攻击,因为只要浏览器曾经与服务器创建过一次安全连接,之后浏览器会强制使用HTTPS,即使链接被换成了HTTP。

另外,如果中间人使用自己的自签名证书来进行攻击,浏览器会给出警告,但是许多用户会忽略警告。HSTS解决了这一问题,一旦服务器发送了HSTS字段,将不再允许用户忽略警告。

hstspreload

提交要求

  1. 提供有效的证书
  2. 如果您正在侦听端口 80,则在同一主机上从 HTTP重定向到 HTTPS。
  3. 通过 HTTPS 为所有子域提供服务。
    • 特别是www,如果该子域的 DNS 记录存在,您必须支持该子域的 HTTPS 。
  4. 在基域上为 HTTPS 请求 提供HSTS 标头:
    • max-age必须至少为31536000秒(1 年)。
    • includeSubDomains必须指定指令。
    • preload必须指定指令。
    • 如果您从 HTTPS 站点提供额外的重定向,则该重定向必须仍然具有 HSTS 标头(而不是它重定向到的页面)。
  5. 以下是有效 HSTS 标头的示例:

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

持续要求

您必须确保您的网站始终满足提交要求。请注意,preload从您的标头中删除该指令将使您的网站立即符合删除表格的条件,并且该网站将来可能会因未能满足要求而被自动删除。

特别是,上述要求适用于2017 年 10 月 11 日hstspreload.org或之后提交的所有域(即在 Chrome 63 之后预加载)

相同的要求适用于2016 年 2 月 29 日 或之后提交的早期域(即在 Chrome 50 之后预加载),但这些域所需的 max-age 仅为10886400几秒。

Theme Jasmine
蜀ICP备2023035383号-1