Traditionele instelling cryptografie

White-box cryptografie

White-box cryptografie richt zich op veilige software-implementaties van algoritmes die data en communicatie beveiligen. Deze algoritmes worden uitgevoerd in een omgeving waarbij een aanvaller volledige toegang heeft tot de implementatie en volledige controle heeft over het platform waarop de implementatie wordt uitgevoerd.

Yoni De Mulder

Onze maatschappij heeft altijd rond informatie gedraaid. Voorts is het steeds duidelijk geweest dat het verwerken en uitwisselen van informatie gepaard gaat met het belang om deze informatie te beveiligen. In het begin was deze beveiliging voornamelijk een eis vanuit de overheid of het leger, aangezien deze partijen gevoelige en ver­trouwelijke informatie uitwisselen. Echter, het landschap van informatiebeveiliging is drastisch veranderd tijdens de laatste decennia waarin de digitale revolutie centraal stond. Deze revolutie is voornamelijk ontstaan uit de opkomst van de pc in onze woonkamers en het uitzonderlijke suc­ces van het internet in de vroege jaren negentig. Bovendien zorgden de ontzettende vooruitgang ín, en de exponentiële uitbreiding ván de mobiele (draadloze) telecommunicatienetwerken ervoor dat miljoenen – om niet te zeggen miljarden – partijen over de hele wereld met elkaar verbon­den werden via (mobiele) telecommunicatietoe­stellen. Deze partijen – oftewel eindgebruikers – begonnen deze toestellen te gebruiken voor zeer gevarieerde taken, zoals telefoongesprekken, e-mails versturen, online financiële transacties enzovoort. De interconnectiviteit van deze grote set van eindgebruikers bracht ook een enorme commerciële waarde met zich mee, die vooral werd opgemerkt door bedrijven die digitale entertainmentdiensten aanbieden, zoals digitale televisie en virtuele multimediawinkels (zoals iTunes) waar eindgebruikers muziek kunnen kopen of een film kunnen huren. Deze trends als gevolg van de relatief nieuwe digitale informatie infrastructuur, spelen tot op de dag van vandaag nog steeds een significante rol in ons dagelijks leven en routine.

Hoewel het verbinden van miljarden partijen dui­delijk voordelen kent, zijn er ook vele nadelen en gevaren mee verbonden. Neem als voorbeeld een financiële transactie verzonden over een onveilig mobiel netwerk; deze transactie kan eenvoudiger wijze worden opgevangen door een partij die niet noodzakelijk de beste bedoelingen heeft. De verbonden partijen kunnen zowel vertrouwd (bijvoorbeeld overheidsambtenaren of legitieme organisaties), als onvertrouwd (bijvoorbeeld eind­gebruikers die wel of niet de beste bedoelingen hebben) zijn. Daarom is het van cruciaal belang om de digitale informatie te beveiligen. Het domein dat zich hierop specialiseert is cryptolo­gie en bestaat al sinds de ‘stille jaren’.

Cryptologie bestaat uit twee complementaire takken: cryptografie en cryptanalyse. Crypto­grafen ontwikkelen algoritmes om informatie te beveiligen wanneer deze over een onveilig communicatienetwerk wordt verzonden, terwijl cryptanalisten de veiligheid (of sterkte) van deze algoritmes evalueren. Nauwe samenwerking tussen cryptografen en cryptanalisten is vaak van uiterst belang om, na vele jaren onderzoek, tot veilige algoritmes te komen.

Traditionele instelling cryptografie

Om een zeer gekende cryptograaf Rivest (1990) te citeren: “Cryptografie is de kunst om crypto­grafische algoritmes te ontwikkelen met als doel om data en communicatie te beschermen in de aanwezigheid van een aanvaller.” Indien deze algoritmes gebruikmaken van een geheime sleu­tel hangt hun veiligheid af van de geheimhouding van deze sleutel. Een aanvaller heeft daarom meestal het verkrijgen van de geheime sleutel als doel.

