Visual RFC.
ALL RFCs / RFC 8291
Read the RFC ↗
RFC 8291 / WEB PUSH ENCRYPTION

Distribute the subscription secrets safely

01

A user agent, such as a browser, receives messages through a push service. Its application shares subscription material only with an authorized application server.

RFC 8291 · § 2.1EXAMPLE
4 / 4
04
Stop an unprotected distribution attempt.

In this separate unsafe case, the proposed channel is not authenticated and confidentiality-protected. The application must not send its subscription secret on that path; the stop occurs before distribution.

Distribute the subscription secrets safelyIn this separate unsafe case, the proposed channel is not authenticated and confidentiality-protected. The application must not send its subscription secret on that path; the stop occurs before distribution.Unprotected distribution: stopUser agentPush serviceApp serverunprotected attemptMUST use protected, authenticated distributionSecret does not leave on this failed path

Source for this drawing: RFC 8291 · Read RFC section 2.1 ↗

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
New to this? Start hereA quick picture + helpful background

A message needs an address.

Think of a packet as a small addressed envelope. Devices pass it onward; transport protocols decide what delivery promises an application gets.

Helpful first, if these ideas are unfamiliar

These pictures are analogies to help you learn. The linked RFC explains the actual rules.

Related RFCs and changes

“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.

KEY POINT

Encryption needs protected key distribution before message delivery.

  • The user agent creates a P-256 Elliptic Curve Diffie-Hellman (ECDH) key pair and an authentication secret for each new subscription. A public key can be shared; the private key stays local.
  • The authentication secret MUST be a hard-to-guess 16-octet sequence. It SHOULD come from a cryptographically strong random number generator. An octet is one byte.
  • The subscription public key and authentication secret go to an authorized application server over an authenticated, confidentiality-protected medium. That protection is a MUST; HTTPS is a sufficient example, not the only possible medium.
  • The push service relays messages. It is not given the user agent private key or the authentication secret in this scheme. Protecting each HTTP hop alone would not hide message content from that intermediary.
DETAILS

RFC 8030 defines the wider subscription/delivery protocol. This chapter covers RFC 8291’s key-distribution boundary. The displayed fixed values are public RFC test data, not keys to reuse for real messages. These illustrations do not send notifications or implement a production encryptor.

Read the RFC section ↗

All chapters in RFC 8291

Drawing view

Scroll the drawing to see every part. Playback controls stay above it.

RFC 9700 / CHAPTERS

Chapters

For full details, tables, algorithms, and exceptions, read the original RFC.

RFC status and corrections ↗