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