wolfSSL は、CBOR (RFC 8949) と COSE (RFC 9052/9053) を完全に実装した C ライブラリ「wolfCOSE 1.0.0」をリリースしました。動的メモリ確保を一切行わない zero-allocation 設計で、リソースの限られた組み込みシステム向けに最適化されています。
COSE とは
COSE (CBOR Object Signing and Encryption) は、JOSE/JWT のバイナリ版に相当する仕様です。JOSE が JSON データを保護するのに対し、COSE はコンパクトなバイナリ形式である CBOR を保護します。CBOR は IoT、ファームウェア更新 (SUIT)、アテステーション (EAT)、W3C WebAuthn、デジタルクレデンシャルなど幅広い分野で利用されています。
対応するメッセージ形式
wolfCOSE は次の 6 種類の COSE メッセージ形式に対応します。
- COSE_Sign1 / COSE_Sign(単一署名・複数署名)
- COSE_Encrypt0 / COSE_Encrypt(単一受信者・複数受信者の暗号化)
- COSE_Mac0 / COSE_Mac(メッセージ認証)
対応アルゴリズム
合計 40 種類のアルゴリズムに対応しています。
- 署名:ES256/384/512、EdDSA、PS256/384/512、およびポスト量子暗号 ML-DSA(3 つのセキュリティレベル 44/65/87)
- 暗号化:AES-GCM、AES-CCM、ChaCha20-Poly1305
- MAC:HMAC-SHA 各種、AES-MAC
- 鍵配送:Direct、AES Key Wrap、ECDH-ES + HKDF
組み込み向けの設計
- 動的メモリ確保ゼロ。バッファは呼び出し側が提供する設計
- 小さなフットプリント。ES256 の検証のみの構成で約 5.1 KB
- WOLFCOSE_LEAN やフィーチャーゲートによる軽量ビルドが可能
標準準拠と品質
- MISRA C:2012 および C:2023 をチェック済み
- wolfCrypt(FIPS 140-3 証明書 #4718)を通じた FIPS 140-3 認証への対応
- RFC 8949、RFC 9052/9053、RFC 8230、RFC 9964 に準拠
- 約 240 通りのアルゴリズム組み合わせによるラウンドトリップテスト、静的解析(cppcheck、Clang analyzer、Coverity)、CodeQL、Semgrep、サニタイザによる検証を実施
動作要件と入手方法
- wolfSSL 5.8.0 以降が必要(ポスト量子暗号 ML-DSA の利用には 5.9.2 以降)
- Makefile のみのプロジェクトで、暗号処理の依存先は wolfCrypt のみ
- ソース:https://github.com/wolfSSL/wolfCOSE
- リリース:v1.0.0
- ライセンス:GPLv3 および商用ライセンスのデュアルライセンス
もし弊社製品についてご質問があれば、お問い合わせ窓口info@wolfssl.jpまでご連絡をお願い致します。