Side-channel-aanval: hoe apparaten geheimen verklappen zonder dat de code gekraakt wordt
Een side-channel-aanval (ook wel zijkanaalaanval genoemd) is een manier om geheime informatie — meestal een cryptografische sleutel — uit een apparaat te halen zonder de beveiliging zelf te breken. In plaats van de wiskunde van een versleutelingsalgoritme aan te vallen, kijkt de aanvaller naar wat het apparaat er ongewild bij doet: hoe lang een berekening duurt, hoeveel stroom een chip verbruikt, welke elektromagnetische straling er vrijkomt, of zelfs welk geluid onderdelen maken.
Een bekende analogie is de kluiskraker uit oude films die niet met bruut geweld de kluis openbreekt, maar met een stethoscoop luistert naar de klikjes van de tuimelaars terwijl hij aan het slot draait. De combinatie zelf staat nergens op papier, maar het mechanische geluid verraadt hem stukje bij beetje. Iets vergelijkbaars gebeurt met een chip: die voert rekenstappen uit die op zich onzichtbaar zijn, maar het fysieke gedrag van de chip tijdens die stappen — tijd, stroom, straling — hangt vaak net iets af van de geheime waarden die verwerkt worden. Wie dat gedrag nauwkeurig genoeg meet, kan de geheime sleutel terugrekenen.
Wat is het precies?
Elk stukje elektronica dat een cryptografische berekening uitvoert — een bankpas, een simkaart, een processor in een laptop — bestaat uit fysieke schakelingen. Die schakelingen gehoorzamen aan de natuurkunde: transistors schakelen aan en uit, en dat kost tijd en energie en veroorzaakt kleine elektromagnetische veldjes. Als de tijd of het energieverbruik van een bewerking net iets verschilt afhankelijk van of een geheim bit een 0 of een 1 is, dan lekt het apparaat informatie via dat "zijkanaal", vandaar de naam.
Er bestaan verschillende categorieën. Bij timing-aanvallen meet de aanvaller hoe lang berekeningen duren; kleine tijdsverschillen kunnen verraden welke geheime bits verwerkt worden. Bij power analysis (stroomanalyse) wordt het stroomverbruik van een chip gemeten, soms met één blik op de meting (Simple Power Analysis, SPA), soms door duizenden metingen statistisch te vergelijken (Differential Power Analysis, DPA). Bij elektromagnetische analyse wordt niet de stroomdraad afgetapt maar de straling die de chip zelf uitzendt, met een kleine antenne op korte afstand. Akoestische analyse gebruikt geluid — sommige elektronische componenten maken hoorbare of ultrasone trillingen die samenhangen met wat de processor doet. En bij cache-timing-aanvallen, relevant voor moderne computers, meet een aanvaller hoe snel data uit het cachegeheugen van een processor wordt opgehaald om te achterhalen welke geheugenadressen een ander programma — met geheime data — heeft gebruikt.
Bij al deze aanvallen geldt: één meting is meestal niet genoeg. Aanvallers verzamelen vaak duizenden tot miljoenen metingen en gebruiken statistiek om ruis weg te middelen en het echte signaal boven water te krijgen. Tegenmaatregelen proberen dat signaal juist onzichtbaar te maken. "Constant-time"-programmeren betekent dat code zo geschreven wordt dat een bewerking altijd exact even lang duurt, ongeacht de geheime waarde, zodat er niets aan de tijd te meten valt. "Masking" betekent dat geheime waarden tijdens de berekening worden vermengd met willekeurige ruisgetallen, zodat het gemeten stroom- of stralingspatroon niet meer rechtstreeks aan de originele geheime waarde te koppelen is.
Wat wil men ermee bereiken?
Side-channel-onderzoek bestaat om twee redenen die nauw met elkaar verweven zijn. Ten eerste willen fabrikanten van beveiligingschips — denk aan bankpassen, simkaarten, paspoortchips en hardware-beveiligingsmodules — weten of hun producten dit soort lekken vertonen vóórdat criminelen dat ontdekken. Testlaboratoria voeren daarom side-channel-tests uit als onderdeel van certificeringstrajecten zoals Common Criteria (een internationale beveiligingsstandaard voor IT-producten) en EMVCo (de standaard achter chipbetaalkaarten). Een chip die niet bestand is tegen bekende side-channel-technieken haalt de certificering simpelweg niet.
Ten tweede is het een essentieel onderdeel van offensief beveiligingsonderzoek: pentesters (professionals die systemen legaal aanvallen om zwakke plekken te vinden) en forensisch onderzoekers gebruiken dezelfde technieken om te bewijzen dat een kwetsbaarheid echt uitbuitbaar is, of om bewijsmateriaal van in beslag genomen apparatuur te verkrijgen. Het geheel is in essentie een kat-en-muisspel: onderzoekers en aanvallers vinden een nieuw lek, chipontwerpers bouwen een tegenmaatregel, en die tegenmaatregel wordt op zijn beurt weer getest en soms alsnog omzeild. Dat proces herhaalt zich al decennia en zal waarschijnlijk nooit definitief eindigen, simpelweg omdat fysieke hardware altijd wel iets van zijn interne werking naar buiten laat doorsijpelen.
Voorbeelden uit de praktijk
De geschiedenis van side-channel-aanvallen kent een aantal mijlpalen. Al in 1985 toonde de Nederlandse onderzoeker Wim van Eck aan dat je de beeldinhoud van een beeldscherm op afstand kon reconstrueren door de elektromagnetische straling van het beeldscherm op te vangen — later bekend geworden als "Van Eck phreaking". Het was een van de eerste publiek gedocumenteerde bewijzen dat elektronica ongewild informatie uitstraalt.
In 1996 publiceerde cryptograaf Paul Kocher een invloedrijk artikel waarin hij liet zien dat je geheime sleutels van RSA, DSA en Diffie-Hellman-implementaties kon achterhalen door alleen de rekentijd van die operaties te meten. Dit paper geldt als het startpunt van side-channel-analyse als apart onderzoeksveld. Enkele jaren later, in 1998-1999, breidden Kocher, samen met Joshua Jaffe en Benjamin Jun, dit uit met Differential Power Analysis: door statistisch honderden stroomverbruiksmetingen te vergelijken, konden ze sleutels uit smartcards halen die op het eerste gezicht helemaal geen tijdslek vertoonden.
In 2013-2014 demonstreerden onderzoekers Daniel Genkin, Adi Shamir en Eran Tromer een opvallende akoestische aanval: door met een gewone microfoon het hoogfrequente "gefluister" van de stroomvoorziening van een laptop op te vangen tijdens RSA-ontsleuteling, konden ze de geheime sleutel reconstrueren. Het bewijs dat zelfs geluid via zijkanalen sleutels kan lekken, kreeg destijds veel media-aandacht.
Een van de bekendste recente voorbeelden zijn Spectre en Meltdown, in 2018 onthuld door onder meer onderzoekers van Google Project Zero en de Technische Universiteit Graz. Deze aanvallen misbruiken "speculatieve executie" — een prestatietruc waarbij moderne processors alvast rekenwerk uitvoeren voordat ze weten of dat nodig is — in combinatie met cache-timing om geheugeninhoud van andere programma's of gebruikers uit te lezen. Het liet zien dat side-channel-lekken niet beperkt zijn tot kleine chipkaarten, maar ook bijna elke moderne computerprocessor kunnen raken.
Hoe ver is de techniek?
Side-channel-analyse is inmiddels een volwassen onderzoeksveld van bijna dertig jaar oud, met een gestage stroom van nieuwe publicaties op grote beveiligingsconferenties elk jaar. Voor chipkaarten en betaalchips bestaan al langere tijd goed uitgewerkte testmethodieken en certificeringsnormen, waardoor de meeste bekende aanvalstechnieken daar inmiddels standaard tegen worden getest.
Toch is het veld allesbehalve afgesloten. De onthulling van Spectre en Meltdown in 2018 opende een nieuwe categorie: software-toegankelijke side-channels in gewone pc- en serverprocessors, die niet vragen om fysieke toegang of dure meetapparatuur maar puur via code uitgebuit kunnen worden. Sindsdien zijn er regelmatig varianten gevonden, en cloud computing heeft het probleem urgenter gemaakt: wanneer meerdere klanten dezelfde fysieke server delen, kan in theorie de ene virtuele machine via cache-gedrag iets afluisteren van een andere. Ook machine learning speelt een steeds grotere rol, doordat getrainde modellen sneller patronen in ruisige metingen herkennen, waardoor aanvallers met minder metingen toe kunnen.
Eerlijkheidshalve moet gezegd worden dat volledige eliminatie van side-channel-lekken op complexe moderne hardware vrijwel onmogelijk is gebleken: elke nieuwe generatie processors met nieuwe prestatietrucs introduceert potentieel weer nieuwe lekken. Het is dus geen probleem dat "opgelost" wordt, maar een risico dat voortdurend gemanaged moet worden via aanhoudend testen, patchen en ontwerpaanpassingen.
Wie werken eraan?
Academisch loopt onderzoek voorop bij groepen als COSIC aan de KU Leuven (België), de onderzoeksgroepen van de Technische Universiteit Graz (Oostenrijk, mede-ontdekkers van Spectre en Meltdown), de cryptografiegroep van Tel Aviv University in Israël, en de Digital Security-groep van de Radboud Universiteit in Nijmegen, die internationaal aanzien geniet op het gebied van hardwarebeveiliging.
Op het bedrijfsleven-vlak is Riscure, gevestigd in Delft, een van de bekendste gespecialiseerde bedrijven ter wereld op het gebied van side-channel- en fault-injectietests voor chips en embedded systemen. Ook Rambus (voortgekomen uit Cryptography Research, het bedrijf van Paul Kocher) levert testtools en licenties voor tegenmaatregelen. Grote chipfabrikanten als Intel, AMD, ARM, NXP en Infineon hebben eigen interne teams die op zoek gaan naar side-channel-kwetsbaarheden in hun eigen producten, mede aangespoord door de reputatieschade van eerdere onthullingen.
Op het gebied van standaardisatie spelen het Amerikaanse NIST (National Institute of Standards and Technology), EMVCo (de organisatie achter de betaalkaartstandaard) en de internationale Common Criteria-samenwerking een centrale rol bij het vastleggen van testmethodes en beveiligingseisen. Landen die opvallend actief zijn in dit onderzoeksveld zijn de Verenigde Staten, Nederland, België, Israël en Oostenrijk.
Verder lezen
- Meltdownattack.com — officiële informatiepagina over de Spectre- en Meltdown-kwetsbaarheden
- Riscure — Nederlands bedrijf gespecialiseerd in side-channel- en hardwarebeveiligingstests
- NIST Computer Security Resource Center — Amerikaanse standaarden en publicaties over cryptografische beveiliging
- COSIC (KU Leuven) — onderzoeksgroep cryptografie en informatiebeveiliging
- Wikipedia — Side-channel attack, algemeen overzichtsartikel