System identyfikacji osób na podstawie paszportów biometrycznych

 

Cel projektu:

Efektem prac wykonanych podczas realizacji niniejszego projektu ma być system umożliwiający identyfikację osoby na podstawie posiadanego paszportu biometrycznego oraz zasymulowanie na odpowiedniej karcie inteligentnej takiego "paszportu". Stworzony system ma zapewniać bezpieczną identyfikację osoby, zatem musi posiadać zaiplementowane różne protokoły uwierzytelniania.

Podstawy teoretyczne:

Paszport biometryczny różni się od dotychczasowego tym, że książeczka paszportu wyposażona jest w chip RFID zawierający zapisane w formie elektronicznej dane biometryczne posiadacza paszportu. Danymi biometrycznymi mogą być przykładowo wizerunek twarzy, odcisk palca, czy też wzór siatkówki oka.

Wprowadzenie zapisu danych biometrycznych osoby, na którą paszport został wystawiony, ma zagwarantować jednoznaczne powiązanie pomiędzy osobą a dokumentem, który się ona posługuje. Do niedawna jedynym lecz powszechnie stosowanym elementem spełniającym tę rolę było wklejone bądź wdrukowane zdjęcie. W obliczu nowych zagrożeń okazuje się, iż jest to niestety zbyt mało.

Mając na względzie chęć lepszego powiązania osoby z dokumentem, Międzynarodowa Organizacja Lotnictwa Cywilnego, znana pod akronimem ICAO (International Civil Aviation Organization), prowadziła od 1997 roku prace na rozszerzeniem zaleceń dotyczących specyfikacji dokumentów podróży (paszporty, wizy... - MRTD - Machine Readable Travel Documents) o zapis danych biometrycznych posiadacza dokumentu. Propozycje ICAO są do pewnego stopnia kompromisem pomiędzy potrzebami uzyskania wysokiego stopnia rozpoznania osób, jego niezawodności oraz kosztów wprowadzenia tego typu zabezpieczeń.

W Polsce paszporty biometryczne weszły w życie 28 sierpnia 2006 roku. Do dnia 29 czerwca 2009 roku w chipie polskiego paszportu biometrycznego zapisany był jedynie wizerunek twarzy. Paszporty wydawane po tej dacie zapisany mają również odcisk palca. Książeczki polskich paszportów biometrycznych produkowane są przez Polską Wytwórnię Papierów Wartościowych S.A.. Wzór okładki:

Zaś dane obywateli ubiegających się o wydanie paszportu nanoszone są w Centrum Personalizacji Dokumentów MSWiA.

W pamięciu bezstykowego układu mikroprocesorowego obok zapisanych danych biometrycznych zapisane są także w postaci elektronicznej dane uwidocznione na stronie personalizowanej paszportu oraz informacje potrzebne do potwierdzenia, że dane w chipie zapisane zostały przez uprawniony do tego podmiot.

Zalecenia ICAO przewidują zastosowanie kilku mechanizmów bezpieczeństwa, które mają zminimalizować ryzyko prób fałszowania dokumentów. Niektóre z tych mechanizmów muszą być stosowane obowiązkowo, natomiast decyzję co do użycia innych ICAO pozostawia poszczególnym krajom.

Wspomniane mechanizamy bezpieczeństwa:

BAC (Basic Access Control) - Zanim dane zostaną odczytane z chipa, czytnik musi uzyskać specjalny klucz dostępowy zakodowany w MRZ (Machine Readable Zone). Zastosowanie BAC uniemożliwia więc przypadkowy lub zdalny (bez kontaktu wizualnego ze stroną zawierająca dane personalne) odczyt paszportu.

PA (Passive Authentication)- Autentyfikacja pasywna - Zapobiega modyfikacji danych w dokumencie. W chipie zakodowane są hash'e wszystkich danych zakodowanych w dokumencie, dodatkowo podpisane cyfrowo. Podpis cyfrowy uzyskuje się przy pomocy klucza dokumentu, który to, z kolei, potwierdzony jest kluczem kraju emitenta. Gdy zmieniony zostanie plik w pamięci układu RFID (np. zmodyfikowane zdjęcie) funkcja hashująca wykaże niezgodność.

