Logo nl.androidermagazine.com
Logo nl.androidermagazine.com

Hoe slaat Android uw vingerafdrukken op?

Anonim

De release van een iPhone zonder vingerafdruksensor heeft wat gepraat over het gebruik van vingerafdrukken voor authenticatie en hoe veilig de gegevens worden opgeslagen. Dat is geweldig. Zelfs als je je geen zorgen maakt over hoe het is gedaan, heb je veel andere mensen nodig om je zorgen te maken, zodat het op een manier wordt gedaan waar je je geen zorgen over hoeft te maken!

Om te beginnen gebruikt Apple een vergelijkbare oplossing en als je een ouder model met een vingerafdruksensor hebt, kun je deze net zo veilig gebruiken als voorheen. Hetzelfde geldt voor oudere Samsung-telefoons die pre-Marshmallow lanceerden en Samsung's eigen methoden gebruikten.

De manier waarop Google uw vingerafdrukgegevens opslaat, is de veiligste manier die mogelijk is met de huidige technologie. Het is ook fascinerend hoe eenvoudig het overzicht van het geheel is als je er eenmaal naar kijkt. Eenvoudig en veilig is altijd een winnende combinatie.

Opslag is van nature niet erg veilig. Het is hetzelfde als iets op een post-it-notitie schrijven en in een archiefkast plaatsen. Het is er omdat het er moet zijn, en het beste wat je kunt doen is bepalen wie er toegang toe heeft. Voor een archiefkast gebruikt u een slot en voor uw telefoon gebruikt u codering. Voor uw vingerafdrukgegevens gaat het nog een stap verder: een Trusted Execution Environment (TEE).

Een TEE is een afzonderlijk en geïsoleerd gebied in de hardware van de telefoon. Een TEE kan zijn eigen processor en geheugen gebruiken of het kan een gevirtualiseerde instantie op de hoofd-CPU gebruiken. In beide gevallen is de TEE volledig geïsoleerd en geïsoleerd met behulp van hardware-backed-geheugen en input / output-bescherming. De enige manier om binnen te komen is als het T-SHIR je binnenlaat en dat zal het nooit doen. Zelfs als de telefoon is geroot of de bootloader ontgrendeld, is de TEE gescheiden en nog steeds intact.

Een afzonderlijke processor met eigen geheugen en besturingssysteem wordt gebruikt om uw vingerafdrukgegevens te analyseren en op te slaan.

Google gebruikt wat zij Trusty TEE noemen om dit te ondersteunen. Een zeer klein en efficiënt besturingssysteem, toepasselijk genaamd Trusty OS, draait op de TEE-hardware en kernel-stuurprogramma's laten het communiceren met het systeem. Er zijn Android-bibliotheken (je raadt het al: de Trusty API) die ontwikkelaars kunnen gebruiken, zodat ze kunnen vragen wat een ja of nee-vraag voor de TEE is. Niet alleen vingerafdrukgegevens worden opgeslagen in de TEE. Dingen zoals DRM-sleutels en de bootloader-coderingssleutels van de fabrikant leven ook in de TEE en werken op dezelfde manier als uw vingerafdrukgegevens - geef aan of gegevens die door een toepassing worden gepresenteerd, overeenkomen met de bekende goede gegevens die worden opgeslagen.

Andere fabrikanten kunnen Trusty OS gebruiken of kunnen vervolgens een ander systeem gebruiken. Zolang aan alle criteria is voldaan (hieronder weergegeven) en de TEE geïsoleerd en geïsoleerd is, voldoet deze aan de beveiligingsstandaarden die nodig zijn om Pixel Imprint (voorheen Nexus Imprint) te gebruiken.

ARM TrustZone TEE blokdiagram.

