Je leest:

Verschillen verraden valse chip

Verschillen verraden valse chip

Auteur: | 12 februari 2011

Elke chip is anders. Ook al komen ze uit precies dezelfde fabriek en van dezelfde lopende band; er zullen altijd minuscule fysische verschillen zijn. Je zou zeggen dat de chip daar slechter van wordt, maar dat is niet het geval. Sterker nog: je kunt de verschillen zelfs gebruiken om namaakproducten op te sporen.

Als je in China op de markt loopt, kun je op je klompen aanvoelen dat een Gucci-tas van 5 euro niet echt is. Maar koop je een geheugenkaartje voor je fototoestel, dan wordt het al een stuk lastiger. Je kunt je dus voorstellen dat het opsporen van valse chips helemaal moeilijk is. Er zijn wel opsporingstechnieken, maar criminelen hebben tegenwoordig zulke high-tech middelen, dat namaakchips vaak niet gevonden worden.

Het Fraunhofer Instituut zegt met de oplossing te komen. Ze hebben een chip ontwikkeld die is voorzien van een zogenaamde ‘physical unclonable functions’-module. Die kan de unieke fysische eigenschappen van een chip ‘lezen’ en vertalen naar een code. Met die sleutel kan de fabrikant controleren of het om een vervalsing gaat of niet.

Aan een FPGA zie je verder niets bijzonders: het grootste zwarte blokje is waar het om gaat.
Flickr: carrierdetect

Versleuteld programma

Het namaken van chips is vooral een probleem bij Field-Programmable Gate Arrays (FPGA’s). Dat zijn programmeerbare chips; je koopt ze ‘blanco’ en zet er dan een programma op zodat ze precies doen wat je wilt. Een fabrikant van mobiele telefoons kan bijvoorbeeld FPGA’s kopen en die vervolgens zelf afstemmen op de smartphone die hij ontwikkelt. Dat scheelt in de kosten, want er hoeft dan geen speciale chip ontworpen te worden. Daarnaast kan hij dezelfde chip gebruiken als hij een jaar later weer een ander type smartphone gaat maken.

Als een kladblok

Je kunt een FPGA een beetje vergelijken met een kladblok. Als je die in de winkel koopt, is hij nog leeg. Je vult hem thuis met allerlei eigen schrijfsels, waardoor je hem voor een specifieke functie kunt gebruiken. En dan zit je er misschien niet op te wachten dat iemand anders jouw lumineuze ideeën in zíjn kladblok overschrijft.

Het programma dat de FPGA moet uitvoeren – en wat dus door de klant zelf gemaakt is – moet telkens bij het opstarten van de chip ingeladen worden. Dat is het moment waarop de vervalser zijn slag kan slaan. Hij kan de datastroom onderscheppen en kopiëren, en deze vervolgens gebruiken op een eigen FPGA. Op die manier kan hij dus programmatuur illegaal gebruiken.

Een voor de hand liggende oplossing daartegen is het gebruik van encryptie. De datastroom wordt dan ‘in code’ verzonden en alleen de echte FPGA weet hoe de informatie gedecodeerd moet worden. Daarvoor heeft het echter wel een sleutel nodig, wat direct de zwakke plek is van het systeem: de sleutel moet ergens in de FPGA opgeslagen worden. Dat is een probleem, want een FPGA heeft meestal geen permanent (niet-vluchtig) geheugen, waardoor alle informatie die je inlaadt, verdwijnt als de chip uit staat. En zelfs als je daar een oplossing voor vindt (door bijvoorbeeld een permanent geheugen toe te voegen), is het sowieso nooit erg slim om de sleutel zo dicht bij het geheim op te slaan.

Encryptie is een ander woord voor ‘versleuteling’, wat een onderdeel is van cryptografie. Meer uitleg hierover vind je in het dossier ‘Cryptografie’.

Actie en reactie

In plaats van ‘gewone’ encryptie met een opgeslagen sleutel, heeft Fraunhofer gebruik gemaakt van physical unclonable functions (PUF). Zij hebben dat niet zelf bedacht: het concept stamt al uit 1983 en er bestaan inmiddels meerdere varianten. Ze zijn wel één van de eersten met een werkend prototype waarbij de PUF-module volledig in een FPGA is ingebouwd.

