Inleiding
Na al enkele malen een beveiligde usb-stick of harde schijf gekraakt te hebben kreeg de redactie van Tweakers.net een exemplaar van de BioSlimDisk Signature in handen. Deze uitvoering is de vernieuwde versie van het type dat onder andere door verschillende overheidsdiensten wordt gebruikt. Deze versie moet op papier de ultieme beveiliging bieden tegen misbruik van de opgeslagen gegevens. Uiteraard werd onderzocht of de BioSlimDisk Signature deze claim kan waarmaken.
De BioSlimDisk wordt door fabrikant Ritech in verschillende groottes gemaakt. In Nederland wordt de stick geïmporteerd door het bedrijf Norman. De adviesprijs varieert van 249 euro voor de 512MB-versie tot 439 euro voor de 2GB-versie. De nieuwe Signature-uitvoering maakt gebruik van het bekende AES-128-bit-encryptiealgoritme. Dat is een aanzienlijke verbetering ten opzicht van de vorige versies, die geen gebruikmaakten van encryptie of een eigen algoritme gebruikten dat slechts de posities van verschillende sectoren onderling verwisselde. AES is een bekend en betrouwbaar algoritme dat in theorie voldoende veilig moet zijn. Of Ritech deze theorie in de praktijk toe weet te passen zal blijken.
Op het moment dat we het product uit de doos halen valt op hoe duidelijk verschillende vingerafdrukken op de behuizing zichtbaar zijn. We vragen ons onmiddellijk af of het mogelijk zal zijn een vingerafdruk van de behuizing te halen. Enkele tests leren ons echter al snel dat dat niet eenvoudig is. De behuizing is speciaal aangepast om te voorkomen dat een goede vingerafdruk gekopieerd kan worden

In tegenstelling tot de eerder bekeken sticks en schijven ondersteunt de BioSlimDisk naast Windows ook verschillende andere besturingssystemen, zoals Linux en Mac OS.
De aanval
Op het moment dat de stick in de computer wordt gestopt, gebeurt er niets. Pas als twee verschillende vingerafdrukken door de stick zijn herkend, wordt de aanwezigheid door de computer opgemerkt. Vanaf dat moment gedraagt de stick zich als iedere normale, niet beveiligde stick. In de ‘trainingstand’ kunnen maximaal vijf verschillende vingerafdrukken toegevoegd worden. Nadat de gewenste vingerafdrukken toegekend zijn wordt er een willekeurige sleutel gekozen om de data mee te versleutelen. De aanwezige data is dus absoluut onbruikbaar geworden, en de stick moet geformatteerd worden om er verder gebruik van te kunnen maken.
Als de stick op een usb-poort wordt aangesloten is er - tot het moment dat twee geldige vingerafdrukken zijn gescand - geen enkele communicatie met de computer. We hoeven dus niet te proberen de sofware te kraken: er is geen software om te kraken. De enige methode om eventuele kwetsbaarheden te achterhalen, was dus om de stick open te maken, en te zien of we iets met de hardware konden beginnen.
Het kost een klein beetje moeite, maar we krijgen we de vastgelijmde behuizing open. De fabrikant heeft een soort hars gebruikt om de componenten aan de vingers en spiedende blikken van mogelijke hackers te onttrekken. Om de onderdelen vanuit alle hoeken te kunnen inspecteren besloten we de twee delen van de printplaat los te halen, en via draadjes weer aan elkaar te verbinden.


