APK Signature Scheme v3 je bil opažen v Android Open Source Project in zdi se, da prinaša podporo za rotacijo ključev.
Če ste razvijalec ali ste na kakršen koli način seznanjeni z deprevajanjem, spreminjanjem in/ali nameščanjem spremenjenih datotek APK, verjetno poznate podpise aplikacij. Preprosto povedano, Android zahteva, da aplikacija mora biti podpisana z istim ključem, da bo sistem omogočil posodobitev zadevne aplikacije. Android to preveri s preverjanjem podpisa APK.
APK podpisi so zelo osnovni varnostni ukrep v Androidu, o katerem smo že govorili. V bistvu so vsi podpisi edinstveni za določenega razvijalca ali skupino razvijalcev, tako da če podpis/certifikat v APK-ju ni veljaven oz. ne ujema s prvotno aplikacijo, namestitev ne bo uspela, s čimer preprečite namestitev spremenjenih ali ponarejenih datotek APK v vaš Android napravo. Ključe za podpis mora varno hraniti tudi razvijalec, saj so ključnega pomena za preverjanje in sčasoma izdajo posodobitve aplikacije. Na srečo podpisna shema za podpisovanje APK-jev dobiva še eno revizijo – v3 –, za katero se zdi, da dodaja priročno funkcijo, hkrati pa ohranja visoke varnostne standarde.
Shema podpisa APK v1 in v2
Ni minilo dolgo od trenutne različice APK Signature Scheme, v2, je bil izdan za razvijalce. Konec koncev, komaj smo ga predstavili z lansiranjem Android 7.0 Nougat, konec leta 2016. Uporaba podpisne sheme v2 v aplikacijah Android 7.0+ je bila zelo spodbujana, saj je prinesla vrsto bistvenih popravkov in varnostne izboljšave: medtem ko je v1 samo podpisal JAR, v2 naredi dodatne korake za zaščito celovitosti celote mapa. Vendar podpisne sheme niso združljive za nazaj, Android Marshmallow in starejše pa zahtevajo podpise v1 za aplikacije.
Razen če skrbite za uporabnike na Nougatu ali novejšem, bi bil idealen scenarij uporaba obeh shem podpisovanja vzporedno, tako da se najprej podpišete z v1 in nato odstopite z v2. Na ta način bodo Nougat in višje prepoznale podpis v2, medtem ko bodo Marshmallow in nižje prepoznale podpis v1.
Uporaba samo v1 pa se močno odsvetuje zaradi vrste ranljivosti in drugih varnostnih težav, med katerimi je najbolj opazna Janusova ranljivost, ki napadalcem omogoča neposreden napad in spreminjanje APK-jev brez vpliva na podpise. Priljubljene aplikacije z redkimi posodobitvami, kot sta Instagram ali Snapchat, so podpisane samo s podpisi v1, kar pomeni, da so ranljive za te težave.
Shema podpisa APK v3
Največja glavna značilnost v3, ki naj bi bila revizija v2, bo podpora za vrtenje ključev. The v3 podpisna shema predstavlja APK Signer Lineage, ki glede na ena od zavez, "vsebuje zgodovino podpisovanja potrdil z vsakim prednikom, ki potrjuje veljavnost njegovega potomca. Vsak dodatni potomec predstavlja novo identiteto, ki jo je mogoče uporabiti za podpis APK-ja. Na ta način linija vsebuje dokaz rotacije, s katerim lahko APK, ki jo vsebuje, pokaže drugim stranke, njegova zmožnost zaupanja trenutnemu podpisnemu potrdilu, kot da bi ga podpisal eden od njegovih starejših tiste."
Rotacija ključev je odlična funkcija za razvijalce na več načinov. Za začetek je to lahko koristno za razvijalce v skupinah, ki delajo na eni sami aplikaciji, tako da razvijalcem ni treba deliti svojih ključev za podpisovanje z ekipo. Ker aplikacija za posodabljanje potrebuje enak natančen podpis, mora trenutno vse aplikacije prevesti isti razvijalec ali skupina razvijalci delajo z istim ključem, zmanjšujejo varnost (večja je možnost kraje ključa) in upočasnjujejo razvoj.
Poleg tega je lahko koristen tudi v primeru, da razvijalcu ukradejo/izgubijo podpisni ključ, kar običajno pomeni, da bi bilo treba aplikacijo znova naložiti v Trgovino Play pod drugim paketom ime. To sploh ni neobičajen primer, saj je pred časom celo Google očitno izgubil podpisni ključ za aplikacijo Google Authenticator, zaradi česar so jo ponovno objavili pod drugim imenom paketa. Google je od takrat zagotovil sredstva za varno shranjevanje vaših ključev za podpisovanje v oblaku Google Play App Signing, vendar bi vam rotacija ključev omogočila nadaljevanje posodabljanja aplikacije v primeru hipotetične zmede.
Kdaj se začne?
Medtem ko bi jo morda želeli preizkusiti zaradi dodatnega udobja, je bila shema podpisa v3 opažena, da lebdi po AOSP Gerritovo spletno mesto za pregled kode in same objave še niso bile združene v glavno vejo, zato ni pripravljeno še. Pričakovati bi morali, da bo podpisna shema v3 prišla v roke razvijalcem s prihajajočo izdajo Androida P, če nam prejšnja izdaja v2 z Androidom Nougat kaj pove.
Upoštevati moramo tudi, da rotacija ključev zelo verjetno ni edina razlika v primerjavi z v2. Podpisna shema APK v3 še vedno poteka, zato bomo dejanske izboljšave podpisne sheme v3 videli, ko bo v prihodnosti objavljena celotna dokumentacija zanjo.