証明書

認定デバイスは、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 証明書のセットは中央の信頼できるデータベース(Distributed Compliance Ledger)で管理されます。信頼できるセットに PAA を登録するには、Alliance によって管理される証明書ポリシーを満たす必要があります。

Matter 証明書の公開鍵インフラストラクチャ
図 1: Matter 証明書の公開鍵インフラストラクチャ

また、PAI は X.509 v3 証明書で、次の要素が含まれます。

  • 公開鍵
  • 発行元
  • 対象
  • 証明書のシリアル番号
  • 有効期限が不確定な場合
  • 署名

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

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

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

追加の証明書ドキュメントとメッセージ

構成証明プロセスには、いくつかのドキュメントとメッセージがあります。以下では、その機能と構成を簡単に説明します。下の図は 各階層の 階層を理解するのに役立ちます

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

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

ファームウェア情報は、認証プロセスとベンダー環境の鍵ペアを処理する場合のオプションの要素です。
証明書情報 コミッショニーからコミッショナーに送信されたメッセージ。証明書情報は、証明書要素を含む TLV と証明書署名を組み合わせたものです。
構成証明の要素 これは、以下を含む TLV です。

  • 証明書の宣言
  • タイムスタンプ
  • 証明書 ノンス
  • ファームウェア情報 (省略可)
  • ベンダー固有の情報(省略可)
構成証明チャレンジ 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 のエントリと一致します。
    • また、デバイス基本情報クラスタ、認証宣言、DAC の間でも追加の VID/PID 検証が行われます。