Схема подписи APK v3 была обнаружена в проекте Android с открытым исходным кодом и, похоже, обеспечивает поддержку ротации ключей.
Если вы разработчик или каким-либо образом знакомы с декомпиляцией, изменением и/или установкой модифицированных APK-файлов, вы, вероятно, знакомы с сигнатурами приложений. Проще говоря, Android требует, чтобы приложение должен быть подписан тем же ключом, чтобы система могла обновить соответствующее приложение. Android проверяет это, проверяя подпись APK.
Подписи APK — это базовая мера безопасности в Android, о которой мы говорили ранее. По сути, все подписи уникальны для определенного разработчика или группы разработчиков, поэтому, если подпись/сертификат в APK недействителен или не соответствует исходному приложению, установка завершится неудачей, что предотвратит установку поддельных APK-файлов на ваш Android. устройство. Ключи подписи также должны храниться разработчиком в безопасности, поскольку они жизненно важны для проверки и, в конечном итоге, для выпуска обновления приложения. К счастью, схема подписи для подписи APK получает еще одну версию — v3, которая, похоже, добавляет удобную функцию при сохранении высоких стандартов безопасности.
Схема подписи APK v1 и v2
Прошло совсем немного времени с тех пор, как текущая версия схемы подписи APK, v2, был выпущен для разработчиков. В конце концов, он едва был представлен нам с запуском Android 7.0 Nougat в конце 2016 года. Использование схемы подписи v2 в приложениях Android 7.0+ было настоятельно рекомендовано, поскольку оно принесло ряд важных исправлений и улучшения безопасности: в то время как версия 1 только подписывает JAR, версия 2 предпринимает дополнительные шаги для защиты целостности всего файл. Однако схемы подписи не имеют обратной совместимости, а Android Marshmallow и более ранние версии требуют для приложений подписей версии 1.
Если вы не обслуживаете пользователей Nougat или более поздних версий, идеальным сценарием было бы использование обеих схем подписи одновременно, сначала подписывая версию v1, а затем отказываясь от версии v2. Таким образом, Nougat и более поздние версии распознают подпись v2, а Marshmallow и более ранние версии — подпись v1.
Однако использование только версии 1 настоятельно не рекомендуется из-за ряда уязвимостей и других проблем безопасности, наиболее заметной из которых является уязвимость Януса, что позволяет злоумышленникам напрямую атаковать и изменять APK, не затрагивая подписи. Популярные приложения с нечастыми обновлениями, такие как Instagram или Snapchat, подписаны только подписями версии 1, а это означает, что они уязвимы для этих проблем.
Схема подписи APK v3
Самой важной особенностью версии 3, которая должна была стать версией версии 2, будет поддержка ротации ключей. схема подписи v3 представляет APK Signer Lineage, которая, согласно один из коммитов, "содержит историю подписания сертификатов каждым предком, подтверждающих действительность его потомка. Каждый дополнительный потомок представляет собой новое удостоверение, которое можно использовать для подписи APK. Таким образом, линия передачи содержит доказательство ротации, с помощью которого содержащий ее APK может продемонстрировать другим сторонам, его способности доверять текущему сертификату подписи, как если бы он был подписан одним из его старых сертификатов. одни».
Ротация ключей — отличная возможность для разработчиков по нескольким причинам. Во-первых, это может быть полезно для разработчиков в группах, работающих над одним приложением, так что разработчикам не придется делиться своими ключами подписи с командой. Поскольку для обновления приложению требуется одна и та же точная подпись, все приложения в настоящее время должны быть скомпилированы одним и тем же разработчиком или группой разработчиков. разработчики работают с одним и тем же ключом, что снижает безопасность (повышается вероятность кражи ключа) и замедляет разработку.
Кроме того, это также может быть полезно в случае, если у разработчика украли/потеряли ключ подписи, что обычно это означает, что приложение необходимо повторно загрузить в Play Store в другом пакете. имя. Это совсем не редкий случай, поскольку давным-давно даже Google, по-видимому, потерял ключ подписи для приложения Google Authenticator, что привело к тому, что они переиздали его под другим именем пакета. С тех пор Google предоставил средства для безопасного хранения ваших ключей подписи в облаке с помощью Подписание приложений Google Play, но ротация ключей позволит вам продолжить обновление приложения в случае гипотетического сбоя.
Когда он выйдет в свет?
Хотя вам, возможно, захочется опробовать ее для дополнительного удобства, схема подписи v3 была обнаружена в AOSP. Сайт Gerrit Code Review, а сами коммиты сейчас не объединены в основную ветку, поэтому она еще не готова. еще. Мы должны ожидать, что схема подписи v3 попадет в руки разработчика с предстоящим выпуском Android P, если предыдущая версия v2 с Android Nougat нам что-нибудь скажет.
Также следует отметить, что ротация клавиш, скорее всего, не единственное отличие от v2. Схема подписи APK v3 все еще находится в стадии разработки, поэтому мы увидим реальные улучшения схемы подписи v3, когда в будущем выйдет полная документация для нее.