Meteen naar de inhoud

Certificaten voor 47 dagen komen eraan. Ben je er klaar voor?

Handel nu →

Code Signing-certificaten

Code Signing-certificaten

Introductie

Codeondertekening is het proces waarbij een digitale handtekening wordt toegevoegd aan een softwareprogramma dat bestemd is voor distributie via internet. Codeondertekening helpt om de authenticiteit van de software te verifiëren, oftewel de authenticiteit van de oorspronkelijke ontwikkelaar, en om te controleren of de code niet is gemanipuleerd door een aanvaller tijdens de overdracht, bijvoorbeeld door het invoegen van kwaadaardige code of malware. De digitale handtekening die voor codeondertekening wordt gebruikt, is opgenomen in een digitaal certificaat, het zogenaamde codeondertekeningscertificaat.

Code Signing-certificaten

Net als elk ander digitaal certificaat zijn codeondertekeningscertificaten gebaseerd op de X.509-standaard en moeten ze ook worden ondertekend door een vertrouwde derde partij, zoals een certificeringsinstantie (CA) . Codeondertekeningscertificaten kunnen echter niet zomaar worden gebruikt met andere certificaten, zoals SSL- certificaten. De belangrijkste reden hiervoor is dat elk digitaal certificaat volgens de X.509-specificatie een veld 'Key Usage' bevat, dat het beoogde gebruik van het certificaat aangeeft en wordt ingevuld op het moment dat het certificaat wordt gegenereerd. Aanvullende informatie over het gebruik van het certificaat kan ook worden opgenomen in de extensie 'Extended Key Usage'. De X.509-specificatie schrijft voor dat een certificaat niet voor andere doeleinden mag worden gebruikt dan waarvoor het bedoeld is. Zo heeft een SSL-certificaat het veld 'Key Usage' ingesteld op 'Digital Signature', terwijl een codeondertekeningscertificaat het veld 'Key Usage' heeft ingesteld op 'Code Signing'.

Hoewel X.509 de specificatie voor het certificaatformaat biedt, variëren de technologische implementaties voor het genereren van certificaten per leverancier. Authenticode is bijvoorbeeld codeondertekeningstechnologie van Microsoft waarmee ontwikkelaars applicaties voor het Windows-besturingssysteem kunnen ondertekenen. Authenticode-certificaten worden gebruikt om bestanden met extensies zoals .exe, .dll, .ocx, .cab en .xpi te ondertekenen. Apple codeondertekeningscertificaten worden gebruikt om applicaties voor iOS te ondertekenen, Java codeondertekeningscertificaten worden gebruikt om .jar-bestanden voor de Java Runtime Environment (JRE) te ondertekenen en Adobe AIR-certificaten worden gebruikt om .air- of .airi-bestanden te ondertekenen.

Het verkrijgen van een codeondertekeningscertificaat is vergelijkbaar met dat van andere digitale certificaten. Elke organisatie die software wil publiceren voor distributie via internet, vraagt ​​een codeondertekeningscertificaat aan bij een CA en verstrekt daarbij de openbare sleutel en andere organisatiegegevens. Houd er rekening mee dat het openbare-private sleutelpaar apart moet worden gegenereerd, net als bij elk digitaal certificaat. De CA valideert de ontwikkelaar (organisatie) die het certificaat aanvraagt, ondertekent het certificaat als bewijs van validatie en geeft het uit aan de ontwikkelaar of software-uitgever. Het certificaat dat de CA uitgeeft, bevat informatie zoals de identiteit van de uitgever, de openbare sleutel van de uitgever, de geldigheidsduur van het certificaat, de digitale handtekening van de CA en andere details.

Oplossing voor codeondertekening voor bedrijven

Ontvang één oplossing voor al uw cryptografische behoeften op het gebied van softwarecodeondertekening met onze codeondertekeningsoplossing.

Soorten codeondertekeningscertificaten

Zelfondertekende certificaten:
Software-uitgevers kunnen hun eigen zelfondertekende certificaten genereren. In dergelijke gevallen genereert het verificatieproces van de handtekening tijdens de software-installatie echter een waarschuwing dat de software is gemaakt door een onbekende uitgever. Zelfondertekende certificaten kunnen worden gebruikt voor het testen en lokaal ontwikkelen van software, voordat deze algemeen beschikbaar wordt gesteld voor openbare distributie. Zelfondertekende certificaten mogen echter niet worden gebruikt voor productiesoftware die aan eindgebruikers wordt gedistribueerd.

Voor openbare softwaredistributie zijn door CA's uitgegeven certificaten de beste optie. Er zijn twee soorten door CA's uitgegeven codeondertekeningscertificaten, afhankelijk van het type validatie.

Standaardvalidatiecertificaten:
Dit is het standaardtype codeondertekeningscertificaat en omvat basisvalidaties van de uitgever of ontwikkelaar door de CA. Om in aanmerking te komen voor een standaard codeondertekeningscertificaat, moeten software-uitgevers voldoen aan een aantal basisvereisten, zoals minimale sleutellengte, maximale geldigheidsduur en tijdstempeling voor digitale handtekeningen.

Extended Validation (EV)-certificaten:
EV-codeondertekeningscertificaten vereisen de hoogste niveaus van validatie en controle van de software-uitgever door de CA en worden meestal uitgegeven op een hardwaretoken voor extra beveiligingsniveaus. Om een ​​EV-certificaat te verkrijgen, moeten software-uitgevers naast de basisvereisten van standaardcertificaten ook voldoen aan veel strengere eisen – bijvoorbeeld het bewaren van privésleutels in een Hardwarebeveiligingsmodule (HSM) dat voldoet aan FIPS (Federale Informatieverwerkingsnormen) 140 Niveau 2 of gelijkwaardig.

Certificaatvervaldatum en tijdstempeling

Net als elk digitaal certificaat verlopen ook codeondertekeningscertificaten aan het einde van hun geldigheidsperiode. Na afloop wordt de handtekening niet gevalideerd en kan de software niet meer correct worden geïnstalleerd of uitgevoerd, hoewel er met de software zelf niets mis is. Dit probleem wordt opgelost door middel van tijdstempeling, waarbij een tijdstempel op de code wordt aangebracht op het moment dat het bestand wordt ondertekend. Dit gebeurt meestal via een andere vertrouwde derde partij, een zogenaamde Time Stamp Authority (TSA), om de geldigheid en authenticiteit van de tijdstempel te bewijzen. De aanwezigheid van een tijdstempel zorgt ervoor dat de software blijft werken, zelfs nadat het codeondertekeningscertificaat is verlopen, waardoor de uitgever de tijd heeft om het certificaat te verlengen.

Certificaat intrekken

In eerdere artikelen hebben we gezien dat de robuustheid van Public Key Infrastructure (PKI) -systemen afhangt van hoe de privésleutels worden beheerd en beveiligd. Als de privésleutel van een digitaal certificaat wordt gecompromitteerd, moet het certificaat ongeldig worden verklaard of ingetrokken door de certificeringsinstantie (CA) die het certificaat heeft uitgegeven. Certificaatintrekking is cruciaal in geval van een inbreuk: het zorgt ervoor dat eindgebruikers worden gewaarschuwd dat het certificaat niet langer te vertrouwen is, waardoor het downloaden, installeren en verder gebruik van de software wordt ontmoedigd. Certificaatintrekking gebeurt door het ingetrokken certificaat op te nemen in een Certificate Revocation List (CRL) of door de certificaatstatus bij te werken met behulp van het Online Certificate Status Protocol (OCSP). Meer details over CRL's en OCSP komen in een later artikel aan bod.