Регистрация устройства

Фаза регистрации устройства подготавливает устройство к хранению DC путем регистрации ключа идентификации в системе эмитента.

Запрос потока

Описание потока

Шаг Источник Описание
1 Устройство на базе Android На устройстве пользователя создан новый запрос DC. Эмитент должен создать новый ключ идентификации. Устройство пользователя вызывает метод getDeviceRegistrationNonce для инициирования этого процесса.
2 Серверы Google Google передает запрос getDeviceRegistrationNonce эмитенту.
3 Серверы эмитентов Эмитент генерирует одноразовый код, сохраняет его с deviceReferenceId и возвращает одноразовый код в Google.
4 Серверы Google Google передает одноразовый код на устройство пользователя.
5 Устройство на базе Android Устройство пользователя подписывает одноразовый код и встраивает его в сертификат x509. Это включается в вызов registerDevice для проверки устройства.
6 Серверы Google Google передает вызов registerDevice эмитенту.
7 Серверы эмитентов Эмитент выполняет проверку целостности устройства и сохраняет идентификационный ключ, связанный с устройством.

Как проверить целостность устройства

Аттестация устройств — это функция безопасности, позволяющая эмитентам проверять целостность устройства перед его регистрацией. Это помогает предотвратить регистрацию устройств, подвергшихся несанкционированному вмешательству или использующих несанкционированное программное обеспечение.

Для проверки целостности устройства эмитент должен:

  1. Проверьте цепочку сертификатов, отправленную в запросе /registerDevice . Корневой сертификат в цепочке должен соответствовать сертификату, предоставленному Google.
  2. Убедитесь, что корневой сертификат не входит в список отозванных сертификатов .
  3. Проанализируйте листовой сертификат, прочитайте расширения и проверьте следующее:
    • Значение attestationChallenge соответствует nonce отправленному во время операции /getDeviceRegistrationNonce .
    • teeEnforced.rootOfTrust имеет следующие свойства:
      • deviceLocked=TRUE
      • verifiedBootState=VERIFIED
    • Имена пакетов в softwareEnforced.attestationApplicationId соответствуют com.google.android.gms или com.google.android.gsf .

Объяснение различных частей процесса аттестации устройства

  • Цепочка сертификатов: Цепочка сертификатов представляет собой серию сертификатов, удостоверяющих подлинность устройства. Корневой сертификат в цепочке является наиболее доверенным, а каждый последующий сертификат в цепочке подписывается сертификатом, расположенным выше.
  • Список отозванных сертификатов: Список отозванных сертификатов (CRL) — это список сертификатов, отозванных по какой-либо причине. Если корневой сертификат в цепочке сертификатов аттестации устройства присутствует в CRL, то сертификат недействителен, и аттестации устройства не следует доверять.
  • Листовой сертификат: Листовой сертификат — это сертификат, специфичный для устройства. Он содержит информацию об устройстве, такую ​​как его аппаратные идентификаторы и версия программного обеспечения.
  • Расширения: Расширения — это дополнительные данные, включаемые в сертификат. Сертификат аттестации устройства содержит ряд расширений, используемых для проверки целостности устройства. Подробнее см. в схеме данных расширений сертификата.