Naar de content

Nieuwe vorm van versleuteling beschermt software

VictorG, Devianart

Nieuwe vorm van computerbeveiliging gebruikt wiskundige puzzelstukjes om software beter te kunnen beschermen tegen piraterij en ‘reverse engineering’ dan ooit.

7 augustus 2013

Is de computertaal van een programma echt onbegrijpelijk te maken, zonder dat het programma crasht?

VictorG, Devianart

Een team van Amerikaanse computerdeskundigen heeft voor het eerst een efficiënte vorm van ‘softwareverduistering’ gemaakt. Daarmee zijn hele computerprogramma’s te versleutelen zodat ze onmogelijk te kraken zijn.

Het kraken van een programma gaat vaak door de structuur van een programma te bestuderen en het vervolgens opnieuw op te bouwen, zonder de beveiliging. Dat proces heet ‘reverse engineering’ en is een bron van veel illegale software. Als het een kraker onmogelijk wordt gemaakt om de structuur van het programma te kunnen herbouwen, wordt het veel moeilijker of zelfs onmogelijk om de beveiliging te kraken.

Dat is natuurlijk goed nieuws voor bedrijven, die veel last hebben van piraterij. Voor informatici en wiskundigen is het interessant, omdat de methode tot nu toe niet succesvol was. Amerikaanse computerwetenschappers hebben daar nu een eenvoudige oplossing voor gecreëerd: een programmeur schrijft een programma in een ‘normale’ programmeertaal en voert het vervolgens door het systeem van de onderzoekers. Daar rolt een onbegrijpelijke code uit, die door een computer nog wel te herkennen is als het oorspronkelijke programma. Het is echter heel moeilijk om de oorspronkelijke structuur eruit te pluizen en dus om het programma te ontleden.

Legpuzzel

De onderzoekers vergelijken het met een legpuzzel; elk stukje programma wordt met behulp van een unieke formule veranderd. Zo heb je veel verschillende puzzelstukjes, allemaal op een andere manier versleuteld. Maar uiteindelijk passen de stukjes allemaal maar op één unieke manier in elkaar, terwijl het op heel veel manieren te proberen is (net als bij een echte legpuzzel).

Daardoor moet een hacker om de goede sleutel te vinden een enorme hoeveelheid mogelijkheden proberen. Om deze code met behulp van willekeur te kraken zou een computer honderden jaren bezig zijn. Op dit moment kost het kraken van programmabeveiliging vaak maar een paar dagen. Dat merk je zelf ook; een computerspelletje is vaak binnen een week na de release date al illegaal te vinden via BitTorrent.

Een programma zo veranderen dat het verduisterd is voor hackers is echter niet zo makkelijk. In 2012 bewees een groep wetenschappers zelfs dat er geen algemeen succesvolle tactiek is om een programma onkraakbaar te maken. Wel ontdekten ze dat er een alternatieve manier van verduistering mogelijk is.

Bewijzen dát iets mogelijk is, betekent in de wiskunde soms echter nog niet dat je dan ook weet hóe het moet. De uitwerking van de verduistering bleef onbekend, waardoor de methode praktisch ontoepasbaar was. gezien de methode van de Amerikaanse onderzoekers, lijkt het er echter nu toch op dat het ook praktisch mogelijk is.

Of en wanneer de methode toegepast gaat worden door bedrijven is nog niet bekend; op dit moment zit alles nog in de experimentele fase, waarin een eenvoudig voorbeeldprogrammatje is verduisterd. Ingewikkelder programma’s zullen meer tijd en onderzoek nodig hebben om succesvol versleuteld te worden. Maar wie weet is het in de toekomst echt onmogelijk om een gekraakte versie van Microsoft Office of Photoshop te vinden.

Bron