Door Peter de Boer

Doktersteam

De BioSlimDisk Signature nader bekeken

31-10-2007 • 09:09

92

Multipage-opmaak

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.

BioSlimDiskDe 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

Vingerafdruk gespot

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.

Inwendige BioSlimDisk
Doorgezaagde printplaat

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.

Commandline hacken

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.

BioSlimDisk

Reacties (92)

92
92
33
20
0
15
Wijzig sortering
We kunnen niet anders dan tevreden zijn over het daadkrachtige optreden van Ritech.
en je mag hopen dat Ritech niet anders dan tevreden kan zijn met iemand als Jeroen.

Geweldig artikel! En deze vorm van product-ontwikkeling is natuurlijk wel een hele goeie. Fout opsporen, en snel oplossen.

Wat ik me afvroeg, er wordt geschreven over een zelfgebouwde NAND-geheugenlezer. Ik heb hier ook een defecte stick met, helaas, ook wat waardevolle data. Is het mogelijk om dat dan ook uit te lezen? Of heeft elke stick zijn eigen NAND-geheugenlezer nodig?
Volgens mij kun je data uitlezen door middel van wat handig soldeerwerk en een programma waarbij je gegevens uit kunt lezen. Volgens mij zijn de geheugenmodules vaak wel redeiljk uniform wat betreft gegevensuitwisseling.

Maar met kennis van hardware, electronica en software kun je een heel eind komen. Dat. en een overschot aan tijd ;).
Niet helemaal: wear-levelling-algo's kunnen verschillen van stick tot stick. De unit die ik opgebouwd heb kan de rauwe NAND uitlezen en werkt dus wel altijd; je moet echter wel zelf de data samenrapen tot een filesysteem. Je zou in principe data ermee kunnen redden, maar voor alles behalve textfiles is het eigenlijk ondoenlijk als je de door de stick gebruikte algo's niet weet.
Misschien kan je het proberen met een nieuwe (of in ieder geval werkende) stick uit dezelfde serie, liefst natuurlijk zelfde model.
Wel een beetje apart dat T.net de hacks probeert en dat zij daar op reageren. Je zou toch mogen verwachten dat ze in-house hackers hebben die dit uitproberen...
Deze hackers zijn voor de fabrikant ook een stuk goedkoper, want het kost ze maar een paar sticks en krijgen er serieus goede reclame voor terug door dit artikel.
Dus wat Sluggha hier onder mij ook al zegt. Erg goed gereageerd door Ritech op deze hack.
Kun je via de datasheet van die vingerafdruk sensor de sensor niet vertellen dat je een nieuwe vingerafdruk wil inleren, en vervolgens je eigen vingerafdruk inleren?
Of is de AES key afgeleid van de vingerafdruk?
als er een nieuwe vingerafdruk wordt geleerd - in trainingsmode - wordt er een nieuwe AES key gegenereerd. De opgeslagen data wordt onmiddelijk met deze key versleuteld en is dus op dat moment waardeloos.
Waarom gieten ze die sticks niet gewoon in plastic, zodat het openen (als dit al mogelijk is) meteen de stick onbruikbaar maakt :?
Zomaar een vraagje, maar hoe wil je zoiets in plastic gieten zonder je electronica te smelten? Daar zit namelijk meestal ook wel plastic in verwerkt.
Dan neem je een andere hars soort dan in het artikel staat. Er zijn er vast wel een paar soorten die tegen hogere temperaturen kunnen dan de verfafbrander die in dit artikel gebruikt is kan halen. Als je dit combineert met een chip die boven een temperatuur van 60 tot 70 graden zichzelf vernietigt heb je een hardware matige beveiliging die niet zomaar te kraken valt zonder de elektronica te vernietigen.
Je hebt van die kabel verbindingsmoffen welke je vol giet met een of andere hars, die hars is koud en wordt kei en keihard. En die hars wordt niet zacht als je het warm maakt.
niet alle plastics hebben de zelfde smeltwaarde
Dus pak je gewoon een twee componenten hars. Die hardt chemisch uit, en niet door hem warm te maken. Epoxyhars achtig spul bijvoorbeeld.
waarom zouden ze?
Zo krijg je (als fabrikant zijnde) een enorm goede feedback.
vergeet niet: twee zien meer als een.
Je kan wel een hacker in dienst hebben, maar je weet nooit of er iemand anders is die juist iets beter is als degene die je in dienst hebt.

Chapeau in ieder geval voor Ritech. De response tijd is formitastisch 8-)
Inprincipe is elke beveiliging hackbaar alleen het niveau waar die gaat is dusdanig hoog dat het is niet meer voor een electro-nerdje laat staan een doorsnee tweaker.