Wanneer u een vingerafdruk op uw Android-telefoon registreert, neemt de sensor de gegevens van de scan op. Trusty OS analyseert deze gegevens in de TEE en maakt vervolgens twee dingen: een set validatiegegevens en een gecodeerde vingerafdruksjabloon. Dit lijkt junk-data voor alles behalve de TEE die ook de sleutel heeft om die junk-data te ontcijferen. Deze gecodeerde vingerafdruksjabloon wordt opgeslagen in een gecodeerde container op de TEE of op de gecodeerde opslag van uw telefoon. Drie coderingslagen betekenen dat het bijna onmogelijk is om de gegevens te krijgen, en zelfs als u het zou kunnen, het is nutteloos zonder een manier om het te ontcijferen.

Android vereist dat uw vingerafdrukgegevens worden beveiligd met een unieke sleutel en u kunt deze niet meenemen naar een andere telefoon of opnieuw gebruiken voor een andere gebruiker.

De validatiegegevens worden opgeslagen in de TEE. Wanneer u uw vinger op de scanner plaatst om iets te proberen, bouwt de scanner een gegevensprofiel op. Via de Trusty API vraagt ​​de bijbehorende toepassing de kernel om de TEE te vragen of deze juist is. De TEE controleert de opgeslagen validatiegegevens met behulp van de afzonderlijke processor en het geheugen, en als voldoende gegevens overeenkomen, zegt het ja. Als er niet voldoende overeenkomende gegevens zijn, staat er nee. Deze pass of fail-reactie wordt teruggestuurd naar de kernel als een softwaretoken dat de API kan lezen om het resultaat te zien.

Terwijl de TEE zelf een zelfstandig besturingssysteem en hardware gebruikt om veilig te blijven, maakt de vingerafdruksjabloon gebruik van softwarematige codering. Het moet worden ondertekend met een zeer specifieke sleutel om geldig te zijn. Deze sleutel wordt gemaakt met behulp van apparaatspecifieke informatie, gebruikersspecifieke informatie en tijdspecifieke informatie. Met andere woorden, als u een gebruiker verwijdert, van apparaat verandert of een vingerafdruk opnieuw probeert te registreren (het systeem kan zien of u een bestaande vingerafdruk overschrijft), wordt de sleutel niet meer herkend en kan deze niet worden gebruikt om de vingerafdruk te decoderen sjabloon.

De basisregels waaraan elk bedrijf dat Android-telefoons met een vingerafdruksensor maakt, zich moeten houden:

  • Alle analyse van vingerafdrukgegevens moet binnen de TEE worden uitgevoerd
  • Alle gegevens die aan een vingerafdruk zijn gekoppeld, moeten in de TEE of in het vertrouwde geheugen worden opgeslagen (geheugen dat de hoofd-CPU niet eens kan zien)
  • Vingerafdrukprofielgegevens moeten zelf-gecodeerd zijn, zelfs als ze zijn opgeslagen in gecodeerde telefoonopslag
  • Het verwijderen van een gebruikersaccount moet ook alle gegevens die zijn gekoppeld aan de vingerafdrukken van die gebruiker veilig wissen
  • Waar vingerafdrukprofielen worden opgeslagen, mag deze niet zichtbaar zijn voor een toepassing, proces of gebruiker, inclusief de rootgebruiker
  • Van vingerafdrukken van welke aard dan ook mag geen back-up worden gemaakt naar een andere bron, inclusief de cloud of uw computer of een toepassing
  • Vingerafdrukverificatie moet worden gebruikt door het proces dat daarom heeft gevraagd (geen vingerafdrukgegevens delen, zelfs alleen het ja of nee antwoord om te zien of het correct was)

Wanneer u een paar standaardspecificaties hebt die duidelijk zijn, is het niet moeilijk om hieraan te voldoen. Dit zorgt ervoor dat, ongeacht de Android-telefoon die u gebruikt, uw vingerafdrukgegevens veilig worden opgeslagen en dat geen enkel ander systeemproces of app er toegang toe kan krijgen. Naarmate cryptografie evolueert, vooral versleuteling op basis van hardware, zal deze methode om uw vingerafdrukgegevens veilig te houden, ook toenemen. Het zal interessant zijn om terug te kijken zodra Android Z wordt gelanceerd en te zien hoe ver we zijn gekomen.