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

Описание потока
| Шаг | Источник | Описание |
|---|---|---|
| 1 | Устройство на базе Android | На устройстве пользователя создан новый запрос DC. Эмитент должен создать новый ключ идентификации. Устройство пользователя вызывает метод getDeviceRegistrationNonce для инициирования этого процесса. |
| 2 | Серверы Google | Google передает запрос getDeviceRegistrationNonce эмитенту. |
| 3 | Серверы эмитентов | Эмитент генерирует одноразовый код, сохраняет его с deviceReferenceId и возвращает одноразовый код в Google. |
| 4 | Серверы Google | Google передает одноразовый код на устройство пользователя. |
| 5 | Устройство на базе Android | Устройство пользователя подписывает одноразовый код и встраивает его в сертификат x509. Это включается в вызов registerDevice для проверки устройства. |
| 6 | Серверы Google | Google передает вызов registerDevice эмитенту. |
| 7 | Серверы эмитентов | Эмитент выполняет проверку целостности устройства и сохраняет идентификационный ключ, связанный с устройством. |
Как проверить целостность устройства
Аттестация устройств — это функция безопасности, позволяющая эмитентам проверять целостность устройства перед его регистрацией. Это помогает предотвратить регистрацию устройств, подвергшихся несанкционированному вмешательству или использующих несанкционированное программное обеспечение.
Для проверки целостности устройства эмитент должен:
- Проверьте цепочку сертификатов, отправленную в запросе
/registerDevice. Корневой сертификат в цепочке должен соответствовать сертификату, предоставленному Google. - Убедитесь, что корневой сертификат не входит в список отозванных сертификатов .
- Проанализируйте листовой сертификат, прочитайте расширения и проверьте следующее:
- Значение
attestationChallengeсоответствуетnonceотправленному во время операции/getDeviceRegistrationNonce. -
teeEnforced.rootOfTrustимеет следующие свойства:-
deviceLocked=TRUE -
verifiedBootState=VERIFIED
-
- Имена пакетов в
softwareEnforced.attestationApplicationIdсоответствуютcom.google.android.gmsилиcom.google.android.gsf.
- Значение
Объяснение различных частей процесса аттестации устройства
- Цепочка сертификатов: Цепочка сертификатов представляет собой серию сертификатов, удостоверяющих подлинность устройства. Корневой сертификат в цепочке является наиболее доверенным, а каждый последующий сертификат в цепочке подписывается сертификатом, расположенным выше.
- Список отозванных сертификатов: Список отозванных сертификатов (CRL) — это список сертификатов, отозванных по какой-либо причине. Если корневой сертификат в цепочке сертификатов аттестации устройства присутствует в CRL, то сертификат недействителен, и аттестации устройства не следует доверять.
- Листовой сертификат: Листовой сертификат — это сертификат, специфичный для устройства. Он содержит информацию об устройстве, такую как его аппаратные идентификаторы и версия программного обеспечения.
- Расширения: Расширения — это дополнительные данные, включаемые в сертификат. Сертификат аттестации устройства содержит ряд расширений, используемых для проверки целостности устройства. Подробнее см. в схеме данных расширений сертификата.