De traditionele instelling in cryptografie is als volgt (figuur 1): twee partijen, namelijk de zender en ontvanger, wisselen vertrouwelijke informatie uit via een onveilig communicatie­kanaal (zoals het internet), op zo’n manier dat een aanvaller die het kanaal afluistert niets kan opmaken uit de verstuurde informatie. Om dat te bereiken voeren beide partijen een cryptografisch algoritme uit, gebruikmakend van een geheime sleutel. Hierbij encrypteert (vercijfert) de zender het originele bericht (de ‘klaartekst’) naar een onleesbaar formaat (de ‘cijfertekst’), terwijl de ontvanger de cijfertekst decrypteert (ontcijfert) naar de klaartekst van het originele bericht. Het is de cijfertekst die verstuurd wordt over het onveilige communicatiekanaal. Bij toepassing van een sterk cryptografisch algoritme is het ver­ondersteld onmogelijk te zijn voor een aanvaller die geen kennis heeft van de gebruikte geheime sleutel, om de klaartekst te verkrijgen door enkel toegang te hebben tot de cijfertekst.

In het geval dat deze geheime sleutel – ook ‘cryptografische sleutel’ genaamd – dezelfde is voor zowel encryptie als decryptie, spreekt men van ‘symmetrische sleutelcryptografie’. Zo niet, dan spreekt men van ‘asymmetrische sleutelcryp­tografie’.

Een belangrijke subklasse van de symmetri­sche sleutelcryptografie wordt gevormd door de zogenaamde blokcijfers, waarbij de data verwerkt wordt in blokken. Twee zeer vooraanstaande blokcijfers van de voorbije decennia zijn de Data Encryption Standard (DES) en de Advanced Encryption Standard (AES). De DES is ont­worpen door IBM en de NSA en gestandaardi­seerd in 1977 (National Institute of Standards and Technology, 1977). De AES is ontworpen door Daemen en Rijmen en gestandaardiseerd in 2001 (National Institute of Standards and Technology, 2001). Verondersteld wordt dat het AES-blokcijfer de standaard zal zijn voor min­stens de volgende twintig tot dertig jaar.

 

Aanwezigheid aanvaller

Herinner het citaat van Rivest over cryptografie, waarbij de ‘aanwezigheid van een aanvaller’ een cruciale rol speelt en ook drastisch is veranderd de voorbije decennia. Bij het ontwerpen van cryptografische algoritmes is het namelijk van uiterst belang om de capaciteiten van de aan­valler zo goed mogelijk te beschrijven aan de hand van zogenaamde ‘aanvalsmodellen’. Deze aanvalsmodellen moeten de omgeving waarin het cryptografisch algoritme zal worden uitgevoerd zo realistisch mogelijk benaderen.

Tot in het midden van de jaren negentig ver­onderstelde de moderne cryptogafie dat een cryptografisch algoritme werd uitgevoerd in een veilige omgeving. In dit traditionele model, ook wel ‘black-box model’ genaamd, heeft de aanval­ler enkel toegang tot het in- en uitgangsgedrag van het algoritme; met andere woorden dus enkel tot de klaar- en cijfertekst. Dit model is bijvoorbeeld voldaan in het geval dat de aanvaller enkel het communicatiekanaal (bijvoorbeeld een WPA2-beveiligd wifi-netwerk) kan afluisteren.

Vanaf de tweede helft van de jaren negentig is het landschap waarin cryptografische algoritmes worden uitgevoerd echter drastisch veranderd door de opkomst van de pc, telecommunicatie­toestellen en (mobiele) telecommunicatienet­werken (zoals het internet), gecombineerd met de digitale revolutie. Toestellen waarop crypto­grafisch beveiligde applicaties draaien, zijn in het bereik gekomen van een zeer breed publiek van gebruikers. Deze gebruikers, die in het bezit zijn van de toestellen en er volledig controle over hebben, kunnen mogelijk slechte bedoelingen hebben. Maar het is ook mogelijk dat de toestel­len worden geïnfecteerd door malware of virus­sen buiten de wil en het weten van de gebruikers om. In het licht hiervan schiet een black-box model duidelijk tekort, aangezien er niet meer verondersteld kan worden dat een cryptografisch algoritme wordt uitgevoerd in een veilige omge­ving. Hierdoor was er een nood aan nieuwe, maar voornamelijk meer realistische aanvalsmodellen.

Implementatie algoritmes

In de praktijk zijn cryptografische algoritmes altijd geïmplementeerd in ofwel hardware, ofwel software (of een combinatie van beiden). Zoals aangegeven wordt deze implementatie vaak uitgevoerd op een onvertrouwd open platform, zoals een elektronisch toestel in het bezit en onder controle van de gebruiker. Voorbeelden hiervan zijn een smartphone, laptop, settopbox, enzovoort. Bijgevolg heeft de eindgebruiker, of eventuele malware of virussen, toegang tot deze cryptografische implementatie.

