De rol van hardware in beveiliging IoT

Steeds meer apparaten zijn met het internet en met andere apparaten verbonden om gegevens te verzamelen. Hun invloed op onze veiligheid wordt steeds groter en het belang van het beveiligen van informatiesystemen - in het bijzonder IoT-systemen - neemt toe. Een sterke, verifieerbare identiteit van apparaten is daarom van cruciaal belang, omdat de bescherming van de vertrouwelijkheid, integriteit en beschikbaarheid van informatie die wordt uitgewisseld binnen een IoT-systeem, hiervan afhangt. Het ontwikkelen en beschermen van de identiteit van apparaten moet vooropstaan, en hardware speelt hierin een belangrijke rol.

Volgens de voorspellingen van Gartner, IDC en McKinsey, zullen er tegen 2020 zowat 20-50 miljard apparaten met het internet verbonden zijn. De meeste ervan zullen private en/of vertrouwelijke gegevens verzamelen en via internetprotocollen direct toegang hebben tot, of toegankelijk zijn voor andere apparaten. Tot nu toe lag de focus bij informatiebeveiliging meestal grotendeels op de vertrouwelijkheid van persoonsgegevens en de geheimhouding van bedrijfsgegevens. Maar, zoals vermeld in een recente paper, zullen steeds meer apparaten onze veiligheid en onze bestaansmiddelen direct beïnvloeden: verbonden en autonome auto’s, medische apparaten en kritieke infrastructuur, zoals slimme meters en subsystemen voor stroomtoevoer. Recente voorvallen met dergelijke kritieke systemen - hackers deactiveren op afstand een jeep op de autosnelweg in het bijzijn van de bestuurder, functies van het Nissan LEAF-voertuig van aan de andere kant van de wereld bestuurd via kwetsbare API's, team van hackers neemt op afstand de controle van een Tesla Model S, door risico op hacking worden 500.000 pacemakers teruggeroepen uit vrees voor overlijden patiënten en stroomuitval in Oekraïne te wijten aan een cyberaanval tonen aan dat de dreiging ernstig en reëel is, en dat grote aandacht moet uitgaan naar het beperken hiervan.

Beveiliging van IoT-systemen

Indien we het gebruikelijke drieluik voor beveiliging toepassen, met name vertrouwelijkheid, integriteit en beschikbaarheid (zoals vermeld in de speciale publicatie van NIST ‘An Introduction to Information Security’), kunnen we definiëren wat beveiliging van IoT-systemen inhoudt. IoT-systemen bestaan uit verbonden apparaten, die elk een specifieke rol vervullen binnen het systeem: het verzamelen van omgevingsgegevens via sensoren en/of reageren op de omgeving, op grond van de systeemregels. De integriteit van een volledig IoT-systeem houdt bijgevolg in dat het systeem enkel bestaat uit de juiste componenten, wat betekent dat er geen malafide apparaten informatie uitwisselen met het systeem – enkel authentieke apparaten maken er deel van uit.

Zodra de identiteit van een apparaat is bevestigd, kan de communicatie binnen het systeem vertrouwelijk worden gemaakt, zodat enkel informatie wordt uitgewisseld tussen bedoelde (geauthenticeerde) toestellen en afluisteren wordt voorkomen. Authenticatie zorgt ook voor de bescherming van de integriteit van informatie omdat geauthenticeerde identiteit van apparaten kan worden gebruikt om de uitgewisselde informatie te ondertekenen, waardoor deze beveiligd is tegen sabotage. Tot slot omvat de beschikbaarheid de weerstand tegen het aanvaarden van malafide verbindingspogingen door niet-geauthenticeerde apparaten, die hun prestaties en mogelijkheid tot deelname aan de bonafide communicatie met de rest van het IoT-systeem zouden verhinderen.

Identiteit van apparaten

Zoals eerder aangegeven, is een sterke, verifieerbare identiteit van apparaten een cruciaal onderdeel van de IoT-beveiliging, omdat de bescherming van vertrouwelijkheid, integriteit en beschikbaarheid van Informatie die wordt uitgewisseld binnen een IoT-systeem, ervan afhangt. Hoe wordt de identiteit van apparaten dus vastgesteld en bewezen? 

