<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.2.3 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc docmapping="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-webpush-vapid-04" category="std">

  <front>
    <title abbrev="Self Identification">Voluntary Application Server Identification (VAPID) for Web Push</title>

    <author initials="M." surname="Thomson" fullname="Martin Thomson">
      <organization>Mozilla</organization>
      <address>
        <email>martin.thomson@gmail.com</email>
      </address>
    </author>
    <author initials="P." surname="Beverloo" fullname="Peter Beverloo">
      <organization>Google</organization>
      <address>
        <email>beverloo@google.com</email>
      </address>
    </author>

    <date year="2017" month="September" day="04"/>

    
    
    

    <abstract>


<t>An application server can use the method described to voluntarily identify
itself to a push service.  The “vapid” authentication scheme allows a client to
include its an identity in a signed token with requests that it makes.  The
signature can be used by the push service to attribute requests that are made
by the same application server to a single entity.  The identification
information can allow the operator of a push service to contact the operator of
the application server.  The signature can be used to restrict the use of a
push subscription to a single application server.</t>



    </abstract>


  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<t>The Web Push protocol <xref target="RFC8030"/> describes how an application
server is able to request that a push service deliver a push message to a user
agent.</t>

<t>As a consequence of the expected deployment architecture, there is no basis for
an application server to be known to a push service prior to requesting delivery
of a push message.  Requiring that the push service be able to authenticate
application servers places an unwanted constraint on the interactions between
user agents and application servers, who are the ultimate users of a push
service.  That constraint would also degrade the privacy-preserving properties
the protocol provides.  For these reasons, <xref target="RFC8030"/> does not
define a mandatory system for authentication of application servers.</t>

<t>An unfortunate consequence of the design of <xref target="RFC8030"/> is that a push service
is exposed to a greater risk of denial of service attack.  While requests from
application servers can be indirectly attributed to user agents, this is not
always efficient or even sufficient.  Providing more information about the
application server directly to a push service allows the push service to better
distinguish between legitimate and bogus requests.</t>

<t>Additionally, the design of RFC 8030 relies on maintaining the secrecy of push
subscription URIs.  Any application server in possession of this URI is able to
send messages to the user agent.  If use of a subscription could be limited to
a single application server, this would reduce the impact of the push
subscription URI being learned by an unauthorized party.</t>

<section anchor="voluntary-identification" title="Voluntary Identification">

<t>This document describes a system whereby an application server can volunteer
information about itself to a push service.  At a minimum, this provides a
stable identity for the application server, though this could also include
contact information, such as an email address.</t>

<t>A consistent identity can be used by a push service to establish behavioral
expectations for an application server.  Significant deviations from an
established norm can then be used to trigger exception handling procedures.</t>

<t>Voluntarily-provided contact information can be used to contact an application
server operator in the case of exceptional situations.</t>

<t>Experience with push service deployment has shown that software errors or
unusual circumstances can cause large increases in push message volume.
Contacting the operator of the application server has proven to be valuable.</t>

<t>Even in the absence of usable contact information, an application server that
has a well-established reputation might be given preference over an unidentified
application server when choosing whether to discard a push message.</t>

</section>
<section anchor="notational-conventions" title="Notational Conventions">

<t>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”,
“SHOULD NOT”, “RECOMMENDED”, “NOT RECOMMENDED”, “MAY”, and “OPTIONAL” in this
document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/>
when, and only when, they appear in all capitals, as shown here.</t>

<t>The terms “push message”, “push service”, “push subscription”, “application
server”, and “user agent” are used as defined in <xref target="RFC8030"/>.</t>

</section>
</section>
<section anchor="jwt" title="Application Server Self-Identification">

<t>Application servers that wish to self-identify generate and maintain a signing
key pair.  This key pair MUST be usable with elliptic curve digital signature
(ECDSA) over the P-256 curve <xref target="FIPS186"/>.  Use of this key when sending push
messages establishes an identity for the application server that is consistent
across multiple messages.</t>

<t>When requesting delivery of a push message, the application includes a JSON Web
Token (JWT) <xref target="RFC7519"/>, signed using its signing key.  The token includes a
number of claims as follows:</t>

<t><list style="symbols">
  <t>An “aud” (Audience) claim in the token MUST include the unicode serialization
