Så här säkrar du mikrostyrenhetsbaserade IoT-enheter med fingeravtrycksautentisering

Av Bill Giovino

Bidraget med av DigiKeys nordamerikanska redaktörer

Konstruktörerna har allt större press på sig att säkerställa att deras produkter eller system är säkra, speciellt om de ska anslutas till sakernas internet (IoT). Mycket omskrivna hackare har visat lösenords sårbarhet och hur enkelt det är att koperia personliga identifieringsnummer (pinkoder) och stjäla säkerhetsmärken eller -brickor baserade på närfältskommunikation (NFC). Konstruktörerna behöver höja säkerheten, samtidigt som de måste hålla koll på kostnaden och designtiden. Med fingeravtrycksidentifiering (ID) kan båda målen uppnås.

Normalt har det dock varit en utmaning att genomföra fingeravtryckssäkerhet. De tekniska detaljerna för att konstruera ett skanningssystem för fingeravtryck från grunden med en mikrostyrenhet eller digital signalprocessor (DSP) som innehåller programvara för fingeravtrycksidentifiering, databehandling och -konditionering samt värdkommunikation kan vara komplexa med en betydande inlärningstid.

Lyckligtvis finns maskinvara och programvara tillgängliga som kan göra allt det hårda arbetet i ett igenkänningssystem för fingeravtryck. Denna artikel förklarar grunderna för fingeravtrycksigenkänning innan du introducerar SEN0188, en fristående registrerings- och verifieringsenhet för fingeravtryck från DFRobot som kan kopplas till alla värdmikrostyrenheter som har ett gränssnitt för universell asynkron mottagare/sändare (UART).

Artikeln visar sedan hur man använder SEN0188 för att lägga till identifieringsskydd för fingeravtryck till en anläggning som använder ett IoT-nätverk för att göra det mer motståndskraftigt mot dataintrång eller fysisk attack.

Grunderna i fingeravtrycksidentifiering

Fingeravtryck är ett avtryck av det papillarmönster som finns på fingrarna och tummen på varje hand som gör det lättare att greppa och hålla i föremål. Fingeravtrycksmönster är delvis DNA-resultat, och delvis en slumpmässig process, som är unika för en viss individ. Sannolikheten att två personer har samma fingeravtryck är mycket låg. Till och med enäggstvillingars fingeravtryck är olika. Av detta skäl är fingeravtrycksidentifiering en utmärkt detekteringsmetod för höga säkerhetssystem.

Systemen för fingeravtrycksidentifiering är separerade i två åtgärder – registrering och verifiering. Registrering av fingeravtryck är processen där ett rent fingeravtryck identifieras och lagras för senare användning. Fingeravtrycket skannas en eller flera gånger av en specialiserad skanner och digitaliseras sedan. Det digitala fingeravtrycket analyseras sedan för att säkerställa att det är ett giltigt fingeravtryck. Om fingeravtrycket är giltigt lagras det i ett icke-flyktigt minne som flash eller EEPROM, tillsammans med personlig identifieringsinformation, som t.ex. ett ID-nummer och namn och nummer på en ID-bricka. Om fingeravtrycket är ogiltigt måste fingret skannas igen.

Fingeravtrycksverifiering är processen där ett rent fingeravtryck skannas för verifiering mot de digitaliserade fingeravtryck som lagras i ett icke-flyktigt minne. Skanningssystemet för fingeravtryck anger sedan till värddatorn om det skannade fingeravtrycket matchar ett giltigt fingeravtryck som är lagrat i minnet, eller om matchningen är ogiltig.

Säkerhetsåtkomst med IoT

IoT samverkar med flera system som tidigare var fristående. Några av dessa system kräver medelhög säkerhet, såsom skolor och företag. Olaga intrång i vissa kritiska system som vattenreningsverk och elnät kan dock få förödande konsekvenser och kräver därmed ökad säkerhet. För dessa system söker utvecklare alltid efter bättre sätt att säkerställa säkerheten med minimal kostnad, eftersom flera IoT-enheters design inte är dyr. I sådana fall kan fingeravtrycksidentifiering enkelt läggas till tillsammans med säkerhetsbrickor.