Een korte test leerde ons dat de stick nog steeds goed functioneerde. Met onze soldeerkunsten zit het dus wel goed. Toch konden we, dankzij de hars, de onderdelen nog niet goed bekijken. Gelukkig voor ons heeft Ritech een soort hars gebruikt die onder invloed van warmte zacht wordt. Na wat prutsen met een verfafbrander en een tandenstoker was alle hars verdwenen. Het binnenste van de BioSlimDisk was nu goed te bekijken.
Op de printplaat zitten onder andere de volgende vier chips gesoldeerd:
- Een chip om de vingerafdruk te verwerken.
- Een usb-naar-nand-chip met ingebouwde encryptiemogelijkheden.
- een simpele, 8-bit microcontroller die niet krachtig genoeg lijkt om complexe bewerkingen uit te voeren. Hij is verbonden met de vingerafdrukprocessor en de usb-naar-nand-chip.
- Een stukje standaard nand-geheugen uit de fabrieken van Samsung. De versleutelde data wordt hier opgeslagen.
We besloten onze aandacht als eerste op het nand-geheugen te richten. De data is volgens Ritech versleuteld, maar het zal niet de eerste keer zijn dat een fabrikant meer claimt dan zijn product waar kan maken. Ritech stelt dat het onmogelijk is het geheugen van de rest van de stick los te maken. Als dit toch geprobeerd wordt zal het geheugen onherstelbaar beschadigd raken, aldus de fabrikant. Met een verfafbrander wisten we toch redelijk eenvoudig het geheugen onbeschadigd los te krijgen. We sloten de chip aan op een zelf gebouwde nand-reader en probeerden de inhoud te lezen. Het bleek dat de claim van Ritech met betrekking tot de versleuteling terecht is. We konden slechts de eerste paar kilobyte aan gegevens lezen, bestaande uit de firmware van de usb-naar-nand-chip. De rest van de gegevens, de te beschermen data, was onleesbaar; 1-0 voor de BioSlimDisk.
Een andere route
Het was duidelijk dat we een andere route moesten nemen. De verbindingen tussen de microcontroller en de chip die de vingerafdrukken verwerkt leken interessant. De verbindingen bestaan uit twee pin headers, ieder bestaande uit zeven pins. De eerste bleek niet de moeite waard; deze wordt slechts gebruikt om de led-lampjes op de stick te besturen. De andere verbinding beloofde echter een stuk waardevoller te zijn. We plaatsen een oscilloscoop op de pennen, en het bleek dat er data over de verbinding wordt gestuurd bij het verwerken van een vingerafdruk. Het leek erop dat er een asynchroon serieel communicatieprotocol wordt gebruikt, met een snelheid van 9600 baud. We sloten een oude gsm-datakabel aan en luisterden naar het berichtenverkeer tussen de vingerafdrukchip en de microcontroller. Al snel kregen we inzicht in de communicatie. De beide chips communiceren via een vraag-antwoord-protocol dat ongeveer als volgt gaat:
Microcontroller: "Kun je me een seintje geven als een vinger gescand wordt?"
Vingerafdrukchip: "Prima, dat doe ik"
Vingerafdrukchip: "Hey, een vingerafdruk"
Microcontroller: "Ken je de vingerafdruk?"
Vingerafdrukchip: "Nee, nooit eerder gezien"
Microcontroller: "Jammer. Zeg het maar als je weer een nieuwe detecteert."
Vingerafdrukchip: "Okidoki"
Vingerafdrukchip: "Ja, een nieuwe vingerafdruk"
Microcontroller: "En, ken je hem?"
Vingerafdrukchip: "Ja, het is de tweede afdruk die mij geleerd is"
Microcontroller: "Prima, nog eentje en ik geef de stick vrij"
Dit is een sterk versimpelde weergave van de communicatie - in het echt worden checksums en respons-id's gebruikt - maar geeft wel een goed overzicht van de berichten tussen beide componenten. Het mag duidelijk zijn dat het gebabbel tussen de chip die de vingerafdrukken controleert en de microcontroller een potentiële kwetsbaarheid is. We haalden de pen waarop de vingerafdrukchip zijn antwoorden verstuurt los, en sloten hem aan op onze computer. Vanaf dit moment fungeerde de computer als een 'man-in-the-middle' en konden we gegevenstroom manipuleren. Het eerste wat we deden is de antwoorden van de chip bij een correcte vingerafdruk registreren. Vervolgens maakten we een klein - 60 regels C-code - stukje software. Het programma detecteert de reactie op een foutieve vingerafdruk, en vervangt deze door het eerder vastgelegde - opgenomen - antwoord op een goede afdruk. Dat betekent dus dat iedere afdruk als een geldige gezien zal worden door de microcontroller.
Toen het programma gereed was sloten we het geheel aan. De neus van Jeroen deed dienst als vinger en we wachtten het resultaat af. Het C-programma gaf de melding dat het bericht van de vingerafdrukchip vervangen was door een 'afdruk herkend'-bericht. Een seconde later wisten we dat het raak was: het groene led-lampje ging branden ten teken dat de stick een geldige vingerafdruk ontvangen had. Door de hele procedure te herhalen werd ook de vereiste tweede vingerafdruk door de stick ontvangen en werd de inhoud van de stick openbaar gemaakt.
Contact met de leverancier
De lezer zal begrijpen dat we wederom verrukt waren met het resultaat; weer een stick bezweken. Zoals de regels van responsible disclosure vereisen, hebben we uiteraard voor publicatie contact opgenomen met de leverancier. De Nederlandse importeur verwees ons direct door naar de fabrikant. Deze nam vanuit het hoofdkantoor in Singapore contact op.
De fabrikant wilde de hack wel erkennen, maar gaf direct aan dat Tweakers.net een prototype getest had, een prototype dat niet op de markt zal verschijnen. In de definitieve stick zouden extra beveiligingen zijn aangebracht die de door ons uitgevoerde hack zouden moeten voorkomen.
Kritisch als we zijn geloven we de leverancier uiteraard niet via de telefoon. Ze bieden daarop aan dat een delegatie van de fabrikant zou langskomen met de definitieve versie van de nieuwe BioSlimDisk Signature. Zo gezegd, zo gedaan. Enkele weken na onze melding aan Ritech staat een afvaardiging van het bedrijf voor de deur van huishacker Jeroen. De definitieve versie van de BioSlimDisk blijkt inderdaad niet meer gevoelig voor de hack waarbij de communicatie tussen chips op de printplaat wordt afgeluisterd en aangepast. Sterker nog, nadat we drie keer een poging hadden ondernomen de gegevens met ons programma te manipuleren was de stick, op het knipperen van een ledje na, volledig dood. Een telefoontje naar het hoofdkwartier moest opheldering scheppen: als de firmware van de stick ontdekt dat er geknoeid is met de communicatie tussen de chips treed een zelfvernietigingmechanisme in werking. Opnieuw flashen in de fabriek is de enige optie om de stick weer te kunnen gebruiken.
Ondanks deze tegenslag lieten we ons nog niet uit het veld slaan. Met een nieuwe stick probeerden we meer informatie over het communicatieprotocol te krijgen. We kwamen er achter dat de vingerafdruksensor door het Engelse bedrijf Upek wordt gemaakt. Op de website van het bedrijf is een document te downloaden met een beschrijving van de sensor en het gebruikte communicatieprotocol. Het blijkt dat de nieuwe sticks uitgerust zijn met een functie die het weer afspelen van communicatie opgenomen van een andere stick - de manier waarop we het prototype wisten te hacken - moet voorkomen. Op het moment dat er een nieuwe vingerafdruk aan het systeem wordt toegevoegd wordt een random nummerreeks door de microcontroller aan de afdruk toegevoegd en in de chip van de vingerafdruksensor opgeslagen. Deze nummerreeks is uniek voor iedere stick en wordt alleen door de sensor vrijgegeven als een bekende vingerafdruk gedetecteerd wordt. Bij het ontvangen van data van de sensor controleert de microcontroller of het nummer overeenkomt met het nummer dat hij zelf kent, en weigert iedere communicatie die niet is voorzien van het unieke nummer. Door deze werkwijze is de stick beschermd tegen het rommelen met de communicatie tussen de chips.
Het document van de leverancier van de vingerafdruksensor bood - hoewel het een oud document betrof - nog wel enkele nieuwe ideeën om de stick te hacken. Zo biedt de sensor de mogelijkheid onderscheid te maken tussen een levende en een dode vinger. Deze controle kan echter wél omzeild worden door de communicatie tussen beide chips te manipuleren. Ook de mate van nauwkeurigheid van de sensor is via deze achterdeur in te stellen. Door de combinatie van op de behuizing achter gebleven vingerafdrukken en een door de hacker ingestelde erg lage nauwkeurigheid is het wellicht mogelijk de stick om de tuin te leiden.
Als laatste ontdekten we nog dat er nog een fout in firmware van de BioSlimDisk zit. Het is zoals gezegd mogelijk om - ter verhoging van de beveiliging - meerdere vingerafdrukken te moeten gebruiken om bij de data te komen. De extra beveiliging met de random nummerreeks die in de definitieve versie is geïmplementeerd genereert echter voor iedere vinger dezelfde reeks. Dat betekent dat als er slechts een vingerafdruk bekend is, het systeem alsnog om de tuin geleid kan worden. Toen we Ritech op de hoogte stelden van dit probleem kregen we binnen enkele dagen bericht dat er een nieuwe versie van de firmware beschikbaar komt. In deze versie, die eind oktober beschikbaar zal zijn, heeft iedere vingerafdruk zijn eigen unieke nummerreeks. We kunnen niet anders dan tevreden zijn over het daadkrachtige optreden van Ritech.
Conclusie
Ritech heeft een knap stukje werk afgeleverd met de nieuwe BioSlimDisk Signature. Hij is - zeker in de definitieve versie - een stuk beter beveiligd dan andere door ons geteste apparaten. Uiteraard blijft het grote probleem van biometrische controle - de encryptiekey moet op het apparaat aanwezig zijn - bestaan. Mensen met een grote portemonnee en veel tijd zouden de microcontroller kunnen ontleden en mogelijk zo de gebruikte AES-sleutel ontdekken. Dit is echter een zeer specialistisch werk.
Beveiliging is niet altijd zwartwit. Vrijwel alles kan op de een of andere manier gekraakt worden. De kunst van een goede beveiliging is dan ook dat het meer moeite en geld kost om de beveiliging te kraken, dan dat de gekraakte data waard is. Of de lanceercodes van het wapenarsenaal van een kernmacht erop bewaard kunnen worden laten we maar even in het midden. Bedrijven of consumenten die echter een goede beveiliging willen, in combinatie met het gebruiksgemak van biometrische beveiliging, kunnen wat ons betreft de Biostick Signature met een gerust hart gebruiken.