AA (Active Authentication) - Autentyfikacja Aktywna - Zabezpiecza paszporty przed sklonowaniem. Do przeprowadzenia tego rodzaju autoryzacji wykorzystywany jest klucz prywatny zapisany w pamięci strzeżonej chipa, który nie może zostać odczytany ani skopiowany.

EAC (Extended Access Control) - Rozszerzone mechanizmy kontroli dostępu stosowane są w celu wzajemnego potwierdzenia autentyczności paszportu i czytnika. Wykorzystywane do zabezpieczenia odcisków palca.

 

Dodatkowym zabezpieczeniem przed próbą nieuatoryzowanego odczytu jest uniemożliwienie odczytu paszportu bez otwarci jego książeczki. W obwolucie książeczki umieszcza się drobną metalową siateczkę uniemożliwiająca komunikację radiową, gdy książeczka jest zamknięta. UWAGA!!! Polskie paszporty nie są wyposażone w tego rodzaju zabepieczenie. Możliwy jest odczyt nawet przez blat biurka :).

 

Dane biometryczne zapisywane są po to, by możliwe było ich późniejsze automatyczne porównanie. Dlatego też nawet zdjęcie paszportowe musi być odpowiednio zrobione. Specyfikację i przykłady znajdziecie pod adresem:

http://www.paszporty.mswia.gov.pl/portal/content/pdf/PSWP_instrukcja_zdjecie_ICAO_compliant_131062006_ver_5.pdf

Lista zadań:

1. Zapoznanie się z dostępną dokumentacją:

Organizacja ICAO udostępnia specyfikację dla paszportów biometrycznych: "DOC 9303 Part 1 Vol 1" oraz "DOC 9303 Part 1 Vol 2". Zespół dokumentów "DOC 9303" dotyczy wszystkich dokumentów podróży czytanych maszynowo (MRTD).

2. Określenie wymagań sprzętowych

Książeczka paszportu wyposażona jest w specjalną bezstykową kartę. Karta taka to Java Card z 72 kB pamięci. Politechnika Wrocławska nie posiadała takiego sprzętu więc odpowiednie karty zostały dla nas specjalnie zakupione. Dodatkowo zakupiony został również czytnik współpracujący z tego rodzaju kartami Omnikey CardMan 5321.

3. Określenie zadań do realizacji

3.1 Przydział osób do zadań

3.2 Opracowanie harmonogramu zadań

Odpowiedni podział zasobów oraz opracowanie harmonogramu jest niezbędne by późniejsza realizacja projektu przebiegała sprawnie oraz by możliwa była kontrola postępów.

4. System identyfikacji

4.1 Część sprzętowa

4.1.1 Komunikacja czytnik-karta

4.1.1.1 Szyfrowanie przesyłanych danych

Pierwszą czynnością po przejściu przez przygotowanie teoretyczne oraz sprawy przygotowawcze przed rozpoczęciem realizacji projektu, jest zapewnienie komunikacji pomiędzy dwoma ogniwami wykorzystywanego sprzętu, czyli kartą oraz czytnikiem. Komunikacja odbywa się z wykorzystaniem linuksowego PCSCD.

Dane przesyłane pomiędzy czytnikiem oraz paszportem są zaszyfrowane. Na tym etapie przygotowano więc odpowiednie algorytmy umożliwiające szyfrowanie oraz deszyfrowanie przesyłanych komunikatów.

4.1.2 Przygotowanie karty do testów

