Onderteken je code

Wat is code signing?

Code signing is een beveiligingstechnologie waarmee softwareontwikkelaars en organisaties hun uitvoerbare bestanden, scripts en softwarebibliotheken digitaal kunnen ondertekenen om de identiteit van de auteur te bevestigen en te garanderen dat de code na ondertekening niet is gewijzigd of gemanipuleerd. Dit proces verloopt via digitale certificaten die worden uitgegeven door certificeringsinstanties (CA’s) zoals SCEPman.


Waarom zou ik mijn code ondertekenen?


Bedrijven gebruiken code signing om een aantal belangrijke redenen, die allemaal gericht zijn op het versterken van de beveiliging, integriteit en betrouwbaarheid van hun softwareapplicaties en updates. Dit zijn de belangrijkste redenen om code signing te gebruiken:

Authenticiteit: Code signing helpt bij het verifiëren van de identiteit van de softwareuitgever. Wanneer software met een digitale handtekening is ondertekend, kunnen gebruikers erop vertrouwen dat de software die zij downloaden of installeren afkomstig is van de opgegeven bron of auteur en niet van een imitator of kwaadwillende.

Integriteit: Een digitale handtekening garandeert dat de code niet is gewijzigd of gemanipuleerd sinds het moment van ondertekening. Als de software na de ondertekening op enige manier is aangepast, wordt de digitale handtekening ongeldig en worden gebruikers gewaarschuwd dat de integriteit van de software mogelijk is aangetast.

Vertrouwen: Code signing schept vertrouwen bij gebruikers. Besturingssystemen en webbrowsers tonen vaak waarschuwingen of blokkeren niet-ondertekende code om gebruikers te beschermen tegen mogelijk schadelijke software. Ondertekende software omzeilt die waarschuwingen doorgaans, wat zorgt voor een soepelere installatie en vertrouwen in de veiligheid van de software.

Beveiliging: Door de authenticiteit en integriteit van de code te waarborgen, helpt code signing bij het voorkomen van de verspreiding van malware, spyware of andere schadelijke software. Dit is essentieel om de systemen en gegevens van gebruikers veilig te houden.

Compliance: Bepaalde wettelijke of branchestandaarden kunnen code signing vereisen als onderdeel van de naleving van het beveiligingsbeleid.

Toegangscontrole: Moderne besturingssystemen en browsers gebruiken code signing als toegangsmechanisme, zodat alleen vertrouwde, geverifieerde software kan worden geïnstalleerd en uitgevoerd. Dat helpt een veiliger ecosysteem te creëren voor zowel ontwikkelaars als gebruikers, doordat het risico op malware-infecties afneemt.


Hoe werkt code signing?


Digitale handtekening maken: Wanneer een ontwikkelaar of organisatie klaar is om software uit te brengen, gebruikt die een code-signing-certificaat om een digitale handtekening te maken. Dit certificaat bevat een publieke sleutel en een privésleutel. De privésleutel versleutelt de hash van de software en vormt zo de digitale handtekening.

Hashing: Op de code van de software wordt een hashfunctie toegepast die een unieke hashwaarde (digest) oplevert. Deze hashwaarde vertegenwoordigt de inhoud van de code. Als er ook maar één bit van de code verandert, verandert de hashwaarde mee, waardoor het een effectieve manier is om wijzigingen te detecteren.

Versleuteling: De hash wordt vervolgens versleuteld met de privésleutel van de ondertekenaar. Deze versleutelde hash vormt samen met informatie over het hash-algoritme de digitale handtekening. De digitale handtekening wordt daarna aan de software gekoppeld.

Verificatie: Wanneer gebruikers de ondertekende software downloaden of installeren, ontsleutelt hun systeem (of het installatieproces) de digitale handtekening met de publieke sleutel (die beschikbaar wordt gesteld via het digitale certificaat). Vervolgens hasht het systeem de software opnieuw en vergelijkt het die hash met de ontsleutelde hash. Komen ze overeen, dan is bevestigd dat de software na de ondertekening niet is gewijzigd.

Vertrouwensketen: Het digitale certificaat dat bij de ondertekening wordt gebruikt, is uitgegeven door een certificeringsinstantie (CA) zoals SCEPman die het besturingssysteem of de applicatie vertrouwt. Het certificaat bevat de gegevens van de uitgever en de publieke sleutel. Blijkt bij de verificatie van de handtekening dat het certificaat wordt vertrouwd (dat wil zeggen: uitgegeven door een erkende CA), dan geldt de software als authentiek.


Hoe helpt SCEPman bij het ondertekenen van je code?


SCEPman kan code-signing-certificaten uitgeven, waarmee ontwikkelaars en organisaties de integriteit en authenticiteit van hun software kunnen waarborgen.

Extended Key Usage "Code Signing": SCEPman ondersteunt het Extended Key Usage (EKU)-attribuut voor "Code Signing". Daardoor zijn certificaten die SCEPman uitgeeft geoptimaliseerd voor het ondertekenen van software en applicaties, in lijn met branchestandaarden en beveiligingspraktijken.

Meerdere sleutellengtes: Om aan uiteenlopende beveiligingseisen en voorkeuren te voldoen, biedt SCEPman meerdere sleutellengtes voor certificaten. Dankzij die flexibiliteit kun je het passende beveiligingsniveau kiezen voor je certificaten en de behoefte aan sterke versleuteling afwegen tegen de prestatiegevolgen van langere sleutels.

Ondersteuning voor PKCS#12- en PEM-formaten: Met oog voor het diverse ecosysteem van softwareontwikkeling en -uitrol ondersteunt SCEPman certificaten in zowel het PKCS#12- als het PEM-bestandsformaat. Dankzij deze compatibiliteit zijn door SCEPman uitgegeven certificaten eenvoudig te integreren in uiteenlopende omgevingen en platformen, wat een soepele uitrol en beheer van ondertekende code mogelijk maakt.