Hoe beveilig je IoT-apparaten op microcontrollers met vingerafdrukverificatie

Door Bill Giovino

Bijgedragen door De Noord-Amerikaanse redacteurs van DigiKey

Ontwerpers staan onder steeds hogere druk om te garanderen dat hun product of systeem veilig is, vooral als het wordt verbonden met het Internet of Things (IoT). Veel gepubliceerde hacks hebben de kwetsbaarheid van wachtwoorden aangetoond, en het gemak waarmee PIN-codes (PIN staat voor persoonlijk identificatienummer) kunnen worden gekopieerd en op near-fieldcommunicatie (NFC) gebaseerde badges kunnen worden gestolen. Ontwerpers moeten de beveiligingslat steeds hoger leggen, terwijl ze tegelijkertijd de kosten en ontwerptijd moeten beteugelen. Vingerafdrukidentificatie (ID) is een manier om beide doelen te realiseren.

Vingerafdrukbeveiliging is echter altijd lastig te implementeren geweest. De technische details van het van nul af aan ontwerpen van een vingerafdrukscansysteem met een microcontroller of digitale signaalprocessor (DSP) met firmware voor vingerafdrukidentificatie, gegevensverwerking en -conditionering en hostcommunicatie, kan complex zijn en een aanzienlijke leercurve hebben.

Gelukkig bestaan er nu kant-en-klare hardware en software die al het moeilijke werk van een vingerafdrukherkenningssysteem over kunnen nemen. Dit artikel legt de basisprincipes van vingerafdrukherkenning uit en geeft vervolgens een introductie op de SEN0188, een zelfstandige unit voor vingerafdrukregistratie en verificatie van DFRobot die kan worden aangesloten op elke hostmicrocontroller met een universele asynchrone ontvanger/zender (UART) -interface.

Het artikel beschrijft vervolgens hoe de SEN0188 wordt gebruikt om vingerafdrukbeveiliging toe te voegen aan een faciliteit die een IoT-netwerk gebruikt om deze beter bestand te maken tegen hacking of fysieke aanvallen.

Basisprincipes van vingerafdrukidentificatie

Vingerafdrukken zijn een indruk van de groeven op de vingers en duimen die ons in staat stellen om voorwerpen gemakkelijker vast te pakken en vast te houden. De lijnpatronen van vingerafdrukken zijn gedeeltelijk het resultaat van DNA en gedeeltelijk van een willekeurig proces, en zijn uniek voor ieder individu. De kans dat twee mensen dezelfde vingerafdrukken hebben is daarom extreem laag. Zelfs de vingerafdrukken van identieke tweelingen zijn verschillend. Om deze reden is vingerafdrukidentificatie een excellente detectiemethode voor hoog beveiligde systemen.

Vingeradrukidentificatiesystemen voeren twee verschillende taken uit —registratie en verificatie. Vingerafdrukregistratie is het proces waarbij een schone vingerafdruk wordt geïdentificeerd en voor later gebruik wordt opgeslagen. De vingerafdruk wordt één of meerdere keren gescand door een speciale scanner en vervolgens gedigitaliseerd. De gedigitaliseerde vingerafdruk wordt vervolgens geanalyseerd om zeker te zijn dat het een geldige vingerafdruk is. Als de vingerafdruk geldig is, wordt hij in een niet-vluchtig geheugen opgeslagen, bijvoorbeeld flash of EEPROM, samen met persoonlijke identificatiegegevens van de betreffende persoon zoals ID-nummer, naam en badgenummer. Als de vingerafdruk niet geldig is, moet de vinger opnieuw worden gescand.

Vingerafdrukverificatie is het proces waarbij een schone vingerafdruk wordt gescand voor verificatie tegen de gedigitaliseerde vingerafdrukken die in het niet-vluchtige geheugen zijn opgeslagen. Het vingerafdrukscansysteem zal vervolgens aan de host laten weten of de gescande vingerafdruk overeenstemt met een geldige vingerafdruk die in het geheugen is opgeslagen, of dat de match ongeldig is.

