next up previous contents
Next: Podziękowania Up: Wykorzystanie kart procesorowych w systemie Previous: Spis rysunków   Spis tresci

Wstęp

Długo uważano, że karty procesorowe mogą być jedynie stosunkowo bezpiecznym nośnikiem niewielkiej ilości informacji -- czymś w rodzaju dyskietki chroniącej dostęp do danych. Od kilku lat porównuje się je jednak z komputerami osobistymi, na których można uruchamiać różnego typu aplikacje.

Odkrycie potencjału technologii kart procesorowych zabrało dwadzieścia lat. Nie można było zdobyć szczegółowych informacji technicznych dotyczących kart procesorowych. Tylko prominenci znali architekturę kart i ich systemów operacyjnych. Wiedzieli, w jaki sposób pisać oprogramowanie dla kart procesorowych i mieli dostęp do narzędzi wspomagających proces jego tworzenia. Taka sytuacja była efektem przemyślanej polityki dużych firm produkujących karty procesorowe. Technologia kart była bowiem wykorzystywana w ogromnych projektach związanych z różnymi elementami życia publicznego, takimi jak transport, telekomunikacja czy sektor finansowy. Kontrola przepływu informacji o kartach procesorowych i ograniczony dostęp do nich miały podwyższyć poziom bezpieczeństwa istniejących systemów (ang. smart card security through obscurity). Znalezienie jakiejkolwiek szczeliny w bezpieczeństwie funkcjonującego systemu opartego o karty procesorowe obniżyłoby przecież publiczne zaufanie do kart.

Przyszedł jednak moment, w którym postanowiono wykorzystać karty procesorowe na szeroką skalę. Ujawniono większość informacji o kartach procesorowych. Dzięki temu każda, nawet niewielka, instytucja mogła stworzyć dopasowaną do swoich potrzeb aplikację wykorzystującą karty procesorowe.

W ramach niniejszej pracy zaprojektowano i zaimplementowano zaawansowany system elektronicznej gotówki. Został on oparty na algorytmach zaprezentowanych przez Davida Chauma. System nie pozwala na śledzenie transakcji wykonywanych przez jego użytkowników. Umożliwia przeprowadzanie płatności autonomicznych, nie wymagających udziału banku. System został zaimplementowany w środowisku Linux. Do jego realizacji wykorzystano nowoczesne karty procesorowe wyposażone w maszynę wirtualną języka Java. Realizacja postawionych systemowi wymagań wymagała zastosowania skomplikowanych algorytmów kryptograficznych. Część z nich musi być wykonywana przez aplikację działającą na karcie. Aplikacja ta jest jednym z fragmentów stworzonego w ramach pracy oprogramowania. Implementując ten złożony system, mogliśmy sprawdzić wiele aspektów działania kart procesorowych. W naszym systemie karta pełni rolę elektronicznego portfela. Musi zatem dysponować pamięcią do przechowania odpowiednio dużej liczby banknotów. Karta powinna też chronić pieniądze, które zawiera. W szczególności musi być w stanie wykonywać operacje kryptograficzne. Wszystkie funkcje realizowane przez kartę powinny być przeprowadzane szybko, aby transakcje, na których zakończenie czekają użytkownicy, zajmowały mało czasu.

Celem naszego projektu było zbadanie, czy dostępne obecnie karty nadają się do realizacji tak złożonych algorytmów. Zdobyta w trakcie implementacji systemu wiedza praktyczna pozwoliła autorom odpowiedzieć na to pytanie w części teoretycznej pracy.

Pierwsze rozdziały stanowią wprowadzenie do poruszanych zagadnień. W rozdziale 2 przybliżamy tematykę kart procesorowych. Piszemy o rodzajach kart, o tym jak je programować oraz w jaki sposób można się z nimi komunikować. Rozdział 3 jest natomiast poświęcony tematyce elektronicznych pieniędzy. Kolejne rozdziały dotyczą już bezpośrednio zaimplementowanego przez nas systemu elektronicznej gotówki. Rozdział 4 zawiera jego specyfikację a rozdział 5 opis architektury.

W rozdziale 6 dzielimy się praktyczną wiedzą na temat kart procesorowych, którą zdobyliśmy przy realizacji naszego systemu. Mówimy też o problemach, na które się natknęliśmy. Rozdział 7 zawiera podsumowanie naszej pracy. Staraliśmy się w nim ocenić możliwości współczesnych kart procesorowych.



Subsections
next up previous contents
Next: Podziękowania Up: Wykorzystanie kart procesorowych w systemie Previous: Spis rysunków   Spis tresci
Janina Mincer-Daszkiewicz 2001-11-21