Kryptograficzny system ochrony plików z wykorzystaniem karty elektronicznej.pdf

(3470 KB) Pobierz
46319822 UNPDF
Politechnika Świętokrzyska w Kielcach
Wydział Elektrotechniki, Automatyki i Informatyki
Katedra Informatyki
Kierunek: Informatyka
Specjalność: Systemy informacyjne
Andrzej Sadowski-Skwarczewski
nr albumu 48 955
Praca dyplomowa
inżynierska
na temat:
Kryptograficzny system ochrony plików z
wykorzystaniem karty elektronicznej
promotor pracy dyplomowej:
Prof. Dr Hab. Inż. Anatoliy Melnyk
Rok akademicki 2006/2007
Spis treści
SPIS TREŚCI
1 Wstęp..............................................................................................................................4
2 Przegląd i analiza metod ochrony danych odpowiednich do zastosowania w
systemie......................................................................................................................................7
2.1 Założenia dla systemu kryptograficznego...........................................................7
2.2 Algorytmy kryptograficzne.................................................................................7
2.2.1 Algorytmy symetryczne..........................................................................8
2.2.1.1 Szyfry strumieniowe....................................................................9
2.2.1.2 Szyfry blokowe............................................................................9
2.2.1.3 Tryby pracy algorytmów blokowych.........................................10
2.2.2 Jednokierunkowe funkcje skrótu...........................................................14
2.3 Metody łamania zabezpieczeń kryptograficznych............................................15
2.4 Wybór algorytmów kryptograficznych dla systemu.........................................17
2.4.1 wybór szyfru symetrycznego.................................................................17
2.4.1.1 Opis działania algorytmu AES..................................................18
2.4.2 wybór funkcji skrótu..............................................................................23
2.4.2.1 Opis działania funkcji SHA-256................................................23
2.5 Przegląd stykowych kart elektronicznych.........................................................25
2.5.1 Karty pamięciowe..................................................................................25
2.5.2 Karty procesorowe.................................................................................26
2.6 Wybór karty elektronicznej dla systemu...........................................................26
2.6.1 Wymagania dla karty stosowanej w systemie.......................................26
2.6.2 Karta Eurochip SLE4436 w zastosowaniu standardowym....................27
2.6.3 Zastosowanie karty Eurochip SLE4436 w systemie.............................27
3 Opracowanie struktury systemu kryptograficznego..............................................29
3.1 Szyfrowanie pliku..............................................................................................29
3.2 Deszyfrowanie pliku..........................................................................................30
3.3 Zadania modułu sprzętowego............................................................................32
3.4 Zadania aplikacji obsługi modułu sprzętowego................................................32
4 Opracowanie modułu sprzętowego............................................................................33
4.1 Opracowanie interfejsu komunikacji z kartą elektroniczna..............................33
4.1.1 Standard komunikacji z kartą SLE 4463.................................................33
4.1.2 Interfejs dla karty...................................................................................35
4.2 Opracowanie sprzętowego generatora liczb losowych......................................36
4.2.1 Metody sprzętowej generacji liczb losowych........................................36
4.2.2 Generator liczb losowych wybrany dla systemu......................................36
4.3 Opracowanie interfejsu komunikacji z systemem komputerowym...................38
4.3.1 Podstawowe informacje o magistrali USB............................................38
4.3.2 Transmisja danych przy użyciu magistrali USB...................................39
4.3.2.1 Rodzaje transferów na magistrali USB......................................40
4.3.3 Enumeracja urządzeń na magistrali USB..............................................40
4.3.3.1 Deskryptory urządzeń USB.......................................................41
4.3.4 Urządzenia klasy HID...........................................................................43
4.3.5 Interfejs elektryczny USB w module sprzętowym................................44
4.4 Opracowanie struktury modułu sprzętowego....................................................44
4.4.1 Wybór mikrokontrolera sterującego......................................................45
4.4.2 Projekt schematu ideowego urządzenia.................................................47
4.4.3 Realizacja modułu sprzętowego............................................................48
2
46319822.005.png 46319822.006.png
Spis treści
4.4.4 Implementacja programu sterującego modułem sprzętowym...............52
4.4.4.1 Obsługa enumeracji i komunikacji USB...................................52
4.4.4.2 Realizacja funkcjonalności urządzenia przy pomocy raportów
HID (human interface device)...................................................................................................54
4.4.4.3 Deskryptor HID dla urządzenia.................................................55
5 Implementacja aplikacji obsługi systemu kryptograficznego.................................57
5.1 Środowisko programistyczne i pracy aplikacji..................................................57
5.2 Zadania i algorytmy pracy aplikacji..................................................................57
5.3 Użytkowanie aplikacji.......................................................................................62
6 Integracja i walidacja systemu kryptograficznego..................................................64
6.1 Walidacja modułu sprzętowego........................................................................64
6.2 Walidacja systemu kryptograficznego..............................................................66
7 Podsumowanie.............................................................................................................67
8 Bibliografia..................................................................................................................68
8.1 Zawartość dołączonej płyty CD........................................................................68
3
46319822.007.png 46319822.008.png
Wstęp - rozdział 1
1 Wstęp
Cel pracy
Celem pracy jest zaprojektowanie programowo-sprzętowego kryptograficznego
systemu ochrony plików z wykorzystaniem karty elektronicznej, przy pomocy współczesnych
technologii ochrony danych oraz środowisk i narzędzi programistycznych.
Podstawową cechą prezentowanego systemu jest brak konieczności pamiętania i
wymyślania haseł, dzięki wykorzystaniu kart elektronicznych oraz sprzętowego generatora
liczb losowych.
Celem pracy jest także zaprojektowanie i zbudowanie modułu sprzętowego
komunikującego się z systemem jako urządzenie HID na magistrali USB.
Jakie korzyści daje nam kryptografia ?
Kryptografia jest dziedziną nauki zajmującą się praktycznym wykorzystaniem
matematyki w celu ochrony danych. Kryptografia dostarcza metod do przekształcenia
informacji jawnych zrozumiałych dla wszystkich, w szyfrogram zrozumiały tylko dla
określonego odbiorcy. Współczesna kryptografia dostarcza także metody pozwalające na
poświadczenie tożsamości osoby generującej szyfrogram oraz możliwość zabezpieczenia
informacji przed modyfikacją. Aby uzyskać szyfrogram z informacji jawnych oraz informacje
jawne z szyfrogramu potrzebny jest klucz. Klucz jest hasłem, które znają wyłącznie osoby
uprawnione do dostępu do informacji.
Obecnie nadal wykorzystywane są metody uchodzące za zapewniające
bezpieczeństwo lecz nie mające nic wspólnego z kryptografią. Dość wygodne wydaje się
zastosowanie tajnego wejścia do systemu, działającego wedle zasad, które zna wyłącznie ich
autor. Niestety jest to złudne poczucie bezpieczeństwa jest to tzw. "security by obscurity"
czyli bezpieczeństwo przez utajnienie. Tego typu zabezpieczenia można porównać do ukrycia
kluczy do mieszkania pod wycieraczką, lub w tylko nam znanej doniczce w ogródku.
Prawdziwe bezpieczeństwo zapewnia system którego zasady działania są ogólnie
znane a mimo to najlepszym sposobem łamania jest algorytm brute force. Czyli mimo, że
znamy pełną specyfikacje systemu nie pozostaje inna metoda tylko sprawdzanie wszystkich
możliwych haseł aż do momentu gdy odgadniemy prawidłowy klucz. Jedynie tego typu
system możemy uznać za chroniący dane w bezpieczny sposób, przy pomocy metod
kryptograficznych.
Kryptografia dostarcza sprawdzone algorytmy, zapewniające wysoki poziom
bezpieczeństwa. Aby utajnić dane, nie musimy odkrywać nowych szyfrów, wystarczy ze
zrozumieniem skorzystać ze współczesnych metod ochrony danych.
4
46319822.001.png 46319822.002.png
Wstęp - rozdział 1
Problem hasła
Algorytmy kryptograficzne do swojej pracy potrzebują danych wejściowych (tekst
jawny lub szyfrogram) oraz klucz. Podanie właściwego klucza przy deszyfrowaniu powoduje
uzyskanie danych jawnych. Odpowiedni klucz pozwala na duży poziom bezpieczeństwa
danych. Hasło powinno być tak dobrane aby atakujący nie mógł go odgadnąć. Najlepszym
hasłem jest długi i losowy ciąg znaków. Niestety losowe i długie hasło jest trudne do
zapamiętania i wprowadzania. Użytkownicy systemu zmuszeni stosować długie i trudne
hasła, zwykle zapiszą klucze na kartce. Kartka z hasłem zostaje zwykle dla wygody
umieszczona w pobliżu komputera, stwarza to okazje do łatwego dostępu do hasła. W
prezentowanej pracy problem haseł został rozwiązany.
Wprowadzenie
Prezentowany system kryptograficzny wykorzystuje ogólnie znane bezpieczne i
nowoczesne metody ochrony danych. W systemie zostały zastosowane innowacyjne
rozwiązania, które zapewniają wysoki poziom bezpieczeństwa przy zachowaniu łatwego
dostępu do danych.
Jednym z założeń jest wysokie bezpieczeństwo danych, przy łatwości i wygodzie
użytkowania na poziomie wypłat z bankomatu kartą magnetyczną.
Kluczem do pełnego wykorzystania silnych algorytmów kryptograficznych są mocne
hasła. Mocne hasła powinny być długie, losowe oraz wykorzystywać jednakowo
prawdopodobnie zbiór możliwych kluczy. Zwykle hasła wymyślane są przez użytkowników
systemu, oraz wprowadzane przy pomocy klawiatury. Hasła wpisywane z klawiatury
korzystają ze zbioru znaków o liczności 50-128 natomiast dostępne jest 255 znaków do
wykorzystania. Mocne hasła są trudne do zapamiętania oraz używania, hasła łatwe do
zapamiętania są zwykle podatne na ataki słownikowe.
W przedstawionym systemie problem haseł został rozwiązany przy pomocy kart
elektronicznych. Użytkownik systemu nie musi pamiętać i wymyślać haseł. Mocne hasła są
generowane automatycznie przy pomocy generatora liczb prawdziwie losowych.
Problematyczne stosowanie skomplikowanych haseł zwykle zniechęca przed ich
stosowaniem. Wykorzystanie kart elektronicznych pozwoliło połączyć wygodę użytkowania
oraz wysoki poziom ochrony danych.
Założenia systemu zostały omówione w prezentacji “Chipcard-based PC
Data Protection System Investigation” wspólnie z Dr inż. Wiktorem Melnykiem na
międzynarodowym sympozjum XVIII IEEE-SPIE Symposium WILGA 2006
w czerwcu 2006. Na sympozjum przedstawiane są wyłącznie wyniki pracy własnej,
oficjalnym językiem jest język angielski. Każda praca jest dyskutowana, jest to doskonały
sposób walidacji założeń prezentowanego pomysłu.
Prezentowana praca spotkała się z zainteresowaniem obecnych. Większość pytań
dotyczyła realizacji szyfrowania każdego pliku innym hasłem, mimo, że użytkownik posiada
tylko jedną kartę elektroniczną.
5
46319822.003.png 46319822.004.png
Zgłoś jeśli naruszono regulamin