Met betrekking tot hardware-implementaties werd in het begin verondersteld dat deze een voldoende veilig omgeving vormden, waarin een cryptografisch algoritme uitgevoerd kon worden. Later bleek deze veronderstelling echter niet op te gaan door zogenaamde implementatie-aan­vallen (Kocher, 1996). Een subset van deze implementatie-aanvallen, genaamd nevenka­naal-aanvallen, benut specifieke informatie die uit de hardware-implementatie lekt via nevenka­nalen tijdens de uitvoering van het cryptografisch algoritme. Indien deze gelekte informatie gecor­releerd is met de geheime sleutel kan dit leiden tot een succesvolle aanval.

Als voorbeeld geven we het stroomverbruik aan bij het uitvoeren van een modulaire machtsver­heffing (figuur 2). Dat vormt een basisonderdeel van vele belangrijke cryptografische algoritmes, zoals het asymmetrische sleutelalgoritme RSA (Rivest, Shamir en Adleman, 1978). Enkel indien de bits van de exponent 1 zijn, wordt een bijkomende operatie (namelijk een verme­nigvuldiging) uitgevoerd. Door nauwkeurig het stroomverbruik te analyseren, is de aanvaller in staat om bits met waarde 0 of 1 van elkaar te onderscheiden. Het aanvalsmodel dat deze implementatie-aanvallen en de bijhorende sterke capaciteiten van de aanvaller opneemt, is gekend als het ‘grey-box model’.

Van hard- naar software

De voorbije jaren zijn we getuige van een toene­ mende trend om van hardware over te stappen naar software. Neem het verdwijnen van de smartcard bij de settopboxes of de opkomst van de mobiele bankapplicaties op onze smartphones of tablets. Software heeft duidelijk zijn voordelen tegenover hardware. Indien de cryptografische sleutel gecompromitteerd is, dient deze bijge­werkt te worden. In het geval van hardware dient de implementatie, waarin de sleutel hardwarematig zit ingebakken, vervangen te worden. Dit is een zeer kostbare opdracht indien er vele gebruikers zijn, zoals bijvoorbeeld alle abonnees op digitale tv. In het geval van software kan het bijwerken van de cryptografische sleutel gebeu­ren door eenvoudiger wijze een update te verstu­ren over het internet naar alle eindgebruikers. Deze oplossing is daarnaast ook veel goedkoper. Maar jammer genoeg is er ook een keerzijde aan de medaille. Software-implementaties zijn onder­hevig aan aanvallers die sterker zijn dan eerder beschreven in het grey-box model.

White-box model

Met betrekking tot software-implementaties van cryptografische algoritmes die worden uitgevoerd op een onvertrouwd en open platform, leidde Chow, Eisen, Johnson en van Oorschot in 2002 (Chow et. al., 2002) een nieuw en zeer sterk aanvalsmodel in onder de naam het ‘white-box model’. In dit model is de aanvaller verondersteld om volledige toegang te hebben tot de implemen­tatie en tevens volledig controle te hebben over het platform waarop de implementatie wordt uit­gevoerd. Als gevolg kan de aanvaller gebruikma­ken van een brede waaier van hulpmiddelen om de software-implementatie statisch of dynamisch te analyseren. Voorbeelden van zulke hulpmidde­len zijn decompilers, disassemblers of debuggers met breekpunt-functionaliteit om tussenliggende resultaten waar te nemen en te veranderen. Ook is de aanvaller in staat om het computergeheu­gen te doorzoeken naar opgeslagen geheime sleutels (Shamir en van Someren, 1999), zelfs na het sterk afkoelen van volatiel geheugen (zoals DRAM) om de staat van het geheugen zo goed mogelijk te bewaren (Halderman et. al., 2008). Neem als voorbeeld de binaire representatie van een gedeelte van het computergeheugen dat een cryptografisch algoritme – geïnstantiëerd met een geheime sleutel – bewaart (figuur 3). Aangezien het algoritme zelf typisch heel gestructureerd is, heeft het een lage entropie. Daarentegen is de geheime sleutel willekeurig gekozen om zo min mogelijk voorspelbaar te zijn. Hierdoor vertoont het gedeelte van het geheugen dat de sleutel opslaat een hoge entropie, wat visueel overeen komt met ruis. Zo is het dus eenvoudig om de sleutel te lokaliseren in het geheugen.

