Meteen naar de inhoud

Certificaten met een geldigheidsduur van 47 dagen komen eraan. Ben je klaar?

Handel nu →

Wat is een Code Signing-certificaat?

Een codeondertekeningscertificaat is een digitaal certificaat dat een softwareontwikkelaar gebruikt om code digitaal te ondertekenen, zodat besturingssystemen, browsers en beveiligingsprogramma's kunnen controleren wie de code heeft gepubliceerd en bevestigen dat de code niet is gewijzigd sinds de ondertekening. 

Met een codeondertekeningscertificaat kan een uitgever een digitale handtekening toevoegen aan een applicatie, script, driver of firmware-image. De handtekening bewijst dat de code afkomstig is van de certificaathouder en sinds de ondertekening niet is gewijzigd. Certificaatautoriteiten Codeondertekeningscertificaten worden uitgegeven op het niveau van Organisatievalidatie (OV) of Uitgebreide Validatie (EV), en sinds 1 juni 2023 vereist het CA/Browser Forum dat elke privésleutel voor codeondertekening, OV of EV, wordt gegenereerd en opgeslagen op een gecertificeerde hardwarematige cryptografische module in plaats van in software. 

Key Takeaways

  • Een codeondertekeningscertificaat koppelt de geverifieerde identiteit van een uitgever aan de code die deze ondertekent, zodat besturingssystemen en antivirusprogramma's de authenticiteit en integriteit kunnen controleren voordat een gebruiker de software uitvoert. 
  • Certificeringsinstanties geven twee validatieniveaus uit voor codeondertekening: Organisatievalidatie (OV) en Uitgebreide validatie (EV). Er bestaat geen domeingevalideerd certificaat voor codeondertekening. 
  • Sinds 1 juni 2023 schrijven de CA/Browser Forum Baseline Requirements voor dat alle privésleutels voor codeondertekening, OV en EV, moeten worden gegenereerd en opgeslagen op een hardwarematige cryptografische module die gecertificeerd is volgens ten minste FIPS 140-2 Level 2 of Common Criteria EAL 4+. 
  • Door een tijdstempel aan een digitale handtekening toe te voegen, blijft deze geldig, ook nadat het certificaat zelf is verlopen. Dit is belangrijk voor software die jarenlang in gebruik blijft. 
  • Diefstal van privésleutels, en niet zwakke cryptografie, is de meest voorkomende oorzaak van incidenten met codeondertekening. De ASUS Live Update-hack en soortgelijke aanvallen op de toeleveringsketen vonden beide hun oorsprong in gestolen ondertekeningssleutels. 

Wat is een Code Signing-certificaat? 

A certificaat voor codeondertekening Dit is het mechanisme achter de indicator 'vertrouwde uitgever' die een gebruiker ziet tijdens het installeren van software. De privésleutel van de uitgever ondertekent een cryptografische hash van de code; het certificaat bevat de bijbehorende publieke sleutel en de geverifieerde identiteit van de uitgever. Wanneer een apparaat de software installeert, berekent het de hash opnieuw, controleert de handtekening aan de hand van het certificaat en volgt de certificaatketen terug naar een vertrouwde root voordat de installatie zonder waarschuwingen kan worden voortgezet. 

Codeondertekeningscertificaten worden uitgegeven door openbare certificeringsinstanties zoals DigiCert, Sectigo en GlobalSign, volgens de basisvereisten voor codeondertekeningscertificaten van het CA/Browser Forum. 

Hoe codeondertekening werkt

Het ondertekenen en verifiëren van code volgt elke keer dezelfde basisvolgorde:

  • De uitgever genereert een hash van de code (de applicatie, het script of de firmware-image). 
  • De privésleutel van de uitgever, bewaard op een HSM Of token, versleutelt die hash om de digitale handtekening te creëren. 
  • De digitale handtekening en het certificaat voor codeondertekening zijn ingebed in of bijgevoegd aan het softwarepakket. 
  • Optioneel kan een tijdstempelautoriteit het pakket medeondertekenen, zodat de handtekening geldig blijft nadat het certificaat is verlopen. 
  • Wanneer een gebruiker of systeem de software installeert, wordt de hash opnieuw berekend, de handtekening geverifieerd aan de hand van de publieke sleutel van het certificaat en de certificaatketen naar een vertrouwde root gecontroleerd voordat de installatie wordt toegestaan. 

Soorten codeondertekeningscertificaten 

Codeondertekeningscertificaten zijn er in twee validatieniveaus, plus een optionele tijdstempelfunctie die op beide van toepassing is. 

