APK Signature Scheme v3 идва с поддръжка за Key Rotation

click fraud protection

APK Signature Scheme 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+ беше силно насърчавано, тъй като донесе серия от основни корекции и подобрения в сигурността: докато v1 подписва само JAR, v2 предприема допълнителни стъпки за защита на целостта на цялото файл. Схемите за подписване обаче не са обратно съвместими и Android Marshmallow и по-стари изискват подписи v1 за приложения.

Процес на валидиране на APK. Източник: Google.

Освен ако не се грижите специално за потребители на Nougat или по-нова версия, идеалният сценарий би бил да използвате двете схеми за подписване една до друга, като първо подпишете с v1 и след това се откажете с v2. По този начин Nougat и по-високите ще разпознаят подписа v2, докато Marshmallow и по-ниските ще разпознаят подписа v1.

Използването само на v1 обаче е силно обезкуражено поради поредица от уязвимости и други проблеми със сигурността, най-забележителният от които е уязвимостта на Янус, което позволява на атакуващите директно да атакуват и модифицират APK, без да засягат подписите. Популярни приложения с редки актуализации като Instagram или Snapchat са подписани само с v1 подписи, което означава, че са уязвими към тези проблеми.

Проверка на версиите за подписване на APK на популярни социални медии/приложения за плащане.

APK схема за подпис v3

Най-голямата основна характеристика на v3, предназначена да бъде ревизия на v2, ще бъде поддръжка на ротация на ключове. The v3 схема за подпис въвежда APK Signer Lineage, който според един от ангажиментите, "съдържа история на подписване на сертификати с всеки предшественик, удостоверяващ валидността на неговия потомък. Всеки допълнителен наследник представлява нова самоличност, която може да се използва за подписване на APK. По този начин родословието съдържа доказателство за ротация, чрез което APK, съдържащ го, може да демонстрира на други страни, способността му да се доверява на текущия си сертификат за подписване, сякаш е подписан от някой от по-старите му нечий."

Ротацията на ключовете е страхотна функция за разработчиците по няколко начина. Като за начало това може да бъде полезно за разработчици в екипи, работещи върху едно приложение, така че разработчиците не трябва да споделят своите ключове за подписване с екипа. Тъй като приложението се нуждае от същия точен подпис за актуализиране, всички приложения в момента трябва да бъдат компилирани от един и същ разработчик или група от разработчиците, работещи с един и същ ключ, намаляват безопасността (има повече шансове ключът да бъде откраднат) и забавят развитието.

Освен това може да бъде полезно и в случай на кражба/изгубване на ключ за подписване на разработчик, което обикновено означава, че приложението ще трябва да бъде качено отново в Play Store под различен пакет име. Това изобщо не е необичаен случай, тъй като отдавна дори Google очевидно е загубил ключа за подписване за приложението Google Authenticator, което ги е накарало да го публикуват повторно под различно име на пакет. Оттогава Google предоставя средства за безопасно съхраняване на вашите ключове за подписване в облака Подписване на приложения в Google Play, но ротацията на ключове ще ви позволи да продължите да актуализирате приложението си в случай на хипотетична бъркотия.

Кога излиза?

Въпреки че може да сте нетърпеливи да го изпробвате за допълнително удобство, схемата за подпис v3 беше забелязана да се носи около AOSP Сайт за преглед на кода на Gerrit и самите ангажименти не са обединени в основния клон в момента, така че не е готов просто още. Трябва да очакваме схемата за подписване v3 да дойде в ръцете на разработчиците с предстоящото издание на Android P, ако предишното издание v2 с Android Nougat ни каже нещо.

Трябва също така да отбележим, че ротацията на ключовете вероятно не е единствената разлика спрямо v2. Схемата за подписване на APK v3 все още е в процес на работа, така че ще видим действителните подобрения на схемата за подписване v3, когато в бъдеще излезе пълната документация за нея.