В соответствии с документом определения совместимости с Android OEM-производители должны предоставить возможность разработки приложений. Однако предоставление мобильных опций для разработчиков в автомобилях делает эти автомобили уязвимыми для атак. Доступ к параметрам разработчика теперь может быть закрыт OEM-производителем с использованием механизма аутентифицированных криптографических токенов. В частности, OEM может:
- Установите желаемые ограничения по умолчанию перед первой загрузкой.
- Надежно авторизуйте разработчиков с помощью крипто-токенов, если это необходимо.
- Примените изменения ограничений, как только разработчик пройдет аутентификацию и авторизацию.
В этой статье описывается эталонная реализация, состоящая из приложения контроллера ограничений отладки и конечной точки удаленного поставщика маркеров.
Терминология
В дополнение к Терминологии , в этой статье используются следующие термины:
- Веб-подпись JSON (JWS), определенная в RFC 7515.
- Национальный институт стандартов и технологий (NIST)
Дизайн
OEM-производители могут авторизовать разработчиков с помощью токенов JSON Web Signature (JWS) (RFC7515). В эталонной реализации маркеры доступа выдаются OEM-производителями и используются приложением контроллера ограничений. Токены доступа предназначены для защиты от повторных атак и поддельных токенов.
Рис. 1. Дизайн
Интеграция и конфигурация
OEM-производители должны указать желаемые ограничения по умолчанию при первой загрузке. Это делается с помощью нескольких наложений статических ресурсов, чтобы переопределить значения по умолчанию в структуре AOSP.
Ограничения по умолчанию для пользователя безголовой системы можно настроить с помощью строки config_defaultFirstUserRestrictions
в frameworks/base/core/res/res/values/config.xml
, например:
<!-- User restrictions set when the first user is created. Note: Also update appropriate overlay files. --> <string-array translatable="false" name="config_defaultFirstUserRestrictions"> <item>no_debugging_features</item> </string-array>
Ограничения по умолчанию для водителей, пассажиров и гостей можно настроить в frameworks/base/core/res/res/xml/config_user_types.xml
. OEM может накладывать | эти строки, чтобы установить ограничения по умолчанию для каждого типа пользователя соответственно, например:
<user-types> <full-type name="android.os.usertype.full.SECONDARY" > <default-restrictions no_debugging_features="true"/> </full-type> <full-type name="android.os.usertype.full.GUEST" > <default-restrictions no_debugging_features="true"/> </full-type> </user-types>
Эталонная реализация находится в следующем месте в AOSP:
packages/apps/Car/DebuggingRestrictionController
Тестирование
Google рекомендует OEM-производителям начинать с эталонной реализации и строить на ее основе.
- После настройки необходимых ограничений в файлах наложения скомпилируйте AAOS и проверьте определенные потоки. Используйте эталонное приложение и локальную службу с поддержкой JWS, чтобы проверить настройки доступа.
- Настройте систему для использования облачной службы с поддержкой JWS (необязательно). Убедитесь, что вы соблюдаете желаемый поток в своей серверной службе.