Het gebruik van e-paper-displays om fatale fouten en gecompromitteerde beveiliging in kritieke IoT-knooppunten aan te geven
Bijgedragen door De Noord-Amerikaanse redacteurs van DigiKey
2020-08-27
Internet of Things (IoT) en Industrial IoT (IIoT) nodes worden gebruikt in steeds veiliger systemen waar de beveiliging en veiligheid van het netwerk als geheel belangrijker is dan de functionaliteit van de afzonderlijke apparaten op dat netwerk. Dit betekent dat als een IoT-knooppunt detecteert dat het is gecompromitteerd, of als er een onherstelbare firmwarefout optreedt, de veiligste actie kan zijn dat het knooppunt zo snel als praktisch mogelijk wordt uitgeschakeld om het knooppunt en het netwerk te beschermen tegen potentieel gevaarlijke gevolgen.
Zodra het knooppunt echter wordt uitgeschakeld, gaat alle vluchtige geheugeninhoud verloren. Het opslaan van debuggegevens in niet-vluchtig geheugen zoals EEPROM of flash verbruikt tijd en stroom, waardoor het risico op potentiële schade toeneemt. Bovendien is het systeem mogelijk gecompromitteerd tot een punt waarop het teruglezen van de gegevens bij het opstarten mogelijk geen betrouwbare gegevens oplevert als ook de opstartvolgorde is aangetast.
Dit artikel legt uit hoe e-paper-displays (EPD's) gemakkelijk kunnen worden bevestigd aan een IoT- of IIoT-knooppunt om de laatst bekende fout weer te geven, zodat de technici de juiste actie kunnen ondernemen. Het geeft vervolgens voorbeelden van e-paper-displays van Pervasive Displays en Display Visions en bespreekt hoe deze displays kunnen worden gekoppeld aan een microcontroller en worden geconfigureerd om diagnostische informatie te geven terwijl er weinig of geen stroom wordt gebruikt.
Hoogbeveiligde IoT- en IIoT-knooppunten
Het is steeds meer aan ontwerpers van IoT- en IIoT-knooppunten om steeds geavanceerdere beveiligingsmethoden te gebruiken om een goede werking van de host-microcontroller te garanderen. In het algemeen zijn er drie soorten veiligheidsdreigingen waartegen moet worden gewaakt:
- Een storing in de firmware van een microcontroller
- Ongeldige invoergegevens van sensors, toetsenborden, seriële randapparatuur of andere externe apparaten
- Actie van een kwaadwillende actor
Een storing in de firmware van de microcontroller kan om verschillende redenen optreden: codeerfouten in de geïnstalleerde firmware; ongeldige berekeningen die leiden tot een storing; of, in uiterst zeldzame gevallen, een storing in de hardware van de microcontroller. Goed geschreven firmware detecteert dit meestal door de ingangen naar subroutines en functies te schrobben. In extreme gevallen waar de firmware is vergrendeld of gelust, zal een watchdog timeout de firmware herstellen door te vectoren naar een subroutine voor foutcontrole of door een harde reset van de microcontroller uit te voeren.
In het geval van ongeldige invoergegevens, zoals wanneer een externe sensor niet goed functioneert of er mee geknoeid is, kunnen gegevens buiten het bereik van de sensor ontstaan, die mogelijk niet goed in de applicatiecode zijn verwerkt. Als de omgevingstemperatuursensor in een door mensen bewoonde controlekamer bijvoorbeeld ten onrechte een zinderende 250 °F registreert, kan dit een sensorstoring zijn of opzettelijk geknoei. Het is mogelijk dat een onzorgvuldige firmwareprogrammeur niet heeft gecodeerd voor zo'n hoge temperatuur die kan leiden tot zoiets triviaals als foutieve gegevensregistratie, of iets wat zo ernstig is als het toestaan van toegang tot een beveiligde ruimte voor een indringer, of iets wat zo cruciaal is als een fout in de berekening van een besturingsalgoritme dat kan leiden tot het uitvallen van apparatuur of ernstig persoonlijk letsel. De potentiële negatieve uitkomsten zijn talrijk.
Kwaadwillende actoren zijn anders in die zin dat zij de bewuste intentie kunnen hebben om het IoT-knooppunt te laten mislukken. De storing als gevolg van de hackpoging kan door beveiligingsroutines worden gedetecteerd als een inbraak; het kan zich echter ook voordoen als een firmwarestoring of ongeldige externe invoergegevens. Het voorbeeld van een omgevingstemperatuurmeting van 250 °F kan worden veroorzaakt door het testen van het firmwaregedrag van een kwaadwillende actor bij een dergelijke hoge meting met de bedoeling een inbraakmethode te testen; deuren kunnen bijvoorbeeld automatisch worden ontgrendeld als de meting van de omgevingstemperatuur van 250 °F ten onrechte wordt beoordeeld als een brand.
Reageren op storingen in de firmware
Ongeacht de foutbron moet de firmware van de microcontroller voor hoogbeveiligde IoT- en IIoT-knooppunten foutintolerant zijn. Alle fouten moeten worden gecodeerd en opgevangen. Ingangen naar subroutines en functies moeten worden geschrobd en alle sensorinvoergegevens moeten worden gevalideerd. Watchdog-timers moeten worden geprogrammeerd met de bedoeling om vergrendelde of geluste code te detecteren die te lang duurt op basis van een bekende looptijd.
Wanneer een storing in de firmware wordt gedetecteerd in een hoogbeveiligd IoT- of IIoT-knooppunt, ongeacht of de storing toevallig of opzettelijk is, moet de firmware de gebeurtenis zo snel mogelijk opsporen. Veel voorkomende acties zijn onder andere het proberen te compenseren voor de storing. Voor een defecte sensor die consequent buiten bereik is, kan de firmware een "slappe modus" hebben voor die sensor om de slechte gegevens te compenseren totdat deze kan worden vervangen. Een firmware-routine die onjuiste resultaten retourneert, kan opnieuw worden geïnitialiseerd. Vaak wordt er een foutcode over het netwerk gestuurd om de netwerkhost op de hoogte te stellen van het probleem.
In sommige hoogbeveiligde IoT- of IIoT-knooppunten is er echter een speciale categorie storingen waarvoor geen compensatie of tegenmaatregelen kunnen of mogen worden getroffen. Dit kan bestaan uit fysieke sabotagedetectie, interne controlesomstoringen, enkele ingebouwde zelfteststoringen (BIST) en elke storing die kan worden veroorzaakt door gecompromitteerde firmware of een gehackt systeem. Voor deze hoogbeveiligde situaties kan de enige optie zijn om het knooppunt onmiddellijk en veilig uit te schakelen. De netwerkhost zal bepalen dat het knooppunt is uitgeschakeld wanneer deze niet reageert op netwerkverzoeken. Als het knooppunt wordt uitgeschakeld zonder een foutmelding naar de host te sturen en als het knooppunt de netwerkcommando's negeert om opnieuw op te starten, is dit een indicatie dat er een fatale storing is opgetreden en dat er een technicus moet worden gestuurd om het knooppunt fysiek te onderzoeken op de oorzaak.
Als het knooppunt echter eenmaal is uitgeschakeld, worden alle vluchtige geheugen- en statusgegevens onmiddellijk gewist. Dit maakt de diagnose van de oorzaak van de uitschakeling zeer moeilijk, zo niet onmogelijk. Optioneel kunnen de diagnostische gegevens worden opgeslagen in een niet-vluchtig geheugen, zoals EEPROM of flashgeheugen, voordat het knooppunt wordt uitgeschakeld. Het probleem is dat het schrijven naar dit soort geheugens tijd kost, waarbij het knooppunt actief moet blijven en er mogelijk extra schade ontstaat.
Diagnosestelling van fatale fouten met e-paper
EPD's trekken zeer weinig stroom en kunnen worden gebruikt om fout- en diagnose-informatie op te slaan en weer te geven vlak voor het aanzetten van het knooppunt. Als het knooppunt eenmaal is uitgeschakeld, kan de EPD zijn weergavebeeld dagen of wekenlang zonder stroomtoevoer behouden. De informatie op het display geeft de technici een visuele indicatie van de reden van de uitschakeling, zodat ze kunnen beslissen of het veilig is om het IoT-knooppunt aan te zetten, of dat het van het netwerk moet worden gehaald voor een gedetailleerde analyse.
Een voorbeeld van een EPD dat geschikt is voor het weergeven van diagnostische informatie is Pervasive Displays' E2271CS091 EPD-module. Het heeft een interface met elke compatibele microcontroller met een SPI-seriële interface en heeft een 2,71 inch (in.) display met hoog contrast (Afbeelding 1).
Afbeelding 1: De E2271CS091 EPD-module heeft een hoog-contrast 2,71 in. display met een resolutie van 264 x 176 pixels. Het heeft een brede kijkhoek en interfaces naar elke compatibele microcontroller met een SPI-interface. (Bron afbeelding: Pervasive Displays))
De E2271CS091 EPD-module maakt gebruik van een actief matrix dunne-folietransistor (TFT) display met een native resolutie van 264 x 176 pixels bij 117 dots per inch (dpi). Hierdoor kan het display veel informatie bevatten om technici te helpen bij de diagnose. Het anti-verblindingsscherm heeft een brede kijkhoek van bijna 180˚, waardoor het display gemakkelijk te bekijken is op ongebruikelijke montageplaatsen. De EPD heeft een 3 volt voeding nodig.
De host-microcontroller stuurt gegevens naar de EPD via een SPI-interface op de 24-pins lintconnector van het display. De SPI-datacommunicatie is slechts één manier, van de host-microcontroller naar het EPD. De enige communicatie terug van de EPD naar de host-microcontroller is een "apparaat bezet"-pin op de lintconnector, wat de interface aanzienlijk vereenvoudigt en het vertrouwen in de weergegeven diagnostische gegevens vergroot.
Als een fout of hackpoging wordt gedetecteerd, en als de fout ernstig genoeg is om een uitschakeling van het knooppunt te vereisen, moet de fout eerst worden opgevangen door firmware, watchdog of een andere methode. De controle moet dan worden overgedragen naar de foutregistratieroutine die de gegevens naar het EPD stuurt. Deze foutloggingroutine moet de hoogste prioriteit krijgen om onderbreking of beschadiging van de gegevens te voorkomen. Voor een maximale betrouwbaarheid is het aan te bevelen om de foutregistratie volledig zelfstandig uit te voeren, zonder oproepen naar externe subroutines of functies. Idealiter zou de foutlogging routine in een permanent schrijfbeveiligde flash moeten zijn om de integriteit van de code te garanderen, zelfs na firmware-updates.
Voordat het EPD wordt bijgewerkt met de foutgegevens, moet de host-microcontroller eerst een zacht reset-commando over de SPI-interface naar het EPD sturen om het scherm te wissen. Vervolgens wordt de zwart-witte weergave-informatie in een reeks van byte-sequenties verzonden, waarbij elk bit in een byte een pixel op het EPD vertegenwoordigt. Zodra de sequentie is voltooid, kan de foutloggingroutine de microcontroller uitschakelen. Verschillende fabrikanten van microcontrollers hebben verschillende manieren om af te sluiten, omdat dit afhankelijk is van de architectuur en de fabrikant. In sommige situaties en om veiligheidsredenen kan de fabrikant een ongedocumenteerde manier hebben om de microcontroller uit te schakelen, die alleen op verzoek beschikbaar is. Optioneel kan een extern circuit worden gebruikt om de stroomtoevoer naar de microcontroller te onderbreken; dit verhoogt echter de complexiteit van het systeem, wat de betrouwbaarheid vermindert. Daarom wordt de voorkeur gegeven aan firmware-uitschakeling van de microcontroller.
Om te helpen bij de ontwikkeling met behulp van de EPD, biedt Pervasive Displays de B3000MS034 EPD-uitbreidingsset (Afbeelding 2). Het heeft een uitbreidingskaart met een connector voor het 24-pins EPD-display, evenals connectors voor andere Pervasive Display EPD's die 40-pins en 26-pins connectors vereisen. Het uitbreidingsbord is compatibel met Texas Instruments' LaunchPad ontwikkel- en evaluatiekits, maar kan ook gebruikt worden met andere ontwikkelkits. Een 20-polige overbruggingskabel kan worden aangesloten op de 20-polige 90˚ headerconnector, die bij het solderen aan de verlengplaat het mogelijk maakt om de besturingssignalen naar de EPD tijdens de ontwikkeling te bewaken.
Afbeelding 2: De uitbreidingskit voor de Pervasive Displays E2271CS091 EPD-module bevat een 24-pins connector op de uitbreidingskaart voor de 24-pins lintkabel van het display. Het bevat ook een overbruggingskabel en een 90˚ 20-pins header-connector. (Bron afbeelding: Pervasive Displays))
Een andere EPD-optie is de Display Visions EA EPA20-A (Afbeelding 3).
Afbeelding 3: De Display Visions EA EPA20-A EPD is een 172 x 72 display dat de displaystatus kan behouden zonder dat er stroom wordt aangesloten. (Bron afbeelding: Display Visions))
Dit EPD heeft een 172 x 72 grijswaarden display en maakt ook gebruik van een SPI-interface voor communicatie met een host-microcontroller. De EPD heeft een extreem laag vermogen, vereist een enkele 3,3 volt voeding en trekt slechts 40 milliwatt (mW) tijdens een displaywissel. De Display Visions EA EPA20-A EPD kan zijn display ook behouden wanneer er geen stroom wordt gebruikt.
Conclusie
Hoogbeveiligde IoT- en IIoT-knooppunten moeten soms worden uitgeschakeld als reactie op een fatale firmwarefout of gedetecteerde dreiging. Dit kan resulteren in het verlies van alle vluchtige gegevens, inclusief de interne status van de host-microcontroller. De status- en diagnostische gegevens kunnen echter naar een aangesloten EPD worden verzonden voordat deze wordt afgesloten en gedurende dagen of weken worden weergegeven. Dit geeft de technici de informatie die ze nodig hebben om de oorzaak van de uitschakeling vast te stellen en om, indien nodig, in de toekomst voorzorgsmaatregelen te nemen om het knooppunt en het netwerk te beveiligen.
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.

