[要約] この仕様は、CBOR Object Signing and Encryption (COSE) Key上でハッシュ値を計算する方法を定義しています。COSE Key構造内のどのフィールドが暗号ハッシュ計算に含まれるか、これらのフィールドの正準表現を作成するプロセス、および結果のバイトシーケンスをハッシュする方法が指定されています。"サムプリント"と呼ばれる結果のハッシュ値は、対応するキーを識別または選択するために使用できます。
Internet Engineering Task Force (IETF) K. Isobe
Request for Comments: 9679 SECOM CO., LTD.
Category: Standards Track H. Tschofenig
ISSN: 2070-1721 H-BRS
O. Steele
Transmute
December 2024
This specification defines a method for computing a hash value over a CBOR Object Signing and Encryption (COSE) Key. It specifies which fields within the COSE Key structure are included in the cryptographic hash computation, the process for creating a canonical representation of these fields, and how to hash the resulting byte sequence. The resulting hash value, referred to as a "thumbprint", can be used to identify or select the corresponding key.
この仕様では、CBORオブジェクトの署名と暗号化(COSE)キーでハッシュ値を計算する方法を定義します。COSEキー構造内のどのフィールドが暗号化ハッシュ計算に含まれているか、これらのフィールドの標準表現を作成するプロセス、および結果のバイトシーケンスをハッシュする方法を指定します。「thumbprint」と呼ばれる結果のハッシュ値は、対応するキーを識別または選択するために使用できます。
This is an Internet Standards Track document.
これは、インターネット標準トラックドキュメントです。
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841.
このドキュメントは、インターネットエンジニアリングタスクフォース(IETF)の製品です。IETFコミュニティのコンセンサスを表しています。公開レビューを受けており、インターネットエンジニアリングステアリンググループ(IESG)からの出版が承認されています。インターネット標準の詳細については、RFC 7841のセクション2で入手できます。
Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at https://www.rfc-editor.org/info/rfc9679.
このドキュメントの現在のステータス、任意のERRATA、およびそのフィードバックを提供する方法に関する情報は、https://www.rfc-editor.org/info/rfc9679で取得できます。
Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved.
著作権(c)2024 IETF Trustおよび文書著者として特定された人。無断転載を禁じます。
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 Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.
このドキュメントは、BCP 78およびIETFドキュメント(https://trustee.ietf.org/license-info)に関連するIETF Trustの法的規定の対象となります。この文書に関するあなたの権利と制限を説明するので、これらの文書を注意深く確認してください。このドキュメントから抽出されたコードコンポーネントには、セクション4.Eで説明されている法的規定のセクション4.Eで説明されており、改訂されたBSDライセンスで説明されている保証なしで提供されるように、改訂されたBSDライセンステキストを含める必要があります。
1. Introduction
2. Terminology
3. COSE Key Thumbprint
4. Required COSE Key Parameters
4.1. Octet Key Pair (OKP)
4.2. Elliptic Curve Keys with X- and Y-Coordinates
4.3. RSA Public Keys
4.4. Symmetric Keys
4.5. HSS-LMS Keys
4.6. Others
5. Miscellaneous Considerations
5.1. Why Not Include Optional COSE Key Parameters?
5.2. Selection of Hash Function
5.3. Thumbprints of Keys Not in COSE Key Format
5.4. Relationship to Digests of X.509 Values
5.5. Relationship to JSON Web Key Thumbprints
5.6. Confirmation Method
5.7. COSE Key Thumbprint URIs
6. Example
7. Security Considerations
8. IANA Considerations
9. References
9.1. Normative References
9.2. Informative References
Acknowledgements
Authors' Addresses
This specification defines a method for applying a cryptographic hash function to a CBOR Object Signing and Encryption (COSE) Key structure [RFC9052], resulting in a hash value known as a "thumbprint". To achieve this, the document specifies which fields in the COSE Key structure are included in the hash computation, the process for creating a canonical form of these fields, and how to hash the resulting byte sequence. One of the primary use cases for this thumbprint is as a naming scheme for identifying or selecting the key, such as by using the COSE Key Thumbprint value as a "kid" (key ID). Another key use case involves key derivation functions that use the thumbprints of public keys from the endpoints, along with other application context, to derive a symmetric key.
この仕様は、暗号化ハッシュ関数をCBORオブジェクトの署名および暗号化(COSE)キー構造[RFC9052]に適用する方法を定義し、「サムプリント」として知られるハッシュ値をもたらします。これを実現するために、ドキュメントは、COSEキー構造のどのフィールドがハッシュ計算に含まれているか、これらのフィールドの標準形式を作成するプロセス、および結果のバイトシーケンスをハッシュする方法を指定します。このサムプリントの主要なユースケースの1つは、COSEキーサムプリント値を「KID」(キーID)として使用するなど、キーを識別または選択するための命名スキームとしてです。別のキーユースケースには、対称キーを導出するために、エンドポイントからのパブリックキーのサムプリントを他のアプリケーションコンテキストとともに使用するキー派生関数が含まれます。
This specification outlines how thumbprints of COSE Keys are generated for both asymmetric and symmetric keys (see Sections 3 and 4). Additionally, it introduces a new CBOR Web Token (CWT) confirmation method, which has been added to the IANA "CWT Confirmation Methods" registry established by [RFC8747]. For further details on the use of a confirmation claim in a CWT with a proof-of-possession key, refer to Section 3.1 of [RFC8747].
この仕様では、非対称キーと対称キーの両方に対して、COSEキーのサムプリントがどのように生成されるかを概説しています(セクション3および4を参照)。さらに、[RFC8747]によって確立されたIANA「CWT確認方法」レジストリに追加された新しいCBOR Webトークン(CWT)確認方法を導入します。Proof-ofsessionキーを備えたCWTでの確認請求の使用の詳細については、[RFC8747]のセクション3.1を参照してください。
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 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.
「必須」、「必要」、「必須」、「shall」、「shall」、「suff」、 "not"、 "becommended"、 "becommented"、 "may"、 "optional「このドキュメントでは、BCP 14 [RFC2119] [RFC8174]で説明されているように解釈されます。
The thumbprint of a COSE Key MUST be computed as follows:
COSEキーのサムプリントは、次のように計算する必要があります。
1. Construct a COSE_Key structure (see Section 7 of [RFC9052]) containing only the required parameters representing the key as described in Section 4 of this document.
1. このドキュメントのセクション4で説明されているように、キーを表す必要なパラメーターのみを含む、COSE_KEY構造([RFC9052]のセクション7を参照)を作成します。
2. Apply the deterministic encoding described in Section 4.2.1 of [RFC8949] to the representation constructed in step 1.
2. [RFC8949]のセクション4.2.1で説明されている決定論的エンコードを、ステップ1で構築された表現に適用します。
3. Hash the bytes produced in step 2 with a cryptographic hash function H. For example, SHA-256 [RFC6234] may be used as a hash function.
3. ハッシュステップ2で作成されたバイトは暗号化ハッシュ関数Hを使用します。たとえば、SHA-256 [RFC6234]はハッシュ関数として使用できます。
The details of this computation are further described in subsequent sections.
この計算の詳細については、後続のセクションでさらに説明します。
The SHA-256 hash algorithm MUST be supported; other algorithms MAY be supported.
SHA-256ハッシュアルゴリズムをサポートする必要があります。他のアルゴリズムがサポートされる場合があります。
Only the required parameters of a key's representation are used when computing its COSE Key Thumbprint value. This section summarizes the required parameters.
COSEキーサムプリント値を計算するときに、キーの表現の必要なパラメーターのみが使用されます。このセクションでは、必要なパラメーターを要約します。
The "kty" (label: 1) element MUST be present for all key types, and the integer value specified in the IANA "COSE Key Types" registry MUST be used. The tstr data type is not used with the "kty" element.
「KTY」(ラベル:1)要素はすべてのキータイプに存在する必要があり、IANA「COSEキータイプ」レジストリで指定された整数値を使用する必要があります。TSTRデータ型は、「kty」要素では使用されません。
Many COSE Key parameters are specific to the chosen key type. The following subsections list the required parameters for commonly used key types.
多くのCOSEキーパラメーターは、選択したキータイプに固有です。次のサブセクションには、一般的に使用されるキータイプに必要なパラメーターがリストされています。
The required parameters for elliptic curve public keys that use the Octet Key Pair (OKP) key type, such as X25519, are:
x25519などのOctetキーペア(OKP)キータイプを使用する楕円曲線パブリックキーに必要なパラメーターは次のとおりです。
* "kty" (label: 1, data type: int, value: 1)
* 「kty」(ラベル:1、データ型:int、値:1)
* "crv" (label: -1, value: int)
* 「CRV」(ラベル:-1、値:int)
* "x" (label: -2, value: bstr)
* "x"(ラベル:-2、値:BSTR)
Further details are described in Section 7.1 of [RFC9053].
詳細については、[RFC9053]のセクション7.1で説明します。
The required parameters for elliptic curve public keys that use the EC2 key type, such as NIST P-256, are:
NIST P-256などのEC2キータイプを使用する楕円曲線パブリックキーに必要なパラメーターは次のとおりです。
* "kty" (label: 1, data type: int, value: 2)
* 「Kty」(ラベル:1、データ型:int、値:2)
* "crv" (label: -1, data type: int)
* 「CRV」(ラベル:-1、データ型:int)
* "x" (label: -2, data type: bstr)
* 「x」(ラベル:-2、データ型:BSTR)
* "y" (label: -3, data type: bstr)
* 「Y」(ラベル:-3、データ型:BSTR)
Further details are described in Section 7.1 of [RFC9053].
詳細については、[RFC9053]のセクション7.1で説明します。
Note: [RFC9052] supports both compressed and uncompressed point representations. For interoperability, implementations adhering to this specification MUST use the uncompressed point representation. Therefore, the y-coordinate is expressed as a bstr. If an implementation uses the compressed point representation, it MUST first convert it to the uncompressed form for the purpose of thumbprint calculation.
注:[RFC9052]は、圧縮ポイント表現と非圧縮点表現の両方をサポートしています。相互運用性のために、この仕様に準拠した実装は、圧縮されていない点表現を使用する必要があります。したがって、Y座標はBSTRとして表されます。実装が圧縮されたポイント表現を使用する場合、最初にthumbprint計算を目的として非圧縮フォームに変換する必要があります。
The required parameters for an RSA public key are:
RSA公開キーに必要なパラメーターは次のとおりです。
* "kty" (label: 1, data type: int, value: 3)
* 「kty」(ラベル:1、データ型:int、値:3)
* "n" (label: -1, data type: bstr)
* 「n」(ラベル:-1、データ型:BSTR)
* "e" (label: -2, data type: bstr)
* 「E」(ラベル:-2、データ型:BSTR)
The required parameters for a symmetric key are:
対称キーに必要なパラメーターは次のとおりです。
* "kty" (label: 1, data type: int, value: 4)
* 「Kty」(ラベル:1、データ型:int、値:4)
* "k" (label: -1, data type: bstr)
* 「K」(ラベル:-1、データ型:BSTR)
The required parameters for HSS-LMS keys are:
HSS-LMSキーに必要なパラメーターは次のとおりです。
* "kty" (label: 1, data type: int, value: 5)
* 「kty」(ラベル:1、データ型:int、値:5)
* "pub" (label: -1, data type: bstr)
* 「パブ」(ラベル:-1、データ型:BSTR)
As other key type values are defined, their defining specifications should be similarly consulted to determine which parameters, in addition to the "kty" element, are required.
他のキータイプの値が定義されているため、「kty」要素に加えて、どのパラメーターが必要かを決定するために、それらの定義仕様を同様に相談する必要があります。
Optional parameters of COSE Keys are intentionally not included in the COSE Key Thumbprint computation so that their absence or presence in the COSE Key does not alter the resulting value. The COSE Key Thumbprint is a digest of the ordered essential parameters needed to represent a COSE Key, with all other parameters excluded.
COSEキーのオプションのパラメーターは、COSEキーのキーのサムプリント計算に意図的に含まれていないため、COSEキーに不在または存在しても、結果の値が変わりません。COSEキーサムプリントは、COSEキーを表すために必要な順序付けられた必須パラメーターのダイジェストであり、他のすべてのパラメーターは除外されています。
By excluding optional parameters, the COSE Key Thumbprint consistently refers to the key itself, not to a key with additional attributes. Different application contexts may include various optional attributes in the COSE Key structure. If these optional parameters were included in the thumbprint calculation, the resulting values could differ for the same key depending on the attributes present. Including only the required parameters ensures that the COSE Key Thumbprint remains consistent for a given key, regardless of any additional attributes.
オプションのパラメーターを除外することにより、COSEキーサムプリントは、追加の属性を持つキーではなく、一貫してキー自体を指します。さまざまなアプリケーションコンテキストには、COSEキー構造にさまざまなオプションの属性が含まれる場合があります。これらのオプションのパラメーターがThumbprint計算に含まれている場合、結果の値は、存在する属性に応じて同じキーで異なる可能性があります。必要なパラメーターのみを含めることにより、追加の属性に関係なく、COSEキーのサムプリントが特定のキーについて一貫性を維持することが保証されます。
Different kinds of thumbprints could be defined by other specifications that might include some or all additional COSE Key parameters, if use cases arise where such different kinds of thumbprints would be useful.
このような異なる種類のサムプリントが役立つ場合にユースケースが発生した場合、一部またはすべての追加のCOSEキーパラメーターを含む可能性のある他の仕様によって、さまざまな種類のサムプリントを定義できます。
A specific hash function must be chosen by an application to compute the hash value of the hash input. For instance, SHA-256 [RFC6234] may be used as the hash function. While SHA-256 is a good default choice at the time of writing, the preferred hash function may evolve as the cryptographic landscape develops.
ハッシュ入力のハッシュ値を計算するために、特定のハッシュ関数をアプリケーションで選択する必要があります。たとえば、SHA-256 [RFC6234]はハッシュ関数として使用できます。SHA-256は、執筆時点では優れたデフォルトの選択肢ですが、暗号化の景観が発生するにつれて好ましいハッシュ関数が進化する可能性があります。
In many cases, only the party that generates the key needs to be aware of the hash function used. For example, the key producer might use the thumbprint value as a "kid" (key ID). In such scenarios, the consumer of the "kid" treats it as an opaque value solely for key selection.
多くの場合、キーを生成する当事者のみが、使用されるハッシュ関数を認識する必要があります。たとえば、キープロデューサーは、Thumbprint値を「KID」(キーID)として使用する場合があります。このようなシナリオでは、「子供」の消費者は、それを重要な選択のためだけに不透明な価値として扱います。
However, when multiple parties are involved in reproducing and comparing the COSE Key Thumbprint, it is crucial that they know and use the same hash function to ensure consistent results.
ただし、複数の当事者がCOSEキーサムプリントの再現と比較に関与している場合、同じハッシュ関数を知って使用して一貫した結果を確保することが重要です。
Keys that are in other formats can be represented as COSE Keys. The only prerequisites are that the COSE_Key representation of the key be defined and the party creating the COSE Key Thumbprint be in possession of the necessary key material.
他の形式のキーは、COSEキーとして表すことができます。唯一の前提条件は、キーのCOSE_KEY表現が定義され、COSEキーサムプリントを作成するパーティーが必要なキー資料を所有していることです。
COSE Key Thumbprint values are computed on the COSE Key object containing only essential parameters in a specific order. Thus, they are more analogous to applications that use digests of X.509 Subject Public Key Info (SPKI) values, which are defined in Section 4.1.2.7 of [RFC5280], than to applications that use digests of complete certificate values, as the "x5t" (X.509 certificate SHA-1 thumbprint) [RFC9360] value defined for X.509 certificate objects does. While logically equivalent to a digest of the SPKI representation of the key, a COSE Key Thumbprint is computed over the CBOR representation of that key rather than over an ASN.1 representation of it.
COSEキーサムプリント値は、特定の順序で重要なパラメーターのみを含むCOSEキーオブジェクトで計算されます。したがって、それらは、X.509の被験者の公開キー情報(SPKI)値のダイジェストを使用するアプリケーションに類似しています。これは、[RFC5280]のセクション4.1.2.7で定義されています。"x5t"(x.509証明書SHA-1 Thumbprint)[RFC9360] X.509証明書オブジェクトに対して定義された値。キーのSPKI表現のダイジェストと論理的に同等ですが、COSEキーのサムプリントは、ASN.1表現ではなく、そのキーのCBOR表現で計算されます。
The ckt of a COSE Key, as described in Section 7 of [RFC9052], and the jkt of a JSON Web Key, as described in Section 4 of [RFC7517], are different even when the underlying cryptographic key material is the same.
[RFC9052]のセクション7で説明されているように、COSEキーのCKTと、[RFC7517]のセクション4で説明されているJSON WebキーのJKTは、基礎となる暗号化キー素材が同じ場合でも異なります。
This document does not register a JWT confirmation method [RFC7800] for using "ckt" as a confirmation method for a JWT or a CWT confirmation method [RFC8747] for using "jkt" as a confirmation method for a CWT.
このドキュメントでは、JWTまたはCWT確認方法[RFC8747]の確認方法[RFC8747]として「JKT」をCWTの確認方法として使用するための「CKT」を使用するためのJWT確認方法[RFC7800]を登録しません。
[RFC8747] introduces confirmation methods for use with CWTs with the addition of the "cnf" claim. CWTs are defined in [RFC8392]. This specification adds a new confirmation method based on COSE Key Thumbprints.
[RFC8747]は、「CNF」クレームを追加して、CWTSで使用する確認方法を導入します。CWTSは[RFC8392]で定義されています。この仕様は、COSEキーサムプリントに基づいた新しい確認方法を追加します。
The proof-of-possession key is identified using the "ckt" member of the CWT confirmation claim "cnf". This member contains the value of the COSE Key Thumbprint encoded as a binary string. Instead of communicating the actual COSE Key, only the thumbprint is conveyed. This approach assumes that the recipient is able to obtain the identified COSE Key using the thumbprint contained in the "ckt" member. In this approach, the issuer of a CWT declares that the presenter possesses a particular key and that the recipient can cryptographically confirm the presenter's proof of possession of the key by including a "ckt" CWT confirmation method member in the CWT.
Proof-of-Possessionキーは、CWT確認請求「CNF」の「CKT」メンバーを使用して識別されます。このメンバーには、バイナリ文字列としてエンコードされたCOSEキーThumbprintの値が含まれています。実際のCOSEキーを通信する代わりに、Thumbprintのみが伝えられます。このアプローチは、「CKT」メンバーに含まれるThumbprintを使用して、受信者が識別されたCOSEキーを取得できることを前提としています。このアプローチでは、CWTの発行者は、発表者が特定のキーを所有していること、および受信者がCWTに「CKT」CWT確認方法メンバーを含めることにより、プレゼンターのキーの所有証明を暗号化できることを宣言します。
The following example demonstrates the use of the "ckt" member in a CWT as part of the confirmation method (with line breaks inserted for editorial reasons):
次の例は、確認方法の一部としてCWTで「CKT」メンバーの使用を示しています(編集上の理由でラインブレークが挿入されています):
{
/iss/ 1 : "coaps://as.example.com",
/aud/ 3 : "coaps://resource.example.org",
/exp/ 4 : 1361398824,
/cnf/ 8 : {
/ckt/ 5 : h'496bd8afadf307e5b08c64b0421bf9dc
01528a344a43bda88fadd1669da253ec'
}
}
Section 8 registers the "ckt" CWT confirmation method member. The "ckt" member is used in the "cnf" claim.
セクション8では、「CKT」CWT確認方法メンバーを登録します。「CKT」メンバーは、「CNF」クレームで使用されます。
This specification defines Uniform Resource Identifiers (URIs) to represent a COSE Key Thumbprint value. The design follows the work of JSON Web Key (JWK) Thumbprint URIs, as specified in [RFC9278]. This enables COSE Key Thumbprints to be used, for example, as key identifiers in contexts requiring URIs. This specification defines a URI prefix indicating that the portion of the URI following the prefix is a COSE Key Thumbprint.
この仕様では、COSEキーサムプリント値を表すために、均一なリソース識別子(URI)を定義します。この設計は、[RFC9278]で指定されているように、JSON Webキー(JWK)Thumbprint URISの作業に従います。これにより、たとえば、URIを必要とするコンテキストの主要な識別子として、COSEキーサムプリントを使用できます。この仕様は、プレフィックスに続くURIの部分がCOSEキーサムプリントであることを示すURIプレフィックスを定義します。
The following URI prefix is defined to indicate that the portion of the URI following the prefix is a COSE Key Thumbprint:
次のURIプレフィックスは、プレフィックスに続くURIの部分がCOSEキーサムプリントであることを示すように定義されています。
urn:ietf:params:oauth:ckt
urn:ietf:params:oauth:ckt
To make the hash algorithm being used explicit in a URI, the prefix is followed by a hash algorithm identifier and a COSE Key Thumbprint value, each separated by a colon character to form a URI representing a COSE Key Thumbprint.
URIで明示的に使用されているハッシュアルゴリズムを使用するために、接頭辞の後にハッシュアルゴリズム識別子とCOSEキーサムプリント値が続き、それぞれがCOSEキーサムプリントを表すURIを形成するためにコロン文字によって分離されます。
Hash algorithm identifiers used in COSE Key Thumbprint URIs MUST be values from the "Hash Name String" column in the IANA "Named Information Hash Algorithm Registry" [IANA.Hash.Algorithms]. COSE Key Thumbprint URIs with hash algorithm identifiers not found in this registry are not considered valid, and applications MUST detect and handle this error, should it occur.
COSEキーサムプリントURIで使用されるハッシュアルゴリズム識別子は、INASTRAW HASH ALGORITHM REGISTRY「IANA.HASH.ALGORITHMS]という名前の「IANA」という名前の「Hash Name String」列」の値でなければなりません。このレジストリで見つからないハッシュアルゴリズム識別子を備えたキーサムプリントURIをCOSE COSEは有効ではないため、アプリケーションが発生した場合、このエラーを検出および処理する必要があります。
Since the URN is encoded as a string, the output of the COSE Key Thumbprint computation described in Section 3 MUST be base64url encoded without padding.
URNは文字列としてエンコードされるため、セクション3で説明されているCOSEキーサムプリント計算の出力は、パディングなしでbase64urlをエンコードする必要があります。
[RFC7515] specifies base64url encoding as follows:
[RFC7515]は、次のようにbase64urlエンコードを指定します。
Base64 encoding using the URL- and filename-safe character set defined in Section 5 of RFC 4648 [RFC4648], with all trailing '=' characters omitted (as permitted by Section 3.2 of [RFC7515]) and without the inclusion of any line breaks, whitespace, or other additional characters. Note that the base64url encoding of the empty octet sequence is the empty string. (See Appendix C of [RFC7515] for notes on implementing base64url encoding without padding.)
RFC 4648 [RFC4648]のセクション5で定義されているURLおよびファイル名セーフ文字セットを使用してベース64エンコードし、すべての後続の '='文字は省略されています([RFC7515]のセクション3.2で許可されています)。、Whitespace、またはその他の追加文字。空のオクテットシーケンスのbase64urlエンコードは空の文字列であることに注意してください。(パディングなしでbase64urlエンコードの実装に関するメモについては、[RFC7515]の付録Cを参照してください。)
The base64url encoding of the thumbprint shown in Section 6 is shown below (with a line break added for readability purposes).
セクション6に示すthumbprintのbase64urlエンコードを以下に示します(読みやすさのためにラインブレークが追加されています)。
SWvYr63zB-WwjGSwQhv53AFSijRKQ72oj63RZp2iU-w
swvyr63zb-wwjgswqhv53afsijrkq72oj63rzp2iu-w
The full example of a COSE Key Thumbprint URI is shown below (with a line break added for readability).
COSEキーThumbprint URIの完全な例を以下に示します(読みやすさのためにラインブレイクが追加されています)。
urn:ietf:params:oauth:ckt:sha-256:
urn:ietf:params:oauth:ckt:sha-256:
SWvYr63zB-WwjGSwQhv53AFSijRKQ72oj63RZp2iU-w
swvyr63zb-wwjgswqhv53afsijrkq72oj63rzp2iu-w
Note that the use of oauth in the namespace is to align with JWK Thumbprint URIs as described in [RFC9278]; however, these URIs are intended for use with applications and specifications not necessarily related to OAuth.
名前空間でのOAuthの使用は、[RFC9278]に記載されているように、JWK Thumbprint URISに合わせることであることに注意してください。ただし、これらのURIは、必ずしもOAuthに関連していないアプリケーションと仕様で使用することを目的としています。
This section demonstrates the COSE Key Thumbprint computation for the following example COSE Key containing an Elliptic Curve Cryptography (ECC) public key.
このセクションでは、楕円曲線暗号化(ECC)公開キーを含む次の例COSEキーのCOSEキーThumbprint計算を示します。
For better readability, the example is first presented in CBOR diagnostic format (with the long line broken for display purposes only).
より良い読みやすさのために、この例は最初にCBOR診断形式で提示されます(ディスプレイ目的でのみ長い行が壊れています)。
{
/ kty set to EC2 = Elliptic Curve Keys /
1:2,
/ crv set to P-256 /
-1:1,
/ public key: x-coordinate /
-2:h'65eda5a12577c2bae829437fe338701a10aaa375e1bb5b5de108de439c0
8551d',
/ public key: y-coordinate /
-3:h'1e52ed75701163f7f9e40ddf9f341b3dc9ba860af7e0ca7ca7e9eecd008
4d19c',
/ kid is bstr, not used in COSE Key Thumbprint /
2:h'496bd8afadf307e5b08c64b0421bf9dc01528a344a43bda88fadd1669da2
53ec'
}
The example above corresponds to the following CBOR encoding (with link breaks added for display purposes only):
上記の例は、次のCBORエンコーディングに対応しています(表示目的でのみリンクブレークが追加されています)。
A50102200121582065EDA5A12577C2BAE829437FE338701A10AAA375E1BB5B5DE108D
E439C08551D2258201E52ED75701163F7F9E40DDF9F341B3DC9BA860AF7E0CA7CA7E9
EECD0084D19C025820496BD8AFADF307E5B08C64B0421BF9DC01528A344A43BDA88FA
DD1669DA253EC
Not all of the parameters from the example above are used in the COSE Key Thumbprint computation because the required parameters of an elliptic curve public key are (as listed in Section 4.2) "kty", "crv", "x", and "y".
上記の例のすべてのパラメーターが、楕円曲線の公開キーの必要なパラメーターが(セクション4.2にリストされている)「kty」、「crv」、「x」、および「yであるため、COSEキーThumbprint計算で使用されるわけではありません。「。
The resulting COSE Key structure, in CBOR diagnostic format with line breaks added for better readability, with the minimum parameters in the correct order are:
結果として得られたCOSEキー構造は、CBOR診断形式で、ラインブレークが追加され、適切な読みやすさが追加され、最小パラメーターは正しい順序で次のとおりです。
{
1:2,
-1:1,
-2:h'65eda5a12577c2bae829437fe338701a
10aaa375e1bb5b5de108de439c08551d',
-3:h'1e52ed75701163f7f9e40ddf9f341b3d
c9ba860af7e0ca7ca7e9eecd0084d19c'
}
In CBOR encoding, the result is (with line breaks added for display purposes only):
CBORエンコーディングでは、結果は(表示目的でのみラインブレークが追加されています):
A40102200121582065EDA5A12577C2BAE829437FE338701A10AAA375E1BB5B5DE
108DE439C08551D2258201E52ED75701163F7F9E40DDF9F341B3DC9BA860AF7E0
CA7CA7E9EECD0084D19C
Using SHA-256, the resulting thumbprint is:
SHA-256を使用すると、結果のthumbprintは次のとおりです。
496bd8afadf307e5b08c64b0421bf9dc01528a344a43bda88fadd1669da253ec
A COSE Key Thumbprint will only uniquely identify a particular key if a single unambiguous COSE Key representation for that key is defined and used when computing the COSE Key Thumbprint. Key identifiers are not included in the thumbprint calculation (similarly to other optional parameters in the COSE_Key structure). If the inclusion of specific optional parameters in the thumbprint calculation is important for a particular application, this specification would not be suitable.
COSEキーサムプリントは、COSEキーサムプリントを計算するときにそのキーの単一の明確なCOSEキー表現が定義され、使用される場合にのみ、特定のキーを一意に識別します。主要な識別子は、Thumbprint計算に含まれていません(COSE_KEY構造の他のオプションパラメーターと同様)。特定のアプリケーションでは、サムプリント計算に特定のオプションパラメーターを含めることが重要である場合、この仕様は適していません。
While thumbprint values are useful for identifying legitimate keys, comparing thumbprint values is not a reliable means of excluding the use of particular keys (or transformations thereof). The reason is because an attacker may supply a key that is a transformation of a key in order for it to appear as a different key. For instance, if a legitimate RSA key uses a modulus value N and an attacker supplies a key with modulus 3*N, the modified key would still work about 1/3 of the time, but it would appear to be a different key.
Thumbprint値は正当なキーを識別するのに役立ちますが、ThumbPrint値を比較することは、特定のキー(またはその変換)の使用を除外する信頼できる手段ではありません。その理由は、攻撃者が異なるキーとして表示されるためにキーの変換であるキーを提供する可能性があるためです。たとえば、正当なRSAキーが弾性率nを使用し、攻撃者が弾性率3*nを備えたキーを提供する場合、修正されたキーはまだ約1/3に機能しますが、異なるキーのように見えます。
Producing thumbprints of symmetric keys needs to be done with care. Developers MUST ensure that the symmetric key has sufficient entropy to prevent attackers from precomputing tables of symmetric keys with their corresponding hash values. This can be prevented if the symmetric key is a randomly selected key of at least a 128-bit length. Thumbprints MUST NOT be used with passwords or other low-entropy secrets. If a developer is unable to determine whether all symmetric keys used in an application have sufficient entropy, then thumbprints of symmetric keys MUST NOT be used. In general, using thumbprints of symmetric keys should only be used in special applications. In most other deployment scenarios, it is more appropriate to utilize a different naming scheme for key identifiers.
対称キーのサムプリントを生成する必要があります。開発者は、対称キーが、対応するハッシュ値で対称キーのテーブルを事前に計算できないようにするのに十分なエントロピーを備えていることを確認する必要があります。対称キーが少なくとも128ビットの長さのランダムに選択されたキーである場合、これは防止できます。Thumbprintsは、パスワードやその他の低エントロピーの秘密で使用してはなりません。開発者がアプリケーションで使用されるすべての対称キーに十分なエントロピーがあるかどうかを判断できない場合、対称キーのサムプリントを使用してはなりません。一般に、対称キーのサムプリントを使用することは、特別なアプリケーションでのみ使用する必要があります。他のほとんどの展開シナリオでは、主要な識別子に異なる命名スキームを利用する方が適切です。
IANA has added the following entry to the "CWT Confirmation Methods" registry [IANA-CWT] established by [RFC8747]:
IANAは、[RFC8747]によって確立された「CWT確認方法」レジストリ[IANA-CWT]に次のエントリを追加しました。
Confirmation Method Name:
確認方法名:
ckt
ckt
Confirmation Method Description:
確認方法説明:
COSE Key SHA-256 Thumbprint
キーSHA-256 ThumbprintをCOSE
JWT Confirmation Method Name:
JWT確認方法名:
(none)
(なし)
Confirmation Key:
確認キー:
5
5
Confirmation Value Type(s):
確認値タイプ:
binary string
バイナリ文字列
Change Controller:
Change Controller:
IETF
IETF
Specification Document(s):
仕様文書:
RFC 9679
RFC 9679
Furthermore, IANA has added a value to the "OAuth URI" registry [IANA-OAuth] established by [RFC6755]:
さらに、IANAは[RFC6755]によって確立された「OAuth URI」レジストリ[IANA-OAUTH]に値を追加しました。
URN:
URN:
urn:ietf:params:oauth:ckt
urn:ietf:params:oauth:ckt
Common Name:
一般名:
COSE Key Thumbprint URI
キーサムプリントURIをコース
Change Controller:
Change Controller:
IETF
IETF
Specification Document(s):
仕様文書:
RFC 9679
RFC 9679
[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>.
[RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data
Encodings", RFC 4648, DOI 10.17487/RFC4648, October 2006,
<https://www.rfc-editor.org/info/rfc4648>.
[RFC6755] Campbell, B. and H. Tschofenig, "An IETF URN Sub-Namespace
for OAuth", RFC 6755, DOI 10.17487/RFC6755, October 2012,
<https://www.rfc-editor.org/info/rfc6755>.
[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>.
[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>.
[RFC8392] Jones, M., Wahlstroem, E., Erdtman, S., and H. Tschofenig,
"CBOR Web Token (CWT)", RFC 8392, DOI 10.17487/RFC8392,
May 2018, <https://www.rfc-editor.org/info/rfc8392>.
[RFC8747] Jones, M., Seitz, L., Selander, G., Erdtman, S., and H.
Tschofenig, "Proof-of-Possession Key Semantics for CBOR
Web Tokens (CWTs)", RFC 8747, DOI 10.17487/RFC8747, March
2020, <https://www.rfc-editor.org/info/rfc8747>.
[RFC8949] Bormann, C. and P. Hoffman, "Concise Binary Object
Representation (CBOR)", STD 94, RFC 8949,
DOI 10.17487/RFC8949, December 2020,
<https://www.rfc-editor.org/info/rfc8949>.
[RFC9052] Schaad, J., "CBOR Object Signing and Encryption (COSE):
Structures and Process", STD 96, RFC 9052,
DOI 10.17487/RFC9052, August 2022,
<https://www.rfc-editor.org/info/rfc9052>.
[RFC9053] Schaad, J., "CBOR Object Signing and Encryption (COSE):
Initial Algorithms", RFC 9053, DOI 10.17487/RFC9053,
August 2022, <https://www.rfc-editor.org/info/rfc9053>.
[IANA-CWT] IANA, "CWT Confirmation Methods",
<https://www.iana.org/assignments/cwt>.
[IANA-OAuth]
IANA, "OAuth URI",
<https://www.iana.org/assignments/oauth-parameters>.
[IANA.Hash.Algorithms]
IANA, "Named Information Hash Algorithm Registry",
<https://www.iana.org/assignments/named-information>.
[RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S.,
Housley, R., and W. Polk, "Internet X.509 Public Key
Infrastructure Certificate and Certificate Revocation List
(CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008,
<https://www.rfc-editor.org/info/rfc5280>.
[RFC6234] Eastlake 3rd, D. and T. Hansen, "US Secure Hash Algorithms
(SHA and SHA-based HMAC and HKDF)", RFC 6234,
DOI 10.17487/RFC6234, May 2011,
<https://www.rfc-editor.org/info/rfc6234>.
[RFC7517] Jones, M., "JSON Web Key (JWK)", RFC 7517,
DOI 10.17487/RFC7517, May 2015,
<https://www.rfc-editor.org/info/rfc7517>.
[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>.
[RFC7800] Jones, M., Bradley, J., and H. Tschofenig, "Proof-of-
Possession Key Semantics for JSON Web Tokens (JWTs)",
RFC 7800, DOI 10.17487/RFC7800, April 2016,
<https://www.rfc-editor.org/info/rfc7800>.
[RFC9278] Jones, M. and K. Yasuda, "JWK Thumbprint URI", RFC 9278,
DOI 10.17487/RFC9278, August 2022,
<https://www.rfc-editor.org/info/rfc9278>.
[RFC9360] Schaad, J., "CBOR Object Signing and Encryption (COSE):
Header Parameters for Carrying and Referencing X.509
Certificates", RFC 9360, DOI 10.17487/RFC9360, February
2023, <https://www.rfc-editor.org/info/rfc9360>.
We would like to thank the authors of [RFC7638] for their work on the JWK Thumbprint specification. This document applies JWK Thumbprints to COSE Key structures.
[RFC7638]の著者がJWK Thumbprint仕様に関する作業について感謝します。このドキュメントでは、JWK Thumbprintsを適用して、キー構造をコースします。
Additionally, we would like to thank Carsten Bormann, Ilari Liusvaara, Laurence Lundblade, Daisuke Ajitomi, Michael Richardson, Michael B. Jones, Mallory Knodel, Joel Jaeggli, Derrell Piper, Patrik Fältström, Warren Kumari, Deb Cooley, and Brendan Moran for their feedback.
さらに、Carsten Bormann、Ilari Liusvaara、Laurence Lundblade、Daisuke Ajitomi、Michael Richardson、Michael B. Jones、Mallory Knodel、Joel Jaeggli、Derrell Piper、PatrikFältström、Warren Kumari、Deb Cooley、およびBreendan Moranはフィードバック。
Kohei Isobe
SECOM CO., LTD.
Japan
Email: isobekohei@gmail.com
Hannes Tschofenig
University of Applied Sciences Bonn-Rhein-Sieg
Germany
Email: hannes.tschofenig@gmx.net
Orie Steele
Transmute
United States of America
Email: orie@transmute.industries