of the origin (Section 6.1 of <xref target="RFC6454"/>) of the push resource URL.  This
binds the token to a specific push service.  This ensures that the token is
reusable for all push resource URLs that share the same origin.</t>
  <t>An “exp” (Expiry) claim MUST be included with the time after which the token
expires.  This limits the time over which a token is valid.  An “exp” claim
MUST NOT be more than 24 hours from the time of the request.  Limiting this
to 24 hours balances the need for reuse against the potential cost and
likelihood of theft of a valid token.</t>
</list></t>

<t>This JWT is included in an Authorization header field, using an auth-scheme of
“vapid”.  A push service MAY reject a request with a 403 (Forbidden) status
code <xref target="RFC7235"/> if the JWT signature or its claims are invalid.  A push
service MUST NOT use information from an invalid token.</t>

<t>The JWT MUST use a JSON Web Signature (JWS) <xref target="RFC7515"/>.  The signature MUST
use ECDSA on the NIST P-256 curve <xref target="FIPS186"/> which is identified as “ES256”
<xref target="RFC7518"/>.</t>

<section anchor="application-server-contact-information" title="Application Server Contact Information">

<t>If the application server wishes to provide contact details it MAY include a
“sub” (Subject) claim in the JWT.  The “sub” claim SHOULD include a contact URI
for the application server as either a “mailto:” (email) <xref target="RFC6068"/> or an
“https:” <xref target="RFC2818"/> URI.</t>

</section>
<section anchor="additional-claims" title="Additional Claims">

<t>An application server MAY include additional claims using public or private
names (see Sections 4.2 and 4.3 of <xref target="RFC7519"/>).  Since the JWT is in a header
field, the size of additional claims SHOULD be kept as small as possible.</t>

</section>
<section anchor="cryptographic-agility" title="Cryptographic Agility">

<t>The “vapid” HTTP authentication scheme (<xref target="auth"/>) is used to identify the
specific profile of JWT defined in this document.  A different authentication
scheme is needed to update the signature algorithm or other parameters.  This
ensures that existing mechanisms for negotiating authentication scheme can be
used rather than defining new parameter negotiation mechanisms.</t>

</section>
<section anchor="example" title="Example">

<t>An application server requests the delivery of a push message as described in
<xref target="RFC8030"/>.  If the application server wishes to self-identify,
it includes an Authorization header field with credentials that use the
“vapid” authentication scheme.</t>

<figure title="Requesting Push Message Delivery with JWT" anchor="ex-push"><artwork><![CDATA[
POST /p/JzLQ3raZJfFBR0aqvOMsLrt54w4rJUsV HTTP/1.1
Host: push.example.net
TTL: 30
Content-Length: 136
Content-Encoding: aes128gcm
Authorization: vapid
   t=eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9.eyJhdWQiOiJodHRwczovL3
     B1c2guZXhhbXBsZS5uZXQiLCJleHAiOjE0NTM1MjM3NjgsInN1YiI6Im1ha
     Wx0bzpwdXNoQGV4YW1wbGUuY29tIn0.i3CYb7t4xfxCDquptFOepC9GAu_H
     LGkMlMuCGSK2rpiUfnK9ojFwDXb1JrErtmysazNjjvW2L9OkSSHzvoD1oA,
   k=BA1Hxzyi1RUM1b5wjxsn7nGxAszw2u61m164i3MrAIxHF6YK5h4SDYic-dR
     uU_RCPCfA5aq9ojSwk5Y2EmClBPs

{ encrypted push message }
]]></artwork></figure>

<t>Note that the example header fields in this document include extra line wrapping
to meet formatting constraints.</t>

<t>The <spanx style="verb">t</spanx> parameter of the Authorization header field contains a JWT; the <spanx style="verb">k</spanx>
parameter includes the base64url-encoded key that signed that token.  The JWT
input values and the JWK <xref target="RFC7517"/> corresponding to the signing key are shown
in <xref target="ex-decoded"/> with additional whitespace added for readability purposes.
This JWT would be valid until 2016-01-23T04:36:08Z <xref target="RFC3339"/>.</t>