Toegangsbeveiliging met IoT

Het IoT koppelt vele systemen, die voorheen autonoom waren, in netwerken aan elkaar. Sommige van deze systemen vereisen middel-hoge beveiliging, bijvoorbeeld op scholen en bedrijven. Illegaal binnendringen in bepaalde kritieke systemen, zoals waterzuiveringsinstallaties en elektriciteitsnetten, kan echter verwoestende gevolgen hebben en dergelijke systemen vereisen daarom een verhoogde veiligheid. Voor dit soort systemen zijn ontwikkelaars altijd op zoek naar betere manieren om de beveiliging te garanderen. De kosten moeten hierbij altijd minimaal worden gehouden, aangezien vele IoT-apparaten op zich goedkoop zijn. In dergelijke gevallen kan vingerafdrukidentificatie gemakkelijk worden toegevoegd als aanvulling op veiligheidsbadges.

Het voordeel van het IoT in deze netwerken is dat kennisgevingen over de resultaten van een vingerafdrukscan over het netwerk verzonden kunnen worden. Als niet-geautoriseerde toegang wordt gedetecteerd, kan een alarm klinken, of kan het IoT-netwerk in extreme gevallen alle systemen vergrendelen en zelfs een telefoontje naar de autoriteiten plegen.

Vingerafdrukregistratie voor identificatie voor beveiligingsdoeleinden kan het beste worden uitgevoerd door een technicus of beveiligingsspecialist, om zeker te zijn dat het op de juiste manier gebeurt. De scanner en vinger moeten schoon zijn. De technicus moet de identiteit van de te scannen persoon verifiëren. Nadat de vingerafdruk met succes is geregistreerd, kunnen eventuele aanvullende gegevens, zoals de naam van de persoon of het werknemer-ID-nummer worden toegevoegd door de beveiligingsspecialist.

De technische details die komen kijken bij het van nul af aan ontwerpen van een vingerafdrukscansysteem, maken de implementatie ervan praktisch onmogelijk voor ontwerpers die met een krap budget werken. Maar tegenwoordig kan het zware werk bij het ontwerpen van een vingerafdrukherkenningssysteem worden overgenomen door kant-en-klare hardware zoals de SEN0188 vingerafdruksensor, een zelfstandige unit voor vingerafdrukregistratie en -verificatie van DFRobot (Afbeelding 1).

Afbeelding 1: de SEN0188 vingerafdruksensor-unit van DFRobot bevat alle hardware en firmware die nodig is voor de registratie en verificatie van vingerafdrukken. De unit communiceert via een UART-interface met een microcontroller. (Bron afbeelding: DFRobot)

De SEN0188 kan van 3,8 tot 7,0 Volt werken en trekt maximaal 130 Milliampère (mA). De unit heeft een breed werkingstemperatuurbereik (-20 °C tot +60 °C) en is bestand tegen maximaal 80% relatieve vochtigheid, waardoor hij geschikt is voor gebruik de open lucht.

Op Afbeelding 1 is te zien hoe een gebruiker zijn vinger op de optische vingerafdruksensor aan de linkerkant plaatst. Het duurt minder dan een seconden om een vingerafdrukbeeld voor registratie of verificatie te verwerven. Elke vingerafdruk wordt opgeslagen als een sjabloonbestand van 512 byte in een intern flashgeheugen. Het interne flashgeheugen van de SEN0188 kan maximaal 1000 vingerafdrukken opslaan.

De UART van de SEN0188 is toegankelijk via de onderkant van de sensor (Afbeelding 2).

Afbeelding 2: De UART-verbindingen zitten op de onderzijde van de SEN0188 vingerafdruksensor van de DFRobot. (Bron afbeelding: DFRobot)

Bij de inschakeling is de standaard baudrate van de SEN0188 57600 bits per seconde (bps). De baudrate kan tussen de 9600 bps en 115200 bps worden ingesteld. De UART-verbinding gebruikt de volgende signalen:

