De volledige schijfversleuteling van miljoenen Androidtoestellen is eenvoudiger te kraken dan voorheen werd aangenomen, zo heeft onderzoeker Gal Beniamini ontdekt. Het gaat om Androidtoestellen met een Qualcomm Snapdragon-processor. Sinds versie 5.0 ondersteunt Android volledige schijfversleuteling.
Hiervoor genereert het toestel een willekeurig gekozen 128-bit meestersleutel (DEK) en een willekeurig gekozen 128-bit salt. De meestersleutel wordt vervolgens beschermd middels encryptie die op de inloggegevens van de gebruiker is gebaseerd, zoals zijn pincode, wachtwoord of patroon. Op basis van deze gegevens wordt een sleutel afgeleid die wordt gebruikt om de meestersleutel te versleutelen. De versleutelde meestersleutel wordt vervolgens op het apparaat in een speciaal onversleuteld gedeelte opgeslagen genaamd de 'crypto footer'.
De versleutelde schijf van de telefoon kan vervolgens eenvoudig worden ontsleuteld via de inloggegevens van de gebruiker, daar de sleutel van af te leiden en met die sleutel de opgeslagen meestersleutel te ontsleutelen. Om te voorkomen dat een aanvaller via een brute force-aanval toegang tot de versleutelde gegevens krijgt hebben de Android-ontwikkelaars verschillende maatregelen genomen. Zo is er een vertraging tussen de ontsleutelpogingen ingebouwd en de optie om de informatie na een aantal mislukte pogingen te wissen.
Om te voorkomen dat de encryptie niet direct op het toestel wordt gekraakt maar op een ander systeem is de KeyMaster bedacht. Bij het afleiden van de sleutel zoals eerder beschreven wordt de sleutel aan de hardware van het toestel gekoppeld. De KeyMaster-module draait in een Trusted Execution Environment (TEE) die volledig van het Android-besturingssysteem is gescheiden. De KeyMaster-module kan worden gebruikt om encryptiesleutels te genereren en daarop cryptografische operaties uit te voeren, zonder de sleutels aan het Android-besturingssysteem te openbaren. Zodra de sleutels in de KeyMaster-module zijn gegenereerd, worden ze via een door de hardware ondersteunde encryptiesleutel versleuteld en daarna pas aan het Android-besturingssysteem gegeven.
Zodra de encryptiesleutels nodig zijn voor een bepaalde operatie moet er een versleuteld datablok, de 'key blob', aan de KeyMaster worden overhandigd. e key blob bevat een 2048-bit RSA-sleutel die binnen een beveiligd deel van de processor draait en nodig voor de cryptografische operaties is. De implementatie van de KeyMaster wordt echter overgelaten aan de fabrikant. In het geval van processorfabrikant Qualcomm draait de KeyMaster binnen de Qualcomm Secure Execution Environment (QSEE). Deze omgeving laat kleine applicaties, zoals de KeyMaster-applicatie, in een beveiligd gedeelte draaien.
Beniamini ontdekte echter een kwetsbaarheid waardoor hij zijn eigen QSEE-app binnen dit beveiligde gedeelte kan uitvoeren en zo binnen de KeyMaster-module de onversleutelde key blob kan stelen. Vervolgens moet er een bruteforce-aanval op het wachtwoord of pincode van de gebruiker worden uitgevoerd. Met het wachtwoord en de key blob kunnen vervolgens de gegevens op het toestel worden ontsleuteld. Hierdoor kunnen Qualcomm en andere fabrikanten gehoor aan opsporingsdiensten geven en de volledige schijfversleuteling kraken, aldus de onderzoeker.
"Aangezien de sleutel beschikbaar is voor de TrustZone, kunnen Qualcomm en andere fabrikanten een gesigneerde TrustZone-image maken die de KeyMaster-sleutels achterhaalt en het toestel flasht. Hierdoor zouden opsporingsdiensten eenvoudig het schijfversleutelingswachtwoord via de gelekte sleutels buiten het toestel kunnen brute-forcen", zo laat Beniamini weten. Hij stelt verder dat de volledige schijfversleuteling op Android net zo sterk is als de TrustZone-kernel of KeyMaster.
Een kwetsbaarheid in de TrustZone-kernel of KeyMaster-module zou er dan ook voor kunnen zorgen dat de KeyMaster-sleutels worden achterhaald en het mogelijk is om de encryptie buiten het toestel te kraken. Met zijn publicatie hoopt Beniamini dat fabrikanten en Google met een robuustere oplossing voor de volledige schijfversleuteling op Android komen. Nadat de onderzoeker zijn bevindingen had gepubliceerd plaatste Jens Steube, ontwikkelaar van de populaire wachtwoordkraker hashcat, een reactie op het artikel waarin hij aanbiedt om een functie te ontwikkelen zodat hashcat de brute force-aanval kan uitvoeren. Dit zou het kraakproces nog verder kunnen versnellen.
Deze posting is gelocked. Reageren is niet meer mogelijk.