Fördelen med sakernas internet i dessa nätverk är att meddelandet med resultaten av en fingeravtrycksskanning kan överföras via nätverket. Om en obehörig åtkomst upptäcks kan ett larm ljuda, eller i extrema fall kan IoT-nätverket låsa ner alla system och även kontakta myndigheter.

Fingeravtrycksregistrering för säkerhetsidentifiering utförs bäst i närvaro av en tekniker eller säkerhetsansvarig personal för att säkerställa att det görs korrekt. Skannern och fingret måste båda vara rena. Teknikern måste verifiera identiteten hos den person som skannas med ett positivt resultat. När registreringen har genomförts kan eventuell ytterligare information, såsom personens namn eller ID-nummer som anställd, läggas till av säkerhetsansvarig personal.

De tekniska detaljerna som ingår i designarbetet av ett skanningssystem för fingeravtryck från grunden har gjort det ogenomförbart för flera konstruktörer med en liten budget. Tillgänglig maskinvara, som t.ex. DFRobots SEN0188-fingeravtryckssensor, en fristående fingeravtrycksregistrerings- och verifieringsenhet, kan nu göra det hårda arbetet i ett igenkänningssystem för fingeravtryck (figur 1).

Figur 1: Fingeravtryckssensorn DFRobot SEN0188 innehåller all maskinvara och programvara som behövs för att registrera och verifiera fingeravtryck. Den kommunicerar med en mikrostyrenhet över ett UART-gränssnitt. (Bildkälla: DFRobot)

SEN0188 kan användas från 3,8 till 7,0 volt och förbrukar maximalt 130 milliampere (mA). Den har en stor driftstemperatur på -20 °C till + 60 °C och kan tåla upp till 80 % relativ luftfuktighet, vilket gör den lämplig för flera utomhusmiljöer.

I figur 1 placerar en användare sitt finger på den optiska fingeravtryckssensorn till vänster. Det tar mindre än en sekund att få en fingeravtrycksbild för registrering eller verifiering. Varje fingeravtryck lagras på ett internt flashminne som en mallfil på 512 byte. Det interna flashminnet i SEN0188s kan lagra upp till 1 000 fingeravtryck.

Åtkomst till SEN0188-UART sker på undersidan av sensorn (figur 2).

Figur 2: UART-anslutningarna finns på undersidan av fingeravtryckssensorn DFRobot SEN0188. (Bildkälla: DFRobot)

Vid uppstart är standardbaudhastigheten för SEN0188 57 600 bitar per sekund (bps). Detta kan justeras till mellan 9 600 bps och 115 200 bps. UART-anslutningen använder följande signaler:

Pinkod Signalnamn Riktning Beskrivning
1 VTOUCH - Ingen anslutning
2 SUT - Ingen anslutning
3 VIN In Effekt in (3,8 till 7,0 volt)
4 TD (Tx)
Ut UART sända data (ut)
5 RD (Rx)
In UART ta emot data (in)
6 GND   Signaljord

Tabell 1: pinout för SEN0188 använder en asynkron UART-anslutning för att kommunicera med en värd. (Tabellkälla: DFRobot)

UART-gränssnittet kan även ansluta till DFRobots programvara på en dator eller bärbar dator som kan hjälpa till med utvecklingen av ett fingeravtryckssystem, inklusive felsökning av registrerings- och verifieringsprogramvara.

Använda DFRobot SEN0188 i ett mikrostyrenhetssystem

För ett fristående mikrostyrenhetssystem bör SEN0188 kopplas till ett kort som har både en tillräckligt kraftfull mikrostyrenhet och en visuell indikator för fingeravtrycksstatus placerad på sensorn. STM32F7308-DK Discovery-paketet från STMicroelectronics har alla funktioner som krävs i ett fristående system för fingeravtrycksidentifiering. Det använder en kraftfull STM32F730I8K6-mikrostyrenhet som är baserad på en Arm® Cortex®-M7-kärna. Kortet består av en 25 megahertz (MHz) oscillator för höghastighetsklockan och en 32,768 kilohertz (kHz) oscillator för låghastighetsklockan. Det stöds av ett programflashminne på 64 kilobyte (Kbytes) på chip, ytterligare ett 64 megabyte (Mbytes) externt flashminne och 256 kbyte system-SRAM.

