APK Signature Scheme v3 vine cu suport pentru rotația cheilor

APK Signature Scheme v3 a fost depistat în Android Open Source Project și pare să aducă suport pentru rotația cheilor.

Dacă sunteți dezvoltator sau sunteți în vreun fel familiarizat cu decompilarea, modificarea și/sau instalarea fișierelor APK modificate, probabil că sunteți familiarizat cu semnăturile aplicațiilor. Pentru a spune simplu, Android impune o aplicație trebuie sa fie semnat cu aceeași cheie pentru ca sistemul să permită actualizarea aplicației în cauză. Android verifică acest lucru verificând semnătura APK-ului.

Semnături APK sunt o măsură de securitate de bază în Android, despre care am vorbit anterior. Practic, toate semnăturile sunt unice pentru un anumit dezvoltator sau grup de dezvoltatori, deci dacă semnătura/certificatul dintr-un APK nu este valid sau nu se potrivește cu aplicația originală, instalarea va eșua, prevenind astfel instalarea fișierelor APK falsificate sau false pe Android. dispozitiv. De asemenea, cheile de semnătură trebuie păstrate în siguranță de către dezvoltator, deoarece sunt vitale pentru a verifica și, în cele din urmă, pentru a transmite o actualizare a aplicației. Din fericire, schema de semnătură pentru semnarea APK-urilor primește o altă revizuire – v3 – care pare să adauge o caracteristică convenabilă, menținând în același timp standarde înalte de securitate.


Schema de semnătură APK v1 și v2

Nu a trecut prea mult timp de la versiunea actuală a APK Signature Scheme, v2, a fost lansat pentru dezvoltatori. Până la urmă, abia ne-a fost prezentat odată cu lansarea Android 7.0 Nougat, la sfârșitul lui 2016. Utilizarea schemei de semnătură v2 în aplicațiile Android 7.0+ a fost foarte încurajată, deoarece a adus o serie de patch-uri esențiale și îmbunătățiri de securitate: în timp ce v1 a semnat doar JAR-ul, v2 face pași suplimentari pentru protejarea integrității întregului fişier. Schemele de semnătură nu sunt, totuși, compatibile cu versiunea inversă, iar Android Marshmallow și versiunea anterioară necesită semnături v1 pentru aplicații.

Procesul de validare APK. Sursa: Google.

Cu excepția cazului în care vă adresați utilizatorilor de pe Nougat sau o versiune superioară, scenariul ideal ar fi utilizarea ambelor scheme de semnătură una lângă alta, semnând mai întâi cu v1 și apoi demisionând cu v2. În acest fel, Nougat și mai sus vor recunoaște semnătura v2, în timp ce Marshmallow și mai mici vor recunoaște semnătura v1.

Cu toate acestea, utilizarea numai a v1 este descurajată din cauza unei serii de vulnerabilități și a altor probleme de securitate, dintre care cele mai notabile fiind vulnerabilitatea lui Janus, care permite atacatorilor să atace și să modifice direct APK-urile fără a afecta semnăturile. Aplicațiile populare cu actualizări rare, cum ar fi Instagram sau Snapchat, sunt semnate doar cu semnături v1, ceea ce înseamnă că sunt vulnerabile la aceste probleme.

Verificarea versiunilor de semnare APK ale aplicațiilor populare de rețele sociale/de plată.

Schema de semnătură APK v3

Cea mai mare caracteristică principală a v3, menită să fie o revizuire a v2, va fi suport pentru rotația cheii. The schema de semnătură v3 introduce APK Signer Lineage, care, conform unul dintre comite, „conține un istoric al semnării certificatelor cu fiecare strămoș care atestă valabilitatea descendentului său. Fiecare descendent suplimentar reprezintă o nouă identitate care poate fi folosită pentru a semna un APK. În acest fel, descendența conține o dovadă de rotație prin care APK-ul care o conține poate demonstra, altor părților, capacitatea sa de a avea încredere cu certificatul de semnare actual, ca și cum ar fi semnat de unul dintre cei mai vechi cele.”

Rotația cheilor este o caracteristică excelentă pentru dezvoltatori în mai multe moduri. Pentru început, acest lucru poate fi util pentru dezvoltatorii din echipele care lucrează pentru o singură aplicație, astfel încât dezvoltatorii nu trebuie să-și împărtășească cheile de semnare cu echipa. Deoarece aplicația are nevoie de aceeași semnătură exactă pentru actualizare, toate aplicațiile trebuie să fie compilate de același dezvoltator sau de un grup de dezvoltatorii care lucrează cu aceeași cheie, scăzând siguranța (există mai multe șanse ca cheia să fie furată) și încetinind dezvoltarea.

În plus, poate fi util și în cazul în care unui dezvoltator i se fură/pierde cheia de semnare, ceea ce ar însemna în mod normal că aplicația ar trebui să fie reîncărcată în Magazinul Play sub un alt pachet Nume. Acesta nu este deloc un caz neobișnuit, deoarece cu mult timp în urmă, chiar și Google a pierdut cheia de semnare pentru aplicația Google Authenticator, ceea ce i-a determinat să o republice sub un alt nume de pachet. De atunci, Google a oferit mijloace pentru a vă stoca în siguranță cheile de semnare în cloud Semnarea aplicației Google Play, dar rotația tastelor vă va permite să continuați actualizarea aplicației în cazul unei ipotetice dezordine.

Când se lansează?

Deși ați putea fi nerăbdător să îl încercați pentru un plus de confort, schema de semnătură v3 a fost observată plutind în jurul AOSP Site-ul Gerrit Code Review și commit-urile în sine nu au fost îmbinate în ramura principală chiar acum, așa că nu este gata doar inca. Ar trebui să ne așteptăm ca schema de semnătură v3 să vină în mâinile dezvoltatorului odată cu lansarea viitoare a Android P dacă versiunea anterioară v2 cu Android Nougat ne spune ceva.

De asemenea, ar trebui să reținem că rotația cheilor este, destul de probabil, singura diferență față de v2. APK Signature Scheme v3 este încă o lucrare în curs, așa că vom vedea îmbunătățirile reale ale schemei de semnătură v3 atunci când documentația completă pentru aceasta va apărea în viitor.