blogy logo
login PRIHLÁS SA
BLOG deadawp
ČLÁNKY
DISKUSIE
2
SLEDOVAŤ BLOG
Programátor
deadawp



Senzor odtlačku prsta - Arduino
pridal deadawp 27.12. 2020 o 22:30 (naposledy upravené 4.1. 2021 o 15:34)



Vyňaté z vlastnej eseje pre VŠ predmet Biometrie Obrázky a časť textov použitých zo zdroja: 
https://learn.adafruit.com/adafruit-optical-fingerprint-sensor?view=all

Senzor odtlačku prsta patrí k biometrickým systém slúžiacim pre identifikáciu osoby - overenie typu 1:N. Adafruit (popredný výrobca elektrotechnických modulov a senzorov) v roku 2012 vyvinul senzor odtlačku prsta komunikujúci po UART zbernici, ktorý je možné pripojiť napríklad k Arduinu, alebo podobnému mikrokontroléru. 

Arduino umožňuje pripojenie senzora k hardvérovým UART vývodom (HW TX a RX na vývodoch D0 a D1), ktoré však zablokujú UART linku pre nahrávanie nového firmvéru - programu. Z toho dôvodu je možné prostredníctvom knižnice SoftwareSerial emulovať UART rozhranie na akýchkoľvek dostupných digitálnych vývodoch. SoftwareSerial je navrhnuá pre nižšie dátové rýchlosti - do 115200, čo je na projekt tohto typu viac než dostačujúce, nakoľko senzor komunikuje maximálne na rýchlosti 57000 baud/s.

Senzor obsahuje vysokovýkonný signálový procesor Synochip’s Cordis 5+ AS601 pracujúci na frekvencii 120MHz, ktorý spracuje a vyhodnotí načítaný odtlačok prsta s dostupnými modelmi uloženými v pamäti. Je vybavený modernými hardvérovými akcelerátormi pre SEA/RSA algoritmus, ktoré zvyšujú rýchlosť šifrovania vypočítaného hashu. Výsledkom načítania odtlačku prsta je identifikácia používateľa na základe prehľadávania databázy odtlačkov. Snímok odtlačku prsta vykonáva CMOS senzor s vysokým rozlíšením.

Technické parametre senzora odtlačku prsta:

Operačné napätie

3.6 až 6V

Operačný prúd

120mA

Špičkový prúd

150mA

Čas digitalizácie odtlačku

< 1s

Detekčná plocha

14x18mm

Veľkosť súboru hashu

256B

Veľkosť súboru odtlačku prsta

512B

Kapacita úložiska

162 odtlačkov prsta

Rating bezpečnosti

5 (najvyšší)

FAR (False Acceptance Rate)

< 0.001% (Security level 3)

FRR (False Reject Rate)

<1.0% (Security level 3)

Interface

TTL (Serial)

Baud rate

9600 - 57000 baud/s

Pracovná teplota

-20 až + 50°C

Z technických špecifikácii zrejmé, že je systém bezpečný. Security level 3 je bežne používaný pre automatizované biometrické systémy pre vstup.  Miera FAR (False Acceptance Rate) je veľmi nízka, čo zodpovedá vysokej úspešnosti overenia užívateľa a nízkej hodnote.  Senzor môže byť pripojený k Arduinu a na základe použitého príkladu z kompatibilnej knižnice je možné využívať senzor v rôznych operačných režimoch - Enrolling, Searching. Uloženú vzorku v databáze môžeme nazvať aj model.

Enrolling
Proces Enrollingu zodpovedá načítaniu odtlačkov prsta užívateľa, spracovanie a ich uloženie do interného úložiska senzora pod zvolený identifikátor. Ukážková implementácia využíva hardvérové UART rozhranie pre používateľský vstup - zadanie ID pod ktorým bude odtlačok prsta uložený a výstup v podobe výpisu inštrukcií a informácii o úspešnosti / neúspešnosti načítania odtlačku.

Druhým komunikačným rozhraním je softvérovo emulovaný UART na ktorom komunikuje Arduino so senzorom odtlačku prsta. Na začiatku programu Arduino overí komunikáciu so senzorom a čaká na zadanie konkrétneho ID do UART rozhrania, pod ktoré má novú vzorku do systému uložiť. Po zadaní čísla vypíše Arduino používateľovi požiadavku na priloženie prsta k senzoru. Počas procesu skenovania prsta je prst krátko podsvietený svetlom.

Po úspešnom načítaní je používateľ opäť vyzvaný na priloženie rovnakého prsta pre opätovný sken. Pri zhode oboch odtlačkov je odtlačok prsta uložený do interného - flash úložiska senzora pod príslušné ID, ktoré si užívateľ zvolil. Pre Enrolling je možné použiť aj program SFG pre Windows, ktorý umožňuje načítať odtlačok prsta, uložiť ho do internej pamäte senzora a dokáže ho priamo z čítačky aj vizualizovať používateľovi.

