APK Signature Scheme v3 har blitt oppdaget i Android Open Source Project, og det ser ut til å gi støtte for nøkkelrotasjon.
Hvis du er en utvikler eller på noen måte er kjent med å dekompilere, endre og/eller installere modifiserte APK-filer, er du sannsynligvis kjent med applikasjonssignaturer. For å si det enkelt, Android krever at en app må være signert med samme nøkkel for at systemet skal tillate oppdatering av den aktuelle appen. Android bekrefter dette ved å sjekke APK-signaturen.
APK-signaturer er et veldig grunnleggende sikkerhetstiltak i Android, som vi har snakket om tidligere. I utgangspunktet er alle signaturer unike for en bestemt utvikler eller gruppe av utviklere, så hvis signaturen/sertifikatet i en APK ikke er gyldig eller ikke samsvarer med den originale appen, vil installasjonen mislykkes, og dermed forhindre installasjon av tuklet eller falske APK-filer på Android enhet. Signaturnøkler må også oppbevares trygt av utvikleren siden de er avgjørende for å verifisere og til slutt sende ut en appoppdatering. Heldigvis får signaturordningen for signering av APK-er en annen revisjon—v3—som ser ut til å legge til en praktisk funksjon samtidig som den opprettholder høye sikkerhetsstandarder.
APK Signature Scheme v1 og v2
Det har ikke gått så lenge siden den nåværende APK Signature Scheme-versjonen, v2, ble utgitt for utviklere. Tross alt ble det knapt introdusert for oss med lanseringen av Android 7.0 Nougat, på slutten av 2016. Å bruke v2-signaturordningen i Android 7.0+-apper ble sterkt oppmuntret siden det brakte en rekke viktige oppdateringer og sikkerhetsforbedringer: mens v1 bare signerte JAR, tar v2 ytterligere skritt for å beskytte integriteten til helheten fil. Signaturordninger er imidlertid ikke bakoverkompatible, og Android Marshmallow og lavere krever v1-signaturer for apper.
Med mindre du henvender deg spesifikt til brukere på Nougat eller høyere, ville det ideelle scenariet være å bruke begge signaturskjemaene side om side, ved å signere med v1 først og deretter si opp med v2. På denne måten vil Nougat og høyere gjenkjenne v2-signaturen, mens Marshmallow og lavere vil gjenkjenne v1-signaturen.
Å bruke kun v1 frarådes imidlertid sterkt på grunn av en rekke sårbarheter og andre sikkerhetsproblemer, hvorav de mest bemerkelsesverdige er Janus-sårbarheten, som lar angripere direkte angripe og endre APK-er uten å påvirke signaturer. Populære apper med sjeldne oppdateringer som Instagram eller Snapchat er kun signert med v1-signaturer, noe som betyr at de er sårbare for disse problemene.
APK-signaturskjema v3
Den største overskriften til v3, ment å være en revisjon av v2, vil være støtte for nøkkelrotasjon. De v3 signaturskjema introduserer APK Signer Lineage, som i følge en av forpliktelsene, "inneholder en historie med signering av sertifikater med hver stamfar som attesterer gyldigheten til dens etterkommer. Hver ekstra etterkommer representerer en ny identitet som kan brukes til å signere en APK. På denne måten inneholder avstamningen et rotasjonsbevis som APK-en som inneholder den kan demonstrere for andre partene, dens evne til å bli klarert med sitt nåværende signeringssertifikat, som om det var signert av en av de eldre de."
Nøkkelrotasjon er en flott funksjon for utviklere på flere måter. For det første kan dette være nyttig for utviklere i team som jobber mot én enkelt app, slik at utviklere ikke trenger å dele signeringsnøklene sine med teamet. Siden appen trenger den samme eksakte signaturen for oppdatering, må alle apper for øyeblikket kompileres av samme utvikler eller en gruppe med utviklere som jobber med samme nøkkel, reduserer sikkerheten (det er større sjanser for at nøkkelen blir stjålet) og bremser utviklingen.
Videre kan det også være nyttig i tilfelle en utvikler får sin signeringsnøkkel stjålet/tapt, som vil normalt bety at appen må lastes opp på nytt til Play-butikken under en annen pakke Navn. Dette er ikke et uvanlig tilfelle i det hele tatt, for lenge siden til og med Google mistet tilsynelatende signeringsnøkkelen for Google Authenticator-appen, noe som førte til at de publiserte den på nytt under et annet pakkenavn. Google har siden da gitt midler til å trygt lagre signeringsnøklene dine i skyen med Google Play-appsignering, men nøkkelrotasjon vil tillate deg å fortsette å oppdatere appen din i tilfelle en hypotetisk rot.
Når ruller den ut?
Selv om du kanskje er ivrig etter å prøve det for ekstra bekvemmelighet, ble v3-signaturordningen oppdaget flytende rundt AOSP Gerrit Code Review-siden, og selve forpliktelsene er ikke slått sammen til hovedgrenen akkurat nå, så den er ikke klar bare ennå. Vi bør forvente at v3-signaturordningen kommer til utviklerens hender med den kommende utgivelsen av Android P hvis den forrige v2-utgivelsen med Android Nougat forteller oss noe.
Vi bør også merke oss at nøkkelrotasjon, ganske sannsynlig, ikke er den eneste forskjellen i forhold til v2. APK Signature Scheme v3 er fortsatt under arbeid, så vi vil se de faktiske forbedringene av v3-signaturordningen når den fullstendige dokumentasjonen for det kommer ut i fremtiden.