Eenvoudige IoT-beveiliging met op SRAM gebaseerde PUF-sleutels en TrustZone-isolatie

Door Majeed Ahmad

Bijgedragen door De Noord-Amerikaanse redacteurs van DigiKey

Ontwerpen voor het Internet of Things (IoT) worden steeds complexer en vereisen betere oplossingen voor gegarandeerde systeembeveiliging tegen de vele meedogenloze lokale en externe aanvallen. De ontwikkeling van beveiligingen voor IoT-apparaten met beperkte middelen is echter traag en beperkt zich tot los geconstrueerde softwarepatch-ups of zeer geavanceerde en dure chips gebouwd rond complexe cryptografische algoritmen. Ontwikkelaars hebben een meer alomvattende maar gebruiksvriendelijkere oplossing nodig om beveiliging sneller te kunnen implementeren.

Nieuwe technologieën, zoals op statische random access memory (SRAM) gebaseerde fysieke niet-kloneerbare functies (PUF’s) en TrustZone van Arm, hebben zich ontwikkeld en voldoen aan de beveiligingsbehoeften van ingebedde toepassingen en IoT-ontwikkelaars. Dit artikel introduceert PUF en TrustZone en hoe deze kunnen worden toegepast met oplossingen van NXP Semiconductors, Microchip Technology en Maxim Integrated.

SRAM PUF-technologie

De SRAM PUF is een lichtgewicht alternatief voor authenticatie door middel van traditionele cryptografie en wordt geïntegreerd in beveiligingsgerichte chips zoals de LPC55S6x-familie van NXP waar het een ‘root of trust’ of vertrouwensbasis en provisioning toevoegt (Afbeelding 1).

Blokdiagram van de NXP LPC55S6x-familie van MCU'sAfbeelding 1: Het blokdiagram van de LPC55S6x-familie van MCU's laat de integratie zien van beveiligingsbouwstenen zoals op SRAM gebaseerde PUF-technologie. (Bron afbeelding: NXP)

PUF-technologie is anders dan traditionele sleutelopslag in niet-vluchtig geheugen, waarbij OEM's beveiligingssleutels injecteren via een traditionele, op fuse gebaseerde methodiek of via eenmalige programmeerbare (OTP) geheugentechnieken. In plaats daarvan neemt PUF-technologie natuurlijke, willekeurige elektrische variaties die inherent zijn aan de SRAM-bitcellen en verandert die unieke ‘vingerafdruk’ in een geheime cryptografische sleutel die vervolgens dient als de basis van een beveiligingssubsysteem. Deze veilige, hoogwaardige sleutel kan altijd en onder alle omstandigheden worden gereconstrueerd als dezelfde cryptografische sleutel. Deze aanpak heeft een de volgende voordelen:

  • Het elimineert de noodzaak om derden toegang te verschaffen tot de sleutel in potentieel onveilige omgevingen
  • Het sleutelopslag- en inrichtingssysteem hoeft niet te worden geladen op het moment van chipproductie
  • Het kan in een later stadium in de productieketen worden geïnstalleerd of zelfs achteraf worden geïnstalleerd op al geïmplementeerde apparaten
  • Het ontcijferen van deze beveiligingssleutels is zonder fysieke toegang tot een individuele SRAM-chip nagenoeg onmogelijk
  • Sleutels worden alleen gegenereerd wanneer dat nodig is en worden niet permanent opgeslagen in het systeem
  • Het feit dat de sleutel niet permanent is opgeslagen en niet aanwezig is wanneer het apparaat niet actief is, maakt het voor een kwaadwillend persoon erg moeilijk om fysiek toegang tot de inhoud van het geheugen te krijgen

Arm TrustZone

De TrustZone-technologie is verkrijgbaar voor de Cortex®-M23 en Cortex-M33 verwerkingsplatforms van Arm en is geoptimaliseerd voor ultra-low-power ingebedde toepassingen. Deze technologie biedt een beveiligde omgeving voor veiligheidskritieke routines zoals opstartcode, beveiligde configuratie, beveiligingssleutels, coderingsbibliotheken en firmware-updates (Afbeelding 2). Zo wordt in een microcontroller met TrustZone de missiekritieke code bijvoorbeeld volledig getest nadat deze is gescheiden van grote codestacks, om te voorkomen dat de code wordt aangetast door een door de ontwikkelaars gegenereerde bug.

Diagram van NXP TrustZone met meerdere softwarebeveiligingsdomeinenAfbeelding 2: TrustZone maakt meerdere softwarebeveiligingsdomeinen mogelijk die elk de toegang tot beveiligd geheugen en I/O beperken tot alleen vertrouwde softwareomgevingen. (Bron afbeelding: NXP)

TrustZone garandeert de beveiliging van vertrouwelijke gegevens en code door de kritieke delen van het softwareontwerp te isoleren en die software uit te voeren op een hardwaresupervisor in een omgeving die is beveiligd tegen lezen en schrijven door gebruikerssoftware.

