- Key Takeaways
- Hoe codeondertekening werkt
- Codeondertekeningscertificaten: publiekelijk vertrouwd versus zelfondertekend
- Waarom tijdstempels belangrijk zijn
- CA/B Forum Basisvereisten: De hardwareopslagregel
- Codeondertekening en post-kwantumcryptografie
- Common Use Cases
- Aanbevolen procedures voor codeondertekening
- Hoe encryptieconsultancy kan helpen
- Veelgestelde Vragen / FAQ
- Onderteken met vertrouwen
Codeondertekening is de praktijk waarbij een digitale handtekening wordt gebruikt om te bewijzen dat een stuk software, firmware, script of uitvoerbaar bestand afkomstig is van een specifieke uitgever en niet is gewijzigd sinds de ondertekening.
Codeondertekening maakt gebruik van een privésleutel en een codeondertekeningscertificaat om een ​​digitale handtekening aan software toe te voegen voordat deze wordt gedistribueerd. Wanneer een gebruiker de code installeert, controleert het besturingssysteem de handtekening om de identiteit van de uitgever te bevestigen en te controleren of de code niet is gemanipuleerd. Het is het belangrijkste vertrouwensmechanisme in moderne softwaredistributie.
Key Takeaways
- Codeondertekening bewijst het auteurschap en de integriteit van software met behulp van een privésleutel die in bezit is van de uitgever en een codeondertekeningscertificaat dat is uitgegeven door een vertrouwde certificeringsinstantie.
- Het CA/Browser Forum vereist dat privésleutels voor codeondertekening worden opgeslagen op hardware die voldoet aan de eisen. FIPS 140-2 Niveau 2 (of FIPS 140-3 Niveau 2) of Common Criteria EAL 4+, ingaande 1 juni 2023.
- Tijdstempeling (RFC 3161) zorgt ervoor dat een handtekening geldig blijft nadat het ondertekeningscertificaat is verlopen, door aan te tonen wanneer de code is ondertekend.
- SHA-256 is het huidige standaard hash-algoritme; SHA-1 is verouderd en wordt door moderne platforms afgewezen.
- Codeondertekening na de kwantumdrempel maakt gebruik van ML-DSA (FIPS 204) of SLH-DSA (FIPS 205); CNSA 2.0 streeft naar exclusieve kwantumresistente ondertekening voor Amerikaanse nationale veiligheidssystemen vanaf 2027.
Hoe codeondertekening werkt
Codeondertekening volgt hetzelfde patroon van publieke-sleutelcryptografie als elke andere digitale handtekening, specifiek toegepast op softwarecomponenten.
- Genereer een sleutelpaar: De uitgever genereert een paar publieke en private sleutels, vervolgens een Certificaatondertekeningsaanvraag (CSR).
- Een certificaat behalen: Een vertrouwde Certificate Authority valideert de identiteit van de uitgever en geeft een codeondertekeningscertificaat uit dat is gekoppeld aan de publieke sleutel.
- Hash de code: Een cryptografie hash-functie (meestal SHA-256) produceert een hash van vaste lengte van het software-artefact.
- Onderteken de hashtag: De privésleutel van de uitgever versleutelt de hash om een ​​digitale handtekening te genereren. De privésleutel moet worden opgeslagen in een FIPS 140-2 Level 2 (of FIPS 140-3 Level 2) hardwaremodule, conform de regels van het CA/B Forum.
- Bundel voor distributie: De originele code, de handtekening en het codeondertekeningscertificaat (met de publieke sleutel) worden samen verpakt en gedistribueerd.
- Controleer tijdens de installatie: Het besturingssysteem van de ontvanger berekent de hash van de code opnieuw, decodeert de handtekening met de publieke sleutel en vergelijkt de twee hashes. Een overeenkomst bevestigt de authenticiteit en integriteit.
Als de code na ondertekening wordt gewijzigd, komt de opnieuw berekende hash niet overeen, mislukt de verificatie van de handtekening en waarschuwt het besturingssysteem de gebruiker of blokkeert de installatie.

