Skip to content

JWK Thumbprint URI

Internet Engineering Task Force (IETF)                          M. Jones
Request for Comments: 9278                                     K. Yasuda
Category: Standards Track                                      Microsoft
ISSN: 2070-1721                                              August 2022

Abstract

この仕様は、JSON Web Key (JWK) Thumbprint の値を表す一種のURIを登録する。JWK Thumbprints は RFC 7638 で定義されている。これにより、JWK Thumbprints を、たとえば URI を必要とする文脈における鍵識別子として利用できるようになる。

Status of This Memo

これは Internet Standards Track の文書である。

この文書は Internet Engineering Task Force (IETF) の成果物である。IETFコミュニティの合意を表している。公開レビューを受け、Internet Engineering Steering Group (IESG) により公開承認されている。Internet Standards に関する追加情報は RFC 7841 の Section 2 にある。

この文書の現在のステータス、正誤表(errata)、および本書へのフィードバック提供方法に関する情報は、以下から入手できる。\ https://www.rfc-editor.org/info/rfc9278.

Copyright (c) 2022 IETF Trust and the persons identified as the\ document authors. All rights reserved.

この文書は、発行日に有効な BCP 78 および IETF Trust の「IETF文書に関する法的規定」\ (https://trustee.ietf.org/license-info) の対象である。これらの文書には、本書に関するあなたの権利と制約が記載されているため、注意深く確認してほしい。この文書から抽出されたコードコンポーネントには、Trust の法的規定の Section 4.e に記載されている Revised BSD License の本文を含めなければならず、また Revised BSD License に記載のとおり、保証なしで提供される。

Table of Contents

1. Introduction

A JSON Web Key (JWK) Thumbprint [RFC7638] は、JWK [RFC7517] に対するハッシュ値をURL安全な形式で表したものである。この仕様は、接頭辞に続くURI部分が JWK Thumbprint であることを示すURI接頭辞を定義する。これにより、特定の JSON Web Token (JWT) [RFC7519] の claims に含める場合を含め、URI を必要とする文脈で JWK Thumbprints を伝達できるようになる。

JWK Thumbprint URI は、識別子が URI であることを要する文脈における、subject identifier の一種として [SIOPv2] 仕様で使用されている。この場合、subject identifier は JWK として表現された公開鍵から導出される。識別子を JWK Thumbprint URI として表すことで、Decentralized Identifiers (DIDs) [DID-Core] のように同じくURIである他種の識別子と、この種の識別子を区別できるようになる。

2. Requirements Notation and Conventions

本文書中のキーワード "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",\ "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", および\ "OPTIONAL" は、ここに示すようにすべて大文字で記載される場合、そしてその場合に限り、\ BCP 14 [RFC2119] [RFC8174] に記載のとおりに解釈される。

3. JWK Thumbprint URI

次のURI接頭辞は、接頭辞に続くURI部分が JWK Thumbprint であることを示すために定義される。

urn:ietf:params:oauth:jwk-thumbprint

URI 内で使用されるハッシュアルゴリズムを明示するため、接頭辞の後にハッシュアルゴリズム識別子と JWK Thumbprint 値を続け、それぞれをコロンで区切って、JWK Thumbprint を表すURIを構成する。

4. Hash Algorithms Identifier

JWK Thumbprint URI で使用するハッシュアルゴリズム識別子は、IANA の "Named Information\ Hash Algorithm Registry" [IANA.Hash.Algorithms] にある "Hash Name String" 列の値でなければならない(MUST)。このレジストリに見つからないハッシュアルゴリズム識別子を持つ JWK Thumbprint URI は有効とはみなされず、アプリケーションは(発生した場合に)この誤りを検出して処理する必要がある。

5. Mandatory to Implement Hash Algorithm

実装間の相互運用性を促進するため、SHA-256 ハッシュアルゴリズムは実装必須である。

6. Example JWK Thumbprint URI

[RFC7638] の Section 3.1 には、次の例の JWK Thumbprint 値が含まれている。

NzbLsXh8uDCcd-6MNwXF4W_7noWXFZAfHkxZsRGC9Xs

上記の JWK Thumbprint と SHA-256 ハッシュアルゴリズムを用いた完全な JWK Thumbprint URI は次のとおりである。

urn:ietf:params:oauth:jwk-thumbprint:sha-256:NzbLsXh8uDCcd-
6MNwXF4W_7noWXFZAfHkxZsRGC9Xs

7. Security Considerations

この仕様を使用する際には、[RFC7638] の security considerations も適用される。

7.1. Multiple Public Keys per Private Key

同一の秘密鍵に対応する公開鍵が複数存在する暗号アルゴリズムがある。[RFC7748] の security considerations では、次のように説明されている。

|  これらの曲線を使用する設計者は、各公開鍵に対して、その公開鍵と等価な(すなわち同じ共有秘密を生成する)公開鍵が複数あり、かつそれらが公開情報だけで計算できることを理解しておくべきである。
|  したがって、公開鍵を識別子として用い、共有秘密の知識を所有の証明として用いる(鍵導出に公開鍵を含めない)ことは、微妙な脆弱性を招く可能性がある。

識別子として公開鍵を用いる際のこの注意点は、識別子として使用される JWK Thumbprint URI にも同様に当てはまる。JWK Thumbprint URI が実際に使用された公開鍵に対応することを確実にするための推奨される方法は、正しい公開鍵を含むメッセージを秘密鍵で署名することである。この署名付きメッセージには JWK Thumbprint URI も含めることができる(ただし定義上、それは公開鍵から直接計算することもできる)。

8. IANA Considerations

8.1. OAuth URI Registration

この仕様は、[RFC6755] により確立された IANA の "OAuth URI" レジストリ [IANA.OAuth.Parameters] に、次の値を登録する。

8.1.1. Registry Contents

URN: urn:ietf:params:oauth:jwk-thumbprint

Common Name: JWK Thumbprint URI

Change controller: IESG

Specification Document: RFC 9278

9. References

9.1. Normative References

[IANA.OAuth.Parameters]\ IANA, "OAuth Parameters",\ http://www.iana.org/assignments/oauth-parameters.

[RFC2119] Bradner, S., "RFCで要求レベルを示すために用いるキーワード",\ BCP 14, RFC 2119,\ DOI 10.17487/RFC2119, March 1997,\ https://www.rfc-editor.org/info/rfc2119.

[RFC7638] Jones, M. and N. Sakimura, "JSON Web Key (JWK)\ Thumbprint", RFC 7638, DOI 10.17487/RFC7638, September\ 2015, https://www.rfc-editor.org/info/rfc7638.

[RFC8174] Leiba, B., "RFC 2119 のキーワードにおける大文字と小文字の曖昧さ",\ BCP 14, RFC 8174, DOI 10.17487/RFC8174,\ May 2017, https://www.rfc-editor.org/info/rfc8174.

9.2. Informative References

[DID-Core] Sporny, M., Guy, A., Sabadello, M., and D. Reed,\ "Decentralized Identifiers (DIDs) v1.0", August 2021,\ https://www.w3.org/TR/2021/PR-did-core-20210803/.

[IANA.Hash.Algorithms]\ IANA, "Named Information Hash Algorithm Registry",\ https://www.iana.org/assignments/named-information.

[RFC6755] Campbell, B. and H. Tschofenig, "OAuth のための IETF URN サブ名前空間",\ RFC 6755, DOI 10.17487/RFC6755, October 2012,\ https://www.rfc-editor.org/info/rfc6755.

[RFC7517] Jones, M., "JSON Web Key (JWK)", RFC 7517,\ DOI 10.17487/RFC7517, May 2015,\ https://www.rfc-editor.org/info/rfc7517.

[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.

[RFC7748] Langley, A., Hamburg, M., and S. Turner, "セキュリティのための楕円曲線",\ RFC 7748, DOI 10.17487/RFC7748, January\ 2016, https://www.rfc-editor.org/info/rfc7748.

[SIOPv2] Yasuda, K., Jones, M., and T. Lodderstedt, "Self-Issued\ OpenID Provider v2", June 2022, https://openid.net/specs/\ openid-connect-self-issued-v2-1_0.html.

Acknowledgements

この仕様のユースケースは、OpenID Foundation の OpenID Connect Working Group で策定された。具体的には、[SIOPv2] 仕様において鍵識別子として使用されている。

また、次の個人がこの仕様の作成に貢献した: John Bradley, Scott Bradner, Brian Campbell, Roman\ Danyliw, Vladimir Dzhuvinov, Lars Eggert, Warren Kumari, Adam Lemmon,\ Neil Madden, James Manger, Francesca Palombini, Aaron Parecki,\ Gonzalo Salgueiro, Rifaat Shekh-Yusef, Robert Sparks, David Waite,\ Robert Wilton, and Paul Wouters.

Authors' Addresses

Michael B. Jones\ Microsoft\ Email: mbj@microsoft.com\ URI: https://self-issued.info/

Kristina Yasuda\ Microsoft\ Email: kryasuda@microsoft.com\ URI: https://twitter.com/kristinayasuda