APK Signature Scheme v3 bylo spatřeno v projektu Android Open Source Project a zdá se, že přináší podporu pro rotaci klíčů.
Pokud jste vývojář nebo jste nějakým způsobem obeznámeni s dekompilací, úpravou a/nebo instalací upravených souborů APK, pravděpodobně znáte podpisy aplikací. Jednoduše řečeno, Android vyžaduje, aby aplikace musí být podepsán stejným klíčem, aby systém umožnil aktualizaci dané aplikace. Android to ověří kontrolou podpisu APK.
Podpisy APK jsou velmi základním bezpečnostním opatřením v Androidu, o kterém jsme hovořili dříve. V zásadě jsou všechny podpisy jedinečné pro určitého vývojáře nebo skupinu vývojářů, takže pokud podpis/certifikát v souboru APK není platný nebo neodpovídá původní aplikaci, instalace se nezdaří, čímž se zabrání instalaci zfalšovaných nebo falešných souborů APK na váš Android přístroj. Podpisové klíče musí také vývojář bezpečně uchovávat, protože jsou životně důležité pro ověření a případně pro vydání aktualizace aplikace. Naštěstí schéma podpisu pro podepisování souborů APK dostává další revizi – v3 – která se zdá být přidáním pohodlné funkce při zachování vysokých bezpečnostních standardů.
APK Signature Scheme v1 a v2
Není to příliš dlouho, co aktuální verze APK Signature Scheme, v2, byla vydána pro vývojáře. Ostatně nám byl sotva představen s uvedením Androidu 7.0 Nougat, na konci roku 2016. Použití schématu podpisu v2 v aplikacích pro Android 7.0+ bylo vysoce podporováno, protože přineslo řadu nezbytných oprav a vylepšení zabezpečení: zatímco v1 podepsala pouze JAR, v2 podniká další kroky k ochraně integrity celku soubor. Podpisová schémata však nejsou zpětně kompatibilní a Android Marshmallow a nižší vyžaduje pro aplikace podpisy v1.
Pokud se nestaráte konkrétně o uživatele na Nougat nebo vyšší, ideální scénář by bylo používat obě podpisová schémata vedle sebe, a to tak, že byste nejprve podepsali s v1 a pak rezignovali s v2. Tímto způsobem Nougat a vyšší rozpozná signaturu v2, zatímco Marshmallow a nižší rozpozná signaturu v1.
Používání pouze verze 1 se však silně nedoporučuje kvůli řadě zranitelností a dalších bezpečnostních problémů, z nichž nejvýznamnější je zranitelnost Janus, která umožňuje útočníkům přímo útočit a upravovat soubory APK bez ovlivnění podpisů. Oblíbené aplikace s občasnými aktualizacemi, jako je Instagram nebo Snapchat, jsou podepsány pouze podpisy v1, což znamená, že jsou vůči těmto problémům zranitelné.
APK Signature Scheme v3
Největší titulek v3, který má být revizí v2, bude podpora otáčení klíčů. The podpisové schéma v3 představuje APK Signer Lineage, která podle jeden ze závazků, "obsahuje historii podepisování certifikátů s každým předkem potvrzujícím platnost jeho potomka. Každý další potomek představuje novou identitu, kterou lze použít k podepsání souboru APK. Tímto způsobem linie obsahuje důkaz rotace, kterým může APK, která ji obsahuje, demonstrovat ostatním strany, jeho schopnost důvěřovat jeho aktuálnímu podpisovému certifikátu, jako by byl podepsán některým z jeho starších jedničky."
Rotace klíčů je pro vývojáře skvělá funkce v několika ohledech. Pro začátečníky to může být užitečné pro vývojáře v týmech pracujících na jedné aplikaci, takže vývojáři nemusí sdílet své podpisové klíče s týmem. Vzhledem k tomu, že aplikace potřebuje pro aktualizaci stejný přesný podpis, musí být všechny aplikace aktuálně zkompilovány stejným vývojářem nebo skupinou vývojáři pracující se stejným klíčem, což snižuje bezpečnost (existuje větší šance na odcizení klíče) a zpomaluje vývoj.
Navíc to může být také užitečné v případě, že vývojáři ukradli/ztratili podpisový klíč, což by normálně znamenalo, že by se aplikace musela znovu nahrát do Obchodu Play v rámci jiného balíčku název. To není vůbec neobvyklý případ, protože už dávno dokonce i Google zjevně ztratil podpisový klíč pro aplikaci Google Authenticator, což vedlo k tomu, že jej znovu publikoval pod jiným názvem balíčku. Google od té doby poskytuje prostředky, jak bezpečně uložit vaše podpisové klíče v cloudu Google Play App Signing, ale střídání klíčů by vám umožnilo pokračovat v aktualizaci aplikace v případě hypotetického nepořádku.
Kdy se to spustí?
I když byste to možná chtěli vyzkoušet pro větší pohodlí, schéma podpisu v3 bylo spatřeno plovoucí kolem AOSP Web Gerrit Code Review a samotné commity nebyly právě teď začleněny do hlavní větve, takže nejsou připraveny dosud. Měli bychom očekávat, že se schéma podpisu v3 dostane do rukou vývojářů s nadcházejícím vydáním Androidu P, pokud nám předchozí vydání v2 s Androidem Nougat něco říká.
Měli bychom také poznamenat, že střídání klíčů není pravděpodobně jediným rozdílem oproti verzi 2. APK Signature Scheme v3 je stále ve vývoji, takže skutečná vylepšení podpisového schématu v3 uvidíme, až v budoucnu vyjde úplná dokumentace k němu.