Het idee van een PUF-module is dat het een fysische (natuurkundige) eigenschap meet en het resultaat omzet in een code. Om precies te zijn, de module meet hoe de fysische eigenschap reageert op een bepaalde actie van buitenaf, de zogenaamde challenge. Van elke challenge is van tevoren bekend welke respons – en dus welke code – de PUF-module terug zou moeten geven. Op deze manier kun je de echtheid van de chip controleren. Het kader hieronder maakt het principe wellicht wat duidelijker.

Optische PUF

Het meest eenvoudige voorbeeld van beveiliging met PUF, is de optische PUF-module. Hierin bevindt zich een transparant materiaal (een soort glazen plaatje) met kleine deeltjes die licht verstrooien. Als je met een laserstraal op dat plaatje schijnt, zal het licht op een bepaalde manier verstrooien. Het precieze ‘spikkelpatroon’ hangt af van het oppervlakte: een hobbeltje meer of minder geeft direct een ander resultaat. Oftewel, de respons (het spikkelpatroon) hangt af van de fysische eigenschappen van het optische object.

De PUF-module meet de respons en zet het resultaat om in een code. Die code hoort dus bij dat unieke object, maar ook bij één bepaalde challenge: als je de laserstraal iets anders richt, dan zal de respons ook anders zijn. Daarom spreekt men niet zozeer van een code, maar van een challenge-response pair (CRP).

Hoek A dient als challenge voor respons B. Die respons zet de PUF om in een code voor gemakkelijkere verwerking en vergelijking.

Roel Maes, 2007

De PUF-module van Fraunhofer is volledig geïntegreerd in de chip. Dat wil zeggen dat er geen extra onderdelen nodig zijn om een unieke code te genereren, zoals een glazen plaatje uit het voorbeeld hierboven. In plaats daarvan gebruikt de PUF-module eigenschappen van de chip zelf. Het meet bijvoorbeeld de geleiding van de printplaat. De minuscule verschillen in onder andere dikte en bedrading zorgen ervoor dat elke chip een net weer andere waarde oplevert.

Sleutel op afroep

Door in alle FPGA’s zo’n PUF-module in te bouwen, kan elke FPGA zich identificeren. Wanneer je dan een systeem met een FPGA start, dan laadt het niet direct de programmatuur, maar zal eerst gecheckt worden of het wel de juiste FPGA is. Dat gebeurt door de PUF-module te vragen een code te genereren en die te vergelijken met wat het zou moeten zijn. Klopt het niet, dan gaat het laden niet door.

Het systeem is extra veilig omdat de codes ‘ter plekke’ gegenereerd worden. De code zélf staat dus niet op de FPGA. De vervalser kan alleen proberen de chip zo te maken dat precies de juiste code eruit rolt, maar dat is in principe onmogelijk. Dat komt omdat de code is gebaseerd op iets waar niemand controle op heeft, namelijk de exacte fysische kenmerken van de chip zelf. Zelfs als de vervalser het hele productieproces van de FPGA-fabrikant namaakt, dan nog heeft de valse chip andere fysische eigenschappen.

Bronnen

  • Roel Maes, ‘Sleutelextractie van een silicon-PUF op FPGA’, eindwerk tot het behalen van diploma van Burgerlijk Elektrotechnisch Ingenieur aan de Katholieke Universiteit Leuven, 2007
  • Kumar et al., ‘Extended abstract: The butterfly PUF protecting IP on every FPGA’, IEEE International Workshop on Hardware-Oriented Security and Trust, pp. 67-70, 2008
  • Guajardo et al., ‘FPGA intrinsic PUFs and their use for IP protection’, Lecture Notes in Computer Science, 4727 LNCS, pp. 63-80, 2007

Lees meer over beveiliging op Kennislink:

Oeps: Onbekende tag `feed’ met attributen {"url"=>"https://www.nemokennislink.nl/kernwoorden/techniek/beveiliging/index.atom?m=en", “max”=>"10", “detail”=>"minder"}

Dit artikel is een publicatie van NEMO Kennislink.
© NEMO Kennislink, sommige rechten voorbehouden
Dit artikel publiceerde NEMO Kennislink op 12 februari 2011

Discussieer mee

0

Vragen, opmerkingen of bijdragen over dit artikel of het onderwerp? Neem deel aan de discussie.

NEMO Kennislink nieuwsbrief
Ontvang elke week onze nieuwsbrief met het laatste nieuws uit de wetenschap.