認定デバイスとは、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 証明書の公開鍵基盤](https://developers.home.google.com/static/matter/primer/images/primer-attestation-pki.png?authuser=1&hl=ja)
PAI は、以下を含む X.509 v3 証明書でもあります。
- 公開鍵
- 発行元
- 対象
- 証明書のシリアル番号
- 有効期間(有効期限が不確定の場合がある)
- 署名
ベンダー ID とプロダクト ID(省略可)は、DAC サブジェクト内の MatterDACName
の属性です。
最後に、PAA はチェーン内のルート証明書であり、自己署名されます。これには次のものが含まれます。
- 署名
- 公開鍵
- 発行元
- 対象
- 証明書のシリアル番号
- 有効性
その他の証明書類とメッセージ
構成証明プロセスには複数のドキュメントとメッセージがあります。次の項目は、その機能と構成の概要です。下の画像は、その階層の理解に役立ちます。
![証明書のドキュメント階層](https://developers.home.google.com/static/matter/primer/images/primer-attestation-document-hierarchy.png?authuser=1&hl=ja)
ドキュメント | 説明 |
---|---|
認証申告(CD) | CD により、Matter デバイスは Matter プロトコルへの準拠を証明できます。Matter 認定プロセスが終了するたびに、Alliance はデバイスタイプの CD を作成し、ベンダーがそれをファームウェアに追加します。CD には次のような情報が含まれています。
|
Firmware Information(ファームウェア情報(省略可)) | ファームウェア情報には、CD のバージョン番号と、OS、ファイルシステム、ブートローダーなど、ファームウェアのコンポーネントの 1 つ以上のダイジェストが含まれます。ダイジェストは、ソフトウェア コンポーネントのハッシュか、ソフトウェア コンポーネントの署名付きマニフェストのハッシュのいずれかです。 ベンダーは、個々のハッシュの配列ではなく、コンポーネントの「ハッシュのハッシュ」のみをファームウェア情報に含めることもできます。 ファームウェア情報は、ブート環境とアプリの認証でキーを処理する場合のベンダー ペアのオプション要素です。 |
証明書情報 | コミッショナーからコミッショナーに送信されるメッセージ。証明書情報は、証明書の要素を含む TLV と証明書の署名を結合したものです。 |
証明書の要素 | これは以下を含む TLV です。
|
証明書チャレンジ | Passcode Authenticated Session Establishment (PASE) / Certificate Authenticated Session Establishment (CASE) セッションの確立中に派生した帯域外チャレンジで、手続きをさらに保護し、シグネチャのリプレイを回避するために使用されます。CASE セッション、PASE セッション、再開された CASE セッションのいずれかから取得されます。 |
証明書の TBS(署名が必要) | 構成証明要素と構成証明チャレンジを含むメッセージ。 |
証明書の署名 | デバイス認証の秘密鍵を使用して署名された構成証明 TBS の署名。 |
証明書の手順
コミッショナーは、コミッショナーを証明する責任を負います。以下のステップを実行します。
- コミッショナーがランダムな 32 バイトの構成証明ノンスを生成する。暗号の専門用語では、ノンス(1 回使用される数値)は暗号処理で生成され、1 回使用されることを意図した乱数です。
- コミッショナーはノンスを DUT に送信し、証明書情報をリクエストします。
- DUT は構成証明情報を生成し、構成証明秘密鍵で署名します。
- コミッショナーがデバイスから DAC 証明書と PAI 証明書を復元し、Matter トラストストアから PAA 証明書を検索します。
- コミッショナーが証明書情報を検証します。検証の条件は次のとおりです。
- PAI と PAA の取り消しチェックなど、DAC 証明書チェーンを検証する必要があります。
- DAC の VID が PAI の VID と一致する。
- 構成証明署名が有効です。
- デバイス構成証明要素のノンスは、コミッショナーが提供するノンスと一致します。
- 証明書宣言の署名は、Alliance の既知の認証宣言署名鍵のいずれかを使用して有効です。
- ファームウェア情報(存在し、コミッショナーでサポートされている場合)は、Distributed Compliance Ledger のエントリと一致します。
- 追加の VID/PID 検証も、デバイス基本情報クラスタ、認証の申告、DAC の間で行われます。