Wat? Nog een blog over Code Signing? Door een reeks recente gebeurtenissen op het gebied van hacking, leek het ons een goed idee om dit onderwerp opnieuw te bespreken en enkele details te verduidelijken. Hoe belangrijk is het ondertekenen van code nu eigenlijk? Vraag het aan iemand uit Boston of New England en ze zullen zeggen: "Man, het is enorm belangrijk.” Laten we beginnen bij het begin.
Code Signing is het proces van een digitale handtekening toepassen op software/applicaties en is het virtuele equivalent van een product inpakken om het in de winkel te verkopen, zoals Kellogg's Corn Flakes. Wanneer u in uw lokale supermarkt op zoek gaat naar de ontbijtgranen, ziet u de vertrouwde verpakking met groen-rode haan op de voorzijde van de doos, samen met het vertrouwde logo van Kellogg's. U weet dat het echt is.
Hetzelfde geld voor Code Signing. Code Signing gebeurt met een Code Signing-certificaat, dat de gebruiker die de ondertekende software downloadt verzekert dat deze afkomstig is van een geïdentificeerde softwareleverancier en dat de code niet werd gemanipuleerd sinds de publicatie.
NIET-ONDERTEKENDE CODE
CODE ONDERTEKEND MET EEN CODE SIGNING-CERTIFICAAT
Zoals in het voorbeeld van Kellogg's Corn Flakes, krijgen klanten die verpakte voedingswaren kopen in een winkel een vooraf verpakte, verzegelde doos en kunnen ze duidelijk nagaan wie het voedsel maakte en of de verpakking al dan niet werd gemanipuleerd of geopend. Zo kan de klant gemakkelijk beslissen of de verpakkingsinhoud al dan niet te vertrouwen is. Klanten die software via internet downloaden, hebben een vergelijkbare garantie nodig. Code Signing biedt deze garantie en doet dienst als 'virtuele plasticfolie' voor software die wordt verdeeld via internet.
In een eerdere blog over het belang van Code Signing, stelde Linus Hallberg van GlobalSign het volgende:
U weet waarschijnlijk hoe belangrijk Code Signing is, maar dat maakt het proces niet minder vervelend.
Zoals Linus aangeeft, wordt het proces minder 'vervelend' wanneer u uw code ondertekent met een EV Code Signing-certificaat en verschijnen er geen SmartScreen-waarschuwingen, want dit zorgt direct voor een goede reputatie bij SmartScreen. Lees de vorige blog van Linus voor zijn nuttige tips.
Valse Code Signing neemt toe
Het moest er ooit eens van komen. Hackers zijn altijd op zoek naar nieuwe dingen om te misbruiken en uit te buiten en hebben zich op iets nieuws gestort: Code Signing in applicaties en dergelijke, waar IT-afdelingen waakzaam moeten zijn.
Beveiligingsonderzoekers hebben achterhaald dat hackers vaker Code Signing-certificaten gebruiken om beveiligingssoftware te omzeilen en hun slachtoffers te infecteren.
Het lijkt erop dat hackers proberen om met behulp van gestolen bedrijfsgegevens legitieme certificaten te kopen bij certificeringsinstanties om zo kwaadaardige code te ondertekenen, terwijl voorheen eerder certificaten werden gestolen van bedrijven en ontwikkelaars en werden 'hergebruikt' door hackers om hun code te kunnen ondertekenen met een geldig Code Signing-certificaat.
Als de certificeringsinstantie die het Code Signing-certificaat verleent strenge veiligheidsmaatregelen heeft genomen ter bescherming tegen hackers, in combinatie met een uitgebreide validatieprocedure om ervoor te zorgen dat de identiteit van de aanvrager legitiem is, het aantal valse certificaten aanzienlijk daalt. Bij GlobalSign controleert de validatieprocedure voor EV Code Signing bijvoorbeeld de identiteit van een organisatie binnen een specifiek rechtsgebied. Het identificeert ook duidelijk het primaire adres van de koper, beheerder en organisatie aan de hand van een uitgebreide set duidelijk gedefinieerde validatieprocessen. Het proces verbindt de organisatie ook contractueel aan een abonnementsovereenkomst. Deze overeenkomst komt de belanghebbenden ten goede en versterkt de beveiliging van het internet in zijn geheel.
De CA Security Council (CASC) publiceerde een reeks minimumvereisten waaraan certificeringsinstanties moeten voldoen wanneer ze Code Signing-certificaten uitgeven. Een van de belangrijkste ideeën achter deze vereisten was gebruikers op de hoogte houden over het doel van ondertekende code, en geïnformeerde beslissingen nemen wanneer ze op certificaten vertrouwen. Verwacht wordt dat de richtlijnen de betrouwbaarheid van softwareplatformen zullen verbeteren en de verspreiding van malware zullen tegengaan.
Microsoft, het meest toonaangevende voorbeeld, paste de nieuwe richtlijnen meteen toe bij de publicatie en vereist dat alle CA's die Code Signing-certificaten uitgeven voor Windows-platformen voldoen aan de minimumvereisten vanaf februari 2017.
Voorbij de basis
Het is enorm belangrijk dat u een Code Signing-certificaat koopt bij een goedgekeurde certificeringsinstantie met een goede reputatie en een streng validatieprotocol. Daarna kunt u op een geverifieerde en vertrouwde manier code beginnen ondertekenen. Er zijn nog enkele details waarmee u rekening moet houden:
- Wanneer u code ondertekent met een Code Signing-certificaat, wordt het digitale certificaat gemarkeerd voor het specifieke gebruik van digitaal ondertekende code.
- Wanneer een digitale handtekening wordt toegepast, kan ook een tijdstempel worden geregistreerd. Deze tijdstempelfunctie zorgt ervoor dat de ondertekende code geldig blijft, zelfs nadat het digitale certificaat is verlopen. Als u geen bijkomende code toevoegt of de code niet verder wijzigt, hebt u geen nieuwe handtekening nodig (zelfs als het digitale certificaat dat werd gebruikt om de code initieel te ondertekenen verloopt).
Code Signing bewijst het volgende:
- Bron van de inhoud – Code Signing identificeert dat de software of applicatie van een specifieke bron (een developer of ondertekenaar) afkomstig is. Wanneer software van het internet wordt gedownload, zullen browsers een waarschuwing met de mogelijke gevaren van het downloaden van gegevens of een waarschuwing 'onbekende uitgever' weergeven. Code Signing verwijdert de beveiligingswaarschuwingen 'onbekende uitgever' en identificeer de naam van de uitgever (d.w.z. organisatienaam of naam van individuele ontwikkelaar).
- Integriteit van de code – Code Signing garandeert dat code niet werd gewijzigd en bepaalt of code betrouwbaar is voor een specifieke toepassing. Als de code van de software/applicatie werd gemanipuleerd of gewijzigd na de digitale ondertekening, wordt de handtekening ongeldig en onbetrouwbaar. Code ondertekenen is nuttig voor gebruikers die toepassingen downloaden en voor ontwikkelaars. Gebruikers weten van wie ze software downloaden en kunnen beslissen of ze de bron al dan niet vertrouwen. Developers kunnen hun 'merk' aanbrengen en hun software beveiligen tegen ongewenste wijzigingen.
Hier vindt u nog enkele verschillen tussen de soorten Code Signing-certificaten waarvan u zich bewust moet zijn:
GlobalSign wordt beschouwd als een van de grootste certificeringsinstanties ter wereld met PKI-services en oplossingen voor elke toepassing, voor bedrijven en organisaties van elke grootte. Meer informatie over Code Signing vindt u in ons e-book: Introduction Guide to Code Signing – en zoals altijd nodigen we u uit om contact met ons op te nemen.