<figure title="Decoded Example Values" anchor="ex-decoded"><artwork><![CDATA[
JWT header = { "typ": "JWT", "alg": "ES256" }
JWT body = { "aud": "https://push.example.net",
             "exp": 1453523768,
             "sub": "mailto:push@example.com" }
JWK = { "crv":"P-256",
        "kty":"EC",
        "x":"DUfHPKLVFQzVvnCPGyfucbECzPDa7rWbXriLcysAjEc",
        "y":"F6YK5h4SDYic-dRuU_RCPCfA5aq9ojSwk5Y2EmClBPs" }
]]></artwork></figure>

</section>
</section>
<section anchor="auth" title="Vapid Authentication Scheme">

<t>A new “vapid” HTTP authentication scheme <xref target="RFC7235"/> is defined.  This
authentication scheme carries a signed JWT, as described in <xref target="jwt"/>, plus the
key that signed that JWT.</t>

<t>This authentication scheme is for origin-server authentication only.  Therefore,
this authentication scheme MUST NOT be used with the Proxy-Authenticate or
Proxy-Authorization header fields.</t>

<t>The challenge for the “vapid” authentication scheme contains only the
<spanx style="verb">auth-scheme</spanx> production.  No parameters are currently defined.</t>

<t>Two parameters are defined for this authentication scheme: <spanx style="verb">t</spanx> and <spanx style="verb">k</spanx>.  All
unknown or unsupported parameters to “vapid” authentication credentials MUST
be ignored.  The <spanx style="verb">realm</spanx> parameter is ignored for this authentication scheme.</t>

<t>This authentication scheme is intended for use by an application server when
using the Web Push protocol <xref target="RFC8030"/>.</t>

<section anchor="token" title="Token Parameter (t)">

<t>The <spanx style="verb">t</spanx> parameter of the “vapid” authentication scheme carries a JWT as
described in <xref target="jwt"/>.</t>

</section>
<section anchor="key" title="Public Key Parameter (k)">

<t>In order for the push service to be able to validate the JWT, it needs to learn
the public key of the application server.  A <spanx style="verb">k</spanx> parameter is defined for the
“vapid” authentication scheme to carry this information.</t>

<t>The <spanx style="verb">k</spanx> parameter includes an elliptic curve digital signature algorithm (ECDSA)
public key <xref target="FIPS186"/> in uncompressed form <xref target="X9.62"/> that is encoded using
base64url encoding <xref target="RFC7515"/>.</t>

<t><list style="hanging">
  <t hangText='Note:'>
  X9.62 encoding is used over JWK <xref target="RFC7517"/> for two reasons.  A JWK does not
have a canonical form, so X9.62 encoding makes it easier for the push service
to handle comparison of keys from different sources.  Secondarily, the X9.62
encoding is also considerably smaller.</t>
</list></t>

<t>Some elliptic curve implementations permit the same P-256 key to be used for
signing and key exchange.  An application server MUST select a different
private key for the key exchange
<xref target="WEBPUSH-ENCRYPTION"/> and signing the
authentication token.  Though a push service is not obligated to check either
parameter for every push message, a push service SHOULD reject push messages
that have identical values for these parameters with a 400 (Bad Request) status
code.</t>

</section>
</section>
<section anchor="restrict" title="Subscription Restriction">

<t>The public key of the application server serves as a stable identifier for the
server.  This key can be used to restrict a push subscription to a specific
application server.</t>

<t>Subscription restriction reduces the reliance on endpoint secrecy by requiring
that an application server provide a signed token when requesting delivery of a
push message.  This provides an additional level of protection against leaking
of the details of the push subscription.</t>

<section anchor="creating-a-restricted-push-subscription" title="Creating a Restricted Push Subscription">

<t>A user agent that wishes to create a restricted subscription includes the public
key of the application server when requesting the creation of a push
subscription.  This restricts use of the resulting subscription to application
servers that are able to provide a valid JWT signed by the corresponding private
key.</t>

<t>The user agent then adds the public key to the request to create a push
subscription.  The push subscription request is extended to include a body.  The
body of the request is a JSON object as described in <xref target="RFC7159"/>.  The user
agent adds a “vapid” member to this JSON object that contains a public key on
the P-256 curve, encoded in the uncompressed form <xref target="X9.62"/> and base64url
encoded <xref target="RFC7515"/>.  The media type of the body is set to
“application/webpush-options+json” (see <xref target="mime"/> for registration of this media
type).</t>

