Internet Engineering Task Force (IETF) M. Thomson
Request for Comments: 8292 Mozilla
Category: Standards Track P. Beverloo
ISSN: 2070-1721 Google
November 2017
Web Pushのための自発的アプリケーションサーバー識別(VAPID)
概要
アプリケーションサーバーは、この文書で説明するVoluntary Application
Server Identification(VAPID)方式を使用して、プッシュサービスに対し
て自発的に自身を識別できる。「vapid」認証方式により、クライアントは、
自身が行うリクエストにおいて、署名付きトークンに自身の識別情報を含
めることができる。その署名は、同じアプリケーションサーバーによって行
われたリクエストを単一の主体に帰属させるために、プッシュサービスに
よって使用できる。この識別情報により、プッシュサービスの運用者はア
プリケーションサーバーの運用者に連絡できる場合がある。この署名は、
プッシュメッセージサブスクリプションの使用を単一のアプリケーション
サーバーに制限するために使用できる。
このメモの位置付け
これはインターネット標準化過程の文書である。
この文書はInternet Engineering Task Force(IETF)の成果物である。
これはIETFコミュニティの合意を表している。公開レビューを受け、
Internet Engineering Steering Group(IESG)によって公開が承認され
ている。インターネット標準に関する詳細情報は、
RFC 7841のSection 2で入手できる。
この文書の現在の状態、正誤表、およびフィードバックの提供方法に関す
る情報は、
https://www.rfc-editor.org/info/rfc8292で入手できる。
Thomson & Beverloo Standards Track [Page 1]
RFC 8292 Web PushのためのVAPID November 2017
Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
目次
1. はじめに ....................................................3
1.1. 自発的識別 ...........................................3
1.2. 表記上の規約 .....................................4
2. アプリケーションサーバーの自己識別 ..........................4
2.1. アプリケーションサーバーの連絡先情報 .....................5
2.2. 追加クレーム ..........................................5
2.3. 暗号学的アジリティ ......................................5
2.4. 例 ....................................................5
3. VAPID認証方式 .....................................6
3.1. トークンパラメーター("t") ..............................7
3.2. 公開鍵パラメーター("k") .................................7
4. サブスクリプション制限 ........................................7
4.1. 制限付きプッシュメッセージサブスクリプションの作成 ............8
4.2. 制限付きサブスクリプションの使用 .............................9
5. セキュリティに関する考慮事項 .........................................9
6. IANAに関する考慮事項 ............................................10
6.1. VAPID認証方式の登録 ..................10
6.2. VAPID認証方式パラメーター ....................10
6.3. application/webpush-options+jsonメディア型登録 ..11
7. 参照文献 .....................................................12
7.1. 規範的参照文献 ......................................12
7.2. 参考参照文献 ....................................14
謝辞 ..................................................14
著者の連絡先 ................................................14
Thomson & Beverloo Standards Track [Page 2]
RFC 8292 Web PushのためのVAPID November 2017
1. はじめに
Web Pushプロトコル [RFC8030] は、アプリケーションサーバーが、プッシュサービスに
プッシュメッセージをユーザーエージェントへ配送するよう要求できる仕組
みを説明している。
想定される配備アーキテクチャの結果として、アプリケーションサーバーが
プッシュメッセージの配送を要求する前に、プッシュサービスに認識される
ための基盤は存在しない。プッシュサービスがアプリケーションサーバーを
認証できることを要求すると、プッシュサービスの最終的な利用者である
ユーザーエージェントとアプリケーションサーバーとの相互作用に、望まれ
ない制約が課される。その制約はまた、このプロトコルが提供するプライバ
シー保護の性質を低下させる。これらの理由により、[RFC8030] は
アプリケーションサーバー認証のための必須システムを定義していない。
[RFC8030] の設計に伴う不幸な結果として、プッシュサービスはサービス
拒否攻撃のリスクによりさらされる。アプリケーションサーバーからのリク
エストは、ユーザーエージェントに間接的に帰属させることができるが、こ
れは常に効率的であるわけでも、十分であるわけでもない。アプリケーショ
ンサーバーに関するより多くの情報をプッシュサービスへ直接提供すること
で、プッシュサービスは正当なリクエストと偽のリクエストをより適切に区
別できる。
さらに、[RFC8030] の設計は、プッシュメッセージサブスクリプション
URIの秘匿性を維持することに依存している。プッシュメッセージサブスク
リプションURIを所有する任意のアプリケーションサーバーは、ユーザーエー
ジェントへメッセージを送信できる。サブスクリプションの使用を単一のア
プリケーションサーバーに限定できれば、プッシュメッセージサブスクリプ
ションURIが権限のない第三者に知られた場合の影響を低減できる。
1.1. 自発的識別
この文書は、アプリケーションサーバーが自身に関する情報をプッシュサー
ビスに自発的に提供できるシステムを説明する。最低限、これはアプリケー
ションサーバーに安定した識別子を提供するが、メールアドレスなどの連絡
先情報も含めることができる。
一貫した識別子は、プッシュサービスがアプリケーションサーバーに対する
振る舞い上の期待を確立するために使用できる。確立された規範からの重大
な逸脱は、例外処理手順を起動するために使用できる。
Thomson & Beverloo Standards Track [Page 3]
RFC 8292 Web PushのためのVAPID November 2017
自発的に提供された連絡先情報は、例外的な状況の場合にアプリケーション
サーバー運用者へ連絡するために使用できる。
プッシュサービス配備の経験から、ソフトウェアエラーまたは通常とは異な
る状況によって、プッシュメッセージ量が大幅に増加することがあると示さ
れている。アプリケーションサーバーの運用者に連絡することは、有益であ
ることが証明されている。
利用可能な連絡先情報がない場合であっても、十分に確立された評判を持つ
アプリケーションサーバーは、プッシュメッセージを破棄するかどうかを選
択する際に、識別されていないアプリケーションサーバーより優先される場
合がある。
1.2. 表記上の規約
この文書におけるキーワード「MUST」、「MUST NOT」、「REQUIRED」、「SHALL」
、「SHALL NOT」、「SHOULD」、「SHOULD NOT」、「RECOMMENDED」、「NOT
RECOMMENDED」、「MAY」、「OPTIONAL」は、ここに示すようにすべて大文字で
出現する場合に限り、BCP 14 [RFC2119] [RFC8174] で説明されている
とおりに解釈される。
「push message」、「push service」、「push message subscription」
、「application server」、「user agent」という用語は、[RFC8030] で定義
されている意味で使用する。
2. アプリケーションサーバーの自己識別
自己識別を希望するアプリケーションサーバーは、署名鍵ペアを生成し、維
持する。この鍵ペアは、P-256曲線上のElliptic Curve Digital Signature
Algorithm(ECDSA)[FIPS186] で使用可能でなければならない(MUST)。プッ
シュメッセージ送信時にこの鍵を使用することで、複数のメッセージにわた
って一貫したアプリケーションサーバーの識別子が確立される。
プッシュメッセージの配送を要求するとき、アプリケーションは、その署名
鍵を使用して署名されたJSON Web Token(JWT)[RFC7519] を含める。このトー
クンは、次のような多数のクレームを含む。
o トークン内の「aud」(Audience)クレームは、プッシュリソースURLの
オリジン([RFC6454]のSection 6.1)のUnicodeシリアル化を含まなけれ
ばならない(MUST)。これにより、トークンは特定のプッシュサービス
に結び付けられ、同じオリジンを共有するすべてのプッシュリソースURL
に対してトークンを再利用できることが保証される。
o 「exp」(Expiry)クレームは、トークンが失効する時刻とともに含めな
ければならない(MUST)。これにより、トークンが有効である期間が制限
される。「exp」クレームは、リクエスト時刻から24時間を超えてはなら
Thomson & Beverloo Standards Track [Page 4]
RFC 8292 Web PushのためのVAPID November 2017
ない(MUST NOT)。これを24時間に制限することで、再利用の必要性と、
有効なトークンの窃取に伴う潜在的なコストおよび可能性との均衡を取
る。
このJWTは、「vapid」の認証方式を使用してAuthorizationヘッダーフィー
ルドに含められる。JWT署名またはそのクレームが無効である場合、プッシュ
サービスは、403(Forbidden)ステータスコード [RFC7231] でリクエスト
を拒否してもよい(MAY)。プッシュサービスは、無効なトークンからの情
報を使用してはならない(MUST NOT)。
JWTはJSON Web Signature(JWS)[RFC7515] を使用しなければならない(MUST)。
署名は、"ES256" [RFC7518] として識別されるNIST P-256曲線上のECDSA
[FIPS186] を使用しなければならない(MUST)。
2.1. アプリケーションサーバーの連絡先情報
アプリケーションサーバーが連絡先詳細を提供したい場合、JWTに「sub」
(Subject)クレームを含めてもよい(MAY)。「sub」クレームは、"mailto:"
(email)[RFC6068] または"https:" [RFC2818] URIのいずれかとして、アプリ
ケーションサーバーの連絡先URIを含めるべきである(SHOULD)。
2.2. 追加クレーム
アプリケーションサーバーは、公開名または私的名を使用して追加クレーム
を含めてもよい(MAY)([RFC7519] のSections 4.2および4.3を参照)。JWT
はヘッダーフィールド内にあるため、追加クレームのサイズは可能な限り小
さく保つべきである(SHOULD)。
2.3. 暗号学的アジリティ
「vapid」HTTP認証方式(Section 3)は、この文書で定義するJWTの特
定のプロファイルを識別するために使用される。署名アルゴリズムまたはそ
の他のパラメーターを更新するには、別の認証方式が必要となる。これによ
り、新しいパラメーター交渉機構を定義するのではなく、認証方式を交渉す
る既存の機構を使用できることが保証される。
2.4. 例
アプリケーションサーバーは、[RFC8030] で説明されているように、プッ
シュメッセージの配送を要求する。アプリケーションサーバーが自己識別を
希望する場合、「vapid」認証方式を使用する資格情報を含むAuthorization
ヘッダーフィールドを含める。
Thomson & Beverloo Standards Track [Page 5]
RFC 8292 Web PushのためのVAPID November 2017
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 }
Figure 1: JWTによるプッシュメッセージ配送の要求
この文書の例示ヘッダーフィールドには、書式上の制約を満たすために余分
な改行が含まれていることに注意。
Authorizationヘッダーフィールドの「t」パラメーターはJWTを含み、「k」
パラメーターはそのトークンに署名したbase64urlエンコード鍵を含む。JWT
入力値と、署名鍵に対応するJSON Web Key(JWK)[RFC7517] を、可読性のた
めに空白を追加してFigure 2に示す。このJWTは2016-01-23T04:36:08Zまで
有効である。
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" }
Figure 2: デコードされた例の値
3. VAPID認証方式
この文書は、"vapid"という名前の新しいHTTP認証方式 [RFC7235] を定義
する。この認証方式は、Section 2で説明されている署名付きJWTと、そのJWT
に署名した鍵を運ぶ。
この認証方式は、オリジンサーバー認証専用である。したがって、この認証
方式はProxy-AuthenticateまたはProxy-Authorizationヘッダーフィールドと
ともに使用してはならない(MUST NOT)。
Thomson & Beverloo Standards Track [Page 6]
RFC 8292 Web PushのためのVAPID November 2017
「vapid」認証方式に対するチャレンジは、"auth-scheme"生成規則のみを含
む。現在、パラメーターは定義されていない。
この認証方式には、「t」と「k」の2つのパラメーターが定義されている。
「vapid」認証資格情報に対する未知または未サポートのすべてのパラメー
ターは無視しなければならない(MUST)。この認証方式では、「realm」パラ
メーターは無視される。
この認証方式は、Web Pushプロトコル [RFC8030] を使用する際に、アプリ
ケーションサーバーによって使用されることを意図している。
3.1. トークンパラメーター("t")
「vapid」認証方式の「t」パラメーターは、Section 2で説明されている
JWTを運ぶ。
3.2. 公開鍵パラメーター("k")
プッシュサービスがJWTを検証できるようにするには、アプリケーションサー
バーの公開鍵を知る必要がある。この情報を運ぶために、「vapid」認証方式
の「k」パラメーターが定義されている。
「k」パラメーターには、base64urlエンコード [RFC7515] を使用してエンコード
された、非圧縮形式 [X9.62] のECDSA公開鍵 [FIPS186] が含まれる。
注記: X9.62エンコードは、2つの理由からJWK [RFC7517] よりも使用される。
JWKには正準形式がないため、X9.62エンコードは、プッシュサービスが
異なるソースからの鍵を比較する処理を容易にする。第二に、X9.62エン
コードはかなり小さい。
一部の楕円曲線実装では、同じP-256鍵を署名と鍵交換の両方に使用できる。
アプリケーションサーバーは、認証トークンの署名と鍵交換 [RFC8291] に
異なる秘密鍵を選択しなければならない(MUST)。プッシュサービスは、す
べてのプッシュメッセージについていずれかのパラメーターを確認する義務
はないが、これらのパラメーターが同一の値を持つプッシュメッセージは、
400(Bad Request)ステータスコードで拒否すべきである(SHOULD)。
4. サブスクリプション制限
アプリケーションサーバーの公開鍵は、そのサーバーの安定した識別子とし
て機能する。この鍵は、プッシュメッセージサブスクリプションを特定のア
プリケーションサーバーに制限するために使用できる。
Thomson & Beverloo Standards Track [Page 7]
RFC 8292 Web PushのためのVAPID November 2017
サブスクリプション制限は、プッシュメッセージの配送を要求するときに、
アプリケーションサーバーが署名付きトークンを提供することを要求するこ
とで、エンドポイントの秘匿性への依存を低減する。これは、プッシュメッ
セージサブスクリプションの詳細が漏えいすることに対して、追加の保護レ
ベルを提供する。
4.1. 制限付きプッシュメッセージサブスクリプションの作成
制限付きサブスクリプションを作成したいユーザーエージェントは、プッシュ
メッセージサブスクリプションの作成を要求するときに、アプリケーション
サーバーの公開鍵を含める。これにより、結果として得られるサブスクリプ
ションの使用は、対応する秘密鍵で署名された有効なJWTを提供できるアプリ
ケーションサーバーに制限される。
その後、ユーザーエージェントは、プッシュメッセージサブスクリプション
を作成するリクエストに公開鍵を追加する。プッシュメッセージサブスクリ
プションリクエストは、本文を含むよう拡張される。リクエストの本文は、
[RFC7159] で説明されているJSONオブジェクトである。ユーザーエージェ
ントは、このJSONオブジェクトに「vapid」メンバーを追加し、そのメンバー
はP-256曲線上の公開鍵を含む。この公開鍵は、非圧縮形式 [X9.62] で
エンコードされ、base64urlエンコード [RFC7515] される。本文のメディア
型は"application/webpush-options+json"に設定される(このメディア型の
登録についてはSection 6.3を参照)。
プッシュサービスは、異なるメディア型を使用するリクエストの本文を無視
しなければならない(MUST)。"application/webpush-options+json"メディア
型については、プッシュサービスは、このオブジェクト上の理解しない任意
のメンバーを無視しなければならない(MUST)。
Figure 3の例は、Figure 1で使用した鍵への制限を示している。書式上の制
約を満たすために、余分な空白が追加されている。
POST /subscribe/ HTTP/1.1
Host: push.example.net
Content-Type: application/webpush-options+json
Content-Length: 104
{ "vapid": "BA1Hxzyi1RUM1b5wjxsn7nGxAszw2u61m164i3MrAIxH
F6YK5h4SDYic-dRuU_RCPCfA5aq9ojSwk5Y2EmClBPs" }
Figure 3: 例示サブスクライブリクエスト
アプリケーションはPush API [API] を使用して、ユーザーエージェント
に公開鍵を提供することがある。
Thomson & Beverloo Standards Track [Page 8]
RFC 8292 Web PushのためのVAPID November 2017
4.2. 制限付きサブスクリプションの使用
プッシュメッセージサブスクリプションがアプリケーションサーバーに制限
されている場合、プッシュメッセージ配送のリクエストは、サブスクリプシ
ョン作成時に使用された公開鍵に対応する秘密鍵で署名されたJWTを含まなけ
ればならない(MUST)。
制限付きプッシュメッセージサブスクリプションに送信されたメッセージが
「vapid」認証を含まない、または無効な「vapid」認証を含む場合、プッシュ
サービスはそのメッセージを拒否しなければならない(MUST)。認証がない
場合は401(Unauthorized)ステータスコードが使用されることがあり、認証
が無効である場合は403(Forbidden)ステータスコードが使用されることが
ある。
次の場合、「vapid」認証は無効である。
o 認証トークンまたは公開鍵のいずれかがリクエストに含まれていない。
o JWT上の署名を、含まれる公開鍵を使用して正常に検証できない。
o 現在時刻が「exp」(Expiry)クレームで識別される時刻より後である、
または失効時刻の24時間より前である。
o プッシュリソースのオリジンが「aud」(Audience)クレームに含まれて
いない。
o JWTの署名に使用された公開鍵が、プッシュメッセージサブスクリプショ
ン作成時に含められたものと一致しない。
プッシュサービスは、プッシュメッセージを配送するとき、JWTまたは公開鍵
をユーザーエージェントに転送してはならない(MUST NOT)。
署名鍵を置き換える必要があるアプリケーションサーバーは、更新された鍵
に制限される新しいサブスクリプションの作成を、ユーザーエージェントに
要求する必要がある。アプリケーションサーバーは、サブスクリプション作
成を要求したときに使用された鍵を記憶する必要がある。
5. セキュリティに関する考慮事項
攻撃者が有効なJWTを取得できる場合、この認証方式はリプレイ攻撃に対し
て脆弱である。[RFC8030] で要求されるようにHTTPSを使用してリクエストを
送信することで、機密性が提供される。さらに、再利用可能なトークンを再
利用できる期間に狭い制限を適用することで、盗まれたトークンの攻撃者に
とっての潜在的価値を制限し、トークンの窃取を困難にできる。
Thomson & Beverloo Standards Track [Page 9]
RFC 8292 Web PushのためのVAPID November 2017
アプリケーションサーバーは、偽の連絡先情報を提供する場合がある。アプ
リケーションサーバーは、その主張を裏付ける証拠なしに、自身のメールア
ドレスまたは連絡先URIを主張する。プッシュサービス運用者は、検証されて
いない連絡先情報の存在を、セキュリティ上重要な意思決定プロセスへの入
力として使用することはできない。
JWT上の署名の検証には、少なくない量の計算が必要となる。サービス拒否
攻撃の状況下で正当なリクエストを識別するために使用される可能性がある
ものとしては、これは理想的ではない。そのため、アプリケーションサーバー
には、トークンを再利用することが推奨される。これにより、プッシュサー
ビスは署名検証の結果をキャッシュできる。
署名鍵を変更するアプリケーションサーバーは、異なる鍵の下で送信するプッ
シュメッセージ間のリンク可能性を壊す。アプリケーションサーバーに対し
て一貫した識別子に依存するプッシュサービスは、新しい鍵で行われたリク
エストを異なるように分類する場合がある。新しい署名鍵への段階的な移行
により、新しい鍵を使用するリクエストが濫用として分類される可能性を低
減できる。
6. IANAに関する考慮事項
この文書は、新しい認証方式、その方式のパラメーター用レジストリ、およ
びプッシュオプション用メディア型を登録する。
6.1. VAPID認証方式の登録
この文書は、[RFC7235] によって確立された「Hypertext Transfer Protocol
(HTTP) Authentication Scheme Registry」に「vapid」認証方式を登録する。
Authentication Scheme Name: vapid
Pointer to specification text: この文書のSection 3
6.2. VAPID認証方式パラメーター
この文書は、「vapid」認証方式のパラメーター用に「VAPID Authentication
Scheme Parameters」レジストリを作成する。これらのパラメーターは、リ
クエスト(Authorizationヘッダーフィールド内)およびチャレンジ
(WWW-Authenticateヘッダーフィールド内)で使用するために定義される。
このレジストリは「Web Push Parameters」グループ配下にある。このレジス
トリは「Specification Required」ポリシー [RFC8126] で運用される。
Thomson & Beverloo Standards Track [Page 10]
RFC 8292 Web PushのためのVAPID November 2017
登録には、次の情報を含めなければならない(MUST)。
Parameter Name: パラメーターの名前。これは「token」文法 [RFC7230] に
適合する。
Purpose (optional): パラメーターの目的を識別する短いテキスト。
Header Field(s): パラメーターを使用できるヘッダーフィールド。
Specification: パラメーターの形式および意味論を定義する仕様へのリン
ク。
このレジストリは当初、次のエントリーを含む。
+-------------+------------------+---------------+------------------+
| Parameter | Purpose | Header | Specification |
| Name | | Field(s) | |
+-------------+------------------+---------------+------------------+
| t | JWT | Authorization | [RFC8292], |
| | authentication | | Section 3.1 |
| | token | | |
| | | | |
| k | signing key | Authorization | [RFC8292], |
| | | | Section 3.2 |
+-------------+------------------+---------------+------------------+
6.3. application/webpush-options+jsonメディア型登録
この文書は、[RFC6838] で説明されているプロセスに従って、
"application/webpush-options+json"メディア型を「Media Types」レジスト
リに登録する。
Type name: application
Subtype name: webpush-options+json
Required parameters: なし
Optional parameters: なし
Encoding considerations: binary(JSONはUTF-8でエンコードされたテキスト)
Security considerations: JSONに固有のセキュリティに関する考慮事項につ
いては [RFC7159] を参照。
Thomson & Beverloo Standards Track [Page 11]
RFC 8292 Web PushのためのVAPID November 2017
Interoperability considerations: JSONに固有の相互運用性に関する考慮事項
については [RFC7159] を参照。
Published specification: [RFC8292]
Applications that use this media type: Web Pushプロトコル [RFC8030] を介し
たWebブラウザー。
Fragment identifier considerations: なし
Additional information:
Deprecated alias names for this type: n/a
Magic number(s): n/a
File extension(s): .json
Macintosh file type code(s): TEXT
Person & email address to contact for further information: Martin
Thomson (martin.thomson@gmail.com)
Intended usage: LIMITED USE
Restrictions on usage: Web Pushプロトコル [RFC8030] での使用に限定。
Author: [RFC8292] の「Authors' Addresses」セクションを参照。
Change controller: Internet Engineering Task Force
7. 参照文献
7.1. 規範的参照文献
[FIPS186] National Institute of Standards and Technology (NIST),
"Digital Signature Standard (DSS)", FIPS PUB 186-4,
DOI 10.6028/NIST.FIPS.186-4, July 2013.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818,
DOI 10.17487/RFC2818, May 2000,
<https://www.rfc-editor.org/info/rfc2818>.
Thomson & Beverloo Standards Track [Page 12]
RFC 8292 Web PushのためのVAPID November 2017
[RFC6068] Duerst, M., Masinter, L., and J. Zawinski, "The 'mailto'
URI Scheme", RFC 6068, DOI 10.17487/RFC6068, October 2010,
<https://www.rfc-editor.org/info/rfc6068>.
[RFC6454] Barth, A., "The Web Origin Concept", RFC 6454,
DOI 10.17487/RFC6454, December 2011,
<https://www.rfc-editor.org/info/rfc6454>.
[RFC6838] Freed, N., Klensin, J., and T. Hansen, "Media Type
Specifications and Registration Procedures", BCP 13,
RFC 6838, DOI 10.17487/RFC6838, January 2013,
<https://www.rfc-editor.org/info/rfc6838>.
[RFC7159] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data
Interchange Format", RFC 7159, DOI 10.17487/RFC7159, March
2014, <https://www.rfc-editor.org/info/rfc7159>.
[RFC7230] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer
Protocol (HTTP/1.1): Message Syntax and Routing",
RFC 7230, DOI 10.17487/RFC7230, June 2014,
<https://www.rfc-editor.org/info/rfc7230>.
[RFC7231] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer
Protocol (HTTP/1.1): Semantics and Content", RFC 7231,
DOI 10.17487/RFC7231, June 2014,
<https://www.rfc-editor.org/info/rfc7231>.
[RFC7235] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer
Protocol (HTTP/1.1): Authentication", RFC 7235,
DOI 10.17487/RFC7235, June 2014,
<https://www.rfc-editor.org/info/rfc7235>.
[RFC7515] Jones, M., Bradley, J., and N. Sakimura, "JSON Web
Signature (JWS)", RFC 7515, DOI 10.17487/RFC7515, May
2015, <https://www.rfc-editor.org/info/rfc7515>.
[RFC7518] Jones, M., "JSON Web Algorithms (JWA)", RFC 7518,
DOI 10.17487/RFC7518, May 2015,
<https://www.rfc-editor.org/info/rfc7518>.
[RFC7519] Jones, M., Bradley, J., and N. Sakimura, "JSON Web Token
(JWT)", RFC 7519, DOI 10.17487/RFC7519, May 2015,
<https://www.rfc-editor.org/info/rfc7519>.
[RFC8030] Thomson, M., Damaggio, E., and B. Raymor, Ed., "Generic
Event Delivery Using HTTP Push", RFC 8030,
DOI 10.17487/RFC8030, December 2016,
<https://www.rfc-editor.org/info/rfc8030>.
Thomson & Beverloo Standards Track [Page 13]
RFC 8292 Web PushのためのVAPID November 2017
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for
Writing an IANA Considerations Section in RFCs", BCP 26,
RFC 8126, DOI 10.17487/RFC8126, June 2017,
<https://www.rfc-editor.org/info/rfc8126>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8291] Thomson, M., "Message Encryption for Web Push", RFC 8291,
DOI 10.17487/RFC8291, November 2017,
<http://www.rfc-editor.org/info/rfc8291>.
[X9.62] ANSI, "Public Key Cryptography for the Financial Services
Industry: the Elliptic Curve Digital Signature Algorithm
(ECDSA)", ANSI X9.62, 2005.
7.2. 参考参照文献
[API] Beverloo, P., Thomson, M., van Ouwerkerk, M., Sullivan,
B., and E. Fullea, "Push API", October 2017,
<https://www.w3.org/TR/push-api/>.
[RFC7517] Jones, M., "JSON Web Key (JWK)", RFC 7517,
DOI 10.17487/RFC7517, May 2015,
<https://www.rfc-editor.org/info/rfc7517>.
謝辞
この文書は、Benjamin Bangert、JR Conlin、Chris Karlof、Costin
Manolache、Adam Roach、およびその他の貢献がなければ、現在よりはるかに
悪いものになっていただろう。
著者の連絡先
Martin Thomson
Mozilla
Email: martin.thomson@gmail.com
Peter Beverloo
Google
Email: beverloo@google.com
Thomson & Beverloo Standards Track [Page 14]