証明書

「認定デバイス」とは、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 を作成することを選択できます。

信頼チェーンのルートでは、Product Attestation Authority(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 には、次のような情報が含まれています。
  • VID
  • PID (1 つ以上)
  • サーバー カテゴリ ID
  • クライアント カテゴリ ID
  • セキュリティ レベル
  • セキュリティ情報
  • 認証タイプ(開発、暫定、公式)
  • 署名
ファームウェア情報(省略可) ファームウェア情報には、CD バージョン番号と、ファームウェア内のコンポーネント(OS、ファイル システム、ブートローダーなど)の 1 つ以上のダイジェストが含まれています。ダイジェストは、ソフトウェア コンポーネントのハッシュ、またはソフトウェア コンポーネントの署名付きマニフェストのハッシュのいずれかです。

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

ファームウェア情報は、証明書プロセスにおけるオプションの要素であり、ベンダーが証明書鍵ペアを処理するセキュアブート環境を備えている場合に適用されます。
証明書情報 コミッショニーからコミッショナーに送信されるメッセージ。証明書情報は、証明書要素を含む 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. コミッショナーが証明書情報を検証します。検証の条件は次のとおりです。
    • DAC 証明書チェーンは、PAI と PAA の失効チェックを含めて検証する必要があります。
    • DAC の VID が PAI の VID と一致している。
    • 構成証明の署名が有効であること。
    • デバイス認証要素のノンスが、コミッショナーから提供されたノンスと一致している。
    • 証明書宣言の署名が、Alliance の既知の証明書宣言署名鍵のいずれかを使用して有効である。
    • ファームウェア情報(存在し、コミッショナーによってサポートされている場合)が、分散コンプライアンス台帳のエントリと一致している。
    • デバイス基本情報クラスタ、認証宣言、DAC の間でも、追加の VID/PID 検証が行われます。