Приложения DICE

Механизм композиции идентификаторов устройств (DICE) — это функция безопасности Android, которая обеспечивает надежную аттестацию и повышает целостность устройства за счет создания уникального криптографического идентификатора для каждого устройства. DICE особенно полезен для создания идентификаторов устройств, которые можно использовать в сценариях, требующих надежного подтверждения личности и безопасной связи.

Удаленное предоставление ключей (RKP)

Использование DICE для удаленного предоставления ключей дает несколько ключевых преимуществ.

Минимизация поверхности атаки

DICE расширяет возможности RKP, закладывая корень доверия в наименьшую возможную доверенную вычислительную базу (TCB), доступную на устройстве, обычно в самом чипе, а не в доверенной среде выполнения (TEE). Это значительно уменьшает поверхность атаки и сводит к минимуму риск необратимой компрометации RKP.

Восстановление после компрометации TEE

DICE предоставляет механизм восстановления доверия к устройствам, даже если в TEE или загрузчике есть нарушения, которые могут повлиять на достоверность аттестаций ключей, сгенерированных KeyMint .

Исторически сложилось так, что уязвимости в доверенной среде выполнения (TEE) или загрузчике приводили к полному отзыву ключей аттестации для всех затронутых устройств без возможности восстановления доверия, даже если уязвимости были исправлены. Это произошло потому, что TEE выполнял удаленную проверку образа Android, загружаемого через Android Verified Boot , что делало невозможным доказать удаленной стороне, что исправления были применены. DICE решает эту проблему, позволяя удаленно проверять текущее состояние прошивки, даже за пределами Android, позволяя затронутым устройствам восстановить доверие.

Взаимная аутентификация изолированных сред

Каждый домен приложения, в котором завершается процесс DICE, получает идентификатор в форме ключа с цепочкой сертификатов, идущей обратно к общему корню доверия, полученному ПЗУ. Процесс создания DICE разделяется на разные ветви по мере того, как разные пути загрузки расходятся, образуя дерево сертификатов, имеющих один и тот же корень, и создавая инфраструктуру открытых ключей (PKI) на устройстве.

Эта PKI позволяет компонентам в отдельных безопасных анклавах взаимно аутентифицировать друг друга. Одним из конкретных примеров является Secretkeeper , уровень абстракции оборудования (HAL) , который позволяет привилегированным виртуальным машинам (pVM) взаимодействовать с TEE для получения стабильного секрета, который можно использовать для безопасного хранения постоянных данных.