När det gäller stöd och kommunikation med kringutrustning har det flera seriella gränssnitt inklusive tre I2C- och fem SPI-gränssnitt. Det har också fyra UART/USART, vilket gör det enkelt att kommunicera med SEN0188. När den drivs med 3,6 volt är mikrostyrenheten STM32F730I8K6 kompatibel med DFRobot-fingeravtryckssensorns TTL-logiknivå.

Discovery-kortet levereras med ett Arduino™-kompatibelt dotterkort (figur 3). Även om det här kortet kan vara användbart under utveckling behövs det inte för den här tillämpningen av fingeravtrycksidentifiering och kan kopplas från huvudkortet.

Figur 3: STM32F7308-DK Discovery-kortet har alla funktioner som behövs för ett fristående identifieringssystem för fingeravtryck. Det anslutna kortet överst till vänster stöder Arduino-dotterkort, medan ESP-01-kontakten på den nedre högra sidan stöder alla kompatibla ESP8266-kort. (Bildkälla: STMicroelectronics)

Det har också en 240 x 240 TFT LCD-skärm som kan användas för visuell indikering om ett fingeravtryck har registrerats framgångsrikt eller misslyckats.

För att ansluta till ett Wi-Fi-nätverk har STM32F7308-DK Discovery-paketet ett uttag för att ansluta till alla ESP8266 Wi-Fi-kort av industristandard. WRL-13678 är till exempel ett ESP8266-kompatibelt kort från SparkFun Electronics (figur 4).

Figur 4: TSparkFun Electronics WRL-13678 är ett ESP8266-komatibelt kort med en ESP-01-stiftlist. Den ansluts till STMicroelectronics Discovery-kortet för att ge enkel Wi-Fi-åtkomst. (Bildkälla: SparkFun Electronics)

Kortet kopplas in i ESP-01-kontakten längst ned till höger på Discovery-kortet som visas i figur 3. WRL-13678 har sin egen inbyggda antenn och gör att Discovery-kortet enkelt kan anslutas till ett Wi-Fi-nätverk på 2,4 gigahertz (GHz).

I ett Wi-Fi-nätverk med IoT-säkerhetssystem kan en eventuell säkerhetsåtkomst eller ett avvisande överföras till alla IoT-noder. Detta kan vara användbart för att möjliggöra åtkomst till ytterligare områden eller system som är mycket begränsade. Om åtkomst till exempel begärs till ett mycket begränsat område inom en anläggning, men ingen med det tillståndet har loggats in och rapporterats av fingeravtrycksskannern vid någon ingång, kan systemet klassificera detta försök som ett potentiellt säkerhetsbrott och vidta lämpliga åtgärder.

Det är inte ovanligt för anläggningar med denna säkerhetsnivå att även kräva identitetsverifiering av alla som lämnar anläggningen. Detta ger inte bara en översikt över alla ingångar och utgångar, det detekterar också obehörig personal inuti byggnaden medan säkerhetsansvarig personal varnas.

Genomföra fingeravtryckssäkerhet

Sensorn SEN0188 kommunicerar med STMicroelectronics Discovery-värdkort över UART-gränssnittet med en enkel kommandouppsättning. Det finns totalt 22 kommandon som omfattar registrering, verifiering och radering av fingeravtryck; olika sökkommandon; läsning och skrivning direkt till det interna flashminnet; läsningsstatus; och säkerhetsinställning för sensorn. Sensorn kan också hämta den lagrade bitmappsbilden av fingeravtryck och överföra den till värden, vilket Discovery-kortet kan visa på sin TFT-LCD.

Fingeravtrycksregistrering kan aktiveras på identifieringsstationen för fingeravtryck med en pinkod eller ett lösenord. En säkrare registreringsmetod är emellertid att aktivera det genom överföring av ett kommando till Discovery-kortets IoT-slutpunkt från någonstans över nätverket, t.ex. från en säkerhetsvaktstation. Alternativt kan en mobil enhet, som t.ex. en telefon eller en läsplatta, användas för att tillåta registrering. Genomförd registrering kan också verifieras på den mobila enheten.

