本文へスキップ
ecdsa.com

COSE(CBOR Object Signing and Encryption)

JOSE に相当する CBOR ベースの仕様(RFC 9052 と RFC 9053)で、署名、MAC、暗号化、鍵を扱い、WebAuthn、mdoc 形式の運転免許証、CWT、C2PA で使われています。
別表記CBOR Object Signing and EncryptionCOSE_Sign1COSE_KeyRFC 9052

メッセージ型はタグ付きの CBOR 配列です。COSE_Sign1(タグ 18)は保護ヘッダー、非保護ヘッダー、ペイロード、1 つの署名から成り、ほかに COSE_Sign(98)、COSE_Mac0(17)、COSE_Encrypt0(16)などがあります。署名の対象は Sig_structure で、これにはコンテキスト文字列 Signature1、保護ヘッダーのバイト列、外部の追加データ、ペイロードが含まれます。ECDSA 署名は、JOSE と同じく生の r‖s です。

アルゴリズムは整数で表されます。−7 は ES256、−35 は ES384、−36 は ES512、−8 は EdDSA、−19 は Ed25519、−53 は Ed448(RFC 9864)、−257 は RS256(RFC 8812)、−37 は PS256(RFC 8230)です。鍵は COSE_Key マップで、P-256 なら kty 2(EC2)と crv 1、Ed25519 なら kty 1(OKP)と crv 6 です。RFC 9052 と RFC 9053 は、2022年に RFC 8152 を置き換えました。

WebAuthn の公開鍵とアテステーションステートメント、ISO mdoc のモバイルセキュリティオブジェクト、CWT、C2PA マニフェストは、いずれも COSE です。COSE・CWT デコーダーでは、そのどれについても構造を確認できます。

規格と参考文献

すべての用語