メインコンテンツまでスキップ

1. はじめに

  1. はじめに

モノのインターネット (IoT) を構成する小型で制約のあるデバイスへの注目が高まっています。 このプロセスから生まれた標準の1つが "Concise Binary Object Representation (CBOR)" [STD94] です。 CBOR は、バイナリデータを許可するなど、JavaScript Object Notation (JSON) [STD90] の データモデルを拡張しました。CBOR は、IoT の世界を扱ういくつかの IETF ワーキンググループによって、 データ構造をエンコードする方法として採用されています。CBOR は、転送されるメッセージと 実装サイズの両方の点で小さく、スキーマフリーのデコーダーを持つように特別に設計されました。 IoT にメッセージセキュリティサービスを提供する必要があり、メッセージエンコード形式として CBOR を使用することは理にかなっています。

コア COSE 仕様は2つの文書で構成されています。[RFC9052] には、シリアル化構造と、 さまざまな暗号化アルゴリズムを使用するための手順が含まれています。 本書は、それらの構造で使用するための一連の初期アルゴリズムを提供します。

1.1. 要件用語

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

1.2. RFC 8152 からの変更点

  • 特定のアルゴリズムを扱うセクションを抽出し、本書に配置しました。 構造と一般的な処理ルールを扱うセクションは [RFC9052] に配置されています。

  • テキストの明確化と用語の変更を行いました。

  • カウンター署名に関するすべての詳細を削除し、[COUNTERSIGN] に配置しました。

1.3. 文書の用語

本書では、以下の用語を使用します:

Byte: オクテットの同義語。

Constrained Application Protocol (CoAP): 制約のあるシステムで使用するための 特殊なWeb転送プロトコル。[RFC7252] で定義されています。

Authenticated Encryption (AE) algorithms [RFC5116]: 暗号化サービスとともに コンテンツの認証チェックを提供する暗号化アルゴリズム。COSE で使用される AE アルゴリズムの例は AES Key Wrap [RFC3394] です。これらのアルゴリズムは 鍵の暗号化に使用されますが、Authenticated Encryption with Associated Data (AEAD) アルゴリズムが推奨されます。

AEAD algorithms [RFC5116]: AE アルゴリズムと同じコンテンツの認証サービスを提供し、 暗号化された本体の一部ではない関連データを認証サービスに含めることができる 暗号化アルゴリズム。COSE で使用される AEAD アルゴリズムの例は AES-GCM [RFC5116] です。 これらのアルゴリズムはコンテンツの暗号化に使用され、鍵の暗号化にも使用できます。

用語 "byte string" はバイトのシーケンスに使用され、用語 "text string" は 文字のシーケンスに使用されます。

アルゴリズムの表には、以下の列が含まれています:

  • 文書で使用するためのアルゴリズムの名前。

  • アルゴリズムのために回線上で使用される値。これが使用される場所の1つは、 メッセージのアルゴリズムヘッダーパラメータです。

  • IANA レジストリをスキャンするときにアルゴリズムを簡単に識別できるようにするための 短い説明。

アルゴリズムによっては、追加の列が表に存在する場合があります。

1.4. CBOR データ構造の CDDL 文法

COSE が最初に書かれたとき、Concise Data Definition Language (CDDL) [RFC8610] は まだ RFC で公開されていなかったため、COSE で採用されている CBOR データ構造を 規範的に記述するためのデータ記述言語として使用できませんでした。 そのため、ここで定義されている CBOR データオブジェクトは散文で記述されています。 COSE データオブジェクトの追加の(非規範的な)記述は、[RFC9052] で記述されている CDDL のサブセットで提供されています。

1.5. 例

[GitHub-Examples] に GitHub プロジェクトが作成されており、一連のテスト例が含まれています。 各例は、例を作成するために使用された入力、デバッグに使用できるいくつかの中間値、 および例の出力を含む JSON ファイルにあります。結果は、16進数および CBOR 診断表記形式の両方を使用してエンコードされています。

一部の例は失敗テストケースとして設計されており、JSON ファイルでそのように明確にマークされています。