Ontwikkelaar kunnen met TrustZone geheugen verdelen in beveiligde en niet-beveiligde gebieden, zodat zelfs een niet-geverifieerde foutopsporingspoging de beveiligde code en gegevens niet kan bereiken. Ook heeft een CPU in een niet-beveiligde status alleen toegang tot gegevens in het niet-beveiligde geheugen en kan dus alleen software uitvoeren vanuit niet-beveiligd programmageheugen.

Opmerkelijk is dat ondanks deze beveiligingsfuncties TrustZone toch lage onderbrekingslatenties behoudt voor zowel beveiligde als niet-beveiligde domeinen. Bovendien legt TrustZone geen beperkingen op m.b.t. codeoverhead, cyclusoverhead en de complexiteit van een op virtualisatie gebaseerde oplossing.

Fysieke implementatie van PUF en TrustZone

NXP heeft harde IP (en ondersteunende softwarebibliotheken) geïntegreerd van PUF-uitvinder Intrinsic ID om PUF's in de LPC55Sxx-microcontrollers te implementeren (Afbeelding 3). QuiddiKey, de ingebedde hardware IP van Intrinsic ID, zorgt voor het genereren van sleutels, sleutelopslag, apparaatauthenticatie, sleutelvoorziening en chipactivabeheer.

Diagram van door NXP geïntegreerde harde IP en ondersteunende softwarebibliotheken van Intrinsic IDAfbeelding 3: NXP heeft harde IP en ondersteunende softwarebibliotheken van Intrinsic ID geïntegreerd om PUF's in de LPC55Sxx-microcontrollers te implementeren. De IP genereert en beheert de sleutels. (Bron afbeelding: Intrinsic ID)

Ook heeft NXP TrustZone geadopteerd voor de LPC55Sxx-microcontrollers. De CPU-gerichte aanpak van TrustZone wat betreft IoT-beveiliging garandeert isolatie tussen de beveiligde en niet-beveiligde delen van het ingebedde ontwerp.

Zo biedt TrustZone een beveiligingsregeling voor het hele systeem waarin IoT-ontwerpen kunnen worden onderverdeeld in een beveiligde staat en niet-beveiligde staat, zoals geïmplementeerd op de SAM L10/11 microcontrollers van Microchip Technology. Voor een efficiënte ingebedde implementatie wordt zowel beveiligde als niet-beveiligde code op een enkele CPU uitgevoerd.

Deze CPU-gerichte aanpak is belangrijk omdat de hoeveelheid software in moderne microcontrollers enorm snel groeit, met protocolstacks voor connectiviteitstechnologieën zoals Wi-Fi, Bluetooth en Transport Layer Security (TLS). Deze toenemende codebase verhoogt aanzienlijk het risico van IoT-apparaten op blootstelling aan schadelijke aanvallen. In slimme huizen en gebouwen kan een beschadigde protocolstack bijvoorbeeld verbonden deursloten, garagedeuropeners en beveiligingscamera's zeer kwetsbaar maken.

Als IoT-ontwikkelaars de missiekritieke code echter naar een door TrustZone beveiligde omgeving verplaatsen, levert zelfs een bug in een protocolstack van derden geen ernstige gevaren op voor de functionaliteit van het apparaat.

Beveiliging op boardniveau

Een ander duidelijke trend in het IoT-beveiligingsparadigma heeft betrekking op de beschikbaarheid van referentieontwerpen die edge-to-edge en cloud-to-edge communicatie vereenvoudigen door de complexiteit van beveiligings- en communicatieprotocollen aan te pakken. Het MAXREFDES155# DeepCover® referentieontwerp van Maxim Integrated en het AC164164 PIC®-IoT WG ontwikkelingsbord van Microchip zijn hier goede voorbeelden van.

In het MAXREFDES155# beveiligingsontwerp wordt een Arm mbed™-shield verbonden met een sensoreindpunt via een 300 millimeter (mm) lange kabel. Het sensoreindpunt omvat een DS28C36 DeepCover beveiligde authenticator, een infrarood (IR) thermische sensor en een richtlaser voor de IR-sensor (Afbeelding 4).

Diagram van het MAXREFDES155 # DeepCover IoT ingebedde beveiligingsreferentieontwerp van Maxim IntegratedAfbeelding 4: Het MAXREFDES155 # DeepCover IoT ingebedde beveiligingsreferentieontwerp van Maxim Integrated omvat een Arm mbed-shield, een sensoreindpunt verbonden via I2C en connectiviteit met de cloud via Wi-Fi. (Bron afbeelding: Maxim Integrated)