Het voorgaande voorbeeld haalt duidelijk aan dat software-implementaties van cryptografische algoritmes bedoeld om uit te voeren in een black-box omgeving absoluut niet veilig zijn in een white-box omgeving. Verder is reeds aangegeven dat de veiligheid van een cryptografisch algorit­me steunt op de geheimhouding van de sleutel. Vaak is het zelfs zo dat alle interne details van het algoritme bekend zijn, behalve de sleutel. Hieruit volgt dat de manier waarop de cryptografische algoritmes worden geïmplementeerd in soft­ware een cruciale rol speelt om sleutelextractie te voorkomen in een white-box omgeving. De tak van de cryptografie die zich daar op richt, is white-box cryptografie. En de software-imple­mentaties die voortkomen uit de toepassing van white-box cryptografie worden ‘white-box imple­mentaties’ genaamd.

Nu blijft de vraag: komt een dergelijke white-box omgeving voor in de praktijk? Jammer genoeg is het antwoord hierop positief. Praktijkvoor­beelden van een white-box omgeving vinden we terug bij digitale beschermingssystemen, zoals bijvoorbeeld Digital Rights Management (DRM)- of betaal-tv-systemen, waarbij cryptografische algoritmes worden geïmplementeerd op bijvoor­beeld een smartphone, tablet of settopbox. Deze cryptografische algoritmes dienen om de con­tentprovider een zekere controle te geven over de toegang en de distributie van hun aangeboden auteursrechtelijk beschermde data (muziek, films, apps, ebooks, …). Het uitlekken van de geheime sleutel zou leiden tot het tenietdoen van de toegepaste beschermingstechniek en dus tot een mogelijk groot financiëel verlies voor de contentprovider.

DRM-model

Nu een korte beschrijving van het voordeel van de toepassing van white-box cryptografie in een DRM-model. Beschouw een vereenvoudigd DRM-model (figuur 4) met aan de serverkant de contentprovider (Apple) en aan de gebruikers­kant een vertrouwde software-media-applicatie (iTunes), uitgevoerd op een overtrouwd open platform (pc). In het geval dat de gebruiker een film wil huren via iTunes, zal hij een verzoek sturen naar Apple en het bijhorende bedrag betalen. Hierbij zal Apple de media ‘m’ (hier de film) vercijferen met een hoofdsleutel ‘K’, resul­terend in ‘E(K,m)’. Verder wordt de hoofdsleutel ‘K’ vercijferd met een sleutel ‘k’ uniek voor elke gebruiker, resulterend in ‘E(k,K)’. Zowel ‘E(k,K)’ als een DRM-licentie worden toegevoegd aan de header van de vercijferde film ‘E(K,m)’. Deze DRM-licentie bevat de voorwaarden waaronder de gebruiker toegang krijgt tot de media, welke in het geval van een filmverhuur bijvoorbeeld een tijdsperiode van 24 uur kan zijn. Nadien wordt dit bestand doorgestuurd naar de eindgebruiker, waarbij enkel na een positieve controle van de DRM-licentie, zowel de hoofdsleutel als de film worden ontcijferd, zodat de gebruiker kan genie­ten van zijn film.

Een gebruiker met slechte bedoelingen wil logi­scher wijze altijd toegang tot de film krijgen, zodat de filmverhuur een filmaankoop wordt, maar wel tegen de prijs van een verhuur. De misdragende gebruiker kan drie verschillende doelen hebben: 1) knoeien met de licentiecontrole zodat die altijd een positief antwoord teruggeeft; 2) de film na decryptie proberen te onderscheppen en; 3) één of beide sleutels ‘(k,K)’ uit de software-implemen­tatie te extraheren zodat hij zelf kan ontcijferen. De toepassing van white-box cryptografie leidt tot een oplossing tegen dat derde doel.

 

White-box cryptografie

