2. Overview (概述)
本章说明 HSTS 的 use case, policy effect, threat model 和由此得到的 requirement.
2.1 Use Cases (使用场景)
HSTS 面向两类主要角色:
- Web browser user 希望以安全方式访问任意或已知 Web site.
- Web site deployer 希望为自身和用户提供尽可能安全的站点访问方式.
2.2 HTTP Strict Transport Security Policy Effects (HSTS 策略效果)
当 conformant UA 与实现 HSTS policy 的 Web resource host 交互时, HSTS 的主要效果是:
- UA 在 dereference 之前, 将指向 Known HSTS Host 的 insecure URI reference 转换为 secure URI reference.
- UA 在遇到任何 secure transport error 或 warning 时终止连接尝试.
2.3 Threat Model (威胁模型)
HSTS 关注三类威胁: passive network attacker, active network attacker, 以及 Web site development and deployment bug. HSTS 不直接解决 phishing 或用户系统中的 malware/browser vulnerability.
2.3.1 Threats Addressed (已处理的威胁)
Passive network attacker 可以在本地网络中监听未加密 HTTP 流量, 窃取 session identifier 或 cookie. 如果站点同时支持 HTTP 和 HTTPS, 且 session identifier 存在 non-Secure cookie 中, 用户一次普通 HTTP 请求就可能泄露凭据.
Active network attacker 可以通过 DNS impersonation, wireless spoofing, 恶意接入点或路由器漏洞等方式操纵流量. 如果 UA 允许用户绕过 TLS warning, 攻击者可诱导用户接受错误 certificate, 从而削弱 HTTPS 的保护.
Web site deployment bug 也会破坏站点安全. 例如 secure page 加载 insecure stylesheet, script 或 SWF 资源时, 攻击者可能通过该 insecure resource 控制页面. 本文档将这类情况称为 mixed security context.
2.3.2 Threats Not Addressed (未处理的威胁)
HSTS 本身不是 phishing 防御. 攻击者若在不同 domain 上搭建假站点并诱导用户提交凭据, HSTS 只能保护真实站点的 session integrity 和长期 token, 不能判断用户是否访问了假站点.
HSTS 也依赖 UA 和用户系统可信. 如果 malware 已在用户系统中执行, 或 browser 本身存在可利用漏洞, HSTS 无法保证 browsing session 安全.
2.4 Requirements (需求)
总体需求是降低 Web browser user 和 Web site deployer 面对 passive/active attacker, deployment bug 以及不安全用户操作时的风险.
核心需求包括:
- Web site 能向 UA 声明应以 strict security policy 访问.
- Web site 能指示通过 insecure channel 访问它的 UA 改用 secure channel.
- UA 能持久保存并刷新站点声明的 strict security policy.
- UA 能把对启用 HSTS 的站点的
httpURI load 改写为https. - 管理员能将 strict security policy 应用于子域, UA 也能执行该策略.
- 启用 HSTS 的 domain 不能为 peer domain 或更高层 domain 设置策略.
- UA 需要阻止用户对 security warning 进行 click-through.
辅助需求包括阻止 mixed security context load, 以及允许用户本地声明某些站点启用 strict security policy. 这些不由本规范强制规定.