De DS28C36-beveiligingschip biedt twee geverifieerde GPIO-pennen (General Purpose Input/Output) met optionele beveiligde statuscontrole en niveaudetectie. Dit stelt IoT-ontwikkelaars in staat om het randgebruik te controleren en te beperken met geverifieerde, EEPROM-instellingen (Electrically Erasable Programmable Read-Only Memory) en een 17-bits afname-teller. De DS28C36 maakt toepassingen zoals bidirectionele authenticatie, veilige opslag van systeemgegevens zoals cryptografische sleutels, verificatie van bedrijfskritieke gegevens, veilig opstarten en gebruikerscontrole over eindproducten veel gemakkelijker.

Het mbed-shield in het MAXREFDES155# referentieontwerp omvat een DeepCover beveiligingscoprocessor, Wi-Fi-communicatie, LCD-scherm, drukknopbediening en status-leds. Het referentieontwerp gebruikt het MAX32600MBED# mbed ontwikkelingsbord voor rechtstreeks testen en de Wi-Fi-schakelingen van het shield zorgen voor eenvoudige communicatie met de webserver.

Een beveiligingscoprocessor op het mbed-shield fungeert als een aanvulling op de DS28C36-authenticatorchip binnen het MAXREFDES155# ontwerp. Hierdoor kan eenvoudig aan vereisten met betrekking tot de HMAC (Hash-based Message Authentication Code) en ECDSA-berekeningen (Elliptic Curve Digital Signature Algorithm) worden voldaan die deel uitmaken van de beveiligingsactiviteiten van de DS28C36.

De coprocessor biedt een set cryptografische tools om IoT-ontwerpers te helpen bij het implementeren van crypto-engines en integreren van een Federal Information Processing Standards/National Institute of Standards and Technology (FIPS/NIST) true random number generator (RNG). De openbare en privé-beveiligingssleutels werken volgens de door NIST gedefinieerde normen, waaronder FIPS 186, het ECDSA-mechanisme voor handtekeninggeneratie en -verificatie dat een bidirectioneel asymmetrisch sleutelverificatiemodel ondersteunt.

Vereenvoudiging van cloudlinkbeveiliging

Het AC164164 PIC-IoT WG-ontwikkelingsbord van Microchip heeft vergelijkbare elementen, maar richt zich op het vereenvoudigen van de link tussen het IoT-knooppunt en cloudplatforms zoals Google Cloud. Het ontwikkelingsplatform is gebouwd rond de bedrijfseigen PIC-microcontrollers en maakt gebruik van de ATECC608A-coprocessor om beveiligingsproblemen aan te pakken die gepaard gaan met grote softwareframeworks en RTOS-platforms (Real-Time Operating System).

De AC164164 is een IoT-ontwerpplatform waarin de beveiliging van de edge-to-cloud-link is gewaarborgd met een veilig element dat vooraf is geregistreerd voor de Google Cloud IoT Core-service en klaar is voor gebruik met ‘zero-touch-provisioning’. Behalve de ATECC608A-beveiligingscoprocessor geeft het ontwikkelingsbord ook de beschikking over de PIC24FJ128GA705-microcontroller, die complexe applicaties met minder code en lager stroomverbruik afhandelt.

Een volledig gecertificeerde IEEE 802.11b/g/n IoT Wi-Fi-controller verbindt het IoT-knooppunt met Google Cloud. Daarom hoeven IoT-ontwikkelaars geen expertise te hebben op het gebied van draadloze netwerkprotocollen, beveiliging en hardwarecompatibiliteit om een veilig IoT-productontwerp te realiseren.

Conclusie

Dankzij gespecialiseerde beveiligingschips, die als companion-chip voor de hoofdprocessor of microcontroller in IoT-ontwerpen fungeren, hoeven ontwikkelaars geen beveiligingsexperts te zijn om IoT-knooppunten en koppelingen naar eindpunten en cloudplatforms te beveiligen. Integratie van complementaire technologieën zoals PUF en TrustZone breiden de beveiligingsmogelijkheden van deze low-power, low-cost microcontrollers nog verder uit terwijl de IoT-beveiligingsvereisten toenemen.

Bovendien wordt de beveiligingsvergelijking verder vereenvoudigd door referentieontwerpen en ontwikkelingsborden die gebruik maken van meerdere niveaus van ingebedde bescherming in tal van IoT-toepassingen.

 
DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

Achtergrondinformatie over deze auteur

Image of Majeed Ahmad

Majeed Ahmad

Majeed Ahmad is een elektronica-ingenieur met meer dan 20 jaar ervaring met technologische B2B-middelen. Hij is de voormalig hoofdredacteur van EE Times Asia, een zusterpublicatie van EE Times.

Majeed heeft zes boeken over elektronica geschreven. Hij levert ook vaak bijdragen aan publicaties over elektronica-ontwerpen, zoals All About Circuits, Electronic Products en Embedded Computing Design.

Over deze uitgever

De Noord-Amerikaanse redacteurs van DigiKey