XIII. Kari Műszaki és Humán Tudományos Diákköri Konferencia (TDK) Marosvásárhely, 2014. április 11-12.
Gombnyomás – dinamika Android eszközökön
Szerző: László Izabella Sapientia Erdélyi Magyar Tudományegyetem, Marosvásárhely, Műszaki és Humántudományok Kar, Informatika szak, alapképzés, III. év Témavezető: Dr. Antal Margit egyetemi adjunktus Sapientia Erdélyi Magyar Tudományegyetem, Műszaki és Humántudományok Kar– Marosvásárhely, Matematika-Informatika Tanszék
Tartalomjegyzék: 1
Kivonat ...................................................................................................................................... 2
2
Bevezetés ................................................................................................................................... 3
3
2.1
Témaválasztás indoklása ..................................................................................................... 3
2.2
Kutatási kérdés ................................................................................................................... 4
2.3
A dolgozat struktúrája......................................................................................................... 4
Elméleti megalapozás ................................................................................................................. 4 3.1
3.1.1
Regisztrációs folyamat ................................................................................................ 7
3.1.2
Hitelesítés és azonosítás .............................................................................................. 8
3.1.3
Előnyök/hátrányok ...................................................................................................... 9
3.2 4
5
Biometria............................................................................................................................ 4
Billentyűzési ritmus ...........................................................................................................10
A kutatás módszertana ...............................................................................................................11 4.1
Célkitűzések ......................................................................................................................11
4.2
Adatgyűjtő szofver leírása .................................................................................................12
4.2.1
Funkciók ....................................................................................................................12
4.2.2
Az alkalmazás felépítése ............................................................................................13
Mérési eredmények ...................................................................................................................16 5.1
Osztályozó algoritmusok....................................................................................................18
5.1.1
Bayes .........................................................................................................................18
5.1.2
Naive Bayes ...............................................................................................................18
5.1.3
SVM (Support Vector Machines) ...............................................................................19
5.1.4
K – Nearest Neighbour (k - NN) ................................................................................19
5.1.5
J48 döntési fák ...........................................................................................................20
5.1.6
Random forest............................................................................................................21
6
Következtetések ........................................................................................................................24
7
Hivatkozások ............................................................................................................................25
1
1 Kivonat A számítógépeken történő információk tárolása és feldolgozása szükségessé tette, hogy megvédjük azokat a betolakodóktól. A technika fejlődésének köszönhetően egy olyan ponthoz jutottunk, ahol már nemcsak számítógépeken tárolhatjuk a bizalmas információkat, hanem akár okostelefonokon is, hiszen az okostelefon is a modern társadalom részévé vált. Telefonon is ugyanúgy meg kell védenünk személyes adatainkat, jelszavainkat, mint számítógépen. Éppen ezért a telefon alapú alkalmazások esetén is szükség van a felhasználó hitelesítésére. A hitelesítés az a folyamat amely által megtudjuk határozni, hogy valaki tényleg az-e akinek vallja magát. Ezen alkalmazás fő célja, hogy a felhasználókat Android eszközökön tudja hitelesíteni és ezáltal biztonságos használatot nyújtson. Erre a célra már léteznek különböző megoldások, amelyek biometriát használnak fel. Ebben az esetben azonban az arc, az ujjlenyomat vagy éppen aláírás biometria helyett az alkalmazás a viselkedési biometria alapján dolgozik. A billentyűzet segítségével a felhasználók egyedi jellemzőihez jut hozzá, hiszen mindenki egyéni gépelési ritmussal rendelkezik, mindenki másképp ír egy sms-t. Az alkalmazás két részből áll. Az első rész egy adatgyűjtő, amely begyűjti a különböző felhasználóktól az egyedi jellemzőket, mialatt azok egy adott kódot többször begépelnek telefonjukba. A második rész célja az adatok statisztikai elemzése, majd egy felhasználói modell elkészítése, amely segítségével elvégezhető a felhasználó hitelesítése.
2
2 Bevezetés 2.1 Témaválasztás indoklása Manapság nem lehet egyik helyről a másikig úgy eljutni, hogy ne lássunk több embert is aki okostelefonnal a kezében jár-kel az utcán. Séta közben egy forgalmas városban nehezebb belemerülni a telefon nyújtotta élvezetekbe, viszont a tömegközlekedési járműveken mi más is lenne jobb elfoglaltság, minthogy facebook-ozni vagy éppen tanulmányozni egy nemrég piacra dobott alkalmazást? Az emberek többsége él ezekkel a lehetőségekkel. Az egyszerű átlagembertől kezdve a diákokon át egészen az üzletemberekig szinte mindenki előszeretettel használja ezeket a “kütyüket”. Valóban hasznosak, hiszen internethez való hozzáférést biztosítanak, jegyzetet készíthetünk a mindennapi teendőinkről, emlékeztetőt állíthatunk be, hogy ne mulasszunk el fontos eseményeket, segítenek a tájékozódásban, fényképezőgépként is funkcionálnak, de akár adatokat és személyes információkat is tárolhatunk rajtuk, nem is beszélve a rengeteg ügyes kis alkalmazásról, melyek mindezen letehetőségek mellett könnyebbé és egyszerűbbé teszik az eszközök használatát. Éppen ezért hatalmas népszerűségnek örvendenek. Senkinek sincs ellenére az, hogy gyakorlatilag az ember zsebében elfér egy miniatűr számítógép. Ugyanakkor engem is magával ragadott a készülékek által nyújtott számtalan lehetőség, és ezért igyekeztem olyan témát választani, amely által kicsit - nem csak felhasználóként, de programozóként is - elmélyülhetek az okostelefonok világában. Manapság mindenki nagy hangsúlyt fektet a biztonságra, annál is inkább mivel sok az illetéktelen betolakodó, legyen szó akár nagyvállalatokról vagy éppen egy kis üzlethelyiségről. Nemrég még ha biztonságról esett szó, akkor az ember a számítógépre gondolt, de ma már adataink egy részét nemcsak számítógépeken tároljuk. A mobilfelhasználók is igénylik, hogy adataik biztonságban legyenek. A biztonságot pedig leggyakrabban jelszóval valósítják meg. De mi történik akkor ha valaki valamilyen módon hozzájut a titkos kódhoz? Csak épp egy óvatlan pillanat kell, hogy az illető “belemásszon” a készülékbe... Ahogyan az idő telik egyre több újdonságot “pakolnak” bele az okostelefonokba és ezzel párhuzamosan lesz egyre fontosabb a biztonság, valamint az, hogy a felhasználókat jól tudják a készülékek hitelesíteni. Amikor megválasztottam a dolgozatom témáját, arra gondoltam, hátha sikerül egy lépést előre tennem a nagyobb biztonság érdekében. 3
2.2 Kutatási kérdés Az emberek az általános tulajdonságaik mellett egyedi tulajdonságokkal is rendelkeznek, amelyek alapján azonosíthatjuk őket. Ilyen lehet például az aláírás vagy az ujjlenyomat. Köztudott, hogy egy felhasználó amikor begépel egy jelszót a számítógépbe, vagy akár telefonba, akkor egy szabványos beviteli eszközt használ: a billentyűzetet. A dolgozatomban azt vizsgálom, hogy a billentyűzési ritmushoz tartozó információk milyen pontossággal azonosítják a felhasználókat. Számítógépes billentyűzési ritmus vizsgálatával nagyon sok kutató foglalkozott [4, 7, 12]. Jelen vizsgálat viszont nem klasszikus billentyűzetet használ a billentyűzési minták rögzítésére, hanem érintőképernyős okostelefonokat, amelyek a klasszikus billentyűzési jellemzők mellett képesek a lenyomás erősségét is rögzíteni. Éppen ezért azt fogom megvizsgálni, hogy ha a klasszikus billentyőzési jellemzőket kiegészítjük a nyomásinformációkkal, milyen mértékű javulást érhetünk el a felhasználók azonosításában.
2.3 A dolgozat struktúrája A továbbiakban részletesebben érintem a biometria, azon belül pedig a viselkedési biometria fogalmát és az ehhez kapcsolódó olyan tudnivalókat, amelyek fontos szerepet töltenek be az alkalmazás működésének megértésében. Szó lesz arról, hogy hogyan is valósul meg egy felhasználó hitelesítése és azonosítása egy biometrikus rendszerben. Ezeket követően már nem lesz nehéz felvezetni, hogy mi is az a billenytyűzési ritmus és mi minden rejlik ennek a háta mögött. Ez a kis elméleti áttekintő fogja megelőzni a célkitűzéseim felvázolását, valamint az adatgyűjtő szoftverem részletes bemutatását és implementációját, amely által a felhasználók egyedi jellemzőihez jutok hozzá. Végezetül a különböző jellemzők és a felhasznált módszerek segítségével – amelyekről szintén ejtek néhány szót – szemléltetni fogom a mérési eredményeket és a következtetéseket is.
3 Elméleti megalapozás 3.1 Biometria Az informatikában ha adatbiztonságról van szó, már rögtön felmerül a biometria fogalma is. A biometria két szóból tevődik össze: bio és metria. A bio- előtag görög eredetű, amely az 4
életfolyamatokkal kapcsolatos összes dolgot jelenti. Az ebből kialakult bió melléknév a „természetes” dolgokat, a metria, görög-latin eredetű szó pedig „valaminek a mérését, mérésével való foglalkozását’’ jelenti. Következésképpen a biometria jelentése: „az életfolyamokkal kapcsolatos jellemzők mérése” [3]. A biometrikus rendszerek azonosítják az embert a mérhető jellemvonásaik alapján és legfőbb céljuk a lehető legjobb teljesítmény elérése. Egy biometrikus rendszert két kategóriába sorolhatunk: hitelesítő és azonosító rendszerek. 1. Hitelesítés (authentication): A hitelesítés az a folyamat, amely által megtudjuk határozni, hogy valaki tényleg az-e akinek vallja magát. Ehhez szükség van az egyéntől előre begyűjtött mintákra, mert az új jellemzőket azokkal össze kell hasonlítani. Egy hitelesítés során tehát nem kell a felhasználó jellemzőit a rendszer összes többi felhasználójával összevetni, csak a sajátjaival: egy az egyhez hasonlítás. Példa a mindennapokból: Egy iskolában éppen nyelvvizsga kezdődik és a tanárnő névsor szerint olvassa a jelentkezők nevét. Amikor valaki hallja a saját nevét akkor bemehet a terembe, de előbb fel kell mutassa a személyazonossági igazolványát. A tanárnő megnézi az illető fényképét, nevét és ha minden megeggyezik akkor a diák mehet is vizsgázni. A hitelesítési folyamat gyakran kategorizálva van a magába foglalt tényezők száma szerint:
valami amit tudok (pl: jelszó)
valami ami a birtokomban van (pl: kártya, igazolás, személyazonossági igazolvány)
valami amivel rendelkezek (pl: biometrikus ujjlenyomat, írisz szkennelés)
Egy erős hitelesítés az említettek közül, két vagy három folyamat kombinációján alapszik, ugyanakkor ez egy azonosító folyamatot is magába foglal, amely társítja a személyt az identitásával. Ebben a folyamatban a rendszer arra törekszik, hogy ismereteket szerezzen egy témáról (valakiről) és társítsa azokat egy sor előre meghatározott vagy ismeretlen identitással. 2. Azonosítás (identification): Célja egyetlen személyt felismerni több ember közül. A sikeres azonosításhoz szükségünk van egy adatbázisra vagy egy állományra, amelyben tároljuk az érintett egyének azonosítóját és jellemzőit. A személyazonosságot úgy állapítjuk meg, hogy megnézzük az vizsgálandó egyén jellemzői melyik másik ember 5
jellemzőihez hasonlítanak leginkább. A folyamat végrahajtása során egy a többhöz típusú hasonlítást végzünk. Példa a mindennapokból: egy iskolában a tanító néni éppen osztja ki a felmérőket, amikor észreveszi, hogy az egyikre nincs ráírva a tanuló neve. Megpróbál a leírt szöveg stílusa és formája alapján rájönni, hogy kié lehet az a dolgozat. Ez is egyfajta azonosítás, hiszen a tanító néni kézírás alapján egy egész olsztálynyi gyerek közül dönti el, hogy ki a tulajdonos. A biometrikus azonosítás esetén többféle azonosítási módszer közül is választhatunk. Íme néhány ismertebb, amelyek mindegyike emberi tulajdonságokat használ fel:
ujjlenyomat azonosítás,
tenyérnyomat azonosítás,
arcfelismerés,
írisz és retina azonosítás,
DNS azonosítás.
A módszer választása függ attól, hogy milyen rendszerbe kell belépni, továbá függ a felhasználási terület elvárt biztonsági szintjétől is. A felhasználási területeket három nagy csoportba sorolhatjuk: közigazgatási alkalmazások, üzleti alkalmazások és egészségügyi alkalmazások [5].
6
1. ábra: Személyazonosítási technikák alkalmazási területei [5]
3.1.1 Regisztrációs folyamat Minden biometrikus rendszer esetén szükség van egy regisztárciós folyamatra (enrollment process). Ennek a folyamatnak az a célja, hogy minél több biometrikus adatot gyűjtsön a felhasználókról. Maga az eljárás három lépésből tevődik össze: 1. Minták megszerzése (Acquiring samples): mialatt a felhasználó legelőször kapcsolatba kerül a biometrikus rendszerrel, a rendszer egy beviteli eszköz (billentyűzet) segíségével összegyűjti az adatokat. Nagyon fontos, hogy jó minőségű adatokat gyűjtsünk ebben a fázisban. Sok esetben még többszöri adatgyűjtés során sem jutunk hozzá megfelelően jó minőségű mintákhoz. Vannak olyan felhasználók is akik nem tudnak ilyen adatokat szolgáltatni. Ilyenek a némák, az olyan emberek akiknek hiányzik az ujjuk, vagy esetleg sérült a szemük. Sok felhasználónak nincs tapasztalata a biometrikus rendszereket illetően, ezért egy szakembernek el kell magyaráznia, hogy hogyan működik a biometrikus adatok gyűjtése a regisztráció alatt. 2. A fő jellemzők létrehozása (Creating master characteristics): Ebben a lépésben a rendszer feldolgozza az összegyűjtött adatokat. A rendszer ritkán hasonlítja össze vagy tárolja a biometrikus jellemzőket nyers formában (pl. bitmap). 3. A fő sablonok tárolása (Storing master templates): Miután a rendszer kinyerte a főbb jellemzőket az első mintákból, tárolja azokat és előállít egy új sablont. A helyes 7
megkülönböztető adatok kategorizálásával megkönnyíthető a későbbi keresés. A rendszer
valamilyen tárhelyen megőrzi ezeket a modelleket (pl: kártya, központi
adatbázis stb). Ha az a cél, hogy kizárólag csak egy ember (tulajdonos) férjen hozzá ezekhez az információkhoz, akkor a tárolás szempontjából a legjobb megoldást a kártya jelenti. Ha az érzékeny adatokat egy központi adatbázisban tároljuk, akkor különböző személyek visszaélhetnek a hozzáférési jogokkal.
3.1.2 Hitelesítés és azonosítás Miután egy felhasználó átesett a regisztrációs folyamaton, lehetőség van az illető személy hitelesítésére vagy azonosítására. Ez az automatizált folyamat négy lépésből áll: beszerzés, létrehozás, összehasonlítás, és a döntés. 1. Beszerzés (acquisition): Ahhoz, hogy az új felhasználó biometrikus jellemzőit össze tudjuk hasonlítani a már meglévő sablonokkal, a rendszer kell rendelkezzen a felhasználótól származó új információkkal is. Ezeket az adatokat rendszerint a bejelentkezési pontokan gyűjtik be. Különböző technikákkal megállapítható az is, hogy élő felhasználóról van-e szó vagy sem. Ilyen technika lehet például arcfelismerés alapú rendszereknél, hogy több egymás követő mintát is vesznek a felhasználótól. 2.
Létrehozás (creation): Az új biometrikus adatokból a rendszer kinyeri a jellemzőket. Előfordulhat, hogy a felhasználói minta nem megfelelő minőségű, ezért ilyen esetben szükségszerű az előző lépést megismételni.
3.
Összehasonlítás (comparison): Ebben a lépésben a rendszer öszehasonlítja az újonnan szerzett adatokat a regisztráció során begyűjtött adatokkal. Az illető felhasználó hitelesítése esetén a rendszer összehasonlítja az új felhasználó jellemzőit a hozzá tartozó sablonnal, azonosítás esetén pedig az összes többi felhasználó sablonjával. A hasonlítás eredménye általában egy érték.
4.
Döntés (decision): Ez az utolsó lépés az ellenőrzési folyamatban. Ebben a részben derül ki, hogy a rendszer elfogadja vagy elutasítja az új felhasználót. Ezt az összehasonlítás során kapott érték szeirnt dönti el, ugyanis van egy előre meghatározott köszöbérték, amellyel a kapott értéket összehasonlítja. Ha az új érték legalább akkora, vagy még nagyobb, mint a küszöbérték, akkor a felhasználót a rendszer elfogadja.
Egy biometrikus rendszer ellenőrzés esetén két hibát követhet el:
jogos felhasználó elutasítása,
csaló elfogadása. 8
A két
hiba
mértékét
kifejezhetjük
százalékban
az
összes
összehasonlítás
függvényében. Az EER (Equal Error Rate) az a pont, ahol a hamis elfogadási arány (FAR – False Acceptance Rate) megegyezik a hamis elutasítási aránnyal (FRR – False Rejection Rate). A gyakorlatban
az EER mutatja meg, hogy mennyire pontos a
rendszer. A hamis elutasítási arány, ha kölönösen magas (nagyobb, mint 10%) , akkor a jogos felhasználók nem tudnak hozzáférni a rendszerhez. Napjainkban csak az írisz-, retina- és ujjlenyomat biometriára alapozott rendszerek képesek sok felhasználós rendszerekben azonosítást végezni. A biometrikus technika teljesítménye nagyban függ a jellemzőktől, melyeket két kategóriába sorolhatunk: Genotípus: Ide tartoznak azok a jellemzők, amelyek az idő múlásával nem változnak. Következésképpen az összehasonlító
algoritmus
nem kell a változásokhoz
alkalmazkodjon és így az FRR alacsony maradhat. Az ilyen jellemzők hátránya, hogy segítségükkel nem lehet ikertestvérek között különbséget tenni. Megoldásképpen a FAR alsó határa megeggyezik a populációban szereplő ikrek számának arányával. Fenotípus: Ezek a jellemzők nem szabnak határt a FAR-nak, de idővel az FRR-nek igen (alsó határ).
3.1.3 Előnyök/hátrányok A biometriát felhasználó rendszereknek is megvannak az előnyei és hátrányai. Előnyük, hogy azt teszik amit kell: hitelesítik a felhasználót. A biometrikus jellemzők állandóak és nem lehet őket megváltoztatni, így a felhasználók nem adhatják oda őket másoknak, mint a kártyákat vagy egyszerű jelszavakat. Annak ellenére, hogy egyik ember nem tudja ellopni a másik ember biometrikus jellemzőit, számítógépes rendszerek és hálózatok még ellophatják. A legtöbb biometrikus technika olyan jellemzőket vesz alapul, amelyeket nem lehet elfelejtni vagy elveszíteni. Ez megkönnyíti mind a felhasználó, mind az adminisztrátor tevékenységét, hiszen kiküszöböli az újra kiadott vagy ideiglenes kártyákkal vagy jelszavakkal járó problémákat és költségeket. A biometrikus jellemzők nem titkosak, mégsem töri meg a biztonságot egy felhasználó ujjlenyomata vagy írisz mintája. Egy jelszó esetén természetesen ez már nem igaz. A rendszer akkor is megtagadja a belépést, ha valaki halott, vagy mesterséges jellemzőkkel próbál meg belépni. A biometrikus rendszerek másik előnye a sebesség. Egy ismert felhasználó írisz-alapú azonosítása csak 3 másodpercig tart, elővenni a kulccsomót és kiválasztani belőle a megfelelő kulcsot és használni viszont eltarthat 10 másodpercig is. Mindezek mellett a biometrikus azonosító módszereknek hiányosságai is vannak, például pontosság és sebesség szempontjából még javításra szorulnak [6]. 9
3.2 Billentyűzési ritmus Különböző kutatási intézményekben a laboratóriumokba ujjlenyomat vagy tenyérnyomat alapján engedik be az embereket. Manapság a számítógépek körében nagyon elterjedt az arcfelismerés általi azonosítás. A telefonokat, mint hordozható készülékeket tekintve figyelembe kell vennünk, hogy a fent említett módszerek (ujjlenyomat azonosítás, tenyérnyomat azonosítás, arcfelismerés stb.) többsége nem alkalmazáható, vagy alaklmazása nem hatékony. Itt egy más megközelítés a kulcs, mégpedig a viselkedési biometria, melynek használata során a felhasználó tudta nélkül is gyűjthetünk adatokat. Ebbe a kategóriába tartozik például a már emlitett aláírás, a hang vagy a billentyűzési ritmus. Ezek mind az emberek viselkedéséhez kapcsolódnak és minden ember esetén egyediek. A billentyűzési ritmus alatt egy tempót értünk, mégpedig azt tempót, amellyel egy személy ír vagy gépel. Nemcsak a korszerű készülékek esetén - mint a számítógép, telefon vagy táblagép beszélhetünk erről a kifejezésről. Ha visszagondolunk gépelés szempontjából a kezdetekre, akkor mindjárt eszünkbe jut az írógép, melynek billentyűzete nem sokban különbözik a ma használatos billentyűzetektől. A betűk ugyanúgy helyezkedtek el rajtuk, persze valamivel kevesebb gombjuk volt, hiszen akkoriban csak az írás volt a lényeg, ma már a számítógépes billentyűzetek kicsitt több lehetőséget nyújtanak. A 19. század közepén széleskörben használták a távíró gépeket. Már akkor megfigyelhető volt, hogy a telegráf szolgáltatók egymást tudták azonosítani gépelési ritmusuk alapján. Nem sokkal később az Amerikai Egyesült Államokban végzett kutatások során megállapították, hogy a gépelési minták is egyedi jellemzőket tartalmaznak. Ezek különböző információkat biztosítanak, amelyeket fel lehet használni az azonosításhoz (identification) és hitelesítéshez (authentication) Az ember gépelési mintája egy viselkedési jellemző, amely egy bizonyos tanulási idő után stabillá válik, és nem lehet azt elveszíteni vagy elfelejteni. Minden biometrikus viselkedésben nagy eltéréseket lehet megfigyelni. A kutatások során észrevették, hogy a távírógépet használó emberek is fel tudták ismerni azokat, akikkel már dolgoztak együtt, az alapján ahogyan hallgatták a jellegzetes gépelési mintákat. Sokan közülük azt állíották, hogy az üzenetet küldő személy nemét is megtudják határozni az üzenetküldés stílusa alapján. Megfigyelték, hogy a telegráfon történő üzenetfogadás megtanulása pszicho-fizikai szokások fejlesztésén alapszik. [3]. Egy felhasználó billentyűzési ritmusáról is lehet egy modellt készíteni a biometrikus jellemzők alapján. A felhasználó azonosításához és hitelesítéséhez is szükségünk van ezekre a bizonyos jellemzőkre. Amint már említettem, ezekhez az információkhoz a billentyűzet segítségével lehet hozzájutni, ezért szükségem volt egy egységes kódra, amely jelszóként 10
funkcionál. Uno Andre Johansen szintén foglalkozott ezzel a témakörrel, és én is az általa választott jelszóval dolgoztam: .tie5Roanl [4]. Az adatgyűjtő szoftverben a felhasználóknak ezt a kódot kell „bepötyögniük” és miközben ezt teszik, a szoftver minden gombnyomásnál begyűjti a megfelelő információkat. Ezek az információ a következőek: 1. User id – felhasználó azonosítója 2. Device id – eszköz azonosítója 3. Session id – szesszió 4. Character – lenyomott karakter 5. DownTime – lenyomási idő 6. UpTime – felengedési idő 7. Pressure – nyomáserősség 8. FingerArea – érintési felület Fontos tudni a felhasználó azonosítóját, hiszen azáltal tudjuk elkülöníteni a különböző személyekhez tartozó jellemzőket. A későbbiekben a fenti információk segítségével tudok az adott felhasználóról egy modellt készíteni. Az adatgyűjtő szoftver leírásánál fogom részletezni, hogy miként valósítottam meg az adatgyűjtést.
4 A kutatás módszertana 4.1 Célkitűzések A projekt elsődleges célja, hogy felmérjem milyen pontossággal lehet a felhasználókat billentyűzési ritmusuk alapján azonosítani és hitelesíteni. Ahhoz, hogy ezt megtudjam vizsgálni, szükségem van a felhasználóktól előre begyűjtött adatokra. Ezt egy adatgyűjtő alkalmazás segíségével fogom összegyűjteni. Azokon az adatokon statisztikai elemzéseket kell végezzek, mely által létre tudom hozni a felhasználók modelljét. Amikor a modellek létrejönnek, lehetőség nyílik arra, hogy megnézzem az alkalmazás második része mennyire megfelelően tudja megállapítani, hogy egy újonnan érkező adat melyik felhasználóhoz tartozik.
11
4.2 Adatgyűjtő szofver leírása Az adatgyűjtó szoftver feladata, hogy végrehajtsa a regisztrációs folyamatot, majd begyűjtse a billentyűzésből származó adatokat. Első lépésként a felhasználó kell regisztráljon, majd, ha ez megörtént, akkor a következő lépésben lehetősége nyílik az adatok szolgáltatására. Az adatok szolgáltatása megszakításokkal is történhet, ugyanis a felhasználó bármikor megszakíthatja a folyamatot (kijelentkezhet), majd amikor módjában áll folytatni, bejelentkezhet. Így további adatgyűjtésre kerülhet sor. Minden megszakítás után új adatgyűjtési szesszió következik.
2. ábra: Adatgyűjtő szoftver - use case diagram
4.2.1 Funkciók
reszgisztráció – a felhasználó személyes adatainak bevitele (email cím, nem, születési dátum, okostelefonok használatában való jártasság)
bejelentkezés – email cím megadásával történik
adatok gyűjtése – a felhasználó 3 szesszióban 20 alkalommal helyesen (törlés nélkül) beírja a jelszót. Ezalatt az alkalmazás a felhasználó billentyűzési ritmusa alapján egy szöveges állomámyban tárolja a jellemzőket. 12
4.2.2 Az alkalmazás felépítése A szoftver három képernyőből (Activity) tevődik össze: 1. Bejelentkezési képernyő (Login Activity):
Ez az alkalmazás kezdőképernyője, ahol a felhasználónak bejelentkezés
lehetősége és
a
van
regisztráció
választani között.
a A
bejelentkezéshez csupán egy email címet kell megadni, viszont ezt megelőzően egy regisztráció szükséges. Amennyiben egy felhasználó már regisztrált, sikeresen be tud jelentkezni, ellenkező esetben hibaüzenetet kap. Bejelentkezés után a következő képernyő az adatgyűjtő képernyő (Data Collection Activity). A regisztrációs gombra kattintva pedig a regisztrációs képernyő (Register Activity) jelenik meg. 3. ábra: Bejelentkezési képernyő
2.
Regisztrációs
képernyő
(Register
Activity): A regisztrációs képernyőn az első lehetőségnél a felhasználónak meg kell adnia az email címét. Utána a két rádiógomb közül kiválasztja a megfelelő nemet. A következő lehetőségnél a „set” gombra kattintva be kell állítani a születési dátumot (alapértelmezetten az aktuális dátum jelenik meg). Végül a felhasználóra bízom, hogy döntse
el
magáról
mennyire
jártas
az
érintőképernyős eszközök használatában. Ezt egy 1-től 10-ig számozott skálán kell meghatározza. Az 0-ás érték azt jelenti, hogy egyáltalán nem 4. ábra: Regisztrációs képernyő
használt ilyen eszközöket, a 10-es pedig, hogy nagyon is ért az ilyen eszközök használatához.
Amennyiben minden megfelelően ki van töltve, a „Done ” gombra kattintva egy dialógus ablak jelenik meg. Ez az ablak tartalmazza az adatvédelmi nyilatkozatot, mely szerint a felhasználó személyes adatai nem fognak sehol nyilvánosan szerepelni. A regisztráció 13
utolsó
mozzanata,
hogy a
felhasználó
ezt
elfogadja. Ha ez is megtörtént, akkor az alkalmazás
az
adatgyűjtő
képernyőt
(Data
Collection Activity) jeleníti meg. Ez egyben az első bejelentkezést is jelenti. Adatgyűjtő képernyő (Data Collection Activity): Az alkalmazás harmadik és egyben utolsó képernyője keresztül
az lehet
adatgyűjtő begyűjteni
képernyő. a
Ezen
felhasználók
jellemzőit, miközben azok beírják a megadott 5. ábra: Adtvédelmi nyilatkozat
jelszót. (Az alkalmazás más szöveget nem fogad el!) Egy szesszió alkalmával 20 helyes adatot kellene bevinni, és a szoftver jelzi, hogy éppen hányadiknál tartunk. A bal felső sarokban levő érték azt jelzi, hogy a regszitrációtól számolva összesen mennyi adatunk van. Amíg egy személy
beírja
a
kódot,
az
alkalmazás
folyamatosan gyűjti az illető billentyűzésre vonatkozó biometrikus adatait (User id, Device id, Session id, Character, DownTime, UpTime, Pressure, FingerArea). Miután a felhasználó beírta a kódot, a „done” gombra kattintva a begyűjtött adatok elmentésre kerülnek egy szöveges állományban, amelyet az alkalmazás 6. ábra: Adatgyűjtő képernyő
hoz létre. A szoftver egy saját billentyűzettel rendelkezik, amelyet a normál billentyűzeteknek
megfelelően alakítottam ki, hogy ne jelentsen nehézséget a használata. A billentyűzet négy részből tevődik össze:
kisbetűs billentyűzet,
nagybetűs billentyűzet,
számok és speciális karakterek,
további speciális karakterek.
14
A háttérben az alkalmazás két szöveges állományt hoz létre. Egyikben a regisztrált felhasználók vannak számon tartva (a regisztráció folyamán megadott személyes adatokkal együtt), a másikban pedig mindenkinek a billentyűzései során elmentett biometrikus jellemzői. A regisztráció folyamán minden felhasználó adatairól egy objektumot hozok létre. A szöveges állomány minden sora egy ilyen objektum adatait tartalmazza (Felhasználó adatai). Van továbbá még egy fontos objektum, amely azokat az adatokat tartalmazza, amelyeket a szoftver minden egyes gomb lenyomása esetén rögzít (Karakter adatai).
5. ábra: Felhasználó adatairól, illetve karater adatokról készült olsztályok Ezeken kívül a szoftver négy fő alkotóelemből tevődik össze, amelyeket a mellékelt osztálydiagramon szemléltetek:
15
6. ábra: Osztály diagram A KeyFunctionalities osztály arra szolgál, hogy azon keresztül mindhárom képernyőn lehessen a billentyűzetet váltani.
5 Mérési eredmények Minden egyes begépelt jelszóhoz tartozó nyers adatokból három jellemzősorozatot állítottam elő. Az első a billentyűnkénti lenyomási időket tartalmazza, a második ujj által érintett felület nagyságát billentyűnként, míg a harmadik mind a lenyomási időt, mind pedig az érintett felület nagyságát. Az Android operációs rendszer az érintett felület nagyságát egy normalizált értékként téríti vissza. Az osztályozási méréseket a Weka programcsomaggal végeztem,
16
amely ARFF formátumot használ a minták tárolására. A következő három táblázat az osztályozáshoz használt adatokat szemlélteti ARFF formátumban. @relation touch @attribute user_id {1,2,3,4,5,6,7,8,9,10} @attribute holdtime1 numeric @attribute holdtime2 numeric @attribute holdtime3 numeric @attribute holdtime4 numeric @attribute holdtime5 numeric @attribute holdtime6 numeric @attribute holdtime7 numeric @attribute holdtime8 numeric @attribute holdtime9 numeric @attribute holdtime10 numeric @attribute holdtime11 numeric @attribute holdtime12 numeric @attribute holdtime13 numeric @attribute holdtime14 numeric @data 1 129 1 105 ...
120 102
105 103
106 110
96 43
100 133 107 80 88 115 111 106
99 97
87 109 124 98
93 107 126 96
1. Táblázat Lenyomási idők @relation touch @attribute user_id {1,2,3,4,5,6,7,8,9,10} @attribute @attribute @attribute @attribute @attribute @attribute @attribute @attribute @attribute @attribute @attribute @attribute @attribute @attribute
fingerarea1 fingerarea2 fingerarea3 fingerarea4 fingerarea5 fingerarea6 fingerarea7 fingerarea8 fingerarea9 fingerarea10 fingerarea11 fingerarea12 fingerarea13 fingerarea14
numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric
@data 1 0.1728000044822693 0.3870967626571655 0.32258063554763794 0.3870967626571655 0.3870967626571655 0.3870967626571655 0.35483869910240173 0.29032257199287415 1 0.1728000044822693 0.4516128897666931 0.4193548262119293 0.3870967626571655 0.35483869910240173 0.29032257199287415 0.29032257199287415 0.25806450843811035 ...
0.32258063554763794 0.29032257199287415 0.32258063554763794
0.4516128897666931 0.32258063554763794 0.29032257199287415
0.3870967626571655 0.29032257199287415 0.29032257199287415
0.4193548262119293 0.29032257199287415 0.4193548262119293
2. Táblázat Érintett felület nagysága @relation touch @attribute user_id {1,2,3,4,5,6,7,8,9,10} @attribute holdtime1 numeric @attribute fingerarea1 numeric @attribute holdtime2 numeric @attribute fingerarea2 numeric @attribute holdtime3 numeric @attribute fingerarea3 numeric @attribute holdtime4 numeric @attribute fingerarea4 numeric @attribute holdtime5 numeric @attribute fingerarea5 numeric @attribute holdtime6 numeric
17
@attribute fingerarea6 numeric @attribute holdtime7 numeric @attribute fingerarea7 numeric @attribute holdtime8 numeric @attribute fingerarea8 numeric @attribute holdtime9 numeric @attribute fingerarea9 numeric @attribute holdtime10 numeric @attribute fingerarea10 numeric @attribute holdtime11 numeric @attribute fingerarea11 numeric @attribute holdtime12 numeric @attribute fingerarea12 numeric @attribute holdtime13 numeric @attribute fingerarea13 numeric @attribute holdtime14 numeric @attribute fingerarea14 numeric @data 1 129 0.1728000044822693 120 0.3870967626571655 105 0.32258063554763794 106 0.4516128897666931 96 0.32258063554763794 100 0.3870967626571655 133 0.29032257199287415 107 0.32258063554763794 80 0.3870967626571655 99 0.3870967626571655 87 0.32258063554763794 109 0.29032257199287415 93 0.35483869910240173 107 0.29032257199287415 1 105 0.1728000044822693 102 0.4516128897666931 103 0.3870967626571655 110 0.4193548262119293 43 0.4193548262119293 88 0.3870967626571655 115 0.29032257199287415 111 0.29032257199287415 106 0.35483869910240173 97 0.29032257199287415 124 0.29032257199287415 98 0.4193548262119293 126 0.29032257199287415 96 0.25806450843811035 ...
3. Táblázat Lenyomási idő +Érintett felület nagysága
5.1 Osztályozó algoritmusok Mindhárom ARFF állomány, a fejléc után 589 mintát tartalmaz, ennyi adatot sikerült összegyűjteni 10 felhasználótól. Ezeket a mintákat különböző adatbányászati algoritmusokkal osztályoztam.
5.1.1 Bayes A Bayesi hálózatok két elvre épülnek: a legnagyobb valószínűség (maximum likelihood) elvre, valamint a Bayes-tételre. A maximum likelihood szerint egy elem osztályozásánál azt az osztályt fogjuk választani, amelynek a legnagyobb a valószínűsége a megfigyelések és az elem további attribútumai alapján. A Bayes-tétel szerint meghatározhatjuk a feltételes valószínűséget, ha ismerünk néhány másik valószínűséget. A naív Bayes-hálók feltételezik, hogy az egyes attribútumok feltételesen függenek egymástól.[8]
5.1.2 Naive Bayes A Naive Bayes osztályozó működése egyszerű és könnyen kezelhető. Ez a módszer sok esetben felülmúlja a többi bonyolult algoritmust. Lehetővé teszi az adat összes atribútumának használatát és egyenként elemzi őket. Mindegyik egyformán fontos és el van különítve a többitől. 18
Például tegyük fel, hogy a képzési adatok különböző állatokat tartalmaznak (elefántot , majmot…) és az osztályozó egy új állatról kell eldöntse, hogy hová tartozik. Tudjuk, hogy az elefánt nagy törzsel rendelkezik, nagy fülekkel, ormánnyal stb. A majmok kisebb méretűek, gyorsak, kis fülük van stb. Ezek a tulajdonságok az atribútumok, és az osztályozó az új mintának minden jellemzőjét egyenként hasonlítja össze a többivel.[11]
7. ábra: Osztályozás [Wikipédia, az ingyenes enciklopédia]
5.1.3 SVM (Support Vector Machines) A gépi tanulásban az SVM felügyelt tanulási modellekkel társított tanuló algoritmus, amely adatokat elemez, mintákat ismer fel és hasonlít össze, ami által azokat osztályozni tudja. Az SVM modell a térbeli pontok feltérképezésének egyik reprezentációja, ahol az adatok kategóriái jól látható módon elvannak különítve egymástól. Egy pontoról megállapítja, hogy a választék melyik oldalán helyezkedik el, és az annak megfelelő osztályba sorolja. A nemlineáris osztályozást hatékonyan végzi el egy úgynevezett kernel trükkel (kernel trick), amelynek megfelelően a bemenetet egy magasabb dimenziójú térben térképezi fel.[9]
5.1.4 K – Nearest Neighbour (k - NN) A mintafelismerések esetén a k-legközelebbi szomszédok módszerét szintén lehet osztályozásra és regresszióra használni. Mindkét esetben a bementet a k – darab legközelebb álló minták alkotják. Amelyik kategóriáoz közelebb áll az illető minta, abba az osztályba 19
sorolja. Ha k=1, akkor a minta a legközelebbi szomszéd osztályába kerül. Ez az algoritmus a legegyszerűbb az összes gépi-tanulási algoritmus közül.
8. ábra: k-Nearest Neighbour (k=3) [Wikipédia, az ingyenes enciklopédia] A fenti ábra egy példa a k-legközelebbi szomszéd osztályozásról. Ebben az esetben a teszt mintát a zöld karika jelenti, melyről elkell dönteni, hogy a piros, vagy a kék kategóriába tartozik. A vizsgálandó minta a piros osztáyba fog kerülni, mert a körülötte levő három elem közül kettő piros. Ha ugyanezt a feladatot vizsgáljuk k=5 esetén, akkor az öt darab szomszéd a szaggatott vonalon belül helyezkedik el, a teszt minta pedig a kék osztályhoz fog tartozni. A k érték megfelelő kiválasztása mindig az adatoktól függ. Minél nagyobb értéket választunk, annál kisebb a zaj az osztályozásnál, viszont az osztályok közötti határok kevésbé kivehetőek.
5.1.5 J48 döntési fák A J48 a C4.5 döntési fa Java implementációja a Weka adatbányászati eszközön belül. A C4.5 egy döntési fát épít fel egy sor tanítási adatból, felhasználva az információelméleti entrópia (egy rendszer rendezetlenségi fokát jelző mennyiség) fogalmát. A döntési fában a belső csomópontok az elemeket jelölik, a közöttük levő kapcsolatok pedig elvezetnek a végpontig, ami megmutatja, hogy a függőben levő érték melyik osztályba tartozik. Az algoritmus mindig kiválaszt egy elválasztó érteket, amely szerint a bemenő paramétereket több részre tudja osztai. Abban az esetben, ha a bemeneti adatok mind egy osztályhoz tartoznak, egyszerűen létrehoz egy levél csomópontot, és az fogja az adott osztályt reprezentálni.[13]
20
9. ábra: C4.5 döntési fa [Richard Beindroff:Voter Classification Using C4.5 című prezentációja] A 9. ábrán látható egy döntési fa, melyből megtudhatjuk, hogy az időjárás függvényében 14 személyt a szabadban való játszás szempontjából milyen osztályokba lehet sorolni. Látható, hogy a módszer célja, hogy a bemenő paraméterek alapján leszűkítse a kört, így végül mindenkit egy konkrét osztályba lehet helyezni.
5.1.6 Random forest A random erdők az osztályozásra (és regresszióra) használt tanulási módszerek együttese, amely úgy működik, hogy a tanulási időben számos döntési fát épít. [14] Ha van egy bemeneti vektor, akkor abból többféle döntési fát épít fel, melyeknek mindenike az illető objektumot besorolja egy osztályba. Végül pedig abba az osztályba fog kerülni az objektum, amelyhez a legtöbb döntési fa vezetett.[15]
21
Az osztályozók tanításához és teszteléséhez összesen 589 mintát használtam, amelyeket 10 felhasználótól gyűjtöttem. Ezen felhasználók átlag életkora 22,3 év. A minimum kor 21 és a maximum pedig 24 év. A mérési eredményeket táblázatos formában kimentettem, majd diagramokat készítettszem, hogy jobban szemléltethessem a különböző osztályozó algoritmusok eredményeit mindhárom jellemzőtípusra. Osztályozó BayesNet NaiveBayes SVM k - NN (k = 3) J48 RandomForest
Felismerési ráta 66,0441% 68,4211% 71,4771% 59,5925% 51,9525% 63,1579%
4. táblázat: Hold Time
Felismerési ráta (HT) 80,0000% 70,0000% 60,0000% 50,0000% 40,0000% 30,0000% 20,0000% 10,0000% 0,0000%
9. ábra: Diagram a 4. táblázat alapján
Eredmények/Classifier BayesNet NaiveBayes SVM k - NN (k = 3) J48 RandomForest
Felismerési ráta 81,3243% 78,4380% 79,6265% 66,8930% 68,7606% 73,8540%
5.táblázat: Finger Area
22
Felismerési ráta (FA) 90,0000% 80,0000% 70,0000% 60,0000% 50,0000% 40,0000% 30,0000% 20,0000% 10,0000% 0,0000%
10.ábra: Az 5. táblázatnak megfelelő diagram
Eredmények/Classifier BayesNet NaiveBayes SVM k - NN (k = 3) J48 RandomForest
Felismerési ráta 90,1528% 91,8506% 91,8506% 88,6280% 81,6638% 86,5874%
6.táblázat: Hold Time és Finger Area
Felismerési ráta (HT + FA) 94,0000% 92,0000% 90,0000% 88,0000% 86,0000% 84,0000% 82,0000% 80,0000% 78,0000% 76,0000%
11.ábra: A 6. táblázatnak megfelelő diagram
23
6
Következtetések
Dolgozatomban érintőképernyős készülékeken történő billentyűzési ritmust tanulmányoztam, megvizsgálva, hogy ez milyen mértékben használható a felhasználó azonosítására. A diagramokból jól kivehető, hogy az osztályozások igencsak jól sikerültek. A 9. ábrán látható diagramon, ahol csak a lenyomási idő alapján osztályoztam, a legkisebb a felismerési ráta. A 10. ábrán látható diagramon, amely az ujj által érintett terület nagysága alapján történt, viszont már nagyobb. A harmadik esetben (11. ábra)- ahol a billentyű lenyomási idő és az érintési terület együtt kerül osztályozásra – a legnagyobb a felismerési ráta. Ebből kifolyólag azt vettem észre, hogy az algoritmusok sokkal hatékonyabban tudják azokat a mintákat osztályozni, melyekben egyszerre több jellemző is szerepel. Továbbfejlesztésként még több jellemzőt lehetne előállítani, hiszen még vannak olyan jellemzői a billentyűzési ritmusnak, melyeket begyűjtöttem az adatgyűjtő szoftver segítségével, viszont még nem használtam fel. Az időkből is további értékeket lehetne kiszámítani, mint például két egymás után következő gomb lenyomása, illetve felengedése között eltelt idők. Úgy gondolom, hogy minden meglévő adatot felhasználva lehetne megalkotni a felhasználók legpontosabb modelljét, s ennek függvényében majd a hitelesítés során is pontosabbak lennének az eredmények.
24
7 Hivatkozások [1] [2]
[3] [4]
[5] [6] [7]
[8] [9] [10] [11] [12] [13] [14] [15]
http://www.paytech.hu/uzletagak/biometrikus_rendszerek Józsa Tünde: Lucrare de licență Autentificare biometrică Ritmul apăsării tastelor. Universitatea PETRU MAIOR din Targu Mures, Facultatea de Stiinte si litere, 2012. http://netidok.postr.hu/biomertria Uno Andre Johansen Master’s Thesis, Master of Science in Information Security 30 ECTS. Department of Computer Science and Media Technology Gjøvik University College, Keystroke Dynamics on a Device with Touch Screen, 2012. Kósa Zsuzsanna: Szemlyazonosítési technikák, Typotext, Budapest, 2008 http://www.cedar.buffalo.edu/~govind/CSE717/papers/ReliableAuthenticatio n.pdf Killourhy, K. S., Maxion, R. A. Comparing anomaly-detection algorithms for keystroke dynamics. In IEEE/IFIP International Conference on Dependable Systems and Networks (DSN-2009), (June 29–July 2, 2009, Estoril, Lisbon, Portugal), pp. 125–134, IEEE Computer Society, Los Alamitos, CA, 2009. Bányász Melinda: Klasszifikáció az adatbányászatban , szakdolgozat, Eötvös Lóránd Tudoményegyetem, Budapest, 2010. http://en.wikipedia.org/wiki/Support_vector_machine http://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm http://www.d.umn.edu/~padhy005/Chapter5.html Salil P. Banerjee, Damon L. Woodard, Biometric Authentication and Identification using Keystroke Dynamics: A Survey 2012. http://en.wikipedia.org/wiki/C4.5_algorithm http://en.wikipedia.org/wiki/Random_forest http://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm
25