В рамках постоянных усилий Google по повышению прозрачности своих продуктов мы добавляем прозрачность двум новым APK-файлам системных сервисов Google: Android System SafetyCore (com.google.android.safetycore) и Android System Key Verifier (com.google.android.contactkeys). Эти APK-файлы обеспечивают работу предупреждений о конфиденциальном контенте и функции проверки криптографических ключей в Google Сообщениях соответственно. Мы опубликовали журнал прозрачности для подтверждения наших заявлений относительно этих APK-файлов.
В свете достижений в области искусственного интеллекта мы также теперь добавляем прозрачность в следующие APK:
- Частные вычислительные службы (com.google.android.as.oss)
Закрытые пакеты
В этом разделе описываются пакеты, которые охватываются журналом прозрачности, а также соответствующие им ключи подписи прозрачности кода.
Система Android SafetyCore
Android System SafetyCore (com.google.android.safetycore) — это компонент системы Android, который обеспечивает инфраструктуру защиты конфиденциальности пользователей на устройстве для приложений.
Код этого APK в настоящее время подписан следующим ключом, описанным этим сертификатом:
-----BEGIN CERTIFICATE-----
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
4ZM=
-----END CERTIFICATE-----
Средство проверки ключей системы Android
Android System Key Verifier APK (com.google.android.contactkeys) — это сервис для проверки контактов на Android. Он позволяет пользователю проверить открытые ключи контакта, чтобы убедиться, что он общается с тем, кому хочет отправить сообщение. Сервис представляет собой единую систему проверки открытых ключей в различных приложениях, использующую сканирование QR-кода или сравнение номеров.
Код этого APK в настоящее время подписан следующим ключом, описанным этим сертификатом:
-----BEGIN CERTIFICATE-----
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
PLM=
-----END CERTIFICATE-----
Частные вычислительные услуги
Пакет Private Compute Services APK (com.google.android.as.oss) — это системная служба, обеспечивающая защиту конфиденциальности пользовательских данных, используемых функциями на базе искусственного интеллекта на устройствах Android. Private Compute Services выступает в качестве безопасного и контролируемого шлюза для приложений Private Compute Core (PCC), таких как Android System Intelligence (AiAi), которые обрабатывают конфиденциальные данные на устройстве, для доступа к сетевым ресурсам. Предоставляя четко определенные API-интерфейсы, ориентированные на конфиденциальность, для таких задач, как HTTP-загрузки и федеративное обучение, а также делая свой код общедоступным , Astrea позволяет пользователям и исследователям проверять, что данные обрабатываются с соблюдением конфиденциальности.
Код этого APK в настоящее время подписан следующим ключом, описанным этим сертификатом:
-----BEGIN CERTIFICATE-----
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
asY=
-----END CERTIFICATE-----
Модель угроз
Системы прозрачности могут использоваться для обнаружения и, следовательно, предотвращения атак на цепочки поставок. Проиллюстрируем это несколькими примерами.
Предположим, злоумышленник злонамеренно модифицирует APK-файл системных служб Google и даже подпишет его ключом подписи, используемым Google Play. Любой, кто получит вредоносный APK-файл, может запросить журнал прозрачности двоичных файлов, чтобы проверить его подлинность. Злоумышленник обнаружит, что Google не добавил соответствующие метаданные APK в журнал, и поймет, что скомпрометированному APK-файлу не стоит доверять.
Поскольку публикация в журнале — это отдельный процесс от процесса выпуска с подписанием (как показано на схеме экосистемы ), это поднимает планку для злоумышленника выше простой компрометации ключа.
Хотя мы также планируем интегрировать этот журнал в публичную сеть свидетелей, используя стандартный протокол свидетелей , мы призываем внешние независимые организации контролировать целостность этого общедоступного журнала. Эти организации могут подтвердить право журнала на добавление данных и сообщить о любых попытках его изменения.
Наличие такой системы прозрачности и дополнительная обнаруживаемость атак препятствуют вредоносной активности. Если APK-файл скомпрометирован, но пользователи доверяют только тем, которые указаны в журнале, скомпрометированный APK-файл необходимо опубликовать. Это повышает вероятность обнаружения скомпрометированного APK-файла и принятия мер по его удалению.
Модель заявителя
Модель заявителя — это фреймворк, используемый для определения ролей и артефактов в проверяемой системе. В случае с Google System Services APK Transparency мы утверждаем, что хэш подписанных двоичных файлов, записанных в этом журнале, представляет собой официальный код для соответствующих APK-файлов системных служб Google.
- Заявите GoogleSystemServicesApk : (я, Google, заявляю, что
$codeSignatureотносится к$googleSystemServicesApk), где:-
$codeSignature— это подписанный JSON Web Token ( JWT ), содержащий список файлов DEX и собственных библиотек, а также их соответствующих хешей, включенных в определенную версию$googleSystemServicesApk. -
$googleSystemServicesApk— это пакет Android ( APK ) из следующего набора пакетов:{Android System SafetyCore (com.google.android.safetycore), Android System Key Verifier (com.google.android.contactkeys)}
-
Любой, у кого есть копия $googleSystemServicesApk может проверить приведенное выше утверждение, и мы подробно описываем этот процесс на странице проверки .
Содержание журнала
Когда Google выпускает новую версию перечисленных выше APK, она добавляет соответствующую запись в журнал прозрачности APK системных служб Google .
Каждая запись в этом журнале содержит четыре фрагмента метаданных APK:
- Хеш подписи кода APK-файла, разработанного Google. Это шестнадцатеричная строка дайджеста SHA256 токена прозрачности кода (также известного как JWT прозрачности кода).
- Описание типа хеша выше. Это строка.
- Имя пакета APK. Это строка.
- Номер версии ( versionCode ) APK. Это целое число.
Формат записи журнала представляет собой объединение четырех фрагментов информации с символом новой строки ( \n ), как показано ниже:
hash\nSHA256(Signed Code Transparency JWT)\npackage_name\npackage_version\n
Обратите внимание, что в этом выпуске мы экспериментируем с использованием прозрачности кода . Это означает, что вместо хеша APK мы записываем дайджест токена прозрачности кода. Поэтому описание хеша в настоящее время фиксировано как SHA256(Signed Code Transparency JWT) .
Кроме того, это демонстрирует, как разработчики приложений могут использовать прозрачность кода, когда ключи подписи их приложений хранятся в Google Play.
Диаграмма экосистемы
