Защита параметров разработчика

В соответствии с документом определения совместимости с 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-производителям начинать с эталонной реализации и строить на ее основе.

  1. После настройки необходимых ограничений в файлах наложения скомпилируйте AAOS и проверьте определенные потоки. Используйте эталонное приложение и локальную службу с поддержкой JWS, чтобы проверить настройки доступа.
  2. Настройте систему для использования облачной службы с поддержкой JWS (необязательно). Убедитесь, что вы соблюдаете желаемый поток в своей серверной службе.