Type Validatie uitgevoerd Typisch gebruik 
Standaard (OV) codeondertekening Bevestigt het wettelijk bestaan ​​van de organisatie en dat de aanvrager gemachtigd is om namens de organisatie te handelen. Desktopapplicaties, stuurprogramma's, interne tools, de meeste commerciële software. 
EV-code ondertekenen Voegt een grondigere controle van de juridische entiteit en achtergrond toe; maakte voorheen directe SmartScreen-reputatie op Windows mogelijk. Kernelmodusstuurprogramma's, beveiligingssoftware, uitgevers die direct vertrouwen nodig hebben zonder periode voor reputatieopbouw. 
Tijdstempeling (add-on, geen certificaattype) Een betrouwbare instantie die verantwoordelijk is voor de tijdstempel, ondertekent het pakket mede op het moment van ondertekening. Alle ondertekende software die geldig moet blijven nadat het ondertekeningscertificaat is verlopen. 

In eerdere versies van dit artikel werd gesproken over 'Domain Validation code signing certificates'. Dat type bestaat niet: DV is een TLS / SSL Validatieniveau, niet codeondertekeningsniveau. Elk codeondertekeningscertificaat vereist minimaal identiteitsverificatie op organisatieniveau. 

Oplossing voor codeondertekening voor bedrijven

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

Waarom codeondertekeningssleutels op een HSM moeten staan.

Met ingang van 1 juni 2023 vereist het CA/Browser Forum dat de privésleutel achter elk nieuw of vernieuwd codeondertekeningscertificaat, OV of EV, wordt gegenereerd en opgeslagen in een hardwarematige cryptografische module die gecertificeerd is volgens FIPS 140-2 niveau 2 of Common Criteria EAL 4+ of beter, waarbij de sleutel niet-exporteerbaar is. Certificaten die vóór die datum zijn uitgegeven, blijven ongewijzigd tot hun volgende verlenging.

Opslag Optie: Hoe werkt onze technologie? 
Hardware-token De CA verzendt een gecertificeerd USB-token; de sleutel wordt op het token gegenereerd en verlaat het token nooit. 
HSM op locatie of in de cloud De abonnee gebruikt een gecertificeerde HSM (of een HSM-as-a-service); de CA verifieert de naleving en de attestatie van de externe sleutel. 
Ondertekeningsservice De CA of een vertrouwde provider bewaart de sleutel in een eigen gecertificeerde HSM en ondertekent namens de abonnee via een API. 

Deze regel bestaat omdat gestolen softwareondertekeningssleutels, en niet gebroken cryptografie, de oorzaak zijn van de meest spraakmakende incidenten met codeondertekening. Door de sleutel in een gecertificeerde HSM te bewaren, kan deze code wel ondertekenen, maar kan deze nooit worden gekopieerd en elders worden gebruikt.

Codeondertekening in CI/CD-pipelines

De meeste teams ondertekenen code tegenwoordig automatisch binnen hun build-pipeline, in plaats van dit handmatig te doen vóór de release. 

  • Geautomatiseerde ondertekening. Elke build in Jenkins, GitHub Actions of Azure DevOps roept een ondertekeningsstap aan voordat de artefacten worden gepubliceerd, waardoor handmatige verwerking van de privésleutel overbodig wordt. 
  • Hashing aan de clientzijde. Alleen de hash van het bestand wordt naar de HSM of ondertekeningsservice gestuurd voor ondertekening, niet het volledige artefact. Dit zorgt ervoor dat grote builds snel blijven. 
  • Toegangscontrole en audit. Op rollen gebaseerde toegangscontrole (RBAC) beperkt wie of wat een handtekening kan zetten, en elke ondertekeningsgebeurtenis wordt geregistreerd voor naleving van de regelgeving. 
  • Compliance mapping. Een volledig auditspoor van ondertekening ondersteunt frameworks zoals NIST-richtlijnen, PCI DSS en interne beleidsregels voor de softwareleveringsketen, en sluit aan op frameworks zoals Google's SLSA en Microsoft's S2C2F. 

Risico's van codeondertekening en hoe deze te beperken

