SOBKOWIAK Maciej 1 GOSŁAWSKI Marek 2 Biometryczna identyfikacja osoby aplikacja na elektronicznej legitymacji studenckiej WSTĘP Dynamiczny rozwój systemów i rozwiązań informatycznych zapoczątkowany w latach osiemdziesiątych ubiegłego wieku pozwolił na znaczną automatyzację i zwiększenie produktywności różnych gałęzi światowej gospodarki z wykorzystaniem odpowiednio przygotowanego oprogramowania i sprzętu komputerowego. Szerokie zastosowanie rozwiązań informatycznych między innymi w bankowości elektronicznej, w instytucjach rządowych lub jednostkach wojskowych, wymusza implementację odpowiednich mechanizmów kontroli dostępu i przechowywania zasobów, którymi najczęściej są elektroniczne wpisy przechowywane w pamięci trwałej urządzenia. Zabezpieczenia te są niezbędne aby spełniać podstawowe wymogi, które użytkownicy stawiają systemom komputerowym. 1. FUNKCJONALNOŚĆ KARTY BIOMETRYCZNEJ Celem pracy [7], której wyniki opisuje niniejszy artykuł była implementacja funkcji identyfikujących, uwierzytelniających oraz autoryzujących użytkownika udostępnianych przez kartę elektroniczną opracowanych przez jedną z dużych firm informatycznych. Dodatkowo sporządzono dokumentację techniczną projektu i przygotowano aplikację demonstracyjną umożliwiającą przetestowanie możliwości oprogramowania. Docelowymi użytkownikami aplikacji byliby studenci polskich uczelni wyższych, posiadający elektroniczną legitymację studencką wraz z zainstalowanym apletem. Karta ta posiada, między innymi, następujące funkcje wykorzystujące możliwości współczesnych kart elektronicznych: uwierzytelnienie kodem PIN, uwierzytelnienie biometryczne oparte na odcisku palca, podpisywanie wiadomości, identyfikacja użytkownika poprzez identyfikator zapisany na karcie, przechowywanie danych wraz z mechanizmem autoryzacji dostępu do tychże. 2. CZYM JEST BEZPIECZEŃSTWO SYSTEMÓW INFORMATYCZNYCH Szeroko cytowaną definicją bezpieczeństwa komputerowego jest definicja zaproponowana w [8]: System komputerowy jest bezpieczny, jeśli jego użytkownik może na nim polegać, a zainstalowane oprogramowanie działa zgodnie ze swoją specyfikacją. W kontekście niniejszego artykułu skupiać będziemy się jednak na definicji bezpieczeństwa komputerowego opartej na jego podstawowych własnościach [10]: 1 Politechnika Poznańska, Dział Rozwoju Oprogramowania; 60-965 Poznań; pl. Marii Skłodowskiej-Curie 5. Tel +48 61 647-5873, maciej.sobkowiak@put.poznan.pl 2 Politechnika Poznańska, Dział Rozwoju Oprogramowania; 60-965 Poznań; pl. Marii Skłodowskiej-Curie 5. Tel +48 61 665-3680, marek.goslawski@put.poznan.pl 1399
integralności informacji tj. zapewnienia mechanizmów składowania i przesyłania danych w sposób niemodyfikowalny, gwarantujących autentyczność danych prezentowanych oraz mechanizmów umożliwiających weryfikację ich autentyczności użytkownikom końcowym, dostępności informacji tj. zapewnienia dostępu do informacji na żądanie uprawnionych podmiotów poufności informacji tj. zapewnienia zabezpieczeń przed dostępem do danych dla użytkowników do tego nieupoważnionych. Własność ta analizowana będzie tutaj w sposób szczególny. 3. KONTROLA DOSTĘPU I UWIERZYTELNIENIE W SYSTEMACH INFORMATYCZNYCH Podstawowym mechanizmem, koniecznym do zapewnienia poufności i integralności danych w systemie informatycznym jest kontrola dostępu. Zasadniczo składa się ona z trzech etapów: identyfikacji, uwierzytelnienia oraz autoryzacji. W artykule uwaga skupiona została wokół procesu uwierzytelnienia użytkownika, które stanowi najważniejszą część kontroli dostępu. Uwierzytelnienie użytkownika przyjmuje z przyjętym z góry prawdopodobieństwem, że weryfikowana osoba istotnie jest tą za którą się podaje. Na podstawie przyjętej tożsamości realizowany jest dostęp do odpowiedniego zasobu. Szeroko używane i przyjęte metody uwierzytelnienia (jednocześnie identyfikacji) użytkownika wykorzystują: coś co się posiada karty elektroniczne, tokeny, listy haseł, hasła jednorazowe, coś co się wie hasło, PIN, PUK, coś czym się jest metody biometryczne oparte o odciski palców, mowę, twarz, sposób poruszania oraz inne biologiczne cechy człowieka dające się zmierzyć i porównać. Zdecydowana większość systemów informatycznych, którą stanowią aplikacje internetowe dostępne przez przeglądarkę internetową, korzysta z jednoskładnikowego uwierzytelniania wykorzystującego coś co się wie (przeważnie hasło). Statystyczne dane przygotowane na podstawie baz danych haseł, które wyciekły z witryn internetowych drogą wewnętrzną lub w wyniku ataku oraz dane pozyskane w wyniku eksperymentu, przedstawione na Rysunku 1, dowodzą że użytkownicy nie tylko korzystają z małego podzbioru dostępnej przestrzeni haseł lecz także mają podobne preferencje przy ich wyborze. Oznacza to, że znając tylko nazwę użytkownika mamy 71% szans na zalogowanie się stosując jedno z haseł z listy 500 najczęściej stosowanych. Rys. 1. Wykres częstości używania haseł uzyskany w wyniku eksperymentu [1] Systemy wymagające większej pewności co do tożsamości użytkownika stosują uwierzytelnianie n-składnikowe. Polega ono na łączeniu metod uwierzytelnienia użytkownika w celu zmniejszenia 1400
prawdopodobieństwa udanego przejścia procesu kontroli dostępu przez osobę do tego nieuprawnioną. Typową kombinacją stosowaną np. w systemach bankowości elektronicznej jest kombinacja metod: coś co posiadasz (najczęściej karta elektroniczna lub jednorazowe hasło SMS) oraz coś co wiesz (kod PIN lub hasło do konta bankowego). Najbezpieczniejszym, praktycznie stosowanym sposobem, jest uwierzytelnianie 3-składnikowe które dodatkowo wprowadza czynnik zwany czymś czym się jest. Dodatkowe wymuszenie uwierzytelnienia sprawdzonym algorytmem biometrycznym pozwala przyjąć (na podstawie jego statystycznej skuteczności) prawdopodobieństwo graniczące z pewnością, że osoba żądająca dostępu do określonego zasobu jest faktycznie tą za którą się podaje. W dalszej części niniejszego artykułu opisane zostanie techniczne rozwiązanie umożliwiające praktyczną realizację bezpiecznego systemu kontroli dostępu do zasobów opartego na trzyskładnikowej procedurze weryfikacji tożsamości użytkownika. 4. BIOMETRIA I KARTY ELEKTRONICZNE W ZASTOSOWANIU BEZPIECZEŃSTWA IT Rozwój biometrii pozwolił na stosowanie różnych mierzalnych cech żyjących organizmów w procesie uwierzytelnienia do zasobów przechowywanych w systemach informatycznych. Aby próbka biometryczna mogła zostać użyta w systemach z kontrolą dostępu do zasobów należy dokonać następujących czynności: odpowiednie pobranie próbki stworzenie danych wejściowych dla modułów tworzących model matematyczny dla algorytmu biometrycznego. Wynikiem tej czynności jest najczęściej plik graficzny odwzorowujący mierzoną cechę, wyodrębnienie cech charakterystycznych próbki utworzenie dyskretnego zbioru cech, dostosowanego dla urządzeń elektronicznych, utworzenie wzorca biometrycznego zbioru danych wejściowych dla algorytmu wyznaczającego podobieństwo dwóch cech biometrycznych. Tak przygotowany wzorzec jest następnie porównywany z próbką pobraną podczas próby uwierzytelnienia od użytkownika. Wynikiem działania algorytmu jest ocena podobieństwa dwóch próbek do siebie. Na podstawie tej oceny podejmowana jest decyzja o pomyślnej lub nie identyfikacji biometrycznej. Karty elektroniczne, które na dobre zagościły w naszym życiu codziennym, stały się doskonałym środkiem pozwalającym na realizację systemów informatycznych o wysokim standardzie bezpieczeństwa. Praktycznie każda karta zaopatrzona w interfejs stykowy (karta procesorowa) posiada dodatkowo wbudowany koprocesor realizujący funkcje kryptograficzne, które w praktyce stanowią techniczną podstawę realizacji wszystkich trzech własności wskazanej wcześniej definicji bezpieczeństwa. Pomimo ograniczonej mocy obliczeniowej i pamięciowej, pozwalają one na bezpieczne przechowywanie danych wrażliwych (np. danych biometrycznych osoby, klucza prywatnego certyfikatu kwalifikowanego) oraz biometryczną identyfikację osoby bez potrzeby przesyłu danych biometrycznych poza sprzętowo chronione środowisko kartowe (ang. match-oncard). Wymienione własności pozwalają na konstrukcję środowisk informatycznych korzystających z 3-składnikowego uwierzytelniania zapewniającego wysoki standard bezpieczeństwa. 5. TECHNICZNE WYKONANIE APLETU Do realizacji technicznej apletu wykorzystano biblioteki JavaCard w wersji 2.2.1, czytniki biometryczne firmy Zvetco: P5500 oraz P4000 z oprogramowaniem Griaule Fingerprint SDK 2009, środowisko deweloperskie Eclipse oraz 2 modele blankietów (Oberthur ID-one Cosmo v7.0.1 oraz ID-One Cosmo 64 v5.4) stosowane w procesie personalizacji elektronicznej legitymacji studenckiej [9]. Implementację poszczególnych funkcjonalności karty przeprowadzono wykorzystując następujące możliwości karty: 1401
kod PIN wbudowana w API JavaCard klasa OwnerPIN, zawierająca pełną obsługę operacji pożądanych z punktu widzenia użytkownika, uwierzytelnienie biometryczne - implementacja własnej klasy oferującej funkcje związane z uwierzytelnianiem oraz obsługą funkcji biometrycznych, podpisywanie wiadomości wykorzystane zostały mechanizmy kryptograficzne karty: generowanie kluczy RSA oraz klasa Signature, przechowywanie danych pacjenta implementacja własnej klasy obsługującej obiekty pełniące rolę magazynu danych wraz z systemem autoryzacji do odczytu ich zawartości. Dodatkowo modyfikacja wszelkich danych apletu zabezpieczona została poprzez wymóg zestawienia bezpiecznego kanału z szyfrowaniem i weryfikacją integralności danych zgodnie ze standardem GlobalPlatform w wersji 2.1.1. Wymagany do tego jest specjalny klucz znany przez obie strony, który z założenia nie jest znany użytkownikom końcowym, lecz zaszyty jest w specjalnym oprogramowaniu przeznaczonym do obsługi karty pacjenta. Na potrzeby algorytmu biometrycznego opracowano wzorzec przystosowany do ograniczonych możliwości obliczeniowych kart elektronicznych. Powstaje on w wyniku przekształcenia standardowego formatu odcisku palca opartego na minucjach, opisanego dokumentem ISO/IEC 19794-2:2005 [3], który pozyskiwany jest z czytnika linii papilarnych za pomocą funkcji programistycznych zawartych w oprogramowaniu Griaule Fingerprint SDK 2009. Wzorzec składa się z czterech segmentów: nagłówka złożonego z trzech bajtów, zawierającego liczbę minucji w ostatnim bajcie oraz 2 bajty identyfikujące format, sekwencji opisującej kolejne minucje składających się z dwóch bajtów każda, określająca typ minucji (rozdwojenie, zakończenie lub inna) oraz jej orientację kątową, sekwencji opisującej lokalne struktury używane w procesie porównania przedstawiona na rysunku 2. Każda minucja łączona jest z pięcioma swoimi najbliższymi sąsiadami, co tworzy gwiaździstą strukturę składającą się z pięciu par minucji wraz z jedną minucją centralną (algorytm oparty na podobny wzorcu zaprezentowano w [2]). Dla tak utworzonej struktury każda para jest określana przez: indeks minucji połączonej z punktem centralnym, długość euklidesową pary, bezwzględną różnicę kątową pomiędzy minucjami pary oraz tangens kąta zawartego pomiędzy osią OX a odcinkiem utworzonym z pary minucji, skrót SHA-1 używany do weryfikacji integralności odcisku palca przy jego wgrywaniu na kartę. Rys. 2. Geometryczna reprezentacja lokalnych struktur zaprojektowanego wzorca (źródło: własne) Tak przygotowana struktura danych biometrycznych nie wymaga od urządzenia implementacji skomplikowanych metod numerycznych wyznaczających np. pierwiastek lub wartość sinusa zadanego kąta. Minimalizuje to liczbę instrukcji potrzebną do wyznaczenia podobieństwa poprzez algorytm. 6. ALGORYTM BIOMETRYCZNY I JEGO SKUTECZNOŚĆ Główną część algorytmu stanowią dwie zagnieżdzone pętle for, które dokonują porównania struktur lokalnych wzorców biometrycznych. Aby poprawić wydajność algorytmu zastosowano dodatkowo tablicę umieszczoną w pamięci RAM karty o rozmiarze równym liczbie minucji w porównywanym wzorcu, która zaznacza dopasowane cechy i pozwala na ich pominięcie w wewnętrznej pętli algorytmu. Ocena stopnia podobieństwa struktur lokalnych do siebie wyznaczana 1402
jest na podstawie dopasowania występujących w nich par do siebie poprzez punktowanie według następujących kryteriów: typów minucji wchodzących w skład pary porównywane pary muszą posiadać na swoich końcach odpowiadające sobie typy minucji, długości euklidesowych porównywanych par które muszą mieścić się w przyjętym przez programistę zakresie, różnic kątowych pomiędzy minucjami obu par porównywanych analogicznie do ich długości euklidesowej, różnic kątów zawartych pomiędzy orientacją minucji centralnej a odcinkiem utworzonych przez pary minucji porównywanych analiczinie do długości euklidesowej. Znacząca odchyłka przy porównywaniu dowolnej z cech powoduje niedopasowanie par do siebie. Zdobycie pułapu punktów określonych przez programistę jako dopasowanie bliskie doskonałemu powoduje liczenie danych par podwójnie. Gdy para zdobywa dopuszczalny wynik punktowy liczona jest ona pojedynczo. Dwie struktury lokalne uznawane są za odpowiadające sobie, gdy wynik ich porównania da co najmniej trzy punkty. Oznacza to minimalnie trzy dopasowania pojedyncze par lub jedno dopasowanie idealne z jednym dopasowaniem pojedynczym. Pozytywny wynik porównania struktur lokalnych oznacza uznanie występujących w nich minucji centralnych za odpowiadających sobie. Po wykonaniu wszystkich iteracji algorytm wyznacza podobieństwo dwóch próbek biometrycznych do siebie za pomocą wzoru [6]: 2* matched *100 score gdzie: matched liczba dopasowanych minucji n liczba minucji wzorca porównywanego m liczba minucji wzorca na karcie n m Przyjęto, że uwierzytelnienie biometryczne zachodzi pomyślnie, gdy score jest większe bądź równe 35. Zaimplementowany w ten sposób algorytm został poddany testom za pomocą automatu testującego dostępnego na stronie Laboratorium Systemów Biometrycznych Uniwersytetu w Bolonii [4, 5] celem wyznaczenia przybliżonej skuteczności algorytmu w środowisku produkcyjnym. Uzyskane wyniki prezentują wykresy obrazujące rozkład wyników porównań i zależność skuteczności od przyjętego progu uwierzytelnienia biometrycznego (rysunek 3): FMR % błędów pozytywnych nieautoryzowanych dostępów, FNMR - % błędów negatywnych niesłusznych odrzuceń autoryzowanych prób dostępów EER współczynnik błędu zrównoważonego (ten sam procent niesłusznych odrzuceń i nieuprawnionych dostępów) - 7,340%, FMR100 najniższe FNMR przy dopuszczeniu jednego nieautoryzowanego dostępu na 100 prób 16,804%, FMR1000 najniższe FNMR przy dopuszczeniu jednego nieautoryzowanego dostępu na 1000 prób 27,745%, FMR10000 najniższe FNMR przy dopuszczeniu jednego nieautoryzowanego dostępu na 10000 prób 36,017%, ZeroFMR najniższe FNMR przy którym żadna z nieautoryzowanych prób dostępu zakończyła się powodzeniem 44,040%, Średni czas wykonania algorytmu na komputerze PC 51ms. 1403
Rys. 3. Rozkład wyników porównania odcisków palców (po lewej) oraz wykres zależności FMR i FNMR od przyjętej granicznej wartości uwierzytelniającej odcisk palca (po prawej) 7. ANALIZA BEZPIECZEŃSTWA PROPONOWANEGO ROZWIĄZANIA Proponowany algorytm pozwala, poprzez zmianę parametrów algorytmu, na dopasowanie pożądanej skuteczności weryfikacji biometrycznej osoby. Przy założeniu, że statystycznie jedna próba uwierzytelnienia osoby nieuprawnionej na 10000 podejść zakończy się sukcesem, należy jednak liczyć się z dużą szansą na odrzucenie poprawnej próby uwierzytelnienia. Funkcjonalność karty wspomnianej w rozdziale pierwszym z założenia dokonuje dwuskładnikowej autoryzacji (PIN + karta lub biometria + karta). Możliwa jest jednak bezproblemowa modyfikacja apletu tak, aby dostęp do danych na karcie lub do systemu odbywał się po pomyślnym uwierzytelnieniu na podstawie wszystkich dostępnych składników. W przypadku przejęcia karty przez niepowołaną do tego osoby i znajomości przez niej kodu PIN będzie musiała ona pomyślnie przejść biometryczną weryfikację, co znacznie utrudni atakującemu dostęp do systemu. Biometryczne dane oraz inne dane użytkownika chronione są przez sprzętowe środowisko karty. Fizyczne przejęcie karty bez znajomości kodu PIN lub niemożności pomyślnego uwierzytelnienia biometrycznego znacząco utrudnia dostęp do tych danych. Zdobycie dostępu do nich wymaga od atakującego przeprowadzenia np. udanego ataku na maszynę wirtualną Javy znajdującą się na karcie, celem uzyskania bezpośredniego dostępu do pamięci trwałej urządzenia. WNIOSKI Wykonany projekt pokazuje w jaki sposób można z wykorzystaniem możliwości współczesnych kart inteligentnych zaimplementować system pozwalający na uzyskanie wysokiego poziomu bezpieczeństwa danych. Projekt i implementacja autorskiego algorytmu biometrycznego opartego na odciskach palców nie wymaga zaawansowanych umiejętności programistycznych. Bogactwo literatury naukowej opisującej ten temat dodatkowo ułatwia stawianie pierwszych kroków w dziedzinie biometrii. Ogromną wadą projektu jest na pewno czas uwierzytelnienia biometrycznego uzyskany przez karty. Pomimo niskiej złożoności (rzędu O(n 2 )) pojedyncza próba biometrycznej weryfikacji na nowszym blankiecie Oberthur ID-one V7 trwała ponad 30 sekund. Pomimo tego faktu wynik można uznać za satysfakcjonujący biorąc pod uwagę ogromne ograniczenia czasowe i zasobowe projektu. Prostota algorytmu pozwala na łatwe wprowadzanie poprawek mających na celu poprawienie jego skuteczności. 1404
Dalsze prace implementacyjne skupione będą wokół: zmniejszenia czasu wykonania algorytmu na karcie do założonych w pracy pięciu sekund, przesunięcia rozkładu wyników prób, które powinny zakończyć się pozytywnie - tak aby zmniejszyć liczbę błędów negatywnych algorytmu implementacja interfejsu Shareable umożliwienie współpracy z innymi apletami Streszczenie Coraz częściej zaawansowane systemy bezpieczeństwa wymagają identyfikacji oraz silnego uwierzytelnienia osoby. W pracy zaprezentowano badania związane z funkcją porównywania odcisku palca w procesie uwierzytelnienia. Na przykładzie aplikacji realizującej biometryczną weryfikację tożsamości osoby, posługującej się elektroniczną kartą procesorową, przedstawiono teoretyczne i praktyczne podstawy tworzenia bezpiecznych systemów informatycznych stosujących trzyskładnikowe uwierzytelnienie z wykorzystaniem karty, kodu PIN oraz odcisku palca. Biometric user identification a JavaCard application on student s ID card Abstract More and more often advanced IT security systems tend to rely on user identification and strong authentication mechanism. This article presents research on fingerprint matching in authentication process. With regard to smart card application which enables user s identity verification through biometric method, this article presents theoretical and practical introduction to creating secure IT systems by applying three-factor authentication using smart card, PIN code and biometric verification based on fingerprints. BIBLIOGRAFIA 1. 10000 Top Passwords, <https://xato.net/passwords/more-top-worst-passwords> (dostęp dnia 20.07.2014) 2. Bistarelli S., Santoni F., Vaccarelli A., An asymmetric Fingerprint Matching Algorithm for Java Card. Università degli Studi "G. d'annunzio" di Chieti-Pescara, Italy; Consiglio Nazionale delle Ricerche, Pisa, Italy 2005. 3. Biometric data interchange formats; Part 2: Finger minutiae data (committee draft), ISO/IEC, 2005 4. Finger Verification Competition-onGoing <https://biolab.csr.unibo.it/fvcongoing/> (dostęp dnia 4.09.2014) 5. Dorizzi B., Cappelli R., Ferrara M., Maio D., Maltoni D., Houmani N., Garcia-Salicetti S., Mayoue A., Fingerprint and On-Line Signature Verification Competitions at ICB 2009 in proceedings International Conference on Biometrics (ICB), Alghero, Italy, pp.725-732, 2009 6. Bazen A., Gerez S., Fingerprint matching by thin-plate spline modelling of elastic deformations, Pattern Recognition, vol. 36, pp.1859-1867, 2003 7. Sobkowiak M., Legitymacja studencka z biometryczną identyfikacją osoby w Ogólnopolskim Systemie Ochrony Zdrowia OSOZ, Politechnika Poznańska, Poznań, 2014 8. Garfinkel S., Spafford G., Schwartz A., Practical Unix & Internet Security, O'Reilly Media, 2003 9. Rozporządzenie Ministra Nauki i Szkolnictwa Wyższego z dnia 14 września 2011 r. w sprawie dokumentacji przebiegu studiów(dz. U. Nr 201, poz. 1188) 10. Technika informatyczna praktyczne zasady zarządzania bezpieczeństwem informacji, PKN, Warszawa, 2003 1405