Bij communicatie tussen mens en machine, zorgt de mens vaak voor authenticatie ten opzichte van de machine door middel van een gedeeld geheim: een wachtwoord. Een nadeel van het gebruik van wachtwoorden is dat, naast de noodzaak van het vooraf delen ervan, het wachtwoord ook bij elke authenticatie moet worden ingevoerd. Wachtwoorden zijn dus kwetsbaar voor aanvallen door afluisteraars. Om het wachtwoord te beschermen, moet dus de machine die door de mens wordt gebruikt, reeds een vertrouwde, vertrouwelijke communicatie hebben vastgesteld op grond van een andere veiligheidsprimitieve. 

Apparaten daarentegen maken gebruik van cryptografische methodes die indirect de kennis van een geheim bevestigen: aan de hand van een input voeren zij een berekening uit die enkel correct kan worden gedaan indien zij over het juiste geheim beschikken. In de praktijk kan dit gebeuren aan de hand van symmetrische of asymmetrische cryptografie. Symmetrische cryptografie kan worden ingezet indien een geheim vooraf wordt gedeeld tussen communicerende partijen. Een Iot-apparaat en een apparaathub kunnen bijvoorbeeld wederzijds authenticeren door elke partij een boodschap te laten ontsleutelen die door de ander werd versleuteld (bijv. door het gebruik van AES). Wanneer ze elkaars identiteit hebben vastgesteld, kunnen ze  veilig blijven communiceren aan de hand van het gedeelde geheim. Bovendien kunnen ze de integriteit van de boodschappen beschermen door deze te ondertekenen (bijvoorbeeld via HMAC). 

Asymmetrische cryptografie vereist niet het vooraf delen van geheimen. In plaats daarvan genereren beide partijen een publiek/privé sleutelpaar en publiceren ze de publieke sleutels, terwijl ze de privé sleutel geheimhouden. De partijen uit ons voorbeeld, een IoT-apparaat en een hub zouden op die manier authenticatie kunnen uitvoeren en vertrouwelijkheid en integriteit van hun boodschappen verzekeren aan de hand van asymmetrische cryptografische algoritmes (zoals ECDSA, ECDH) zonder de nood om vooraf een geheim te delen.

Bescherming van geheimen

Zoals vermeld bestaat er, zowel in scenario’s met een gedeeld geheim als met publieke/privé sleutels, een geheime sleutel, die nauw gekoppeld is aan het apparaat, dat moet worden beschermd. Dit blijkt echter moeilijk, vooral om één specifieke reden: beveiliging van verbonden apparaten is ingebouwd in software. Dit wordt bovendien bemoeilijkt door het feit dat, net als de sector van de commodity software in het verleden, de IoT sector tot nu toe werd gedreven door het maximaliseren van de door de klant waargenomen waarde (kenmerken), en tegelijk het beperken van de kosten en de marktintroductietijd. Dit zorgt er uiteraard voor dat de IoT-sector gaat werken met generische, goedkope computerplatforms die kunnen werken met onmiddellijk beschikbare open-source beveiligingscodes voor algemeen gebruik, die oorspronkelijk werden ontworpen met een volledig ander bedreigingsmodel voor ogen. Vaak slaan dergelijke apparaten sleutels op in hun (algemene) permanente opslaglocatie, samen met de firmware en gegevens. Indien een dergelijk apparaat wordt aangetast door een kwetsbaarheid in de software, dan kunnen geheime sleutels gemakkelijk vanop afstand worden onttrokken. Bij een fysieke aanval, kan een aanvaller de permanente opslag van het apparaat loskoppelen en de geheime sleutels verkrijgen door deze direct te lezen. 

Apparaatgeheimen kunnen via software worden beschermd door het gebruik van white-box cryptography, waarbij de feitelijke implementatie van cryptografische primitieven (zoals AES) samen met de geheime sleutels wordt verduisterd op een manier die het moeilijk maakt om standaard reverse engineering voor software, zoals demontage, toe te passen in een poging om de sleutels terug te krijgen. Tot nog toe werden alle gekende white-box cryptografische implementaties echter doorbroken

Voordelen van beveiligde elementen