Codeondertekeningscertificaten: publiekelijk vertrouwd versus zelfondertekend
Codeondertekeningscertificaten vallen in twee categorieën met zeer verschillende betrouwbaarheidskenmerken.
| Kenmerk | Zelfondertekend certificaat | Certificaat van openbaar vertrouwen |
|---|---|---|
| Uitgegeven door | De uitgever, intern | Een vertrouwde certificeringsinstantie (DigiCert, Sectigo, GlobalSign, enz.) |
| Vertrouwen in besturingssysteem/browser | Niet standaard vertrouwd; activeert beveiligingswaarschuwingen. | Standaard vertrouwd; geen waarschuwingen. |
| Kosten | Gratis | Betaald; varieert afhankelijk van het validatieniveau. |
| Validatieniveaus | Geen | Standaardvalidatie (OV), Organisatievalidatie, Uitgebreide validatie (EV) |
| Best voor | Interne tests, ontwikkeling, privédistributie | Openbare softwaredistributie aan eindgebruikers |
| Vereiste voor de opslag van privésleutels | Aanbevolen op HSM | Vereist op FIPS 140-2 Level 2+ hardware sinds 1 juni 2023. |
Extended Validation (EV)-certificaten voeren de strengste identiteitscontroles uit en geven ondertekende software direct een betere reputatie bij Microsoft SmartScreen en andere systemen voor applicatiereputatie.
Waarom tijdstempels belangrijk zijn
Door middel van een tijdstempel wordt een betrouwbaar tijdstempel aan de handtekening gekoppeld op het moment van ondertekening, waardoor de verificatie geldig blijft, zelfs nadat het codeondertekeningscertificaat is verlopen.
Codeondertekeningscertificaten hebben doorgaans een geldigheidsduur van één tot drie jaar. Zonder een tijdstempel wordt de handtekening na het verlopen van het certificaat als ongeldig beschouwd en krijgen gebruikers beveiligingswaarschuwingen te zien, ook al is de code rechtmatig ondertekend toen het certificaat nog geldig was. Een tijdstempel van een vertrouwde Timestamp Authority (TSA) lost dit probleem op door de ondertekeningsdatum cryptografisch te bewijzen. De relevante standaard is RFC 3161.
Voorzie productiecode-handtekeningen altijd van een tijdstempel. Dit is een goedkope, waardevolle handeling en standaardpraktijk.
CA/B Forum Basisvereisten: De hardwareopslagregel
Sinds 1 juni 2023 vereisen de CA/Browser Forum Code Signing Baseline Requirements dat alle privésleutels voor codeondertekening, zowel voor Organization Validation (OV) als Extended Validation (EV) certificaten, worden opgeslagen op hardware die voldoet aan FIPS 140-2 Level 2 (of FIPS 140-3 Level 2) of Common Criteria EAL 4+ . Opslag van sleutels uitsluitend in software is niet langer toegestaan ​​voor publiekelijk vertrouwde codeondertekening.
Mogelijke opslagopties zijn onder andere:
- Hardware-beveiligingsmodules (HSM's)
- Cloudgebaseerde HSM-services
- USB-gebaseerde hardwaretokens die voldoen aan de vereiste certificeringen.
Deze regel was een directe reactie op spraakmakende aanvallen op de toeleveringsketen, zoals die op SolarWinds (2020), waarbij gecompromitteerde ondertekeningssleutels werden gebruikt om Orion-updates met een trojan te verspreiden onder duizenden organisaties. Het opslaan van sleutels in fraudebestendige hardware maakt diefstal van sleutels aanzienlijk moeilijker.
Codeondertekening en post-kwantumcryptografie
Ondertekende code moet vaak jaren of zelfs decennia lang verifieerbaar blijven, zoals firmware in een industrieel apparaat, een release van een besturingssysteem of een ondertekende driver. Dit maakt codeondertekening een van de meest urgente prioriteiten na de kwantummigratie.
RSA- en ECDSA-handtekeningen, die tegenwoordig aan de basis liggen van vrijwel alle codeondertekening, kunnen worden vervalst door een voldoende krachtige kwantumcomputer die het algoritme van Shor uitvoert. NIST heeft in augustus 2024 twee kwantumresistente handtekeningalgoritmen gestandaardiseerd:
- ML-DSA (FIPS 204), gebaseerd op CRYSTALS-Dilithium
- SLH-DSA (FIPS 205), gebaseerd op SPHINCS+
De CNSA 2.0- richtlijnen van de Amerikaanse NSA vereisen kwantumresistente algoritmen voor het ondertekenen van software en firmware in nationale veiligheidssystemen, met als doel exclusief gebruik vanaf 2027. Organisaties met langdurig ondertekende documenten zouden nu al moeten beginnen met de planning voor de overgang, vaak via hybride certificaten die tijdens de migratie zowel een klassieke als een post-kwantumhandtekening bevatten.
Common Use Cases
Codeondertekening is vereist of wordt verwacht bij de meeste softwaredistributiekanalen.
- Toepassingsdistributie: Windows SmartScreen en macOS Gatekeeper blokkeren of waarschuwen voor niet-ondertekende uitvoerbare bestanden. De App Store van Apple en Google Play vereisen ondertekende inzendingen.
- Software-updates en patches: Ondertekende updates bewijzen dat de patch van de leverancier afkomstig is en niet tijdens het transport is gewijzigd.
- Apparaatstuurprogramma's: Windows vereist ondertekende kernel-mode stuurprogramma's; niet-ondertekende stuurprogramma's worden volledig geblokkeerd op 64-bits Windows.
- firmware: De firmware voor IoT-, industriële en automobieltoepassingen is digitaal ondertekend om te voorkomen dat deze door kwaadwillige partijen wordt vervangen.
- Scripts en macro's: PowerShell, Microsoft Office VBA-macro's en vergelijkbare programma's kunnen worden ondertekend om te voldoen aan uitvoeringsbeleid.
- CI/CD-artefacten: Containerimages, pakketten en build-outputs worden steeds vaker digitaal ondertekend als onderdeel van de beveiliging van de softwareleveringsketen (SLSA, Sigstore).
Aanbevolen procedures voor codeondertekening
Zes werkwijzen onderscheiden een robuust codeondertekeningsprogramma van een programma dat uitmondt in een incident in de toeleveringsketen.
- Bewaar privésleutels in een HSM: Dit is vereist voor publiekelijk vertrouwde codeondertekening sinds 1 juni 2023 en het is de meest effectieve beveiliging tegen sleuteldiefstal.
- Voorzie elke productiesignatuur van een tijdstempel: Gebruik een vertrouwde TSA (RFC 3161) zodat handtekeningen geldig blijven na het verlopen van het certificaat.
- Gebruik SHA-256 of een sterkere variant: SHA-1 is verouderd. Onderteken geen nieuwe documenten meer met SHA-1.
- Toegang tot ondertekening beperken: Vereis meervoudige authenticatie voor elke ondertekeningshandeling. Registreer wie wat heeft ondertekend, wanneer en vanaf welke locatie.
- Wissel de toetsen en controleer op misbruik: Houd de vervaldatum van certificaten in de gaten, let op afwijkende ondertekeningsactiviteiten en trek ze onmiddellijk in bij elke inbreuk.
- Plan de PQC-overgang: Begin met evalueren ML-DSA en hybride ondertekening voor langlevende firmware en systeemsoftware is nu mogelijk.
Hoe encryptieconsultancy kan helpen
CodeSign Secure is het platform voor codeondertekening voor bedrijven van Encryption Consulting. Het centraliseert ondertekeningsbewerkingen achter een FIPS 140-2 Level 2 HSM , integreert met Microsoft SignTool, jarsigner en CI/CD-pipelines zoals Jenkins, Azure DevOps en GitLab, en ondersteunt tijdstempels en post-quantum handtekeningalgoritmen naarmate deze worden uitgerold. Het biedt beveiligingsteams volledige auditsporen van elke ondertekeningsbewerking en dwingt standaard de CA/B Forum-regel voor hardwareopslag af. Het platform is gebaseerd op ISO/IEC 27001:2022 en SOC 2-gecertificeerde werkwijzen.
Veelgestelde Vragen / FAQ
Wat is codeondertekening in eenvoudige bewoordingen?
Codeondertekening is een manier voor een software-uitgever om een ​​cryptografische zegel aan zijn software toe te voegen. Wanneer een gebruiker de software installeert, controleert het besturingssysteem de zegel om twee dingen te bevestigen: dat de software daadwerkelijk van die uitgever afkomstig is en dat niemand de software heeft gewijzigd sinds de ondertekening. Als de zegel verbroken of ontbreekt, waarschuwt het besturingssysteem de gebruiker of blokkeert het de installatie.
Wat is het verschil tussen een zelfondertekend en een publiekelijk erkend codeondertekeningscertificaat?
Een zelfondertekend certificaat wordt door de uitgever aangemaakt zonder externe validatie en wordt standaard niet vertrouwd door besturingssystemen of browsers. Gebruikers zien daarom beveiligingswaarschuwingen tijdens de installatie. Een publiek vertrouwd certificaat wordt uitgegeven door een certificeringsinstantie na identiteitsvalidatie en wordt standaard vertrouwd op alle platformen. Publiek vertrouwde certificaten zijn vereist voor het distribueren van software aan externe gebruikers; zelfondertekende certificaten zijn prima voor interne tests.
Waarom moet ik ondertekende code van een tijdstempel voorzien?
Een certificaat voor codeondertekening verloopt doorgaans na één tot drie jaar. Zonder tijdstempel wordt de handtekening als ongeldig beschouwd zodra het certificaat is verlopen, zelfs als de code is ondertekend toen het certificaat nog geldig was. Een tijdstempel van een vertrouwde RFC 3161-tijdstempelautoriteit bewijst wanneer de code is ondertekend, waardoor verificatie ook na het verlopen van het certificaat succesvol blijft. Voorzie productiehandtekeningen altijd van een tijdstempel.
Welk hash-algoritme wordt gebruikt bij het ondertekenen van codes?
SHA-256 is de huidige standaard voor het ondertekenen van code. SHA-384 en SHA-512 zijn ook acceptabel wanneer een sterkere hashfunctie de voorkeur heeft. SHA-1 is verouderd en wordt afgewezen door moderne besturingssystemen en de eisen van het CA/B Forum. Overwegingen met betrekking tot post-kwantumtechnologie vereisen geen vervanging van SHA-256 , omdat het algoritme van Grover het effectieve beveiligingsniveau slechts halveert, waardoor SHA-256 een post-kwantumbeveiliging van ongeveer 128 bits behoudt.
Wat gebeurt er met codeondertekening onder post-kwantumcryptografie?
RSA- en ECDSA -codeondertekening worden kwetsbaar zodra er een voldoende krachtige kwantumcomputer bestaat, omdat het algoritme van Shor handtekeningen kan vervalsen. NIST heeft in augustus 2024 kwantumresistente ondertekeningsalgoritmen gestandaardiseerd: ML-DSA (FIPS 204) en SLH-DSA (FIPS 205). CNSA 2.0 vereist kwantumresistente ondertekening voor Amerikaanse nationale veiligheidssystemen vanaf 2027. Organisaties zouden hybride ondertekening (klassiek plus post-kwantum) moeten plannen voor langdurig bewaard gebleven ondertekende documenten.
Hoe bewaar ik een privésleutel voor codeondertekening veilig?
Bewaar de privésleutel in een hardwarebeveiligingsmodule of hardwaretoken die voldoet aan FIPS 140-2 niveau 2 (of FIPS 140-3 niveau 2) of Common Criteria EAL 4+. Dit is vereist door het CA/Browser Forum voor alle publiekelijk vertrouwde codeondertekening sinds 1 juni 2023. Beperk de toegang met multifactorauthenticatie, registreer elke ondertekeningsbewerking en exporteer de privésleutel nooit naar schijf of verzend deze niet via software.
Onderteken met vertrouwen
Bent u klaar om uw codeondertekeningsprocessen van begin tot eind te beveiligen? Ontdek CodeSign Secure of neem contact op met een adviseur van Encryption Consulting.
- Key Takeaways
- Hoe codeondertekening werkt
- Codeondertekeningscertificaten: publiekelijk vertrouwd versus zelfondertekend
- Waarom tijdstempels belangrijk zijn
- CA/B Forum Basisvereisten: De hardwareopslagregel
- Codeondertekening en post-kwantumcryptografie
- Common Use Cases
- Aanbevolen procedures voor codeondertekening
- Hoe encryptieconsultancy kan helpen
- Veelgestelde Vragen / FAQ
- Onderteken met vertrouwen