W momencie gdy otrzymaliśmy zamówione karty wgrane zostało na nie oprogramowanie będące symulatorem paszportu przygotowane przez THC (The Hacker's Choice). (http://freeworld.thc.org/thc-epassport/)

4.1.3 Odczyt danych

4.1.3.1 Autoryzacja

PA, AA, BAC, EAC Realizacja opisanych wyżej standardów sprawdzania autentyczności paszportu.

4.1.3.2 Odczyt danych biometrycznych

4.2 Interfejs

4.2.1 Wersja graficzna

Interfejs umożliwiający w łatwy sposób obsługę wszelkich funkcji do których realizacji dążymy powstaje z wykorzystaniem bilioteki QT.

4.2.2 Zdjęcia

4.2.2.1 Wykonanie zdjęcia kamerką internetową

System przygotowywany jest tak, by w przyszłości po dalszej rozbudowie mógł być zupełnie autonomiczny i w sposób bezpieczny przeprowadzał identyfikację osoby posługującej się dokumentem. Stąd też wykonywanie zdjęcia kamerką internetową, które w przyszłości po zaimplementowaniu odpowiedniego algorytmu (jeden z tematów projektu inżynierskiego zaproponowany przez dr Macieja Nikodema) może zostać porównane ze zdjęciem z paszportu.

4.2.2.2 Skanowanie zdjęcia

Powstaje własne oprogramowanie do skanowania dzięki, któremu możliwe będzie skanowanie tylko interesujących części strony paszportu zawierającej dane personalne (oszczędność czasu).

4.2.2.3 Zdjęcie z danych biometrycznych

Przetworzenie strumienia bajtów danych odczytanych z układu w paszporcie. Trudność stanowi konieczność rozpoznania w jakim formacie zdjęcie jest to zapisane oraz sposób zapisu tego zdjęcia w paszporcie (struktura ASN.1).

4.2.3 OCR

4.2.3.1 Skanowanie obszaru MRZ

4.2.3.2 Rozpoznanie obszaru MRZ

Celem tych zadań jest również zautomatyzowanie procesu identyfikacji osoby na podstawie posiadanego paszportu. BAC wymaga danych odczytanych z pola czytania maszynowego (więcej informacji wyżej w dziale Podstawy Teoretyczne).

4.2.4 Oprogramowanie przycisków

4.2.4.1 Połączenie z częścią sprzętową

4.2.4.2 Połączenie z aplikacjami od zdjęć

4.2.4.3 Połączenie z OCR

Zamierzeniem jest stworzenie jednej aplikacji, interfejsu, umożliwiającej obsługę wszystkich zaimplementowanych funkcji.

5. Symulacja paszportu

5.1 Przygotowanie środowiska do kompilacji apletu

5.1.1 Kompilacja apletu i wgranie na kartę

Programowanie karta JCOP wymaga zainstalowanego frameworku do obługi kart inteligentnych Java Card Kit oraz jdk w odpowiedniej wersji. Wersje obu uzależnione są od tego, z jakimi współpracuje używana przez nas karta.

5.2 Skopiowanie istniejącego paszportu

Stworzenie kopii polskiego paszportu na karcie JCOP.

5.3 Stworzenie własnego paszportu

Ze stworzeniem własnego paszportu wiąże się stworzenie własnego państwa :).

6. Tworzenie dokumentacji

Nie wymaga raczej komentarza :).

 

Harmonogram powyższych zadań można zobaczyć w postaci diagramu Gantta w odpowiednim dziale.

Zrealizowanie powyższych zadań to osiągniecie wszelkich celów jakie zostały zaplanowane. Jednak czy będzie to możliwe na razie sami nie wiemy. Póki co skutecznie i z wytrwałością realizujemy poszczególne zadania.

Lista kamieni milowych:

1. 12 marca 2010 r. - Przygotowanie do pracy - przygotowanie teoretyczne, przydział zasobów oraz opracowanie harmonogramu zadań.

2. 27 marca 2010 r. - Wersja graficzna interfejsu - znany jest wygląd i funkcjonalności jakie będzie umozliwiał interfejs

3. 12 kwietnia 2010 r. - Czytnik i karta ze sobą współpracują - ponadto komunikacja jest odpowiednio szyfrowana

4. 15 maj 2010 r. - Odczytujemy dane - możliwa jest autoryzacja za pomocą wszelkich standardów

5. 5 czerwiec 2010 r. - Interfejs umożlwia obsługę systemu identyfikacji, na karcie JCOP znajduje się nasz paszport

6. 12 czerwiec 2010 r. - Dokumentacja gotowa - Projekt skończony

Realizacją projektu zajmują się:

Tomasz Klewin, 163883

Rafał Bartosiewicz, 163882

Igor Orszański, 163314

Marcin Wiatrak, 163886

Michał Wilkocki, 163790