Wat is code-ondertekening?
Hackers gebruiken vaak software - offline of online - om de code te herschikken en te wijzigen om deze schadelijk te maken. Vervolgens uploaden ze deze online zodat gebruikers het gratis programma en de schadelijke code die het bevat, downloaden. Om ervoor te zorgen dat gebruikers dit probleem niet tegenkomen, wordt code-ondertekening gebruikt. Code-ondertekening is een methode waarmee de oorspronkelijke programmeur of het bedrijf dat het programma heeft gemaakt het programma ondertekent en, wanneer het programma is geïnstalleerd, wordt geverifieerd om ervoor te zorgen dat het programma geen codering heeft toegevoegd of gewijzigd. Dit vereist geen speciale software aan de kant van de gebruiker en de gebruiker kan de identiteit van de programmeur verifiëren. Hoewel dit bedoeld is als een vorm van beveiliging, kan een hacker die een programma maakt of weggaat rond een ondertekening, kunstmatig en misplaatst vertrouwen creëren.
Programma's worden voortdurend online en offline verkocht. Wanneer iemand een programma offline koopt van een vertrouwde leverancier of verkoper, heeft de gebruiker weinig reden om zich zorgen te maken over hackers die schadelijke code in het programma injecteren. Dit komt omdat, tenzij de softwareontwikkelaar opzettelijk een gevaarlijk programma heeft gemaakt, er geen manier is om met de software te knoeien en deze kwaadaardig te maken. Wanneer een gebruiker een programma van internet downloadt, bestaat deze garantie niet.
Om gebruikers te beschermen die programma's online kopen of downloaden, wordt code-ondertekening geïmplementeerd. Het ondertekenen van codes bestaat uit twee delen: de ontwikkelaar en de eindgebruiker. De ontwikkelaar gebruikt een cryptografische hash, een eenrichtingsbewerking die de code van het programma vermomt en combineert vervolgens zijn of haar privésleutel met de hash. Dit creëert een handtekening die in het programma wordt geïmplanteerd.
Wanneer de gebruiker het programma ontvangt, vindt het tweede deel van het code-ondertekeningsproces plaats. Het programma onderzoekt het certificaat en een openbare sleutel die de programmeur in het programma heeft geplaatst. Met de openbare sleutel kan het programma dezelfde hash uitvoeren op de huidige programmering en vervolgens controleert het het origineel met de huidige versie die wordt geïnstalleerd. Als zowel het geïnstalleerde programma als de originele synchronisatie worden uitgevoerd, geeft dit de gebruiker aan dat er niets is gewijzigd. Dit proces wordt automatisch uitgevoerd en de programma's die nodig zijn voor deze authenticatie moeten vooraf zijn geïnstalleerd op het besturingssysteem van de computer (OS).
Hoewel het ondertekenen van codes een krachtige methode is om de beveiliging te waarborgen, vertoont het wel fouten. Als de gebruiker een programma van een hacker downloadt, toont de authenticatie dat het originele programma intact is. Dit zou een gebruiker tot een vals gevoel van veiligheid leiden; het programma is kwaadaardig gemaakt, zodat beveiliging in deze zin niet wordt bereikt. Geavanceerde hackers kunnen de hash ook omzeilen om codering te injecteren, waardoor code-ondertekening nutteloos wordt.