APK Signature Scheme v3 uočen je u Android Open Source Projectu i čini se da donosi podršku za rotaciju ključeva.
Ako ste programer ili ste na bilo koji način upoznati s dekompilacijom, modificiranjem i/ili instaliranjem modificiranih APK datoteka, vjerojatno ste upoznati s potpisima aplikacija. Jednostavno rečeno, Android nalaže da aplikacija mora biti potpisana istim ključem kako bi sustav omogućio ažuriranje dotične aplikacije. Android to potvrđuje provjerom APK potpisa.
APK potpisi vrlo su osnovna sigurnosna mjera u Androidu, o kojoj smo već govorili. U osnovi, svi su potpisi jedinstveni za određenog programera ili grupu programera, pa ako potpis/certifikat u APK-u nije važeći ili ne odgovara izvornoj aplikaciji, instalacija neće uspjeti, čime se sprječava instalacija neovlaštenih ili lažnih APK datoteka na vašem Androidu uređaj. Razvojni programer također mora sigurno čuvati ključeve potpisa jer su ključni za provjeru i eventualno pokretanje ažuriranja aplikacije. Srećom, shema potpisa za potpisivanje APK-ova dobiva još jednu reviziju—v3—koja, čini se, dodaje prikladnu značajku uz zadržavanje visokih sigurnosnih standarda.
Shema potpisa APK-a v1 i v2
Nije prošlo puno vremena od trenutne verzije APK sheme potpisa, v2, objavljen je za programere. Uostalom, jedva da nam je predstavljen lansiranjem Androida 7.0 Nougat, krajem 2016. godine. Korištenje sheme potpisa v2 u aplikacijama za Android 7.0+ jako se poticalo jer je donijelo niz bitnih zakrpa i sigurnosna poboljšanja: dok je v1 samo potpisao JAR, v2 poduzima dodatne korake prema zaštiti integriteta cjeline datoteka. Sheme potpisa ipak nisu kompatibilne s prethodnim verzijama, a Android Marshmallow i starije zahtijevaju v1 potpise za aplikacije.
Osim ako ne služite korisnicima na Nougatu ili novijem, idealan scenarij bio bi koristiti obje sheme potpisa jednu pored druge, tako da se prvo potpišete s v1, a zatim odustanete s v2. Na taj će način Nougat i noviji prepoznati v2 potpis, dok će Marshmallow i niži prepoznati v1 potpis.
Međutim, korištenje samo v1 se jako obeshrabruje zbog niza ranjivosti i drugih sigurnosnih problema, od kojih je najznačajniji Janusova ranjivost, koji napadačima omogućuje izravan napad i modificiranje APK-ova bez utjecaja na potpise. Popularne aplikacije s rijetkim ažuriranjima kao što su Instagram ili Snapchat potpisane su samo v1 potpisima, što znači da su ranjive na ove probleme.
Shema potpisa APK v3
Najveća naslovna značajka v3, koja bi trebala biti revizija v2, bit će podrška za rotaciju ključeva. The v3 shema potpisa predstavlja APK Signer Lineage, koji, prema jedan od obveza, "sadrži povijest potpisivanja certifikata sa svakim pretkom koji potvrđuje valjanost svog potomka. Svaki dodatni potomak predstavlja novi identitet koji se može koristiti za potpisivanje APK-a. Na taj način loza sadrži dokaz rotacije kojim APK koji je sadrži može pokazati drugima strane, njegova sposobnost da joj se povjeri trenutni certifikat za potpisivanje, kao da ga je potpisao netko od njegovih starijih one."
Rotacija ključeva izvrsna je značajka za programere na nekoliko načina. Za početak, ovo može biti korisno razvojnim programerima u timovima koji rade na jednoj aplikaciji, tako da programeri ne moraju dijeliti svoje ključeve za potpisivanje s timom. Budući da aplikaciji treba isti točan potpis za ažuriranje, sve aplikacije trenutačno treba kompilirati isti programer ili grupa programeri koji rade s istim ključem, smanjuju sigurnost (postoje veće šanse da ključ bude ukraden) i usporavaju razvoj.
Nadalje, također može biti korisno u slučaju da razvojnom programeru ukradu/izgube ključ za potpisivanje, što obično bi značilo da bi se aplikacija morala ponovno učitati u Trgovinu Play pod drugim paketom Ime. Ovo uopće nije neuobičajen slučaj, budući da je davno čak i Google očito izgubio ključ za potpisivanje za aplikaciju Google Authenticator što je dovelo do ponovnog objavljivanja pod drugim nazivom paketa. Google od tada nudi sredstva za sigurno pohranjivanje vaših ključeva za potpisivanje u oblak Google Play potpisivanje aplikacije, ali rotacija ključeva omogućila bi vam da nastavite ažurirati svoju aplikaciju u slučaju hipotetske zabrljanosti.
Kada izlazi?
Iako biste je možda jedva čekali isprobati zbog dodatne pogodnosti, v3 shema potpisa uočena je kako lebdi oko AOSP-a Stranica za pregled Gerrit Codea, a sama obvezivanja trenutno nisu spojena u glavnu granu, tako da nije spremna samo još. Trebali bismo očekivati da će shema potpisa v3 doći u ruke programera s nadolazećim izdanjem Androida P ako nam prethodno izdanje v2 s Android Nougatom išta govori.
Trebamo također primijetiti da rotacija ključa vrlo vjerojatno nije jedina razlika u odnosu na v2. APK Signature Scheme v3 još uvijek je u tijeku, tako da ćemo vidjeti stvarna poboljšanja v3 signature sheme kada u budućnosti izađe puna dokumentacija za nju.