<t>A push service MUST ignore the body of a request that uses a different media
type.  For the “application/webpush-options+json” media type, a push service
MUST ignore any members on this object that it does not understand.</t>

<t>The example in <xref target="ex-restrict"/> shows a restriction to the key used in
<xref target="ex-push"/>.  Extra whitespace is added to meet formatting constraints.</t>

<figure title="Example Subscribe Request" anchor="ex-restrict"><artwork><![CDATA[
POST /subscribe/ HTTP/1.1
Host: push.example.net
Content-Type: application/webpush-options+json
Content-Length: 104

{ "vapid": "BA1Hxzyi1RUM1b5wjxsn7nGxAszw2u61m164i3MrAIxH
            F6YK5h4SDYic-dRuU_RCPCfA5aq9ojSwk5Y2EmClBPs" }
]]></artwork></figure>

<t>An application might use the Web Push API <xref target="API"/> to provide the user agent with
a public key.</t>

</section>
<section anchor="using-restricted-subscriptions" title="Using Restricted Subscriptions">

<t>When a push subscription has been restricted to an application server, the
request for push message delivery MUST include a JWT signed by the private key
that corresponds to the public key used when creating the subscription.</t>

<t>A push service MUST reject a message sent to a restricted push subscription if
that message includes no “vapid” authentication or invalid “vapid”
authentication.  A 401 (Unauthorized) status code might be used if the
authentication is absent; a 403 (Forbidden) status code might be used if
authentication is invalid.</t>

<t>“vapid” authentication is invalid if:</t>

<t><list style="symbols">
  <t>either the authentication token or public key are not included in the request,</t>
  <t>the signature on the JWT cannot be successfully verified using the included
public key,</t>
  <t>the current time is later than the time identified in the “exp” (Expiry)
claim or more than 24 hours before the expiry time,</t>
  <t>the origin of the push resource is not included in the “aud” (Audience) claim,
or</t>
  <t>the public key used to sign the JWT doesn’t match the one that was included in
the creation of the push subscription.</t>
</list></t>

<t>A push service MUST NOT forward the JWT or public key to the user agent when
delivering the push message.</t>

<t>An application server that needs to replace its signing key needs to request
the creation of a new subscription by the user agent that is restricted to the
updated key.  Application servers need to remember the key that was used when
requesting the creation of a subscription.</t>

</section>
</section>
<section anchor="security" title="Security Considerations">

<t>This authentication scheme is vulnerable to replay attacks if an attacker can
acquire a valid JWT.  Sending requests using HTTPS as required by <xref target="RFC8030"/>
provides confidentiality.  Additionally, applying narrow limits to the period
over which a replayable token can be reused limits the potential value of a
stolen token to an attacker and can increase the difficulty of stealing a
token.</t>

<t>An application server might offer falsified contact information.  The
application server asserts its email address or contact URI without any
evidence to support the claim.  A push service operator cannot use the presence
of unvalidated contact information as input to any security-critical
decision-making process.</t>

<t>Validation of a signature on the JWT requires a non-trivial amount of
computation.  For something that might be used to identify legitimate requests
under denial of service attack conditions, this is not ideal.  Application
servers are therefore encouraged to reuse tokens, which permits the push service
to cache the results of signature validation.</t>

<t>An application server that changes its signing key breaks linkability between
push messages that it sends under the different keys.  A push service that
relies on a consistent identity for application servers might categorize
requests made with new keys differently.  Gradual migration to a new signing key
reduces the chances that requests that use the new key will be categorized as
abusive.</t>

</section>
<section anchor="iana" title="IANA Considerations">

<t>This document registers a new authentication scheme, a registry for parameters
of that scheme, and media type for push options.</t>

<section anchor="vapid-authentication-scheme-registration" title="Vapid Authentication Scheme Registration">

<t>This document registers the “vapid” authentication scheme in the “Hypertext
Transfer Protocol (HTTP) Authentication Scheme Registry” established in
<xref target="RFC7235"/>.</t>

<t><list style="hanging">
  <t hangText='Authentication Scheme Name:'>
  vapid</t>
  <t hangText='Pointer to specification text:'>
  <xref target="auth"/> of this document</t>
  <t hangText='Notes:'>
  This scheme is origin-server only and does not define a challenge.</t>
</list></t>

</section>
<section anchor="vapid-authentication-scheme-parameters" title="Vapid Authentication Scheme Parameters">

<t>This document creates a “Vapid Authentication Scheme Parameters” registry for
parameters to the “vapid” authentication scheme.  These parameters are defined
for use in requests (in the Authorization header field) and for challenges (in
the WWW-Authenticate header field).  This registry is under the “WebPush
Parameters” grouping.  The registry operates on the “Specification Required”
policy <xref target="RFC5226"/>.</t>

<t>Registrations MUST include the following information:</t>

<t><list style="hanging">
  <t hangText='Parameter Name:'>
  A name for the parameter, which conforms to the <spanx style="verb">token</spanx> grammar <xref target="RFC7230"/></t>
  <t hangText='Purpose (optional):'>
  A brief identifying the purpose of the parameter.</t>
  <t hangText='Header Fields:'>
  The header field or header fields where the parameter can be used.</t>
  <t hangText='Specification:'>
  A link to the specification that defines the format and semantics of the
parameter.</t>
</list></t>

<t>This registry initially contains the following entries:</t>

<texttable>
      <ttcol align='left'>Parameter Name</ttcol>
      <ttcol align='left'>Purpose</ttcol>
      <ttcol align='left'>Header Fields</ttcol>
      <ttcol align='left'>Specification</ttcol>
      <c>t</c>
      <c>JWT authentication token</c>
      <c>Authorization</c>
      <c>[[RFC-to-be]], <xref target="token"/></c>
      <c>k</c>
      <c>signing key</c>
      <c>Authorization</c>
      <c>[[RFC-to-be]], <xref target="key"/></c>
</texttable>

</section>
<section anchor="mime" title="application/webpush-options+json Media Type Registration">

<t>This document registers the “application/webpush-options+json” media type in the
“Media Types” registry following the process described in <xref target="RFC6838"/>.</t>

<t>[[RFC editor: please replace instances of RFCXXXX in this section with a
reference to the published RFC.]]</t>

<t><list style="hanging">
  <t hangText='Type name:'>
  application</t>
  <t hangText='Subtype name:'>
  webpush-options+json</t>
  <t hangText='Required parameters:'>
  none</t>
  <t hangText='Optional parameters:'>
  none</t>
  <t hangText='Encoding considerations:'>
  binary (JSON is UTF-8-encoded text)</t>
  <t hangText='Security considerations:'>
  See <xref target="RFC7159"/> for security considerations specific to JSON.</t>
  <t hangText='Interoperability considerations:'>
  See <xref target="RFC7159"/> for interoperability considerations specific to JSON.</t>
  <t hangText='Published specification:'>
  [[RFCXXXX]].</t>
  <t hangText='Applications that use this media type:'>
  Web browsers, via the Web Push Protocol <xref target="RFC8030"/>.</t>
  <t hangText='Fragment identifier considerations:'>
  None, see <xref target="RFC7159"/>.</t>
  <t hangText='Additional information:'>
        <list style="hanging">
        <t hangText='Deprecated alias names for this type:'>
        n/a</t>
        <t hangText='Magic number(s):'>
        n/a</t>
        <t hangText='File extension(s):'>
        .json</t>
        <t hangText='Macintosh file type code(s):'>
        TEXT</t>
      </list>
  </t>
  <t hangText='Person &amp; email address to contact for further information:'>
  Martin Thomson (martin.thomson@gmail.com)</t>
  <t hangText='Intended usage:'>
  LIMITED USE</t>
  <t hangText='Restrictions on usage:'>
  For use with the Web Push Protocol <xref target="RFC8030"/>.</t>
  <t hangText='Author:'>
  See “Authors’ Addresses” section of [[RFCXXXX]].</t>
  <t hangText='Change controller:'>
  Internet Engineering Task Force</t>
</list></t>

</section>
</section>
<section anchor="ack" title="Acknowledgements">

<t>This document would have been much worse than it is if not for the contributions
of Benjamin Bangert, JR Conlin, Chris Karlof, Costin Manolache, Adam Roach, and
others.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>

<reference anchor="FIPS186" >
  <front>
    <title>Digital Signature Standard (DSS)</title>
    <author >
      <organization>National Institute of Standards and Technology (NIST)</organization>
    </author>
    <date year="2013" month="July"/>
  </front>
  <seriesInfo name="NIST PUB 186-4" value=""/>
</reference>
<reference anchor="X9.62" >
  <front>
    <title>Public Key Cryptography For The Financial Services Industry: The Elliptic Curve Digital Signature Algorithm (ECDSA)</title>
    <author >
      <organization>ANSI</organization>
    </author>
    <date year="1998"/>
  </front>
  <seriesInfo name="ANSI X9.62" value=""/>
</reference>




<reference  anchor="RFC8030" target='https://www.rfc-editor.org/info/rfc8030'>
<front>
<title>Generic Event Delivery Using HTTP Push</title>
<author initials='M.' surname='Thomson' fullname='M. Thomson'><organization /></author>
<author initials='E.' surname='Damaggio' fullname='E. Damaggio'><organization /></author>
<author initials='B.' surname='Raymor' fullname='B. Raymor' role='editor'><organization /></author>
<date year='2016' month='December' />
<abstract><t>This document describes a simple protocol for the delivery of real- time events to user agents.  This scheme uses HTTP/2 server push.</t></abstract>
</front>
<seriesInfo name='RFC' value='8030'/>
<seriesInfo name='DOI' value='10.17487/RFC8030'/>
</reference>



<reference  anchor="RFC2119" target='https://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author initials='S.' surname='Bradner' fullname='S. Bradner'><organization /></author>
<date year='1997' month='March' />
<abstract><t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='2119'/>
<seriesInfo name='DOI' value='10.17487/RFC2119'/>
</reference>



<reference  anchor="RFC8174" target='https://www.rfc-editor.org/info/rfc8174'>
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
<author initials='B.' surname='Leiba' fullname='B. Leiba'><organization /></author>
<date year='2017' month='May' />
<abstract><t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='8174'/>
<seriesInfo name='DOI' value='10.17487/RFC8174'/>
</reference>



<reference  anchor="RFC7519" target='https://www.rfc-editor.org/info/rfc7519'>
<front>
<title>JSON Web Token (JWT)</title>
<author initials='M.' surname='Jones' fullname='M. Jones'><organization /></author>
<author initials='J.' surname='Bradley' fullname='J. Bradley'><organization /></author>
<author initials='N.' surname='Sakimura' fullname='N. Sakimura'><organization /></author>
<date year='2015' month='May' />
<abstract><t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties.  The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t></abstract>
</front>
<seriesInfo name='RFC' value='7519'/>
<seriesInfo name='DOI' value='10.17487/RFC7519'/>
</reference>



<reference  anchor="RFC6454" target='https://www.rfc-editor.org/info/rfc6454'>
<front>
<title>The Web Origin Concept</title>
<author initials='A.' surname='Barth' fullname='A. Barth'><organization /></author>
<date year='2011' month='December' />
<abstract><t>This document defines the concept of an &quot;origin&quot;, which is often used as the scope of authority or privilege by user agents.  Typically, user agents isolate content retrieved from different origins to prevent malicious web site operators from interfering with the operation of benign web sites.  In addition to outlining the principles that underlie the concept of origin, this document details how to determine the origin of a URI and how to serialize an origin into a string.  It also defines an HTTP header field, named &quot;Origin&quot;, that indicates which origins are associated with an HTTP request.   [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='6454'/>
<seriesInfo name='DOI' value='10.17487/RFC6454'/>
</reference>



<reference  anchor="RFC7235" target='https://www.rfc-editor.org/info/rfc7235'>
<front>
<title>Hypertext Transfer Protocol (HTTP/1.1): Authentication</title>
<author initials='R.' surname='Fielding' fullname='R. Fielding' role='editor'><organization /></author>
<author initials='J.' surname='Reschke' fullname='J. Reschke' role='editor'><organization /></author>
<date year='2014' month='June' />
<abstract><t>The Hypertext Transfer Protocol (HTTP) is a stateless application- level protocol for distributed, collaborative, hypermedia information systems.  This document defines the HTTP Authentication framework.</t></abstract>
</front>
<seriesInfo name='RFC' value='7235'/>
<seriesInfo name='DOI' value='10.17487/RFC7235'/>
</reference>



<reference  anchor="RFC7515" target='https://www.rfc-editor.org/info/rfc7515'>
<front>
<title>JSON Web Signature (JWS)</title>
<author initials='M.' surname='Jones' fullname='M. Jones'><organization /></author>
<author initials='J.' surname='Bradley' fullname='J. Bradley'><organization /></author>
<author initials='N.' surname='Sakimura' fullname='N. Sakimura'><organization /></author>
<date year='2015' month='May' />
<abstract><t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures.  Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification.  Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t></abstract>
</front>
<seriesInfo name='RFC' value='7515'/>
<seriesInfo name='DOI' value='10.17487/RFC7515'/>
</reference>



<reference  anchor="RFC7518" target='https://www.rfc-editor.org/info/rfc7518'>
<front>
<title>JSON Web Algorithms (JWA)</title>
<author initials='M.' surname='Jones' fullname='M. Jones'><organization /></author>
<date year='2015' month='May' />
<abstract><t>This specification registers cryptographic algorithms and identifiers to be used with the JSON Web Signature (JWS), JSON Web Encryption (JWE), and JSON Web Key (JWK) specifications.  It defines several IANA registries for these identifiers.</t></abstract>
</front>
<seriesInfo name='RFC' value='7518'/>
<seriesInfo name='DOI' value='10.17487/RFC7518'/>
</reference>



<reference  anchor="RFC6068" target='https://www.rfc-editor.org/info/rfc6068'>
<front>
<title>The 'mailto' URI Scheme</title>
<author initials='M.' surname='Duerst' fullname='M. Duerst'><organization /></author>
<author initials='L.' surname='Masinter' fullname='L. Masinter'><organization /></author>
<author initials='J.' surname='Zawinski' fullname='J. Zawinski'><organization /></author>
<date year='2010' month='October' />
<abstract><t>This document defines the format of Uniform Resource Identifiers (URIs) to identify resources that are reached using Internet mail. It adds better internationalization and compatibility with Internationalized Resource Identifiers (IRIs; RFC 3987) to the previous syntax of 'mailto' URIs (RFC 2368).  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='6068'/>
<seriesInfo name='DOI' value='10.17487/RFC6068'/>
</reference>



<reference  anchor="RFC2818" target='https://www.rfc-editor.org/info/rfc2818'>
<front>
<title>HTTP Over TLS</title>
<author initials='E.' surname='Rescorla' fullname='E. Rescorla'><organization /></author>
<date year='2000' month='May' />
<abstract><t>This memo describes how to use Transport Layer Security (TLS) to secure Hypertext Transfer Protocol (HTTP) connections over the Internet.  This memo provides information for the Internet community.</t></abstract>
</front>
<seriesInfo name='RFC' value='2818'/>
<seriesInfo name='DOI' value='10.17487/RFC2818'/>
</reference>



<reference anchor="WEBPUSH-ENCRYPTION">
<front>
<title>Message Encryption for Web Push</title>

<author initials='M' surname='Thomson' fullname='Martin Thomson'>
    <organization />
</author>

<date month='February' day='13' year='2017' />

<abstract><t>A message encryption scheme is described for the Web Push protocol. This scheme provides confidentiality and integrity for messages sent from an Application Server to a User Agent.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-webpush-encryption-08' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-webpush-encryption-08.txt' />
</reference>



<reference  anchor="RFC7159" target='https://www.rfc-editor.org/info/rfc7159'>
<front>
<title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
<author initials='T.' surname='Bray' fullname='T. Bray' role='editor'><organization /></author>
<date year='2014' month='March' />
<abstract><t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format.  It was derived from the ECMAScript Programming Language Standard.  JSON defines a small set of formatting rules for the portable representation of structured data.</t><t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t></abstract>
</front>
<seriesInfo name='RFC' value='7159'/>
<seriesInfo name='DOI' value='10.17487/RFC7159'/>
</reference>



<reference  anchor="RFC5226" target='https://www.rfc-editor.org/info/rfc5226'>
<front>
<title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
<author initials='T.' surname='Narten' fullname='T. Narten'><organization /></author>
<author initials='H.' surname='Alvestrand' fullname='H. Alvestrand'><organization /></author>
<date year='2008' month='May' />
<abstract><t>Many protocols make use of identifiers consisting of constants and other well-known values.  Even after a protocol has been defined and deployment has begun, new values may need to be assigned (e.g., for a new option type in DHCP, or a new encryption or authentication transform for IPsec).  To ensure that such quantities have consistent values and interpretations across all implementations, their assignment must be administered by a central authority.  For IETF protocols, that role is provided by the Internet Assigned Numbers Authority (IANA).</t><t>In order for IANA to manage a given namespace prudently, it needs guidelines describing the conditions under which new values can be assigned or when modifications to existing values can be made.  If IANA is expected to play a role in the management of a namespace, IANA must be given clear and concise instructions describing that role.  This document discusses issues that should be considered in formulating a policy for assigning values to a namespace and provides guidelines for authors on the specific text that must be included in documents that place demands on IANA.</t><t>This document obsoletes RFC 2434.  This document specifies an Internet Best  Current Practices for the Internet Community, and requests discussion and  suggestions for improvements.</t></abstract>
</front>
<seriesInfo name='RFC' value='5226'/>
<seriesInfo name='DOI' value='10.17487/RFC5226'/>
</reference>



<reference  anchor="RFC7230" target='https://www.rfc-editor.org/info/rfc7230'>
<front>
<title>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</title>
<author initials='R.' surname='Fielding' fullname='R. Fielding' role='editor'><organization /></author>
<author initials='J.' surname='Reschke' fullname='J. Reschke' role='editor'><organization /></author>
<date year='2014' month='June' />
<abstract><t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems.  This document provides an overview of HTTP architecture and its associated terminology, defines the &quot;http&quot; and &quot;https&quot; Uniform Resource Identifier (URI) schemes, defines the HTTP/1.1 message syntax and parsing requirements, and describes related security concerns for implementations.</t></abstract>
</front>
<seriesInfo name='RFC' value='7230'/>
<seriesInfo name='DOI' value='10.17487/RFC7230'/>
</reference>



<reference  anchor="RFC6838" target='https://www.rfc-editor.org/info/rfc6838'>
<front>
<title>Media Type Specifications and Registration Procedures</title>
<author initials='N.' surname='Freed' fullname='N. Freed'><organization /></author>
<author initials='J.' surname='Klensin' fullname='J. Klensin'><organization /></author>
<author initials='T.' surname='Hansen' fullname='T. Hansen'><organization /></author>
<date year='2013' month='January' />
<abstract><t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols.  This memo documents an Internet Best Current Practice.</t></abstract>
</front>
<seriesInfo name='BCP' value='13'/>
<seriesInfo name='RFC' value='6838'/>
<seriesInfo name='DOI' value='10.17487/RFC6838'/>
</reference>




    </references>

    <references title='Informative References'>

<reference anchor="API" target="https://w3c.github.io/push-api/">
  <front>
    <title>Push API</title>
    <author initials="P." surname="Beverloo">
      <organization></organization>
    </author>
    <author initials="M." surname="Thomson">
      <organization></organization>
    </author>
    <author initials="M." surname="van Ouwerkerk">
      <organization></organization>
    </author>
    <author initials="B." surname="Sullivan">
      <organization></organization>
    </author>
    <author initials="E." surname="Fullea">
      <organization></organization>
    </author>
    <date year="2017" month="May"/>
  </front>
</reference>




<reference  anchor="RFC7517" target='https://www.rfc-editor.org/info/rfc7517'>
<front>
<title>JSON Web Key (JWK)</title>
<author initials='M.' surname='Jones' fullname='M. Jones'><organization /></author>
<date year='2015' month='May' />
<abstract><t>A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data structure that represents a cryptographic key.  This specification also defines a JWK Set JSON data structure that represents a set of JWKs.  Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries established by that specification.</t></abstract>
</front>
<seriesInfo name='RFC' value='7517'/>
<seriesInfo name='DOI' value='10.17487/RFC7517'/>
</reference>



<reference  anchor="RFC3339" target='https://www.rfc-editor.org/info/rfc3339'>
<front>
<title>Date and Time on the Internet: Timestamps</title>
<author initials='G.' surname='Klyne' fullname='G. Klyne'><organization /></author>
<author initials='C.' surname='Newman' fullname='C. Newman'><organization /></author>
<date year='2002' month='July' />
</front>
<seriesInfo name='RFC' value='3339'/>
<seriesInfo name='DOI' value='10.17487/RFC3339'/>
</reference>




    </references>



  </back>

<!-- ##markdown-source:
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
gRPBRF5l+MIxh+CrFggv/g+hpxifOU4AAA==

-->

</rfc>