Pinnummer Naam signaal Richting Beschrijving
1 VTOUCH - Geen verbinding
2 SOUT - Geen verbinding
3 VIN In Voeding in (3,8 tot 7,0 Volt)
4 TD (Tx)
Uit UART verzending uitgaande gegevens
5 RD (Rx)
In UART ontvangst binnenkomende gegevens
6 GND   Signaalaarde

Tabel 1: de pinout voor de SEN0188 gebruikt een asynchrone UART-verbinding om met een host te communiceren. (Bron tabel: DFRobot)

De UART-interface kan ook verbinding maken met software van DFRobot op een PC of laptop die kan assisteren bij het ontwikkelen van een vingerafdruksysteem, inclusief debugging- registratie- en verificatiefirmware.

De SEN0188 van DFRobot in een microcontrollersysteem gebruiken

Voor een zelfstandig microcontrollersysteem moet de SEN0188 worden verbonden met een printplaat die zowel een voldoende krachtige microcontroller als een visuele indicator van de status van een op de sensor geplaatste vingerafdruk heeft. De STM32F7308-DK Discovery-kit van STMicroelectronics heeft alles wat nodig is om een zelfstandig vingerafdrukidentificatiesysteem te maken. De kit beschikt over een krachtige STM32F730I8K6 microcontroller, die op een Arm® Cortex®-M7 core is gebaseerd. De printplaat bevat een 25 megahertz (MHz) oscillator voor de hoge-snelheid klok en een 32,768 kilohertz (kHz) oscillator voor de lage-snelheid klok. Hij wordt ondersteund door een on-chip programma-flashgeheugen van 64 kilobytes (Kbytes), een extern flashgeheugen van nog eens 64 megabytes (Mbytes) en 256 Kbytes systeem-SRAM.

Voor perifere ondersteuning en communicatie beschikt hij over meerdere seriële interfaces waaronder drie I2C- en vijf SPI-interfaces. Ook heeft hij vier UART/USART's, zodat hij gemakkelijk kan communiceren met de SEN0188. Wanneer hij op 3,6 Volt wordt gevoerd is de STM32F730I8K6 microcontroller compatibel met de TTL logische niveau-interface van de vingerafdruksensor van DFRobot.

Het Discovery-bord wordt geleverd met een dochterbord dat compatibel is met Arduino™ (Afbeelding 3). Alhoewel dit bord nuttig kan zijn gedurende de ontwikkeling, is het niet noodzakelijk voor de vingerafdrukidentificatie-toepassing en kan het van de hoofdprintplaat worden afgekoppeld.

Afbeelding 3: het STM32F7308-DK Discovery-bord van STMicroelectronics heeft alles wat nodig is voor een zelfstandig vingerafdrukidentificatiesysteem. De aangesloten printplaat linksboven ondersteunt Arduino-dochterborden, terwijl de ESP-01 connector rechtsonder ieder willekeurig compatibel ESP8266-bord ondersteunt. (Bron afbeelding: STMicroelectronics)

Ook heeft hij een 240 x 240 TFT LCD-display dat kan worden gebruikt om een visuele pass/fail indicatie van vingerafdruk te geven.

Om verbinding te maken met een Wi-Fi netwerk, heeft de STM32F7308-DK Discovery-kit een aansluiting voor aansluiting met een willekeurig standaard ESP8266 Wi-Fi bord. De WRL-13678 is bijvoorbeeld een ESP8266-compatibel bord van SparkFun Electronics (Afbeelding 4).

Afbeelding 4: de WRL-13678 van SparkFun Electronics is een ESP8266-compatibele printplaat met een ESP-01 stiftlijstconnector. Hij kan in het Discovery-bord van STMicroelectronics worden gestoken voor gemakkelijke Wi-Fi toegang. (Bron afbeelding: SparkFun Electronics)