Beveiligde elementen, soms cryptografische elementen of “crypto chips” genoemd zijn elektronische componenten (co-processoren) die specifiek werden ontworpen om op een beveiligde manier cryptografische geheimen te genereren en op te slaan, en te gebruiken bij het uitvoeren van cryptografische transacties. Typische toepassingen hiervan (bijvoorbeeld van Atmel, Gemalto en Maxim) omvatten een in hardware ingebrachte pseudotoevalsgenerator (pseudo-random number generator, PRNG), hashfunctie implementatie (bijv. SHA-256), implementatie van symmetrische encryptie (bijv. AES), symmetrische handtekening (HMAC), sleuteluitwisseling (ECDH) en asymmetrische handtekening (ECDSA).  

Daarnaast worden beveiligde elementen vaak onvervalsbaar gemaakt, waardoor het moeilijk is om de geheimen te lezen door het gebruik van silicium reverse engineering-technieken, en ook verzegeld, waardoor fysieke indringing aan de rest van het systeem kan worden gemeld. 

Naar behoren geïmplementeerde beveiligde elementen omvatten ook bescherming tegen side-channel cryptoanalyse, zoals poweranalyse, timinganalyse en analyse van akoestische en elektromagnetische uitstralingen die anders zouden kunnen worden benut om meer te weten te komen over deze opgeslagen sleutels. 

De levensduur van de cryptografische geheimen voor de identiteit van apparaten is als volgt: bij de ingebruikstelling van het apparaat genereert het beveiligde element de random sleutel. Naargelang van de keuze voor symmetrische of asymmetrische cryptografie, wordt de geheime sleutel ofwel gedeeld tussen de deelnemers (bijv. tussen het apparaat en de IoT-hub), ofwel verlaat de sleutel het toestel nooit en wordt in plaats daarvan zijn publieke tegenhanger gedeeld. 

De sleutels kunnen gedurende de gebruiksduur van het apparaat worden herroepen en er kunnen nieuwe sleutels worden gegenereerd mits herhaling van dit volledige proces. De geheime sleutels kunnen worden afgeleid van een fysieke onkloonbare functie, een ‘elektronische vingerafdruk van het apparaat’, die gebruikmaakt van versterkte fysieke onvolkomenheden welke uniek zijn voor elke geproduceerde chip, om de identiteit van het apparaat af te leiden. 

Andere voordelen van het gebruik van beveiligde elementen in IoT-ontwerpen zijn het kenmerkende lage stroomverbruik, het lage verbruik in slaapstand, de cryptografische doorstroom en prestaties (waarbij de ingebouwde CPU/microcontroller die doorgaans beperkte resources heeft, wordt ontladen) en de relatief gemakkelijke integratie met bestaande hardware (via SWI of I2C interface).

Beperkingen van beveiligde elementen

Beveiligde elementen worden meestal zodanig geproduceerd dat cryptografische primitieven, en hun beveiligingsparameters, zoals sleutellengte, initialisatievectoren, definities van elliptische curves en werkwijzen in het chipontwerp zijn geïntegreerd. Dit betekent dat indien een specifieke implementatie als onveilig wordt beschouwd, de apparaten niet gemakkelijk (vanop afstand) kunnen worden bijgewerkt om het probleem op te lossen. 

Besluit

Het bepalen en beschermen van de identiteit van apparaten is van essentieel belang voor de beveiliging van IoT-systemen. Dit komt neer op het veilig genereren en beschermen van cryptografische geheimen. Geavanceerde technieken voor de bescherming van softwareversleuteling door middel van softwareverduistering (white-box cryptografie) blijken onveilig te zijn. Het gebruik van beveiligde elementen die nauw geïntegreerd zijn in de hardware en software van het apparaat bieden een haalbare basis voor beveiliging, doordat ze geheimen beschermen en de identiteit van apparaten, vertrouwelijkheid en integriteit van de communicatie, fraudebestendigheid en bewijs garanderen.  

Wenst u meer informatie over dit thema? Sirris beschikt over een uitgebreide ervaring en vakkennis op het vlak van IoT-beveiliging. Neem contact op met ons!   

(Bron foto: https://www.dreamstime.com/)