Kurs:
Metody i algorytmy sztucznej inteligencji (ARE3513P).
Prowadzący: dr inż. Witold Paluszyński
Temat:
Identyfikacja użytkownika na podstawie szybkości pisania na klawiaturze.
(Niniejszy dokument jest raportem z projektu opracowanego na zaliczenie w/w przedmiotu,)
A Keystroke Dynamics Based System for User Identification.
(This report describes a project done to fulfill the requirements for the course: Methods and algorithms of artificial intelligence.)
Opracowali:
Łukasz Augustyn 148305
Julian Ćmikiewicz 128609
Wrocław, 19.06.2009r.
1 Abstract
On-the-fly keyboard user authorization is certainly an interesting option for standard security procedures for high-security computer systems. Unauthorized access to logged-in workstation could threaten the security of data and systems. Conventional authorization methods (passwords, fingerprint scans) verify user identity only during logging process, leaving system vulnerable to user replacement afterwards. Procedures overcoming this peril are often invasive (constant visual monitoring) or uncomfortable (frequent identity verification with user cooperation). A possible solution for constant authorization without these drawbacks is to identify the keyboard user while typing. The approach we propose is based on two extracted keystrokes features: ,,flight'' and ,,dwell''. We have tested the suggested solutions on individual group resembling. The obtained results are promising.
Autoryzacja ,,w locie'' (w tle) przy pomocy klawiatury jest z pewnością interesującą alternatywą dla standardowych zabezpieczeń wysokiego rzędu, stosowanych do ochrony dzisiejszych systemów komputerowych. Nie autoryzowany dostęp do stacji roboczej może narazić bezpieczeństwo danych jak i całego systemu. Konwencjonalne metody identyfikacji (hasło, skan odciska palca) weryfikują użytkownika tylko podczas procesu logowania, pozostawiając następnie system narażony na podmianę użytkownika. Procedury tego typu często są narażone na inwazję (ciągły wizualny monitoring) lub niewygodne (częsta weryfikacja tożsamości we współpracy z użytkownikiem). Możliwym rozwiązaniem dla ciągłej identyfikacji bez w/w wad jest identyfikacja użytkownika klawiatury podczas pisania. Podejście, które my proponujemy opiera się na monitorowaniu dwóch akcji klawiszy: ,,lotu (pisania)'' i ,,zatrzymywania się''. Testowaliśmy sugerowane rozwiązanie na grupie ochotników. Otrzymane wyniki są obiecujące.
2 Wprowadzenie
Identyfikacja użytkownika jest ważna funkcją dla systemów komputerowych. Problem ten został rozwiązany zarówno za pomocą sprzętu komputerowego jak również programów. Identyfikacja biometryczna przynosi wiele nowych rozwiązań bazujących na indywidualnych charakterystycznych cechach ludzkich. Niestety, często te rozwiązania wymagają użycia zaawansowanego sprzętu jak czytniki linii papilarnych, skanery siatkówki oka i tym podobnych. Sprawia to, że są to metody o ograniczonych możliwościach zastosowania. Jednym ze sposobów pobierania informacji biometrycznych od użytkownika, a następnie jego identyfikacja jest pobieranie danych za pomocą dynamiki wprowadzania znaków z klawiatury. Śledzenie aktywności klawiatury jest bardzo praktyczne i łatwo dostępne, ze względu na to, że każda stacja robocza wyposażona jest w klawiaturę. Wprowadzanie tekstu z klawiatury w dużym stopniu zależy od umiejętności i biegłości posługiwania się klawiaturą przez użytkownika. Zdolności i nawyki nabyte przez użytkownika bardzo wolno się zmieniają w czasie, dlatego łatwo można użyć ich do identyfikacji biometrycznej.
Rozpoznawanie użytkownika za pomocą klawiatury jest przeprowadzane na podstawie porównywania aktualnej działalności (wprowadzania tekstu) użytkownika z posiadanymi próbkami. Wykrywanie znaczących różnic w wprowadzaniu znaków prowadzi do eliminacji użytkowników nie mających dostępu do ważnych informacji, tzn. użytkownicy mogą być na bieżąco monitorowani i na bieżąco sprawdzane są ich prawa dostępu do różnych usług systemu.
Należy również pamiętać, że wpływ na zmianę dynamiki wprowadzania znaków z klawiatury mogą mieć takie czynniki stopniowe męczenie się dłoni, zmęczenie użytkownika, uszkodzenie jednej z rąk lub pisanie tylko jedną ręką w przypadku zajętości drugiej.
3 Przydatność identyfikacji użytkownika za pomocą dynamiki wprowadzania znaków z klawiatury
Wykorzystanie aplikacji lub usług mogących rozpoznawać użytkownika może być zastosowane do:
· identyfikacji – wymaga to jednak dużej liczby danych zarówno już wprowadzonych przez użytkownika (bazy próbek) jak też dużej ilości danych, które użytkownik musi wprowadzić w celu dokładnej identyfikacji,
· wspomagania autoryzacji – do potwierdzenia autoryzacji użytkownika. W takim przypadku użytkownik wprowadza dodatkowy tekst na podstawie którego jest dodatkowo rozpoznawany,
· bieżąca autoryzacja – mimo, iż użytkownik prawidłowo zalogował się do systemu jest on cały czas monitorowany.,
· zdalnego rozpoznawania użytkownika – w przypadku dodatkowej weryfikacji użytkownika informacje o jego aktywności mogą być przesyłane za pomocą sieci.
W naszym projekcie skupimy się na identyfikacji użytkownika na podstawie wprowadzania zadanego tekstu: Alkohol pity w miarę nie szkodzi nawet w największych ilościach.
4 Sposoby pobierania informacji
Wprowadzenie znaku z klawiatury na większości komputerów rozpoznawane jest jako przerwanie sprzętowe. Podczas takiej operacji system operacyjny dostaje informacje o tym, że przycisk został naciśniety, oraz o tym, że przycisk został zwolniony. Badanie przebiegów czasowych takich zdarzeń może być mierzone zatem przez system operacyjny. Dokładność takich informacji mieści się w przedziale 10 – 15 ms. Dane o odstępach czasowych można klasyfikować w różny sposób np.:
· czas trwania naciśnięcia wybranego klawisza,
· czas pauzy pomiędzy naciśnięciem klawiszy,
· szybkość wprowadzania znaków,
· liczba błędów popełnianych przez użytkownika.
W tym projekcie, dane czasowe będą reprezentować czas przerwy jaki wystąpił pomiędzy naciśnięciem dwóch różnych klawiszy.
5 Badania. Pobieranie informacji o użytkowniku
Aby móc identyfikować użytkowników na podstawie ich indywidualnych cech należy najpierw zgromadzić informacje o nich. W naszym przypadku musimy posiadać informacje dotyczące długości przerw pomiędzy wpisaniem poszczególnych znaków z zadanego tekstu jak i oczywiście samych znaków. Trzeba zaznaczyć, że identyfikujemy użytkownika tylko na podstawie znaków z zakresu [a – z].
W celu zebrania wymaganych danych napisaliśmy prosty keylogger rejestrujący znaki i czas przerwy pomiędzy nimi. Przykładowe działanie i dane zebrane przez keylogger dla tekstu „alkohol pity w miarę nie szkodzi nawet w największych ilościach”:
a l 0.000000
k o 0.090000
h o 0.026000
l p 0.190000
i t 0.903000
y w 0.040000
m i 0.212000
a r 0.101000
e n 0.195000
i e 0.531000
s z 0.107000
k o 0.010000
d z 0.036000
i n 0.116000
a w 0.445000
e t 0.435000
w n 0.111000
a j 0.327000
w i 0.111000
e k 0.038000
s z 0.078000
y c 0.131000
h i 0.098000
l o 0.126000
s c 0.045000
i a 0.008000
c h 0.028000
Jak widać keylogger podaje nam informacje jaki przycisk był naciśnięty pierwszy, jaki następny i jaki minął czas pomiędzy nimi. Dane pobraliśmy od czterech różnych użytkowników. Poprosiliśmy ich o pięciokrotne prowadzenie przykładowego tekstu.
6 Badania. Opis zastosowanego algorytmu i programu
Na podstawie ilości próbek jest obliczana średnia wartość trwania długości przerw między poszczególnymi znakami, oraz błąd średniokwadratowy ze średniej arytmetycznej każdej z próbek. Aby zidentyfikować użytkownika porównujemy wartość zadanej próbki z wartościami danymi w bazie według wzoru:
Jeśli zadana wartość porównywanej próbki mieści się w przedziale wtedy jest akceptowana. W przeciwnym razie oznaczana jest jako odrzucona.
Na podstawie ilości próbek zaakceptowanych i odrzucowny obliczane jest prawdopodobieństwo poprawnego rozpoznania użytkownika.
Program określa liczbę próbek na podstawie zadanego tekstu. Następnie użytkownik jest proszony o podanie ilośći plików zawierających dane o użytkowniku. Po wczytaniu obliczane są wszystkie potrzebne parametry do identyfikacji. Kolejnym krokiem jest podanie nazwy pliku, w którym znajdują się dane do porównania (identyfikacji). Po analizie danych wyniki wyświetlane są w oknie wraz z opisem.
Rys. 1. Przykład działania programu
7 Badania. Interpretacja wyników
Badanie podaje prawdopodobieństwo poprawnego rozpoznania użytkownika na podstawie dynamiki wpisywania znaków z klawiatury opierając się tylko na czasie pauz pomiędzy naciśnięciem klawiszy.
Analizując wyniki doszliśmy do wniosku, że identyfikacja użytkownika na podstawie czasu przerwy jest niewystarczająca. Aby zwiększyć dokładność należałoby wprowadzić dodatkowe parametry takie jak: długość wciśnięcia klawiasza, posługiwanie się klawiszami specjalnymi [DEL, BACKSPACE].
Badając naszych testerów dostawaliśmy różne wyniki. Zauważyliśmy, że im częściej wpisywali zadany tekst, tym czas pauz się skracał. Wprowadza to dodatkowe błedy. Nigdy nie otrzymaliśmy stuprocentowej pewności. Najgorsza pewność jaką otrzymaliśmy dla tego samego użytkownika to 19,2%.
8 Bibliografia