Implementace identifikace otisků prstů vyžaduje nastudování si mnoho technických informací. Je nutné znát technické detaily navrhování systému pro snímání otisků prstů s mikroprocesorem nebo digitálním signálním procesorem (DSP), který obsahuje firmware pro identifikaci otisků prstů, zpracování dat a zajišťuje komunikaci s hostitelským procesorem.
Naštěstí nyní existuje dostupný hardware a software, který dokáže dělat veškerou výše popsanou práci. Tento článek vysvětlí základy rozpoznávání otisků prstů a představí řešení SEN0188 - samostatné jednotky pro ověřování otisků prstů od společnosti DFRobot, která může být propojena s jakýmkoliv hostitelským mikrokontrolérem, který má univerzální asynchronní UART rozhraní. Článek pak ukáže, jak používat a implementovat SEN0188 do zařízení, aby byla odolnější vůči hackerům nebo fyzickému útoku.
Základy identifikace otisků prstů
Otisky prstů jsou otiskem třecích hřebenů, které se nacházejí na prstech každé ruky, a které usnadňují uchopení a držení předmětů. DNA a částečně náhodný proces způsobily, že otisk prstů je jedinečný pro každého jednotlivce. Dokonce i otisky prstů identických dvojčat jsou odlišné. Z tohoto důvodu je identifikace otisků prstů vynikající detekční metodou pro vysoce zabezpečené systémy.
Systémy identifikace otisků prstů jsou rozděleny na dvě operace - záznam a ověření. Záznam otisku prstu je proces, kdy je identifikován čistý otisk prstu a uložen pro pozdější použití. Otisk prstu je jednou nebo vícekrát skenován speciálním skenerem a poté digitalizován. Digitalizovaný otisk prstu se poté analyzuje, aby se ověřilo, že se jedná o platný nedeformovaný otisk prstu. Pokud je otisk prstu platný, je uložen v energeticky nezávislé paměti, například Flash nebo EEPROM, spolu s osobními identifikačními údaji o osobě, jako je číslo ID nebo jméno. Pokud je otisk prstu neplatný, musí být prst naskenován znovu.
Ověření otisků prstu je proces, při kterém je otisk prstu skenován pro ověření proti digitalizovaným otiskům prstů uložených v energeticky nezávislé paměti. Systém skenování otisku prstu pak hostovi oznámí, zda naskenovaný otisk prstu odpovídá platnému otisku prstu uloženému v paměti, nebo zda je shoda neplatná.
Bezpečnost
V dnešní době se propojuje mnoho různých systémů, které dříve byly samostatné. Různé systémy vyžadují různou úroveň zabezpečení. Přístupové systémy pro školy nebo podniky nemusí být tak zabezpečené jako úpravny vody či rozvodné sítě, kde neoprávněná osoba může napáchat zničující škodu. Ceny IoT zařízení jsou stlačeny na minimum, a tak přidaná bezpečnost v podobě identifikace otisku prstu musí být jednoduchá a levná.
Výhoda propojení IoT spočívá v tom, že je možné prostřednictvím sítě přenášet informace o výsledcích skenování otisků prstů. Pokud je detekován neautorizovaný přístup, může být okamžitě spuštěn alarm nebo se v extrémních případech uzamknou všechny připojené systémy a informují se příslušné autority.
Záznam otisku prstu do databáze se provádí za přítomnosti technika nebo bezpečnostního pracovníka, aby se zajistilo, že vše proběhlo správně. Skener a prst musí být čistý. Technik musí ověřit totožnost osoby, která je skenována. Jakmile je záznam úspěšný, může bezpečnostní osoba doplnit další informace, jako je jméno osoby nebo číslo zaměstnance.
Technické detaily pro vývoj zařízení pro snímání otisku prstu jsou složité, a tak tuto cestu mnoho lidí odradí. Je tu ale řešení, které pomůže tento náročný proces překonat. Stačí použít kompletní hardware, SEN0188 od společnosti DFRobot (obrázek 1).
Obrázek 1: Snímač otisků prstů DFRobot SEN0188 obsahuje veškerý hardware a firmware potřebný k záznamu a ověření otisku prstu. Komunikuje s mikrokontrolérem přes UART rozhraní. (Zdroj obrázku: DFRobot)
Napájecí napětí SEN0188 se může pohybovat od 3,8 V do 7,0 V. Spotřeba je maximálně 130 mA. Má širokou provozní teplotu od -20 ° C do + 60 ° C a vydrží až 80% relativní vlhkosti. To jsou podmínky venkovního prostředí.
Získání snímku otisku prstu trvá méně než jednu sekundu. Každý otisk prstu je uložen ve vnitřní Flash paměti jako soubor s 512 bajty. Interní Flash paměť SEN0188 může uložit až 1000 otisků prstů. Komunikační rozhraní UART je přístupné na spodní straně snímače (Obrázek 2).
Obrázek 2: Rozhraní UART je na spodní straně snímače otisků prstů DFRobot SEN0188. (Zdroj obrázku: DFRobot)
Při zapnutí je výchozí přenosová rychlost 57600 bitů za sekundu. Lze ji nastavit na 9600 bps až 115200 bps. Rozhraní UART používá následující signály:
Tabulka 1: Piny SEN0188 se používají pro komunikaci s procesorem. (Zdroj tabulky: DFRobot)
Rozhraní UART lze také připojit k softwaru DFRobot na počítači nebo notebooku. Ten usnadní vývoj systému otisku prstů, včetně ladění a ověřování firmwaru.
Použití DFRobot SEN0188
Sada STM32F7308-DK Discovery od společnosti STMicroelectronics má všechny funkce potřebné pro samostatný systém identifikace otisků prstů. Používá výkonný mikrokontrolér STM32F730I8K6, který je založen na jádru Arm Cortex-M7. Deska je osazena 25 MHz a 32,768 kHz oscilátorem. K dispozici je 64 Kbytes Flash paměť přímo na čipu, 64 Mbytes jako externí Flash pamět a 256 kB SRAM.
Má více sériových rozhraní, včetně tří I2C a pěti SPI rozhraní. Má také čtyři UART / USART, které umožňují snadnou komunikaci s SEN0188. Mikrokontrolér STM32F730I8K6 je napájen zdrojem o velikosti 3,6 V a je kompatibilní s TTL logikou snímače otisku prstů DFRobot. Deska Discovery je dodávána s deskou kompatibilní s Arduino (Obrázek 3). I když tato deska je užitečná při vývoji, není vhodná pro výslednou aplikaci, a proto může být odpojena od základní desky.
Obrázek 3: Deska STMicroelectronics STM32F7308-DK Discovery má všechny funkce potřebné pro samostatný systém identifikace otisku prstů. Přiložená deska vlevo nahoře podporuje desky Arduino. Konektor ESP-01 na pravém dolním rohu podporuje všechny kompatibilní desky ESP8266. (Zdroj obrázku: STMicroelectronics)
Součástí je také LCD displej 240 x 240 TFT, který lze použít k vizuální indikaci průchodu otisku prstu nebo zobrazit varovnou správu při selhání snímání. Pro připojení k síti Wi-Fi je sada STM32F7308-DK Discovery vybavena konektorem pro připojení k jakékoli průmyslové desce ESP8266 Wi-Fi. Například WRL-13678 od společnosti SparkFun Electronics (Obrázek 4).
Obrázek 4: SparkFun Electronics WRL-13678 je deska kompatibilní s ESP8266 a s konektorem ESP-01. Zapojuje se do desky STMicroelectronics Discovery a umožňuje snadné Wi-Fi připojení. (Zdroj obrázku: SparkFun Electronics)
Deska se zasune do konektoru ESP-01 v pravém dolním rohu desky Discovery, jak je znázorněno na obrázku 3. WRL-13678 má vlastní anténu a umožňuje desce Discovery se snadno připojit k síti Wi-Fi 2,4 GHz.
Implementace zabezpečení pomocí otisků prstů
Snímač SEN0188 komunikuje s hostitelskou deskou STMicroelectronics Discovery přes rozhraní UART pomocí jednoduché sady příkazů. Existuje celkem 22 příkazů, které zahrnují záznam, ověřování a mazání otisků prstů; různé vyhledávací příkazy; čtení a zápis přímo z/do interní paměti Flash; stav čtení a nastavení zabezpečení snímače. Senzor může předat hostiteli uložený bitmapový obraz otisku prstu. Deska Discovery jej může zobrazit přímo na svém TFT LCD displeji.
Záznam otisků prstů lze aktivovat pomocí PIN nebo hesla. Bezpečnějším způsobem aktivace záznamu otisku prstu je aktivace ze vzdáleného místa někde na síti nebo lze k autorizaci použít mobilní zařízení, například telefon nebo tablet.
Optická oblast snímače na přístroji SEN0188 má podsvícení LED, které může hostitel zapnout a vypnout pomocí příkazů OpenLED a CloseLED. Zapnutí podsvícení snímače otisků prstů se provede pouze v případě, kdy je systém připraven otisk prstu přijmout.
Výchozí nastavení UART rozhraní je jeden start bit, 8 bitů dat a jeden stop bit. Nejdříve se přenáší nejméně významný bit (LSB). Po zapnutí SEN0188 se provádí inicializace a self-test. To trvá přibližně 300 ms. Pak pošle hostiteli jeden bajt 55 Hexa, aby indikoval, že je připraven. Hostitel si může kdykoliv vyžádat potvrzovací kód 55 Hexa pomocí příkazu GetEcho. Pokud tento bajt hostitel nepřijme, může to znamenat poruchu SEN0188, přerušení komunikace mezi SEN0188 a hostitelem, nebo že SEN0188 není napájen.
SEN0188 poskytuje mnoho bezpečnostních funkcí, včetně ochrany heslem. Výchozí čtyřbajtové tovární heslo je 00000000 Hexa a mělo by být změněno před uvedením do reálného provozu. Heslo je uloženo v interní Flash paměti pomocí příkazu SetPwd.
Pro zvýšení bezpečnosti sada příkazů neobsahuje příkaz pro čtení hesla. Pokud dojde ke ztrátě hesla, senzor SEN0188 se stane nepoužitelným. Není k dispozici žádný reset hardwaru nebo softwaru, který by mohl obnovit senzor nebo uložené otisky prstů.
Snímač má také výchozí čtyřbajtovou adresu FFFFFFFF Hexa, která je uložena v interní Flash paměti a lze ji změnit pomocí příkazu SetAddr.
Veškeré ověřování a ukládání otisků prstů se provádí uvnitř snímače. Tím se zabrání manipulaci s uloženými otisky prstů nebo ověřovacím procesem.
Před prvním použitím je vhodné odstranit všechny uložené otisky prstů v senzoru. To se provede příkazem Empty, který odstraní všechny šablony otisků prstů uložené v interní paměti snímače.
Závěr
Zabezpečení přístupu je čím dál více důležitější pro embedded a IoT systémy. Snímač otisků prstů DFRobot SEN0188 pomáhá rychle vyvinout systém pro zabezpečení přístupu do citlivých oblastí. Se sadou STM32F7308-DK Discovery s TFT LCD displejem a deskou SparkFun Electronics WRL-13678 Wi-Fi lze vytvořit bezpečnostní systém, který je jednoduchý, spolehlivý a snadno použitelný.
Článek vyšel v originále „How to Secure Microcontroller-Based IoT Devices with Fingerprint Authentication“ na webu DigiKey.com, autorem je Bill Giovino.