V prípade, že je odtlačok prsta príliš rozmazaný / neostrý, vie nato senzor upozorniť a vyžaduje opätovné načítanie. Nakoľko je pre jeden odtlačok prsta priradené jedno ID, v prípade, že má používateľ viac referenčných odtlačkov pre overenie viacerých prstov, každý odtlačok je uložený pod samostatné ID.

Searching
Fáza Searchingu spočíta v načítania vzorky - odtlačku prsta a jeho porovnania s modelmi prsta v internej pamäti, teda je to proces identifikácie. Výstupom programu je výpis o úspešnosti načítania odtlačku prsta a jeho zhode, alebo nezhoda s databázou odtlačkov. V prípade zhody je výpis doplnený o konkrétny identifikátor, s ktorým sa aktuálna vzorka zhoduje a taktiež aj miera dôveryhodnosti - tzv. confidence. Na základe preddefinovaného thresholdu môže byť confidence použitý aj ako threshold pre overenie a umožnenie vstupu používateľa. 

Vyššia hodnota znamená vyššiu mieru dôveryhodnosť. Tak ako v predchádzajúcom prípade, aj teraz je možné využiť Windows program SFG, ktorý vie taktiež vypísať zhodu, prípadne nezhodu načítanej vzorky s databázou uložených aj s časom vykonania celej operácie.

Doplnkové možnosti senzora odtlačkov prsta
Senzor odtlačkov prsta ponúka ďalšie možnosti, ktoré zvyšujú bezpečnosť. Jednou z možností je priradenie hesla, ktoré umožní využívať všetky funkcionality senzora. Heslo je zaslané na začiatku, pri inicializácii komunikácie mikrokontrolérom, ktorý sa tým autentizuje pre komunikáciu. V prípade, že dôjde k odcudzeniu senzora nemôže útočník pristúpiť k databáze uložených odtlačkov prsta, pokým nie je schopný spustiť komunikáciu.

Nedokáže databázu prečítať, upraviť existujúce vzorky. Uhádnutie hesla je náročné, nakoľko môže obsahovať veľké, malé písmená, číslice a špeciálne znaky. Knižnica pre senzor obsahuje implementáciu aj pre vymazanie špecifických odtlačkov prsta - prostredníctvom zadanie konkrétneho ID, alebo dokáže vymazať aj celú databázu modelov zo senzora odtlačkov prsta. Taktiež obsahuje možnosti aj pre výpis existujúcich modelov - uložených odtlačkov prsta z databázy. Základná aplikácia, ktorú príklady použitia knižnice pre senzor odtlačku prsta poskytujú môže byť rozšírená a preprogramovaná na špecifickú aplikáciu, ktorá bude zohľadňovať rôzne uložené odtlačky pod rôznymi ID pre konkrétneho používateľa.

Bude tak možné priamo určiť osobu, ale aj prst, ktorý použila pre identifikáciu. V prípade využitia inej Arduino platformy - napríklad Leonardo s AtMega32u4 čipom, ktorá podporuje mód HID (funguje aj ako klávesnica / myš) je možné realizovať prihlásenie do operačného systému, alebo iného programu prostredníctvom odtlačku prsta. Po overení používateľa odtlačkom prsta dokáže Arduino zadať vstup - preddefinované znakové heslo do operačného systému a tak používateľa autorizovať. Používateľ tak heslo nemusí ani poznať, môže byť priamo uložené iba v Arduino aplikácii.

User Manual k senzoru odtlačku prsta: 
https://cdn-shop.adafruit.com/datasheets/ZFM+user+manualV15.pdf



Prístupov 7284
Kvalita článku
hlasov 0

PRÍSPEVKY
SLEDOVAŤ
Prosím prihláste sa pre možnosť pridania komentáru.
Prihláste sa, alebo použite facebook login facebook login
ĎALŠIE ČLÁNKY V BLOGU
Update grafov, ukážkových kódov - Hladin...
[ 16.11.2024] (príspevkov 0)
XIAO ESP32-C6 od Seeed Studio
[ 10.11.2024] (príspevkov 0)
ESP-IDF v4.4.2 prechod na v5.2
[ 5.11.2024] (príspevkov 0)
Krabička pre RFID DOMINATOR 2.0
[ 18.10.2024] (príspevkov 0)
Známe neduhy - Ecotec 1.6E Opel/GM Chevr...
[ 8.10.2024] (príspevkov 0)
Cold-start BQ25570 vs BQ25504 od Texas I...
[ 2.8.2024] (príspevkov 0)
EG21-G - MQTT pripojenie na Thingsboard
[ 5.6.2024] (príspevkov 0)
Quectel EG21-G - HTTP request
[ 17.5.2024] (príspevkov 0)
Tip na darček k jubileu 60
[ 29.4.2024] (príspevkov 0)