APK Signature Scheme v3 on märgatud Androidi avatud lähtekoodiga projektis ja tundub, et see toetab võtmete pööramist.
Kui olete arendaja või olete mingil moel tuttav muudetud APK-failide dekompileerimise, muutmise ja/või installimisega, olete ilmselt tuttav rakenduste allkirjadega. Lihtsamalt öeldes nõuab Android seda rakendust peab olema allkirjastatud sama võtmega, et süsteem saaks kõnealust rakendust värskendada. Android kontrollib seda, kontrollides APK allkirja.
APK allkirjad on Androidis väga elementaarne turvameede, millest oleme varem rääkinud. Põhimõtteliselt on kõik allkirjad konkreetse arendaja või arendajate rühma jaoks ainulaadsed, nii et kui APK allkiri/sertifikaat ei kehti või ei ühti algse rakenduse omaga, installimine nurjub, takistades seega võltsitud või võltsitud APK-failide installimist teie Androidi seade. Samuti peab arendaja allkirjavõtmeid turvaliselt hoidma, kuna need on rakenduse värskenduse kinnitamiseks ja lõpuks ka väljastamiseks üliolulised. Õnneks saab APK-de allkirjastamise allkirjaskeem uue versiooni – v3 –, mis näib lisavat mugava funktsiooni, säilitades samas kõrged turvastandardid.
APK allkirjaskeem v1 ja v2
Praegusest APK allkirjaskeemi versioonist v2 pole möödunud liiga kaua, ilmus arendajatele. Lõppude lõpuks tutvustati seda meile vaevu, kui 2016. aasta lõpus käivitati Android 7.0 Nougat. V2 allkirjaskeemi kasutamine Android 7.0+ rakendustes oli väga soovitatav, kuna see tõi kaasa mitmeid olulisi plaastreid ja turvatäiustused: kuigi v1 allkirjastas ainult JAR-i, astub v2 täiendavaid samme kogu terviklikkuse kaitsmiseks faili. Allkirjaskeemid ei ole aga tagasiühilduvad ning Android Marshmallow ja vanemad versioonid nõuavad rakenduste jaoks v1 allkirju.
Kui te ei toitlusta konkreetselt Nougati või uuema versiooni kasutajaid, oleks ideaalne stsenaarium kasutada mõlemat allkirjaskeemi kõrvuti, allkirjastades esmalt versiooniga v1 ja seejärel loobudes v2-ga. Nii tunnevad Nougat ja uuemad versioonid v2 signatuuri, Marshmallow ja vanemad aga v1 allkirja.
Ainult v1 kasutamine on aga väga ebasoovitav mitmete haavatavuste ja muude turvaprobleemide tõttu, millest kõige olulisem on Januse haavatavus, mis võimaldab ründajatel otse rünnata ja muuta APK-sid ilma allkirju mõjutamata. Populaarsed rakendused, mida värskendatakse harva, nagu Instagram või Snapchat, on allkirjastatud ainult v1 allkirjadega, mis tähendab, et need on nende probleemide suhtes haavatavad.
APK allkirjaskeem v3
V3 suurim pealkiri, mis on mõeldud v2 versiooniks, saab olema klahvi pööramise tugi. The v3 allkirjaskeem tutvustab APK Signer Lineage'i, mis vastavalt üks kohustustest, "sisaldab iga esivanemaga sertifikaatide allkirjastamise ajalugu, mis tõendab tema järeltulija kehtivust. Iga täiendav järeltulija esindab uut identiteeti, mida saab kasutada APK allkirjastamiseks. Sel viisil sisaldab põlvnemine pöörlemise tõendit, mille abil seda sisaldav APK saab teistele demonstreerida osapooltele, et selle praegust allkirjastamissertifikaati usaldada, nagu oleks selle allkirjastanud üks selle vanemaid ühed."
Võtmete pööramine on arendajatele mitmel viisil suurepärane funktsioon. Alustuseks võib see olla kasulik arendajatele, kes töötavad ühe rakenduse nimel, nii et arendajad ei pea oma allkirjastamisvõtmeid meeskonnaga jagama. Kuna rakendus vajab värskendamiseks sama täpset allkirja, peab praegu kõik rakendused kompileerima sama arendaja või grupp arendajad töötavad sama võtmega, vähendades turvalisust (võtme varastamise tõenäosus on suurem) ja aeglustades arengut.
Lisaks võib see olla kasulik ka juhul, kui arendaja allkirjastamisvõti on varastatud/kaotsi läinud, mis tähendab tavaliselt seda, et rakendus tuleb Play poodi mõne muu paketi all uuesti üles laadida nimi. See pole sugugi haruldane juhtum, kuna ilmselt kaotas isegi Google Google Authenticatori rakenduse allkirjastamisvõtme, mis viis selle uuesti avaldamiseni teise paketinime all. Google on sellest ajast alates pakkunud vahendeid teie allkirjastamisvõtmete turvaliseks pilves salvestamiseks Google Play rakenduse allkirjastamine, kuid klahvide pööramine võimaldaks teil hüpoteetilise segaduse korral rakenduse värskendamist jätkata.
Millal see välja tuleb?
Ehkki võiksite seda mugavuse huvides proovida, leiti v3 allkirjaskeem AOSP-s hõljumas. Gerrit Code Review sait ja kohustusi ise pole praegu põhiharusse ühendatud, nii et see pole lihtsalt valmis veel. Peaksime eeldama, et v3 allkirjaskeem jõuab arendajate kätte koos Android P eelseisva väljalaskega, kui eelmine v2 versioon Android Nougatiga meile midagi ütleb.
Peaksime ka märkima, et klahvide pööramine pole tõenäoliselt ainus erinevus võrreldes v2-ga. APK allkirjaskeem v3 on veel pooleli, seega näeme v3 allkirjaskeemi tegelikke täiustusi, kui tulevikus selle täielik dokumentatsioon välja tuleb.