Review: NXP EdgeLock® SE050E Secure Element
op
Wanneer u zich gaat verdiepen in het thema veilige gegevensverbinding en -configuratie (vooral als het gaat om producten die voorgeconfigureerd voor cloudservices moeten worden geleverd) kunt u snel vastlopen in alle informatie en technische vereisten. De NXP EdgeLock SE050E Secure Element opent nieuwe mogelijkheden om dergelijke designs en producten eenvoudiger te implementeren en te beschermen tegen datamanipulatie.
NXP EdgeLock SE050E Secure Element
De EdgeLock SE050E Secure Element van NXP uit de familie van hun Plug & Trust Devices biedt geavanceerde beveiligingsfuncties conform Common Criteria EAL 6+. De exacte specificaties van de SE050E Secure Element zijn te vinden in tabel 1. Om de SE050E Secure Element op een systeem aan te sluiten is een I²C-interface voldoende. De voedingsspanning van de chip bedraagt 1,62 V tot 3,6 V, maar het maximum voor de chip is 6 V, wat ook het gebruik in 5 V systemen mogelijk maakt en het geheel ook geschikt maakt voor retrofitten. Inwendig is de NXP EdgeLock SE050E een kleine SoC (System on Chip) met een Java Card OS en een speciale IoT-applet die ervoor zorgt dat niet alleen cryptografische bewerkingen veilig worden uitgevoerd, maar ook om ongewenst gegevens uitlezen uit de chip te detecteren en tegen te gaan. De SE050E Secure Element kan zo als root-of-trust worden gebruikt om veilige en betrouwbare verbindingen tussen twee systemen tot stand te brengen en de systemen te authenticeren.Certificaten graag!
Bij veilige communicatie tussen twee partners, in dit geval IoT-systemen, zullen de meesten denken aan cryptografie, echter een essentieel element ontbreekt dan nog. Om dergelijke communicatie echt veilig te maken moeten beide partijen elkaar namelijk vertrouwen en sleutels uitwisselen. Om dit te bereiken zijn er certificaten. Maar wat doet zo'n certificaat?Stel u voor dat er twee nieuwe medewerkers zijn die elkaar nog nooit eerder hebben ontmoet en vanuit hun thuiskantoor werken. De twee medewerkers zijn Jim en Dave. Jim en Dave werken allebei voor Karen. Karen heeft als begeleider het vertrouwen van Jim en Dave, en heeft Jim een opdracht gegeven voor Dave.
Jim geeft Dave de opdracht van Karen, die nu vraagt hoe hij er zeker van kan zijn dat de opdracht echt van Karen komt. Karen heeft echter op de opdracht ook een stempel gezet die alleen Karen bezit en die Jim en Dave kennen. Met een blik op de stempel kan Dave dan controleren of het echt om een order van Karen gaat. Daarnaast controleren zowel Jim als Dave elkaars medewerkerspasjes om er zeker van te zijn dat Jim echt Jim is en Dave echt Dave. Karen heeft ook hier een stempel op gezet. In de hoop dat het niet te abstract was transporteren we dit voorbeeld nu naar de digitale wereld. De stempel die Karen gebruikte komt overeen met een cryptografische sleutel. Net als bij zo'n stempel op kantoor moet deze cryptografische sleutel ook veilig worden opgeslagen, idealiter in een kluis, anders zou iedereen het stempel kunnen pakken en aanbrengen op allerlei documenten. Kort door de bocht neemt de NXP EdgeLock SE050E Secure Element betreffende het bewaren van de cryptografische sleutel de functie van de kluis over.
In het voorbeeld zou Jim zou een IoT-sensor kunnen zijn die een temperatuur bewaakt en Dave een cloudprovider, hier Amazon AWS IoT. Karen zou een Certificate Authority (CA) kunnen zijn die certificaten uitgeeft in plaats van stempels.
Zodra de IoT-sensor data naar de cloudprovider wil sturen wordt het certificaat van de server van de cloudprovider eerst door de sensor gecontroleerd. De server van de cloudprovider vraagt op dit moment de sensor ook om zijn certificaat om er zeker van te zijn dat deze communicatie opzet met de juiste partij. Nadat beide partijen hebben geverifieerd dat ieders identiteit correct is wordt een gecodeerde verbinding gestart en kan de sensor zijn gegevens verzenden.
Simpel gezegd zijn certificaten de identiteitsdocumenten van de digitale wereld. Aangezien een certificaat echter een bestand is dat gemakkelijk kan worden gekopieerd hebben certificaten, evenals ID-kaarten, beveiligingsfuncties die bedoeld zijn om namaak te voorkomen. In het geval van certificaten zijn het de cryptografische sleutels die dienen als beveiligingsfunctie, zoals bij een niet-vervalste stempel. Net als in de echte wereld moeten identiteitsdiefstal en valsheid in geschrifte ook in de digitale wereld worden voorkomen.
Certificaten veilig beheren
Iedereen die een Raspberry Pi gebruikt en toepast bij IoT-toepassingen met cloudconnectiviteit, of het nu met Google Cloud Platform, Amazon Web Services of Microsoft Azure is, zal hebben gezien dat er ook geschikte certificaten op de Raspberry Pi moeten worden geïnstalleerd. Aan elk apparaat kan een afzonderlijk certificaat worden toegewezen, zodat bij compromittering van een certificaat slechts één apparaat wordt getroffen en niet allemaal. Amazon heeft documenten verstrekt die dit proces uitleggen. Bij een Raspberry Pi zouden het certificaat en de cryptografische sleutel echter op een SD-kaart staan. De toegangsgegevens en het certificaat kunnen zo eenvoudig worden gekopieerd.De EdgeLock SE050E Secure Element kan hierbij helpen door een veilige omgeving te bieden voor het verwerken van cryptografische sleutels en certificaten. In de chip kan tot 50 kB geheugen worden gebruikt om certificaten en sleutels op te slaan. Hoewel dit in de huidige tijd misschien niet klinkt als heel veel, gezien gigabyte-formaat USB-sticks, betekent dit toch wel dat er een groot aantal certificaten opgeslagen kan worden in de EdgeLock SE050E Secure Element. Maar de chip is meer dan alleen een veilige sleutelopslag. Als u naar de connectie met de chip kijkt dan zult u zien dat deze via I²C wordt gemaakt. Bij de EdgeLock SE050E Secure Element kan ook de I²C-communicatie tussen chip en host worden versleuteld, zodat de chip en host veilig met elkaar verbonden zijn. NXP heeft hierover een application note (AN12662) verstrekt. Zo kan de EdgeLock SE050E Secure Element niet alleen cryptografische sleutels en geheimen veilig opslaan en beschermen tegen ongewenst uitlezen, maar ook zorgen voor veilige versleutelde communicatie.
NFC en I²C
Andere varianten binnen de EdgeLock familie bieden ook koppelingen voor NFC en voor een I²C-controllerinterface en dat maakt zeer interessante toepassingen mogelijk. In die chipvarianten kan NFC worden gebruikt om opgeslagen gegevens in chips van de EdgeLock familie zeer laat tijdens de productie of zelfs kort voor levering over te dragen. Met een NFC-apparaat zoals een smartphone is het dus mogelijk om certificaten en configuraties naar de chip over te dragen zonder er direct elektrisch contact mee te hebben. Hierbij wordt de chip van energie voorzien door het NFC-apparaat, het complete apparaat hoeft voor deze configuratie dan ook niet aan te staan.Een praktijkvoorbeeld
In het volgende voorbeeld wordt de EdgeLock SE050E Secure Element gebruikt in combinatie met een Raspberry Pi 4. De SoC van de Raspberry Pi 4 heeft niet alleen als kleine single-board computer zijn weg gevonden in commerciële producten maar ook via de Compute Module 4. Hoewel het op dit moment misschien moeilijk is om Raspberry Pi producten te verkrijgen vormen ze een zeer goed en veel gebruikt platform om aan te sluiten op een EdgeLock SE050E Secure Element. Een Raspberry Pi Zero 2W is ook perfect te combineren met een EdgeLock SE050E Secure Element. Een application note hoe de EdgeLock SE050E Secure Element kan worden gebruikt met de Raspberry Pi is te vinden op AN12570.Ook wordt in dit voorbeeld het gebruik van een cloudservice beschreven, hier Amazon AWS IoT Core, die de EdgeLock SE050E Secure Element gebruikt voor authenticatie en onboarding. Omdat de Raspberry Pi gegevens moet uitwisselen met Amazon AWS logt hij in op een wifi-netwerk. Dit gebeurt hier echter niet met een vooraf gedeelde sleutel (WPA2-PSK) maar met een certificaat met WPA2-EAP. Zo wordt er geen wifi-sleutel op de SD-kaart van de Raspberry Pi opgeslagen die later zou kunnen worden uitgelezen. Hetzelfde geldt voor het certificaat dat wordt gebruikt voor Amazon AWS IoT Core. Nogmaals, dit wordt niet opgeslagen op de SD-kaart dus het kan niet eenvoudig worden gekopieerd door toegang te krijgen tot het bestandssysteem.
Hardware voor een test
Voor de testopstelling is een Raspberry Pi 4 uitgerust met een EdgeLock SE050 Arduino Compatible Development Kit (OM-SE050ARD-E) en een OM-SE050RPI ARDUINO to Raspberry Pi Adapter Board (OM-SE050RPI)Er wordt gebruik gemaakt van een Raspberry Pi 4 met het huidige Raspberry Pi OS (32 bit). Voor WPA2-EAP is er een access point en een freeradius server beschikbaar (kan draaien op het access point). Veel hardware is dus voor de eerste eigen testen niet nodig.
WPA2-EAP instellen
De installatie is vergelijkbaar als in de video "Wi-Fi Credential Protection with EdgeLock SE050" van NXP. En alle stappen voor de configuratie kunnen worden nagelezen in de application note AN12661 van NXP. De details van de configuratie van de Raspberry Pi en het access point zijn te vinden in de video over WPA2-EAP en de EdgeLock SE050E Secure Element.De Raspberry Pi gebruikt bij het tot stand brengen van een verbinding de EdgeLock SE050E Secure Element om in te loggen op het WLAN-netwerk. Het access point stuurt het connectieverzoek door naar de freeradius server, die controleert of deze Raspberry Pi met zijn certificaten betrouwbaar is. De freeradius server informeert het access point vervolgens of de Raspberry Pi het recht heeft om in te loggen op het WLAN-netwerk, welke rechten het heeft in het WLAN, aan welke VLAN het is toegewezen en over andere optionele parameters. Deze procedure is vooral handig voor centraal beheerde wifi-netwerken omdat de Raspberry Pi dan kan inloggen op verschillende access points en er geen wachtwoorden voor het WLAN hoeven te worden opgeslagen op de SD-kaart.
Helaas heeft de firmware van de wifi-module die op de Raspberry Pi 4 is geïnstalleerd in het verleden herhaaldelijk problemen veroorzaakt met WPA2-EAP. Als het niet mogelijk is om het voorbeeld met wifi aan de praat te krijgen hoeft dit niet te wijten te zijn aan een verkeerde configuratie. Afhankelijk van het type access point kan er ook een of andere WPA2-EAP gerelateerde bug zijn.
Amazon AWS IoT Core
Eerst moet de juiste tijd en de bereikbaarheid van een NTP-server vanuit de Raspberry Pi worden gecontroleerd. Als de Raspberry Pi een NTP-server niet kan bereiken en de tijd niet is ingesteld kan er een TLS-fout optreden.Met de EdgeLock SE050E Secure Element kan met beperkte inspanning en in weinig tijd een veilige verbinding van sensoren en actuators met een cloudplatform worden gemaakt. Hiervoor is de middleware van de EdgeLock SE050E Secure Element aws_eou demo beschikbaar om uit te proberen. Voor het configureren worden de benodigde stappen beschreven in de knowledge base voor de SE05x-familie.
Zodra de IoT-demo uit het voorbeeld is uitgevoerd verschijnen de berichten ook in de Amazon AWS IoT Core en worden ze vermeld onder het item Test, wat kan worden bekeken met behulp van de MQTT-client. Indien u de berichten wilt bekijken moet in de MQTT-client met een # op het thema worden geabonneerd.
Hieronder een demonstratie van het veilig transporteren van gegevens naar de cloud met de EdgeLock SE050E Secure Element. Het hoeft niet eens AWS te zijn, andere cloudoplossingen kunnen ook worden gebruikt met de EdgeLock SE050E Secure Element.
Meer use cases dan verwacht
Hoewel clouddiensten van grote providers een steeds belangrijkere rol spelen in de IoT-sector beperkt de EdgeLock SE050E Secure Element zich hier niet toe. NXP biedt een breed scala aan application notes voor de EdgeLock SE050E Secure Element, bijvoorbeeld voor gebruik als TPM-achtige module, device-to-device authenticatie, het beveiligen van de bootsequence van microcontrollers of voor configuratie via NFC. Met de EdgeLock SE050E Secure Element kan ook met weinig moeite ISA/IEC 62443 compliance worden bereikt.Een metgezel voor microcontrollers en kleine computers
Het voorbeeld hier toont de EdgeLock SE050E Secure Element in combinatie met een Raspberry Pi 4 en enkele van zijn toepassingen. De EdgeLock SE050E Secure Element is echter ook een zeer goede aanvulling op kleinere microcontrollers, zoals een Raspberry Pi Pico met Ethernet shield of de Wiznet W7500. Deze microcontrollers zijn in staat om versleutelde verbindingen met clouddiensten tot stand te brengen. De cryptografische functies die nodig zijn voor authenticatie en dus voor het tot stand brengen van een verbinding zijn echter zeer rekenintensief. Wat binnen een paar milliseconden wordt gedaan met een Raspberry Pi 4 en zijn vier ARM Cortex kernen kan kleinere microcontrollers soms wel enige seconden kosten. Hier kan de EdgeLock SE050E Secure Element de kleine microcontrollers aanzienlijk ontlasten, wat niet alleen een beveiligingswinst is. Het is dan ook mogelijk om de rekentijd die nodig is voor gegevensuitwisseling aanzienlijk te verminderen, wat op zijn beurt het energieverbruik weer vermindert.Eenvoudige integratie met enkele componenten
Zoals bij alle chips die in een project worden gebruikt rijst altijd de vraag hoeveel componenten er nodig zijn rond de eigenlijke chip. In het geval van de Raspberry Pi zijn dat drie passieve componenten, twee weerstanden als I²C pull-up en een optionele 100-nF afvlakcondensator. Dit maakt eenvoudige en ruimtebesparende integratie in nieuwe ontwerpen mogelijk, of het nu een Raspberry Pi of een MCU is. Een goedkope variant om mee te beginnen bij de ontwikkeling van een project dat gebruik maakt van een chip uit de EdgeLock SE05x familie zou de Plug & Trust Click van MikroElektronika kunnen zijn https://www.mikroe.com/plugtrust-click. Door de eenvoudige bedrading van de EdgeLock SE050E Secure Element zou het me niet verbazen als er een module met een Groove- of Qwiic-connector verschijnt die dan op de meest eenvoudige manier kan worden aangesloten op bestaande evaluatieboards.Samenvatting
Als u nieuw bent op het gebied van IoT, certificaten, root-of-trust en secure elements, moet u zich eerst een weg banen door een beetje theorie. Plug and Trust voor de EdgeLock SE050E Secure Element is zeer goed toepasbaar, maar moet niet worden verward met Plug and Play. De EdgeLock SE050E Secure Element maakt het mogelijk om maximale beveiliging in IoT-toepassingen te implementeren met slechts enkele componenten. Voor configuratie en bediening biedt NXP de juiste documentatie die de gebruiker helpt zijn beveiligingsdoelen te bereiken door middel van de juiste configuratie, maar elk beveiligingselement is slechts zo goed als zijn koppeling met de eigen applicatie. Met de EdgeLock SE050E Secure Element heeft u niet alleen toegang tot de documentatie van NXP, maar kunt u ook om hulp vragen bij een in Europa gevestigde fabrikant.
Gebruikt u een Raspberry Pi 4 of een Compute Module 4 dan is de EdgeLock SE050E Secure Element een perfecte aanvulling. De eenvoudige verbinding via I²C maakt hardware- en software-integratie in slechts enkele stappen mogelijk. Bij gebruik van een MCU kan niet alleen de veiligheid van de applicatie worden verhoogd, de EdgeLock SE050E Secure Element kan ook bijdragen aan het verminderen van het energieverbruik. Met de EdgeLock SE050E Secure Element zijn er meer opties voor het verhogen van de systeembeveiliging dan men op het eerste gezicht zou vermoeden en met minder componenten en moeite dan men in eerste instantie zou hebben gedacht.
Vertaling: Marc Gauw
Discussie (0 opmerking(en))