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
- Bescherming tegen manipulatie – voorkomt dat kwaadwillenden software wijzigen zonder detectie
- Verificatie van de bron – alleen code van vertrouwde leveranciers wordt geaccepteerd
- Ondersteuning voor Secure Boot – alleen ondertekende firmware wordt uitgevoerd bij opstarten
- Voorkomt installatie van malware – voorkomt infectie via supply chain of interne updates
- Voldoet aan normen zoals IEC 62443, NIS2, Cyber Resilience Act
🔐 Hoe werkt Code Signing?
- De fabrikant (ontwikkelaar) genereert een hash van de code
- Deze hash wordt versleuteld met een private key van een Code Signing-certificaat
- De ondertekende hash + certificaat worden toegevoegd aan de distributiebestanden
- Bij installatie controleert het apparaat met de public key of de handtekening geldig is
- Alleen geldige, niet gewijzigde en vertrouwde code wordt uitgevoerd
🧪 Toepassingen in OT
| Toepassing | Voorbeeld |
|---|---|
| Firmware-updates | PLC’s, drives, I/O-kaarten alleen voorzien van geverifieerde firmware |
| Script deployment | Alleen gesigneerde scripts via OT-managementsysteem toegestaan |
| SCADA/HMI-software | Bescherming tegen gemanipuleerde visuals of logica |
| BIOS/bootloader verificatie | Secure Boot in industriële IPC’s of gateways |
| Edge/IoT-apparaten | Updates vanuit cloud of OTA enkel via getekende distributie |
✅ Best practices
| Maatregel | Toelichting |
|---|---|
| Gebruik van HSM of TPM | Private signing key veilig bewaren (hardwarematig) |
| Certificaatbeheer | Regelmatige rotatie, intrekking bij compromis, logging |
| Onderteken ook configuratiebestanden | Bijvoorbeeld bij deployment van settings in OT-applicaties |
| RBAC | Alleen geautoriseerd personeel mag code ondertekenen en verspreiden |
| Integratie met CI/CD | Automatisch 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.