Den optiska fingeravtryckssensorns område på SEN0188 har en LED-bakgrundsbelysning som värden enkelt kan sätta på och av med hjälp av kommandona OpenLED och CloseLED. Detta kan vara användbart i en säker miljö genom att enbart tända fingeravtryckssensorn när systemet är redo för att godkänna ett fingeravtryck. Bakgrundsbelysningen kan stängas av under en säkerhetshändelse för att ange att ingen åtkomst kommer att godkännas vid den tidpunkten, inte ens av behörig personal.

UART-ramen av standardtyp på SEN0188 använder en startbit, 8 databitar och en stoppbit. Den minst signifikanta biten (LSB) av data överförs först. Vid uppstart tar det 300 millisekunder (ms) för SEN0188 att initiera och köra ett självtest. Den sänder sedan en byte med 55h till värden för att ange att den är klar. Värden kan även sända ett GetEcho-kommando till sensorn för att begära 55h-bekräftelsekoden. Om denna byte inte mottas av värden kan den ange ett SEN0188-fel, ett avbrott i kommunikationen mellan SEN0188 och värden eller att SEN0188 inte har någon strömförsörjning.

SEN0188 är utformad för att ge en säker miljö för autentisering av fingeravtryck och innehåller flera säkerhetsfunktioner, inklusive lösenordsskydd. Det fabriksinställda lösenordet på fyra byte som standard är 00000000h och bör ändras innan systemet är placerat i fältet. Lösenordet lagras i sensorns interna flashminne med sensorns inställda lösenordskommando SetPwd.

För extra säkerhet innehåller inte det inställda sensorkommandot ett kommando för läsning av lösenord. Vid förlust av sensorns lösenord kan SEN0188-sensorn inte användas – det finns ingen återställning av maskinvara eller programvara som kan återställa sensorn eller lagrade fingeravtryck.

Sensorn har också en standardadress på fyra byte, FFFFFFFFh, som lagras i det interna flashminnet och som kan även ändras med kommandot SetAddr.

All fingeravtrycksautentisering och lagring utförs internt till sensorn. Detta förhindrar manipulering med de lagrade fingeravtrycken eller verifieringsprocessen.

Före första användningen är det en smart säkerhetsåtgärd att ta bort alla fingeravtryck som är lagrade i fingeravtrycksskannern. Detta stöds av Töm-kommandot som tar bort alla fingeravtrycksmallar som lagras i sensorns interna flashminne.

Slutsats

Åtkomstskydd är en allt viktigare tillämpning för inbyggda och IoT-system, men det måste göras effektivt med rätt balans mellan kostnad, enkelhet och effektivitet. Som framgår av bilden tillåter DFRobot SEN0188-fingeravtryckssensorn att konstruktörer snabbt bygger en prototyp och utvecklar ett system för att ge åtkomstskydd i känsliga områden. När det samverkar med STM32F7308-DK Discovery-paketet med en TFT LCD-skärm och SparkFun Electronics WRL-13678 Wi-Fi-kortet, kan ett säkerhetssystem utvecklas som är enkelt, pålitligt och användarvänligt.

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.

Om skribenten

Image of Bill Giovino

Bill Giovino

Bill Giovino arbetar som elektronikingenjör och har kandidatexamen i elektroteknik från Syracuse University. Han är en av få personer som med framgång har bytt karriär från konstruktör via fältapplikationsingenjör till att arbeta med marknadsföring av teknik.

I mer än 25 år har Bill arbetat med att marknadsföra ny teknik för en publik både med och utan tekniska kunskaper för många företag (bland dem kan nämnas STMicroelectronics, Intel och Maxim Integrated). På STMicroelectronics var Bill en av de drivande personerna i att leda företagets framgångar på den nya branschen för mikrostyrenheter. På Infineon drev Bill konstruktionen av prisvinnande mikrostyrenheter för bilindustrin i USA. I sin roll som marknadsföringskonsult för CPU Technologies har Bill hjälpt många företag att omvandla mindre framgångsrika produkter till framgångshistorier.

Bill var tidig med att använda sakernas internet, bland annat genom att placera den första kompletta TCP/IP-stacken på en mikrostyrenhet. Bill tror mycket på att försäljning ska bedrivas genom utbildning och att det är allt viktigare med tydlig, välskriven kommunikation för att marknadsföra produkter online. Han är moderator för den populära gruppen Linkedin Semiconductor Sales & Marketing och kan allt om B2E.

Om utgivaren

DigiKeys nordamerikanska redaktörer