Code signing

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken

Code signing is een cryptografische techniek waarmee de integriteit en authenticiteit van programmatuur kan worden gewaarborgd.

Doel[bewerken]

Met behulp van deze techniek wordt een executable (een programma of een macro-script) of een ander bestand, zoals een html pagina, door de ontwikkelaar voorzien van een digitale handtekening. Deze handtekening maakt onderdeel uit van het bestand dat de programmacode bevat. Daardoor wordt het onmogelijk om het programma ongemerkt te wijzigen: als de programmacode wordt gewijzigd, dan is de handtekening niet meer geldig. Op deze manier kunnen bijvoorbeeld macro scripts voor Microsoft Office worden beveiligd. Als Office constateert dat de handtekening niet deugt, dan zal Office de macro niet uitvoeren. Microsoft hanteert zelf de naam Authenticode voor het code signing mechanisme.

Of het doel wordt bereikt is afhankelijk van de betrouwbaarheid van de gebruikte certificaten. In 2001 verstrekte Verisign een certificaat op naam van Microsoft aan iemand anders.[1] Als dat certificaat wordt gebruikt om executables te ondertekenen, dan lijkt dat bestand betrouwbaar, terwijl het feitelijk volstrekt onbetrouwbaar is. De kans dat dit certificaat is gebruikt is zeer klein, de schade van een dergelijk incident kan echter enorm zijn.

PKI[bewerken]

De digitale handtekening wordt geplaatst door gebruik te maken van een certificaat. Dat certificaat kan zowel afkomstig zijn van een openbare, publieke Public Key Infrastructure (PKI), of van een interne PKI. Als een handtekening via een publiek certificaat is geplaatst, dan is het programma op elke computer beveiligd uit te voeren, de handtekening kan op elke computer worden gecontroleerd. Als een handtekening via een interne PKI is gegenereerd, dan kunnen alleen de computers die deze interne PKI vertrouwen de betrouwbaarheid vaststellen. Andere systemen zullen expliciet de vraag stellen of het programma vertrouwd mag worden.

Praktijk[bewerken]

Code signing wordt al op grote schaal toegepast om de betrouwbaarheid en herkomst van programmatuur die via het internet wordt verspreid te bewaken. Zo worden Java applets ondertekend, net als Microsoft ActiveX-componenten. Ook de systemen waarmee updates van Linux, Mac OS X en Windows worden gedistribueerd voorzien van een digitale handtekening om vervalsing tegen te gaan.

Microsoft zet de techniek voor Windows Vista en Windows 7 op grote schaal in om ook drivers en dergelijke digitaal te ondertekenen.

Externe links[bewerken]

Bronnen, noten en/of referenties