diefstal of misbruik van privésleutels HSM-gebaseerde opslag, RBAC en sleutelrotatie zorgen ervoor dat gestolen inloggegevens geen code kunnen ondertekenen.
Belangrijke spreiding over teams en pipelines Centraliseer het ondertekenen via één platform met een realtime inventaris van sleutels en certificaten. 
Kwaadwillende medewerkers of gecompromitteerde buildserversOnveranderlijke, gecontroleerde buildomgevingen en goedkeuringsworkflows voordat een handtekening wordt gezet. 
Verlopen certificaten zorgen ervoor dat oudere software niet meer werkt. Voorzie elke handtekening van een tijdstempel, zodat deze geldig blijft na het verlopen van het certificaat. 

Hoe kan Encryption Consulting helpen?

Encryptie Consulting's CodeSign Secure is een veilige en flexibele oplossing voor codeondertekening op meerdere besturingssystemen, namelijk Windows, Linux, macOS en Docker-containers. CodeSign Secure beschermt digitale apparaten tegen schadelijke software door middel van digitale codeondertekening. Dit beschermt ze tegen wijzigingen tijdens de overdracht, wat een essentieel onderdeel vormt van de beveiliging in de huidige gedigitaliseerde wereld.  

Met CodeSign Secure kan een organisatie informatie beveiligen tijdens de overdracht. Het biedt de ontvangers van de code bovendien extra vertrouwen, omdat ze weten dat de code intact en origineel is op alle platforms. 

Conclusie 

Certificaten voor codeondertekening zijn essentieel voor de ontwikkeling van veilige en betrouwbare software. Door de juiste certificaatcategorie te selecteren, het verschil te kennen tussen openbaar en privé vertrouwen en codeondertekening te integreren in uw DevOps-pijplijn, verbetert u ook de beveiliging en betrouwbaarheid van uw software.  

Voldoen aan regelgeving is één ding, maar het vertrouwen wekken bij uw gebruikers en hun applicaties beschermen tegen alle vormen van manipulatie is een tweede. Al met al verhoogt codeondertekening het beveiligingsniveau van alle programma's en software die voor de gebruikers worden ontwikkeld. 

Veelgestelde Vragen / FAQ 

Wat is het verschil tussen een codeondertekeningscertificaat en een SSL/TLS-certificaat? 

Een SSL/TLS-certificaat authenticeert een website en versleutelt het verkeer tussen een browser en een server. Een codeondertekeningscertificaat authenticeert de uitgever van software en bewijst dat de code niet is gewijzigd. Beide zijn digitale certificaten die worden uitgegeven door een certificeringsinstantie (CA), maar ze verifiëren verschillende zaken en zijn niet uitwisselbaar.

Heb ik een EV-codeondertekeningscertificaat nodig? 

De meeste uitgevers kunnen een standaard OV-codeondertekeningscertificaat gebruiken. EV is de extra verificatie waard voor kernelmodusstuurprogramma's of beveiligingssoftware waarbij een antivirusleverancier of Microsoft Windows een strengere identiteitscontrole vereist, of wanneer een uitgever het hoogst mogelijke niveau van identiteitsborging wil. 

Kan ik mijn privésleutel voor codeondertekening in software opslaan in plaats van op een HSM? 

Nee. Sinds 1 juni 2023 vereisen de regels van het CA/Browser Forum dat de privésleutel van elk nieuw of vernieuwd codeondertekeningscertificaat wordt gegenereerd en opgeslagen in een gecertificeerde hardwarematige cryptografische module (FIPS 140-2 niveau 2 of Common Criteria EAL 4+ of beter). Openbare CA's zullen geen certificaat uitgeven voor een sleutel die uitsluitend in software is opgeslagen. 

Wat is tijdstempeling bij het ondertekenen van codes? 

Door een tijdstempel toe te voegen aan een codehandtekening, wordt een betrouwbaar en onafhankelijk verifieerbaar tijdstip vastgelegd. Hierdoor blijft een handtekening geldig, zelfs nadat het ondertekeningscertificaat is verlopen. Software die jaren geleden is ondertekend, kan dus nog steeds als legitiem worden beschouwd op het moment van ondertekening. 

Hoe lang is een codeondertekeningscertificaat geldig? 

Certificaten voor codeondertekening vallen niet onder het verkorte TLS-validiteitsschema van het CA/Browser Forum. De meeste certificeringsinstanties geven ze uit voor één tot drie jaar, en tijdstempels zorgen ervoor dat de handtekening ook na die vervaldatum geldig blijft. 

Beveilig uw softwareleveringsketen. 

Klaar om codeondertekening niet langer via spreadsheets en gedeelde USB-tokens te laten verlopen? Bekijk het eens! CodeSign Secure in actie, of controleer elk certificaat met onze gratis service. ASN.1 CSR- en certificaatdecoder.