証明書

認定デバイスとは、Connectivity Standards Alliance (Alliance) Matter 認定プロセスを経たデバイスのことです。

コミッショニング プロセス中、認定デバイスは自身を証明する必要があります。つまり、主張どおりの製品であり、本物の製品であることを証明する必要があります。したがって、すべての Matter デバイスには、認証鍵ペアと関連する証明書チェーンを含む認証情報があります。デバイス証明書DAC)はこのチェーンの一部です。コミッショニング中のデバイスがコミッショナーに DAC を提示すると、コミッショナーは次のことを証明します。

  • 認証済みのメーカーによって製造されたものである。
  • 純正デバイスであること。
  • Matter 件のコンプライアンス テストに合格している。

開発フェーズでは、メーカーは完全な証明書取得プロセスなしでデバイスをテストできます。テスターには、デバイスがテスト中であり、まだ認定およびリリースされていないことを明示的に通知する必要があります。メーカーが生産フェーズに入ると、プロビジョナーのエコシステムはすべての構成証明要件を適用する必要があります。

構成証明では、SSL/TLS に使用されるサーバー認証証明書と同様に、ルート認証局と中間証明書を活用する公開鍵基盤PKI)が使用されます。このプロセスは、デバイス認証証明書チェーンと呼ばれます。

デバイス認証 PKI

DAC は X.509 v3 証明書です。X.509 の最初のバージョンは、1988 年に ITU-T によって公開されました。Matter で使用される公開鍵基盤証明書と証明書失効リスト(CRL)を含む X.509 v3 は、RFC5280 で指定されています。これには以下のものが含まれます。

  • 公開鍵
  • 発行元
  • 件名
  • 証明書のシリアル番号
  • 有効性(有効期限が未定の場合もあります)
  • 署名

ベンダー ID とプロダクト ID は、DAC サブジェクトの MatterDACName の属性です。

DAC はデバイスごとに一意であり、プロダクト内の一意の証明書鍵ペアに関連付けられています。デバイス メーカーに関連付けられた CA によって発行されます。

DAC の署名は、PAA によって発行されたプロダクト構成証明中間証明書PAI)に対して検証されます。ただし、ベンダーは商品ごと(PID 固有)、商品グループごと、またはすべての商品に対して 1 つの PAI を作成することを選択できます。

信頼チェーンのルートにあるプロダクト証明書機関PAA認証局CA)の公開鍵は、PAI からの署名を検証します。Matter トラストストアはフェデレーションされており、コミッショナーが信頼する PAA 証明書のセットは中央の信頼できるデータベース(分散型コンプライアンス台帳)で管理されます。信頼できるセット内の PAA のエントリには、Alliance が管理する証明書ポリシーを満たす必要があります。

Matter 構成証明公開鍵基盤
図 1: Matter 認証公開鍵基盤

PAI は、次のものを含む X.509 v3 証明書でもあります。

  • 公開鍵
  • 発行元
  • 件名
  • 証明書のシリアル番号
  • 有効性(有効期限が未定の場合もあります)
  • 署名

ベンダー ID とプロダクト ID(オプション)は、DAC サブジェクトの MatterDACName の属性です。

最後に、PAA はチェーンのルート証明書であり、自己署名されています。以下が含まれています。

  • 署名
  • 公開鍵
  • 発行元
  • 件名
  • 証明書のシリアル番号
  • 有効性

追加の証明書とメッセージ

証明プロセスには、複数のドキュメントとメッセージがあります。次の項目は、その機能と構成の概要です。次の図は、階層を理解するのに役立ちます。

証明書ドキュメントの階層
図 2: 構成証明ドキュメントの階層
ドキュメント 説明
認証宣言(CD) <0x0A CD を使用すると、Matter デバイスは Matter プロトコルへの準拠を証明できます。Matter 認証プロセスが完了するたびに、Alliance はデバイスタイプの CD を作成し、ベンダーがファームウェアに含められるようにします。CD には、次の情報が含まれています。
  • VID
  • PID (1 つ以上)
  • サーバー カテゴリ ID
  • クライアント カテゴリ ID
  • セキュリティ レベル
  • セキュリティ情報
  • 認定資格の種類(開発、仮、正式)
  • 署名
ファームウェア情報(省略可) <0 ファームウェア情報には、CD バージョン番号と、OS、ファイル システム、ブートローダなどのファームウェア内のコンポーネントの 1 つ以上のダイジェストが含まれます。ダイジェストは、ソフトウェア コンポーネントのハッシュまたはソフトウェア コンポーネントの署名付きマニフェストのハッシュのいずれかになります。

ベンダーは、個々のハッシュの配列ではなく、コンポーネントの「ハッシュのハッシュ」のみをファームウェア情報に含めることもできます。

ファームウェア情報は、構成証明プロセスのオプション要素であり、ベンダーが構成証明キーペアを処理するセキュアブート環境を備えている場合に適用されます。
証明書情報 被委任者から委任者に送信されたメッセージ。証明書情報には、証明書要素を含む TLV と証明書署名が含まれます。
構成証明要素 これは、次の情報を含む TLV です。

  • 証明書の宣言
  • タイムスタンプ
  • 構成証明ノンス
  • ファームウェア情報 (省略可)
  • ベンダー固有の情報(省略可)
認証チャレンジ <0x Passcode Authenticated Session Establishment (PASE) / Certificate Authenticated Session Establishment (CASE) セッションの確立中に導出され、手順のセキュリティを強化し、再生された署名を回避するために使用される帯域外チャレンジ。CASE セッション、PASE セッション、または再開された CASE セッションのいずれかから取得されます。
構成証明 TBS(署名が必要) Attestation Elements と Attestation Challenge を含むメッセージ。
証明書の署名 デバイス構成証明秘密鍵を使用して署名された、構成証明 TBS の署名。

構成証明の手順

コミッショナーは、コミッショニーの証明を担当します。次の手順を実行します。

  1. コミッショナーが 32 バイトのランダムな証明書ノンスを生成します。暗号用語では、ノンス(1 回だけ使用される番号)は暗号手順で生成され、1 回だけ使用されることを目的とした乱数です。
  2. コミッショナーが DUT にノンスを送信し、証明書情報をリクエストします。
  3. DUT は証明書情報を生成し、証明書秘密鍵で署名します。
  4. コミッショナーはデバイスから DAC 証明書と PAI 証明書を復元し、Matter 信頼ストアから PAA 証明書を検索します。
  5. コミッショナーが構成証明情報を検証します。検証の条件は次のとおりです。
    • PAI と PAA の取り消しチェックを含め、DAC 証明書チェーンを検証する必要があります。
    • DAC の VID が PAI の VID と一致している。
    • 構成証明署名が有効であること。
    • デバイス認証要素の Nonce が、コミッショナーが提供した Nonce と一致している。
    • Alliance の既知の Certification Declaration 署名鍵のいずれかを使用して、Certificate Declaration Signature が有効である。
    • ファームウェア情報(Commissioner で存在し、サポートされている場合)が、分散型コンプライアンス台帳のエントリと一致している。
    • デバイスの基本情報クラスタ、認証宣言、DAC の間でも、追加の VID/PID 検証が行われます。