証明書

認定デバイスとは、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) CD により、Matter デバイスは Matter プロトコルへの準拠を証明できます。Matter 認定プロセスが終了するたびに、Alliance はデバイスタイプの CD を作成し、ベンダーがそれをファームウェアに追加します。CD には次のような情報が含まれています。
  • 動画 ID
  • PID(1 つ以上)
  • サーバー カテゴリ ID
  • クライアント カテゴリ ID
  • セキュリティ レベル
  • セキュリティ情報
  • 認定の種類(開発、暫定的、公式)
  • 署名
Firmware Information(ファームウェア情報(省略可)) ファームウェア情報には、CD のバージョン番号と、OS、ファイルシステム、ブートローダーなど、ファームウェアのコンポーネントの 1 つ以上のダイジェストが含まれます。ダイジェストは、ソフトウェア コンポーネントのハッシュか、ソフトウェア コンポーネントの署名付きマニフェストのハッシュのいずれかです。

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

ファームウェア情報は、ブート環境とアプリの認証でキーを処理する場合のベンダー ペアのオプション要素です。
証明書情報 コミッショナーからコミッショナーに送信されるメッセージ。証明書情報は、証明書の要素を含む TLV と証明書の署名を結合したものです。
証明書の要素 これは以下を含む TLV です。

  • 証明書の申告
  • タイムスタンプ
  • 証明書のノンス
  • [Firmware Information](ファームウェア情報)(省略可)
  • ベンダー固有の情報(省略可)
証明書チャレンジ Passcode Authenticated Session Establishment (PASE) / Certificate Authenticated Session Establishment (CASE) セッションの確立中に派生した帯域外チャレンジで、手続きをさらに保護し、シグネチャのリプレイを回避するために使用されます。CASE セッション、PASE セッション、再開された CASE セッションのいずれかから取得されます。
証明書の TBS(署名が必要) 構成証明要素と構成証明チャレンジを含むメッセージ。
証明書の署名 デバイス認証の秘密鍵を使用して署名された構成証明 TBS の署名。

証明書の手順

コミッショナーは、コミッショナーを証明する責任を負います。以下のステップを実行します。

  1. コミッショナーがランダムな 32 バイトの構成証明ノンスを生成する。暗号の専門用語では、ノンス(1 回使用される数値)は暗号処理で生成され、1 回使用されることを意図した乱数です。
  2. コミッショナーはノンスを DUT に送信し、証明書情報をリクエストします。
  3. DUT は構成証明情報を生成し、構成証明秘密鍵で署名します。
  4. コミッショナーがデバイスから DAC 証明書と PAI 証明書を復元し、Matter トラストストアから PAA 証明書を検索します。
  5. コミッショナーが証明書情報を検証します。検証の条件は次のとおりです。
    • PAI と PAA の取り消しチェックなど、DAC 証明書チェーンを検証する必要があります。
    • DAC の VID が PAI の VID と一致する。
    • 構成証明署名が有効です。
    • デバイス構成証明要素のノンスは、コミッショナーが提供するノンスと一致します。
    • 証明書宣言の署名は、Alliance の既知の認証宣言署名鍵のいずれかを使用して有効です。
    • ファームウェア情報(存在し、コミッショナーでサポートされている場合)は、Distributed Compliance Ledger のエントリと一致します。
    • 追加の VID/PID 検証も、デバイス基本情報クラスタ、認証の申告、DAC の間で行われます。