1. 简介
1. 简介
Web Push 协议 [RFC8030] 在架构上必然经过中间方. 来自应用服务器 (application server) 的消息经由推送服务 (push service) 投递给用户代理 (user agent, UA), 如图 1 所示.
+-------+ +--------------+ +-------------+
| UA | | Push Service | | Application |
+-------+ +--------------+ +-------------+
| | |
| Setup | |
|<====================>| |
| Provide Subscription |
|-------------------------------------------->|
| | |
: : :
| | Push Message |
| Push Message |<---------------------|
|<---------------------| |
| | |
图 1
本文档说明如何在使用该协议发送消息时, 防范推送服务对消息的窥视, 篡改与伪造.
Web Push 消息是 HTTP 消息 [RFC7230] 的载荷 (payload). 这些消息使用加密的内容编码 (encrypted content encoding) [RFC8188] 进行加密. 本文档说明如何应用该内容编码, 并描述一种推荐的密钥管理方案.
同一用户代理上的多个 Web Push 使用者常常共享一个汇总推送功能的中心代理 (agent). 该代理可强制使用推送消息的应用采用本加密方案. 仅投递已正确加密消息的代理能够有力促进消息的端到端保护.
实现 Push API [API] 的 Web 浏览器可通过仅转发已正确加密的消息来强制使用加密.
1.1. 记号约定
本文档中的关键词 "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", "OPTIONAL" 应按 BCP 14 [RFC2119] [RFC8174] 所述解释, 且仅当它们以全大写形式出现时适用.
本文档使用 [RFC8030] 中的术语, 主要为 "user agent (用户代理)", "push service (推送服务)", "application server (应用服务器)".