De printplaat kan worden verbonden met de ESP-01 connector rechtsonder op het Discovery-bord, zoals te zien is op Afbeelding 3. De WRL-13678 heeft zijn eigen antenne op printplaat en maakt het mogelijk om het Discovery-bord gemakkelijk aan te sluiten op een 2,4 gigahertz (GHz) Wi-Fi netwerk.

In een in een Wi-Fi netwerk aangesloten IoT-beveiligingssysteem kan elke beveiligde toegang of toegangsweigering naar iedere willekeurige IoT-node worden verzonden. Dit kan handig zijn om toegang tot extra gebieden of systemen met strenge restricties mogelijk te maken. Als er bijvoorbeeld toegang wordt gevraagd tot een zone binnen een faciliteit waar strenge restricties gelden, maar niemand met een dergelijke autorisatie op één van de ingangen door de vingerafdrukscanner is aangemeld en gerapporteerd, kan het systeem deze poging classificeren als mogelijke schending van de beveiliging en de vereiste maatregelen treffen.

Het is niet ongebruikelijk dat faciliteiten met een dergelijk beveiligingsniveau ook identiteitsverificatie vereisen voor iedereen die de faciliteit verlaat. Een dergelijk systeem houdt niet alleen een log bij van alle ingangen en uitgangen op, maar onderschept ook onbevoegde personen in het gebouw en waarschuwt tegelijkertijd beveiligingsspecialisten.

Het implementeren van vingerafdrukbeveiliging

De SEN0188-sensor communiceert met het Discovery-bord van de host van STMicroelectronics via de UART-interface met behulp van een eenvoudige opdrachtenset. Er zijn in totaal 22 opdrachten waaronder registratie, verificatie en wissen van vingerafdrukken; diverse zoekopdrachten; rechtstreeks lezen van en schrijven naar het interne flashgeheugen; lezen van status; instelling van beveiliging voor de sensor. De sensor kan ook het opgeslagen bitmapbeeld van willekeurige vingerafdrukken ophalen en deze aan de host zenden. Het Discovery-bord kan dit weergeven op zijn TFT LCD.

Vingerafdrukregistratie kan met behulp van een PIN of wachtwoord worden geactiveerd op het vingerafdrukidentificatiestation. Een veiligere registratiemethode is echter om deze te activeren door een opdracht naar het IoT-eindpunt van het Discovery-bord te zenden vanuit een locatie ergens in het netwerk, bijvoorbeeld vanuit een bewakingsstation. Als alternatief kan een mobiel toestel, bijvoorbeeld een telefoon of tablet, worden gebruikt om autorisatie voor de registratie te geven. Het succesvolle verloop van de registratie kan ook op het mobiele toestel worden geverifieerd.

Het optische vingerafdruksensorvlak op de SEN0188 heeft een LED-achtergrondverlichting die gemakkelijk via de host kan worden in- en uitgeschakeld met behulp van de opdrachten OpenLED en CloseLED. Zo wordt het mogelijk om de vingerafdruksensor in de beveiligde omgeving alleen te verlichten wanneer het systeem klaar is om de vingerafdruk te accepteren. De achtergrondverlichting kan gedurende een aan de beveiliging gerelateerde gebeurtenis worden uitgeschakeld, om aan te geven dat geen toegang mogelijk is, ook niet door geautoriseerd personeel.

Het standaard UART-frame van de SEN0188 gebruikt een startbit, 8 databits en een stopbit. De minst significante databit (least significant bit - LSB) wordt als eerste verzonden. Na de inschakeling doet de SEN0188 er 300 milliseconden (ms) over om te initialiseren en een zelftest uit te voeren. Vervolgens verzendt hij een byte van 55h naar de host om aan te geven dat hij gereed is. De host kan ook een GetEcho-opdracht naar de sensor sturen om de 55h bevestigingscode te vragen. Als deze byte niet door de host wordt ontvangen, kan dit wijzen op ene storing van de SEN0188, een onderbreking in de communicatie tussen de SEN0188 en de host of betekenen dat de SEN0188 geen voeding ontvangt.

