Connected apparaten wil je kunnen updaten
Als fabrikant van een (connected) apparaat wil je op afstand updates kunnen uitrollen. Want updates komen er sowieso. Of het nu gaat om kleine verbeteringen, het oplossen van foutjes of nieuwe functies. En het is natuurlijk zonde om een monteur langs te sturen alleen om een update te installeren.
Maar er komt wel wat bij kijken om dit goed op te zetten. Een stilvallende installatie door een mislukte update wordt opeens een spoedklus. En je wilt zelf de controle houden: de digitale deur goed op slot, en de sleutels in eigen beheer. Zodat er niet opeens een gehackte versie geïnstalleerd kan worden, of iemand zich kan voordoen als jouw apparatuur.
De basis: elk apparaat zijn eigen digitale paspoort
De basis is een goed beveiligde verbinding met je apparaten. Elk apparaat maakt verbinding met de server. Maar hoe weet je of de server echt is en andersom? Daarvoor gebruiken wij in vakjargon mutual TLS (mTLS).
Eigenlijk niet anders dan twee personen die elkaar alleen van naam kennen. Door elkaar te identificeren met een paspoort kunnen ze erop vertrouwen wie wie is.
Heb je zowel server als apparaat in eigen beheer (of een leverancier die dat voor je doet), dan kun je je eigen paspoorten uitgeven, met je eigen stempel als waarmerk. Zo kunnen je apparaten heel streng controleren op dat echtheidskenmerk, zonder misleid te worden door een vals paspoort. Met deze aanpak komt de verbinding pas tot stand als het apparaat zeker weet met de echte server te praten. En andersom.
Waarom dit nog niet genoeg is
Met een goede paspoortcontrole zou je misschien denken dat we klaar zijn. Maar dat update-pakketje dat het apparaat ontvangt, wat zit daar eigenlijk in? Wie heeft het ingepakt? Je server is hier eigenlijk maar een doorgeefluik: de firmware die jij hebt klaargezet wordt doorgegeven aan alle apparaten.
Door het update-pakketje apart te verzegelen, zal het apparaat alleen officiële, juiste updates toepassen. Wat er onderweg ook met het pakketje gebeurd is, zelfs als je server gehackt wordt.
Update geweigerd? Dan draait het apparaat gewoon door op de huidige versie.
Samengevat: de workflow
De levensloop van een apparaat met deze aanpak:
- Programmeurs schrijven een nieuwe firmware-update. Dit kun je zelf in-house doen of uitbesteden.
- Jij verzegelt de update. Kan alleen met jouw zegelsleutel
.
- Tijdens productie wordt ieder apparaat van een paspoort voorzien. Kan alleen met jouw unieke stempelsleutel
.
- In het veld kunnen je apparaten jaren veilig gebruikt worden. Zelfs als iemand het paspoort in handen zou krijgen, blijft de impact beperkt tot één apparaat.
- Rol je een update uit, dan verifieert ieder apparaat de verzegeling. Een onofficiële update komt er niet doorheen.
Kijk naar de onderste rij in de figuur. Er zijn twee digitale sleutels die je ieder op één specifiek moment gebruikt. In de meeste stappen heb je ze dus niet nodig!
Hoe kan dat dan, controleren zonder sleutel?
Elk apparaat (en je server) krijgt als het ware een afdruk mee van jouw stempel. Door daarmee te vergelijken kun je wél controleren of een gestempeld paspoort echt is, maar niet zomaar een nieuwe stempel zetten. Net als een watermerk in een bankbiljet: het is niet geheim hoe dit eruitziet, iedereen kan het controleren. Maar zelf een biljet printen, dat is een ander verhaal.
Voor de techneuten: we gebruiken hier public-key-cryptografie. Elke sleutel heeft een private helft die jij gebruikt om de stempel/verzegeling te maken en een public helft waarmee elk apparaat de echtheid controleert. Het paspoort is een X.509-certificaat, de stempel je eigen certificate authority (CA), en het zegel een digitale handtekening op de firmware die de bootloader controleert.
Beheer van de sleutels
Jouw sleutels hoeven dus niet op je server, apparaten of bij de ontwikkelaar te liggen: die kun je veilig in eigen beheer houden.
Er zijn speciale apparaatjes die als digitale kluis (hardware-sleutel) werken (vergelijkbaar met een hardware wallet voor bitcoin). Daarmee kun je verzegelen en stempels zetten zonder dat de sleutel gekopieerd kan worden.
Zo loop je geen risico dat deze uitlekt door rondslingerende kopietjes. Natuurlijk wel aan te raden om een goede backup te bewaren! Bijvoorbeeld extra exemplaren in een kluis.
Checklist: vragen voor je leverancier
Ben jij als fabrikant benieuwd hoe het met jouw apparaten eigenlijk zit? Vraag je leverancier:
- Heeft elk apparaat zijn eigen 'paspoort' (certificaat)? Of delen alle apparaten dezelfde sleutel/wachtwoord?
- Is de verbinding beveiligd en controleren apparaat en server elkaar? Of is het maar in één richting?
- Zijn updates verzegeld (digitaal ondertekend) en wordt dat door de apparaten gecheckt?
- Wat gebeurt er met je apparaat als de update onderbroken wordt? Bijvoorbeeld doordat de stroom uitvalt?
- Wie beheert de sleutels? Wie heeft toegang en hoe zijn backups geregeld?
- Als één apparaat gestolen of gehackt wordt, kun je dat dan buitensluiten?
Zo doen wij het in sensor-link
Wij werken met een geautomatiseerde ontwikkelstraat (CI pipeline), die een nieuwe versie pas verzegelt als alle tests slagen. Desgewenst ook pas na akkoord van een collega: het vierogenprincipe.
In de fabriek wordt de hardware getest met een aparte test-firmware. Pas bij de eindassemblage zet jij de nieuwste firmware en het unieke paspoort erin. Wij hebben handige tools waarmee je dit in een handomdraai kunt doen, met de sleutels in eigen beheer.
Op het apparaat is onze bootloader geïnstalleerd. Dit stukje software draait voordat de applicatie opstart en is verantwoordelijk voor het veilig installeren van updates. Dit is hoe dat werkt:
- De applicatie haalt het hele update-pakket binnen en herstart.
- De bootloader verifieert het pakket dat klaarstaat. Ongeldig? Dan wordt het genegeerd en starten we de bestaande versie.
- Klopt de verzegeling? Dan wordt de update geïnstalleerd en opgestart.
Door de nieuwe update als kopie klaar te zetten, kan zelfs een abrupt onderbroken update na een herstart gewoon verder gaan.
En wat kost dat? Paspoorten, zegels, een veilige bootloader: dat zijn opgeloste problemen. Die wielen hebben wij al uitgevonden in sensor-link, dus jij betaalt alleen voor wat jouw product uniek maakt.
Wat past bij jouw product?
Natuurlijk zijn de trade-offs voor ieder product anders. Wat is de impact als het misgaat? Wat kost het als je installaties stilstaan door een mislukte update? Hoe groot is de dreiging, zijn er mensen die er baat bij hebben jouw apparaten na te maken of te saboteren? Ook als dat allemaal niet zo van toepassing lijkt, bedenk dan dat de eisen van de Cyber Resilience Act eraan komen.
Benieuwd wat bij jouw product en risico's past? Plan een vrijblijvend gesprek.