Android Licensing Server, de 'beveiliging' die Google aanbiedt voor makers van betaalde Android-apps, is nog niet op beveiliging gericht. Dat zegt Google in een reactie op het nieuws dat de beveiliging gemakkelijk te omzeilen zou zijn.
De code was erop gericht om het ontwikkelaars gemakkelijk te maken de code in hun applicatie te stoppen, zo zegt de maker van Android. "De eerste release is uitgebracht met de simpelste, zo transparant mogelijke implementatie van een sample, die was geschreven zodat hij gemakkelijk is te begrijpen en aan te passen. De code is niet gericht op beveiliging."
Dat het bovendien zo eenvoudig is, ligt volgens Google ook aan de ontwikkelaars die het licentiesysteem in hun applicatie gebruiken. "Sommige ontwikkelaars gebruiken de sample 'as is' en dat maakt het gemakkelijker om aan te vallen." Google raadt ontwikkelaars aan om de code te 'verduisteren', een techniek die het kraken van de applicatie een stuk lastiger zou maken.
Dinsdag werd duidelijk dat de Android Licensing Service gemakkelijk te omzeilen is door de apk uit te pakken en de code aan te passen. De kwetsbaarheid van het licentiesysteem zit in het bestand LicenseValidator.smali, waarmee wordt gecontroleerd of de gebruiker de applicatie heeft gekocht. De controle vindt plaats bij het starten van de applicatie en dat gebeurt op het toestel zelf.
De truc is dat de code wijst naar een volgende actie als de licentie wel of niet op het toestel aanwezig is. Zo wijst de uitkomst 0x1, de code voor de constatering dat er geen licentie op het toestel is gevonden, naar de actie sswitch_de, de melding dat er geen licentie is gekocht. Door in de code de actie te veranderen in sswitch_d3, wat aangeeft dat de licentie is gecheckt en de applicatie dus mag doorgaan, kan de beveiliging worden omzeild. Opvallend is dat de applicatie wel 'weet' dat er geen licentie is gekocht.
Google belooft geen updates en geeft toe dat ontwikkelaars zich nooit volledig tegen het kraken van applicaties kunnen beschermen. "Dat is nooit mogelijk in een systeem waarop third party code mogelijk is." De zoekgigant richt zich er daarom op om het kraken van applicaties moeilijker en duurder te maken, waardoor mensen eerder geneigd zijn om 'gemakkelijk' te doen en de app te kopen.
Een aantal van de Android-gebruikers die gekraakte applicaties gebruiken, doet dat vanwege het gebrek aan betaalmethoden in de Android Market; daarin kan alleen met creditcard worden betaald en die hebben veel Europeanen niet. Toch kunnen ook mensen zonder creditcard zaken kopen bij downloadwinkels en webwinkels die alleen creditcards accepteren, zo legt tweaker Gamefreakin uit.