Wat is Code Signing?

Code Signing is het proces waarbij software, Firmware of scripts cryptografisch worden ondertekend met een digitaal certificaat. Het doel is om de authenticiteit, integriteit en herkomst van code te waarborgen, zodat systemen alleen vertrouwde, ongemanipuleerde software uitvoeren.

In OT-omgevingen is Code Signing cruciaal bij Firmware-updates, PLC-programmering en softwaredistributie in productienetwerken, waar betrouwbaarheid en continuïteit essentieel zijn.


🧠 Waarom Code Signing belangrijk is

  1. Bescherming tegen manipulatie – voorkomt dat kwaadwillenden software wijzigen zonder detectie
  2. Verificatie van de bron – alleen code van vertrouwde leveranciers wordt geaccepteerd
  3. Ondersteuning voor Secure Boot – alleen ondertekende firmware wordt uitgevoerd bij opstarten
  4. Voorkomt installatie van malware – voorkomt infectie via supply chain of interne updates
  5. Voldoet aan normen zoals IEC 62443, NIS2, Cyber Resilience Act

🔐 Hoe werkt Code Signing?

  1. De fabrikant (ontwikkelaar) genereert een hash van de code
  2. Deze hash wordt versleuteld met een private key van een Code Signing-certificaat
  3. De ondertekende hash + certificaat worden toegevoegd aan de distributiebestanden
  4. Bij installatie controleert het apparaat met de public key of de handtekening geldig is
  5. Alleen geldige, niet gewijzigde en vertrouwde code wordt uitgevoerd

🧪 Toepassingen in OT

ToepassingVoorbeeld
Firmware-updatesPLC’s, drives, I/O-kaarten alleen voorzien van geverifieerde firmware
Script deploymentAlleen gesigneerde scripts via OT-managementsysteem toegestaan
SCADA/HMI-softwareBescherming tegen gemanipuleerde visuals of logica
BIOS/bootloader verificatieSecure Boot in industriële IPC’s of gateways
Edge/IoT-apparatenUpdates vanuit cloud of OTA enkel via getekende distributie

✅ Best practices

MaatregelToelichting
Gebruik van HSM of TPMPrivate signing key veilig bewaren (hardwarematig)
CertificaatbeheerRegelmatige rotatie, intrekking bij compromis, logging
Onderteken ook configuratiebestandenBijvoorbeeld bij deployment van settings in OT-applicaties
RBACAlleen geautoriseerd personeel mag code ondertekenen en verspreiden
Integratie met CI/CDAutomatisch ondertekenen van builds in DevOps-pijplijn

📉 Risico’s bij ontbreken van Code Signing

  • Installatie van kwaadaardige firmware via supply chain-aanval
  • Gebruik van ongeldige of verouderde software in kritieke installaties
  • Geen detectie bij manipulatie van OTA-updates of backups
  • Problemen bij audits, compliance of forensic onderzoek
  • Schending van IEC 62443 en toekomstige EU-verplichtingen (zoals Cyber Resilience Act)

📌 Samengevat

Code Signing is een onmisbare beveiligingslaag in OT-omgevingen voor het vertrouwen in software en Firmware. Zonder digitale handtekening is er geen garantie dat de code veilig, origineel en onveranderd is.