Zoals beschreven is white-box cryptografie een techniek om software-implementaties van cryp­tografische algoritmes te verkrijgen die voldoende weerstand bieden tegen een white-box aanvaller. Het ultieme doel is dat een white-box aanvaller geen enkel voordeel heeft in vergelijking met een black-box aanvaller om de geheime sleutel te extraheren. Toegang en controle hebben tot/ over de implementatie of enkel toegang hebben tot de in- en uitgang van de implementatie zou geen enkel verschil mogen maken (figuur 5). Dit is bekend als de ‘virtuele black-box eigen­schap’. Een naïeve oplossing om dit ultieme doel te bereiken is om één opzoektabel te maken waarbij ingangen rechtstreeks worden afgebeeld op uitgangen. Dit leidt namelijk tot onprakti­sche white-box implementaties; in het geval van AES zou de grootte van de tabel gelijk zijn aan 4.95e27 TB! Er is dus behoefte aan technieken die leiden tot white-box implementaties met een praktische grootte. de wetenschappelijke literatuur verschenen tot nu toe hoofdzakelijk praktische white-box implementaties van blokcijfers. In 2002 stelden Chow, Eisen, Johnson en van Oorschot de initië­le praktische white-box techniek voor (Chow et. al., 2002). Om deze techniek beter te begrijpen, refereren we terug naar de mogelijkheid om de sleutel te lokaliseren in computergeheugen (figuur 3). Dit was mogelijk aangezien de hoge entropie van de sleutel zeer lokaal aanwezig was. In essentie is het doel van de techniek van Chow et al. om de entropie te verhogen en uniform te houden over de hele implementatie heen. Dit gebeurt aan de hand van delen van de sleutel te verspreiden over de hele implementatie en extra willekeurige data toe te voegen.

De techniek bestaat uit de volgende twee fases: fase 1 stelt het cryptografisch algoritme voor als een netwerk van opzoektabellen, waarna fase 2 de in- en uitgangen van deze opzoektabellen (willekeurig) encodeert, op zo’n manier zodat de functionaliteit van het oorspronkelijk algoritme blijft behouden.

 

White-box DES- en AES-implementaties

Chow et al. pasten hun generieke white-box techniek toe op DES en AES om zo de eerste gepubliceerde white-box DES- en white-box AES-implementaties te verkrijgen (Chow et. al., 2002). Echter opeenvolgende cryptanalytische resultaten (Billet et. al., 2004), (Goubin et. al., 2007), (Jacob et. al., 2002), (Link en Neumann, 2005), (Michiels et. al., 2008), (Wyseur et al., 2007) toonden aan dat beide white-box imple­mentaties onvoldoende bescherming bieden tegen sleutelextractie. De praktische aanval van Billet, Gilbert en Ech-Chatbi (Billet et al., 2004) motiveerde onderzoek naar nieuwe en veiligere white-box AES-implementaties. Dit leidde tot drie nieuwe voorstellen (Bringer et al., 2006), (Xiao en Lai, 2009), (Karroumi, 2010) in de wetenschappelijke literatuur; voor elk voorstel beweerden de auteurs dat ze bestand was tegen de aanval van Billet et al. Later hebben wij echter aangetoond dat geen enkel van deze drie voorstellen voldoende bescherming biedt tegen een aanvaller in een white-box omgeving (De Mulder et al., 2010), (De Mulder et al., 2012), (Lepoint et al., 2013).

 

Wat nu?

Een vraag die dan logischer wijze gesteld wordt, is: wat nu?. Er is duidelijk behoefte aan enerzijds nieuwe white-box technieken die aanleiding geven tot veiligere white-box implementaties van bestaande blokcijfers, en anderzijds aan nieuwe blokcijfers die ontwikkeld zijn met specifiek het white-box model in gedachten. De huidige blokcijfers zijn voornamelijk ontwikkeld met het traditionele black-box model in gedachten. Ech­ter, afgaande op de huidige toepassingen waarin cryptografische algoritmes worden ingezet, schiet dit uitgangspunt tekort.

Verder verschenen in de wetenschappelijke literatuur enkel white-box implementaties van blokcijfers. Wat in verband met de toepassing van white-box cryptografie op alle andere crypto­grafische algoritmes? Heden bieden vele bedrij­ven gespecialiseerd in white-box cryptografie (bijvoorbeeld Irdeto, SafeNet, Nagra, white­Cryption, …) white-box implementaties aan voor een brede waaier van cryptografische algoritmes. Maar aangezien er nog steeds niet veel gepubli­ceerd wordt in dit domein, is het waarschijnlijk nog wachten tot er een echte doorbraak is gevon­den en blijft white-box cryptografie een heel actief en fascinerend onderzoeksgebied.

Yoni De Mulder is postdoctoraal onderzoeker aan de KU Leuven, Afdeling ESAT/COSIC in Heverlee (België).E-mail: yonidemulder@gmail.com

 
 

Tag

Onderwerp



Niet gevonden? Vraag het de redactie!

Heeft u het antwoord op uw vraag niet gevonden, of bent u op zoek naar specifieke informatie? Laat het ons weten! Dan zorgen we ervoor dat deze content zo snel mogelijk wordt toegevoegd, of persoonlijk aan u wordt geleverd!

Stel uw vraag