Подтверждение

Сертифицированные устройства – Устройства, прошедшие Connectivity Standards Alliance (Alliance) Matter Процесс сертификации.

В процессе ввода в эксплуатацию сертифицированное устройство должно подтвердить свою подлинность. Другими словами, он должен доказать, что он является тем, за кого себя выдает, и что это подлинный продукт. Таким образом, у всех устройств Matter есть учетные данные, которые включают пару ключей аттестации и связанную цепочку сертификатов. Сертификат подтверждения устройства (DAC) является частью этой цепочки. После того как устройство, вводимое в эксплуатацию, предоставит DAC своему уполномоченному, последний подтвердит, что:

  • Оно изготовлено сертифицированным производителем.
  • Это подлинное устройство.
  • Оно прошло Matter тестов на соответствие требованиям.

На этапе разработки производитель может тестировать устройства без полной процедуры подтверждения. Тестировщики должны быть явно проинформированы о том, что Устройство находится на стадии тестирования и ещё не сертифицировано и не выпущено. Когда производитель переходит к этапу производства, экосистема поставщика должна обеспечивать соблюдение всех требований к аттестации.

Для подтверждения используется инфраструктура открытых ключей (PKI), которая задействует корневые центры сертификации и промежуточные сертификаты, аналогично широко распространенным сертификатам аутентификации серверов, используемым для SSL/TLS. Этот процесс называется цепочкой сертификатов аттестации устройств.

PKI для подтверждения устройств

DAC – это сертификат X.509 v3. Первая версия X.509 была опубликована в 1988 году ITU-T. Сертификат X.509 v3 с инфраструктурой открытых ключей и список отзыва сертификатов, используемые Matter, указаны в RFC5280. В нем есть:

  • Открытый ключ
  • Издатель
  • Тема
  • Серийный номер сертификата
  • Срок действия, который может быть неопределенным.
  • Подпись

Идентификатор поставщика и идентификатор продукта – это атрибуты MatterDACName в теме DAC.

Сертификат DAC уникален для каждого устройства и связан с уникальной парой ключей аттестации в продукте. Он выдается ЦС, связанным с производителем устройства.

Подпись DAC проверяется по промежуточному сертификату аттестации продукта (PAI), который также выдается PAA. Однако поставщик может создать один идентификатор PAI для каждого продукта (с учетом PID), группы продуктов или для всех своих продуктов.

В корне цепочки доверия открытый ключ центра сертификации (ЦС) центра сертификации продуктов (PAA) проверяет подписи от PAI. Обратите внимание, что хранилище доверия Matter является федеративным, а набор сертификатов PAA, которым доверяют уполномоченные, хранится в центральной доверенной базе данных (Distributed Compliance Ledger). Чтобы попасть в набор доверенных, PAA должен соответствовать правилам сертификации, которыми управляет Alliance.

Инфраструктура открытых ключей для аттестации Matter
Рисунок 1. Инфраструктура открытых ключей для аттестации Matter

PAI – это также сертификат X.509 v3, который включает:

  • Открытый ключ
  • Издатель
  • Тема
  • Серийный номер сертификата
  • Срок действия, который может быть неопределенным.
  • Подпись

Идентификатор поставщика и идентификатор продукта (необязательно) – это атрибуты MatterDACName в субъекте DAC.

Наконец, PAA – это корневой сертификат в цепочке, и он является самозаверяющим. В нем вы найдете:

  • Подпись
  • Открытый ключ
  • Издатель
  • Тема
  • Серийный номер сертификата
  • Срок действия

Дополнительные документы и сообщения для подтверждения

Процесс подтверждения включает несколько документов и сообщений. Ниже приведены краткие сведения об их функциях и составе. Изображение ниже поможет вам понять их иерархию.

Иерархия документов о подтверждении
Рисунок 2. Иерархия документов подтверждения
Документ Описание
Декларация о сертификации (CD) Декларация соответствия позволяет устройству Matter подтвердить соответствие протоколу Matter. Когда процесс сертификации Matter завершается, Alliance создает CD для типа устройства, чтобы поставщик мог включить его во встроенное ПО. В частности, в нем указываются:
  • VID
  • PID (один или несколько)
  • Идентификатор категории сервера
  • Идентификатор категории клиента
  • уровень безопасности;
  • Информация о безопасности
  • Тип сертификации (разработка, предварительная или официальная).
  • Подпись
Информация о встроенном ПО (необязательно) Информация о встроенном ПО содержит номер версии CD и одну или несколько сводок компонентов встроенного ПО, например ОС, файловой системы и загрузчика операционной системы. Сводки могут быть хешем компонентов ПО или хешем подписанных манифестов компонентов ПО.

Поставщик также может включить в информацию о встроенном ПО только хеш хешей своих компонентов, а не массив отдельных хешей.

Информация о встроенном ПО – это необязательный элемент в процессе подтверждения, который применяется, когда у поставщика есть безопасная среда загрузки, обрабатывающая пару ключей подтверждения.
Информация о подтверждении Сообщение, отправленное Исполнителем Заказчику. Информация о подтверждении состоит из TLV-структуры, содержащей элементы подтверждения, и подписи подтверждения.
Элементы подтверждения Это TLV, содержащий:

  • Сертификат Декларация
  • Временная метка
  • Подтверждение Одноразовый код
  • Информация о встроенном ПО (необязательно)
  • Информация о поставщике (необязательно)
Проверка подтверждения Внеполосный запрос, полученный во время установки сеанса Passcode Authenticated Session Establishment (PASE)/ Certificate Authenticated Session Establishment (CASE) и используемый для дополнительной защиты процедуры и предотвращения повторного воспроизведения подписей. Поступает из сеанса CASE, сеанса PASE или возобновленного сеанса CASE.
Подтверждение TBS (требуется подпись) Сообщение, содержащее элементы подтверждения и запрос подтверждения.
Подпись для подтверждения Подпись TBS аттестации, подписанная с помощью закрытого ключа аттестации устройства.

Процедура аттестации

Инициализирующее устройство отвечает за подтверждение инициализируемого устройства. Она выполняет следующие шаги:

  1. Комиссионер генерирует случайный 32-байтовый одноразовый код подтверждения. В криптографии одноразовым числом (nonce) называют случайное число, которое генерируется в процессе шифрования и используется только один раз.
  2. Комиссионер отправляет одноразовый код на тестируемое устройство и запрашивает информацию об аттестации.
  3. Тестируемое устройство генерирует информацию о подтверждении и подписывает ее закрытым ключом подтверждения.
  4. Уполномоченный извлекает сертификаты DAC и PAI из устройства и ищет сертификат PAA в своем хранилище доверия Matter.
  5. Уполномоченный проверяет информацию в подтверждении. Вот условия для проверки:
    • Цепочка сертификатов DAC должна быть проверена, включая проверку отзыва PAI и PAA.
    • Идентификатор VID в сертификате DAC совпадает с идентификатором VID в сертификате PAI.
    • Подпись аттестации действительна.
    • Однократно используемое число в элементах подтверждения устройства совпадает с числом, предоставленным уполномоченным.
    • Подпись декларации сертификата действительна при использовании одного из известных ключей подписи декларации сертификата Alliance.
    • Информация о встроенном ПО (если она есть и поддерживается уполномоченным) совпадает с записью в распределенном реестре соответствия.
    • Дополнительные проверки VID/PID также выполняются между кластером базовой информации об устройстве, декларацией о сертификации и DAC.