De SEN0188 is ontworpen om een beveiligde omgeving te bieden voor vingerafdrukauthenticatie en beschikt over vele veiligheidsfuncties, inclusief wachtwoordbeveiliging. Het standaard in de fabriek ingestelde vier-byte wachtwoord is 00000000h. Dit dient te worden gewijzigd voordat het systeem op de plaats van gebruik wordt opgesteld. Het wachtwoord wordt in het interne flashgeheugen van de sensor opgeslagen met behulp van de opdracht voor wachtwoordinstelling van de sensor SetPwd.

Voor nog meer veiligheid bevat de opdrachtenset van de sensor geen opdracht voor het aflezen van het wachtwoord. Als het sensorwachtwoord verloren gaat, wordt de SEN0188 sensor onbruikbaar —er is geen hardware- of softwarereset die de sensor op de opgeslagen vingerafdrukken kan herstellen.

De sensor heeft een standaard vier-byte adres FFFFFFFFh dat in het interne flashgeheugen wordt opgeslagen en kan worden gewijzigd via de opdracht SetAddr.

Alle vingerafdrukauthenticatie en -opslag vinden binnen de sensor zelf plaats. Dit voorkomt dat er kan worden geknoeid met de opgeslagen vingerafdrukken of het verificatieproces.

Voor het eerste gebruik is een slimme voorzorgsmaatregel om alle in de vingerafdrukscanner opgeslagen vingerafdrukken te verwijderen. Dit wordt ondersteund door de opdracht Empty, waarmee alle in het interne flashgeheugen van de sensor opgeslagen vingerafdruksjablonen worden verwijderd.

Conclusie

Toegangsbeveiliging is een steeds belangrijkere applicatie voor embedded- en IoT-systemen, maar moet op doeltreffende wijze worden gedaan, met de juiste balans tussen kosten, eenvoud en effectiviteit. Zoals getoond stelt de SEN0188 vingerafdruksensor van DFRobot ontwerpers in staat om een systeem snel te prototyperen en te ontwikkelen om toegangsbeveiliging voor gevoelige gebieden te bieden. Bij verbinding met de STM32F7308-DK Discovery-kit met een TFT LCD-display en het WRL-13678 Wi-Fi bord van SparkFun Electronics, kan een beveiligingssysteem worden ontwikkeld dat eenvoudig, betrouwbaar en gebruikersvriendelijk is.

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 Bill Giovino

Bill Giovino

Bill Giovino is een ingenieur in elektronica met een BSEE van de Syracuse University. Hij is een van de weinigen die met succes de overstap maakten van ontwerpingenieur naar ingenieur veldtoepassingen en vervolgens naar technologiemarketing.

Meer dan 25 jaar lang heeft Bill met veel toewijding nieuwe technologieën gepromoot ten overstaan van zowel technisch als niet-technisch publiek voor vele bedrijven, waaronder STMicroelectronics, Intel en Maxim Integrated. Toen hij bij STMicroelectronics actief was, hielp Bill bij de doorbraak van de eerste successen van het bedrijf in de sector van microcontrollers. Bij Infineon stond Bill in voor de eerste toepassingen van het microcontrollerontwerp van het bedrijf in de Amerikaanse autosector. Als marketing consultant voor zijn bedrijf CPU Technologies, hielp Bill vele bedrijven om laag presterende producten op te krikken en er een succesverhaal van te maken.

Bill was een van de eersten die het Internet of Things toepaste. Hij plaatste de eerste volledige TCP/IP-stack op een microcontroller. Bill is trouw aan het motto “Verkoop via opvoeding” en wijst op het toenemende belang van duidelijke, goed geschreven mededelingen om producten online te promoten. Hij is moderator van de populaire LinkedIn Semiconductor Sales & Marketing Group en spreekt vlot B2E.

Over deze uitgever

De Noord-Amerikaanse redacteurs van DigiKey