APK Signature Scheme v3 komt met ondersteuning voor sleutelrotatie

APK Signature Scheme v3 is gespot in het Android Open Source Project en lijkt ondersteuning te bieden voor sleutelrotatie.

Als u een ontwikkelaar bent of op een of andere manier bekend bent met het decompileren, wijzigen en/of installeren van gewijzigde APK-bestanden, bent u waarschijnlijk bekend met applicatiehandtekeningen. Simpel gezegd: Android schrijft voor dat een app nodig is moeten worden ondertekend met dezelfde sleutel, zodat het systeem het updaten van de betreffende app mogelijk maakt. Android verifieert dit door de APK-handtekening te controleren.

APK-handtekeningen zijn een zeer basale beveiligingsmaatregel in Android, waar we het eerder over hebben gehad. In principe zijn alle handtekeningen uniek voor een bepaalde ontwikkelaar of groep ontwikkelaars, dus als de handtekening/certificaat in een APK niet geldig is of niet overeenkomt met die van de originele app, zal de installatie mislukken, waardoor de installatie van geknoeide of valse APK-bestanden op uw Android wordt voorkomen apparaat. Handtekeningsleutels moeten ook veilig worden bewaard door de ontwikkelaar, omdat ze essentieel zijn voor het verifiëren en uiteindelijk uitbrengen van een app-update. Gelukkig krijgt het handtekeningschema voor het ondertekenen van APK's een nieuwe herziening (v3), die een handige functie lijkt toe te voegen terwijl de hoge beveiligingsnormen behouden blijven.


APK-handtekeningschema v1 en v2

Het is nog niet zo lang geleden dat de huidige APK Signature Scheme-versie, v2, werd vrijgegeven voor ontwikkelaars. Het werd immers nauwelijks bij ons geïntroduceerd met de lancering van Android 7.0 Nougat, eind 2016. Het gebruik van het v2-handtekeningenschema in Android 7.0+ apps werd sterk aangemoedigd, omdat het een reeks essentiële patches met zich meebracht beveiligingsverbeteringen: terwijl v1 alleen de JAR heeft ondertekend, neemt v2 aanvullende stappen om de integriteit van het geheel te beschermen bestand. Handtekeningenschema's zijn echter niet achterwaarts compatibel, en Android Marshmallow en lager vereisen v1-handtekeningen voor apps.

APK-validatieproces. Bron: Google.

Tenzij u zich specifiek richt op gebruikers van Nougat of hoger, zou het ideale scenario het gebruik van beide handtekeningschema's naast elkaar zijn, door eerst te ondertekenen met v1 en vervolgens af te treden met v2. Op deze manier zullen Nougat en hoger de v2-handtekening herkennen, terwijl Marshmallow en lager de v1-handtekening zullen herkennen.

Het gebruik van alleen v1 wordt echter sterk afgeraden vanwege een reeks kwetsbaarheden en andere beveiligingsproblemen, waarvan de meest opvallende is de Janus-kwetsbaarheid, waarmee aanvallers APK's rechtstreeks kunnen aanvallen en wijzigen zonder de handtekeningen te beïnvloeden. Populaire apps met onregelmatige updates, zoals Instagram of Snapchat, zijn alleen ondertekend met v1-handtekeningen, wat betekent dat ze kwetsbaar zijn voor deze problemen.

Het controleren van de APK-ondertekeningsversies van populaire sociale media/betaalapps.

APK-handtekeningschema v3

Het grootste headliner-kenmerk van v3, bedoeld als een herziening van v2, zal dat zijn ondersteuning voor sleutelrotatie. De v3 handtekeningschema introduceert de APK Signer Lineage, die volgens een van de toezeggingen, "bevat een geschiedenis van het ondertekenen van certificaten waarbij elke voorouder de geldigheid van zijn afstammeling bevestigt. Elke extra afstammeling vertegenwoordigt een nieuwe identiteit die kan worden gebruikt om een ​​APK te ondertekenen. Op deze manier bevat de afstamming een bewijs van rotatie waarmee de APK die deze bevat, aan anderen kan aantonen partijen, de mogelijkheid om te worden vertrouwd met het huidige handtekeningcertificaat, alsof het is ondertekend door een van de oudere degenen."

Sleutelrotatie is op verschillende manieren een geweldige functie voor ontwikkelaars. Om te beginnen kan dit handig zijn voor ontwikkelaars in teams die aan één app werken, zodat ontwikkelaars hun ondertekeningssleutels niet met het team hoeven te delen. Omdat de app exact dezelfde handtekening nodig heeft voor het updaten, moeten alle apps momenteel door dezelfde ontwikkelaar of een groep daarvan worden samengesteld ontwikkelaars die met dezelfde sleutel werken, waardoor de veiligheid afneemt (de kans is groter dat de sleutel wordt gestolen) en de ontwikkeling wordt vertraagd.

Bovendien kan het ook nuttig zijn als de ondertekeningssleutel van een ontwikkelaar wordt gestolen/verloren zou normaal gesproken betekenen dat de app opnieuw moet worden geüpload naar de Play Store onder een ander pakket naam. Dit is helemaal geen ongewoon geval, want lang geleden verloor zelfs Google blijkbaar de ondertekeningssleutel voor de Google Authenticator-app, wat ertoe leidde dat ze deze opnieuw publiceerden onder een andere pakketnaam. Google heeft sindsdien middelen geboden om uw ondertekeningssleutels veilig in de cloud op te slaan Ondertekening van Google Play-apps, maar met sleutelrotatie kunt u doorgaan met het updaten van uw app in het geval van een hypothetische puinhoop.

Wanneer wordt het uitgerold?

Hoewel je het misschien graag wilt uitproberen voor het extra gemak, werd het v3-signatuurschema rond de AOSP gespot Gerrit Code Review-site, en de commits zelf zijn op dit moment nog niet samengevoegd in de hoofdbranch, dus deze is nog niet klaar nog. We mogen verwachten dat het v3-signatuurschema in handen van de ontwikkelaar zal komen bij de komende release van Android P, als de vorige v2-release met Android Nougat ons iets vertelt.

We moeten ook opmerken dat sleutelrotatie zeer waarschijnlijk niet het enige verschil is ten opzichte van v2. APK Signature Scheme v3 is nog steeds een werk in uitvoering, dus we zullen de daadwerkelijke verbeteringen van het v3-handtekeningschema zien wanneer de volledige documentatie ervoor in de toekomst uitkomt.