Hoe de OV-chipkaart werd gekraakt /1 reactie

Cryptografie in de Mifare

De Mifare-chips hebben beveiliging aan boord, maar de producent van de chip geeft niet vrij via welke algoritmes deze beveiliging werkt. In de wereld van de cryptografie heet dat security through obscurity, oftewel beveiliging door verhulling. Als een kraker de methode van beveiliging niet kent kan die ook niet gekraakt worden, is daarbij de gedachte.

Een analogie is de sleutel onder de deurmat: zolang niemand anders weet heeft van die sleutel, is het systeem veilig

Volgens het Kerckhoffs’ principe uit 1883 - genoemd naar Auguste Kerckhoffs von Nieuwenhoff, een Nederlands linguïst en cryptograaf - zou de veiligheid van een beveiligingssysteem echter niet moeten afhangen van de gebruikte beveiligingsmethode, maar van de gebruikte beveiligingssleutel. Als de beveiligingsmethode goed is en de sleutel onbekend, dan is het systeem veilig. Ook als de methode van beveiligen bekend is bij kwaadwillenden.

Een analogie is de sleutel onder de deurmat: zolang niemand anders weet heeft van die sleutel, is het systeem veilig. Maar tegenwoordig is dat een dusdanig cliché, dat elke inbreker eerst onder de deurmat kijkt alvorens hij de koevoet hanteert. Zodra de verhulling wegvalt blijft er van het beveiligingsysteem weinig meer over.

Een veilig cryptografisch algoritme ontwerpen is dusdanig gespecialiseerd werk dat als een ontwikkelaar kiest voor een eigen algoritme en hij omwille van verhulling niet een bestaand algoritme wil gebruiken, dit eigen algoritme vrijwel altijd grote gaten bevat.

Hoe is de Duitse chip gekraakt?

Twee onderzoekers, Karsten Nohl en Henryk Plötz, gaven tijdens het Chaos Communication Congress in Berlijn vorige maand een presentatie waarin ze lieten zien hoe ze te werk waren gegaan om de beveiliging op de chip te kraken.

Omdat de chip zoveel gebruikt wordt en de producent niet wil meewerken aan een test van het beveiligingsmechanisme in de chip, meenden Nohl en Plötz dat de beveiliging van de chip dan maar op andere manieren blootgelegd moest worden. Hiervoor hebben ze verschillende methoden gebruikt.

Het project begon met het stukje bij beetje wegetsen van de verschillende lagen silicium waarmee de chip is opgebouwd. Van elke laag, vijf in totaal, werden via een optische microscoop met 500x vergroting foto’s gemaakt die vervolgens geanalyseerd werden.

Aan de hand hiervan ontstond een kaart van de logische onderdelen waar de computerchip uit bestaat. Blokjes transistors combineren tot elektronische onderdelen met een specifiek doel. De twee onderzoekers vonden ongeveer 10.000 onderdelen, met ongeveer 70 verschillende functies.

Door de verbindingen tussen verschillende onderdelen te analyseren konden de onderzoekers een schema opbouwen van de onderdelen van de cryptografische motor op de Mifare chip. Deze bleek ongeveer tien procent van het chipoppervlak te beslaan.

eeen FPGA om een eigen kraakchip te makenEr vielen een aantal zaken op. Ten eerste bleek de sleutelgrootte die gebruikt wordt slechts 48 bit groot te zijn. Het brute force kraken van een dergelijke sleutel, door alle mogelijke sleutels te testen, duurt op een stuk hardware van $100 ongeveer een week. Zet zeven van die kastjes naast elkaar en voor $700 kan de sleutel binnen een dag gekraakt worden. Dit staat nog los van het gebruikte cryptografische algoritme; als er zwakke plekken in het algoritme zitten zal het kraken van de sleutel waarschijnlijk nog veel sneller gaan.

Daarnaast is een belangrijk onderdeel van het beveiligingssysteem een willekeurige getallen generator (random number generator). De hierdoor gegenereerde getallen worden gebruikt als extra beveiliging, om een unieke code te genereren voor elke transactie. Uit de analyse bleek echter dat deze generator makkelijk te manipuleren is zodat de unieke code door de krakers vooraf bepaald kan worden. Ook is de resolutie van de generator dusdanig klein dat elke 0.7 seconde dezelfde volgorde van willekeurige getallen gegenereerd wordt. Dit laatste is een grote ontwerpfout van de chip.

Het verifiëren van de analyse

Met de gegevens die bij het analyseren van de hardware naar boven waren gekomen gingen de twee onderzoekers verder. Met behulp van Open Source RFID-leesapparatuur en een Open Source RFID-emulator (een apparaat dat zich voordoet als een RFID-chip) werd de communicatie tussen de Mifare en de ontvangstapparatuur afgeluisterd.

Tijdens dit proces kwam nog een andere ontwerpfout naar boven. Door middel van het aanpassen van sleutel en unieke code kan de ene RFID-kaart zich voordoen als een willekeurige andere, zonder dat er gegevens gekopieerd hoeven te worden. Met andere woorden, als iemand met kwade zin de communicatie tussen kaart X met een ontvangststation kan afluisteren, kan deze persoon vervolgens de hierboven genoemde kaart-emulator OpenPICC gebruiken om een code uit te zenden waardoor de ontvanger denkt met kaart X te communiceren terwijl dat niet het geval is.

Als de chip gebruikt wordt voor authenticatie (wie ben ik?) of autorisatie (wat mag ik?) is dat een groot beveiligingsgat.