Je kan dusdanig je beveiliging ophogen totdat maar een paar mensen op deze aardkloot kunnen hacken. Dan is het 99,99% veilig. Maar er glipt altijd die 0.01% die het wel kunnen. Dat is bijna verwaarloosbaar.

De mens is zelf altijd de grootste beveiligingslek.
Anoniem: 238608 1 november 2007 11:07
Er is goed onderzoek uitgevoerd naar de te onderscheiden "randomness" door een vingerprint reader. Het blijkt dat goed fingerprint readers ongeveer maximaal 45.000 verschillende fingerprints betrouwbaar kunnen onderscheiden. Voor theorie over de mate van randomness kun je kijken op de URL http://picasaweb.google.c...photo#5113711213639238754

Je kunt dus dit soort middelen altijd kraken door alle 45.000 verschillende mogelijkheden voor de fingerprints met brute force te proberen.

De beschrijving van een Proof-of-Concept Systeem dat bewijsbare veiligheid garandeerd met een bewijsbare gegarandeerde minimale attack complexiteit ( tot en met Perfect Security, dus onkraakbaar, zelfs niet met een Quantum Computer ) is te vinden op de URL http://picasaweb.google.com/freemovequantumexchange
Dan laat je de firmware het geheugen wissen na bv. 10 foutieve afdrukken.
Moet je wel goed opletten dat bijv je kinderen niet per ongeluk aan de stick komen thuis als je even iets te drinken gaat pakken ;)
Grappig, ware het niet dat je de fingerprint-processor en de hoofd-proc los kan halen en zo alsnog oneindig veel tries hebt :)
Misschien een piste die nog niet verkend is: is de microController op die usb-stick iets standaard? Misschien kan je hem in-circuit flashen (ICSP) met een andere firmware die gewoon constant op een I/O lijn het hele in-chip-geheugen serieel uitzendt? Daar moet die AES-sleutel dan toch wel ergens tussenzitten, niet?
Anoniem: 231912 31 oktober 2007 19:35
als je het giet lijkt me dat dat betekend dat je het ook weer veilig kan smelten ?
je hebt harsen en epoxy soorten die koud gegoten kunnen worden en bijvoorbeeld gewoon aan de lucht of door middel van UV uitharden. Deze harsen zijn verder ongevoelig voor warmte.
Hoeft niet. Er zijn diverse twee componenten materialen die je eerst mixt en die daarna uitharden tot een thermohardende kunststof zoals epoxy. Nu maakt het wel of niet kunnen smelten weinig uit qua beveiliging. Je kan het ook voorzichtig weg dremelen of met een zuur/plasma etser oplossen. Chip behuizingen worden vaak van dit soort kunsstoffen gemaakt en die kan je prima openen.

edit:
linkje toegevoegd en golfdiesel had net 5 minuten minder nodig voor zijn commentaar :'(

[Reactie gewijzigd door Belboer op 23 juli 2024 00:46]

Door de hars een aantal hele dunne metalen draadjes laten lopen, zodra 1 van die draadjes verbroken wordt de chip permanent onbruikbaar gemaakt.
Met voldoende tijd maak je van een pen nog een wapen. Als we nu gewoon die chip zelf veilig genoeg maken. Want als we van de mechanische beveiligingen uit moeten gaan was er weinig extra beveiliging nodig; deze stick was pas aanvalbaar nadat hij open was gemaakt.... (even nepafdrukken proberen niet meegenomen)

Ik neem aan dat de fabrikant zoiets ook bedenken kan, niet?
Een onopgemerkte man-in-the-middle aanval kan je toch helemaal niet uitvoeren bij een usb-stick?

Ik bedoel dus dat de beveiliging enkel gekraakt is kunnen worden omdat jullie ook de juiste vingerafdruk hebben waarbij het 'go' signaal werd gegeven.
In de eerste versie was een eenmaal 'opgenomen' signaal van een willekeurige stick genoeg om andere sticks te unlocken. Je hebt inderdaad eenmalig een geldige respons nodig. De verbeterde versie heeft zoals in het artikel staat technieken om die omweg te blokkeren.
Misschien een verduidelijking: op het moment dat de vingerafdrukchip een geldige vingerafdruk vind, stuurt hij een 'berichtje', in het voorbeeld in het artikel is dat dit bericht:
Vingerafdrukchip: "Ja, het is de tweede afdruk die mij geleerd is"
Deze respons is iedere keer hetzelfde en is dus ook uit te voeren met het C- programma.

Dit soort aanval wordt een Replay attack genoemd, omdat de aanval iedere keer weer op dezelfde manier werkt.

Op dit item kan niet meer gereageerd worden.