Wykład 4: Podstawy bezpieczeństwa i IT dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011
Plan Podstawy IT struktury danych kodowanie danych alfanumerycznych notacja SDL automat skończony EDC i ECC kompresja danych dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 2
Plan Podstawy bezpieczeństwa kryptologia funkcje haszujące liczby losowe uwierzytelnianie dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 3
PODSTAWY IT struktury danych, kodowanie, SDL, automaty, EDC i ECC, kompresja danych dr inż. dr Marek inż. Marek Mika, Mika, Instytut Instytut Informatyki, Politechnika Poznańska, 2011 2011 4
Podstawy IT struktury danych kodowanie danych alfanumerycznych notacja SDL automat skończony EDC i ECC kompresja danych dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 5
Struktury danych ASN.1 (Abstract Syntax Notation) sposób opisu obiektów danych niezależny od sposobu ich kodowania pierwotnie przeznaczony do transmisji danych pomiędzy różnymi systemami komputerowymi XML (extensible Markup Language) może stanowić alternatywę dla ASN.1 dotychczas niezbyt popularny w obszarze zastosowań KE PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 6
ASN.1 Rodzaj sztucznego języka Odpowiedni do opisu danych i ich struktur (nie nadaje się do programowania) Norma ISO/IEC 8824 składnia Norma ISO/IEC 8825 kodowanie Obydwie normy wywodzą się z CCITT Recommendation X.409 PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 7
ASN.1 typy danych Podstawowe typy proste - BOOLEAN - INTEGER - BIT STRING - OCTET STRING - REAL - ENUMERATED złożone - SEQUENCE struktura uporządkowana - SET struktura nieuporządkowana PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 8
Przykład: definicja typu i obiekt danych PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 9
Kodowanie TLV TLV Tag-Length-Value Norma ISO/IEC 7816-6 znaczniki dla obiektów danych używanych w zastosowaniach ogólnych w sferze przemysłowej Norma ISO/IEC 7816-4 znaczniki dla bezpiecznej komunikacji Standard EMV własne znaczniki stosowane w systemach płatniczych Użytkownik ma możliwości definiowania własnych znaczników oraz zagnieżdżania obiektów danych Obecnie tylko niewielka część dostępnej składni stosowana w KE (głównie przez ograniczony rozmiar pamięci) PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 10
BER BER Basic Encoding Rules for ASN.1 ISO/IEC 8825 Zakodowane obiekty danych BER-TLV - obiekty danych zakodowane wg BER Obiekt BER-TLV składa się ze znacznika, długości, danych aktualnych i opcjonalnego znacznika końca PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 11
Reguła kodowania BER-TLV wg ASN.1 PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 12
Dane zakodowane w ASN.1 BER-TLV PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 13
DER DER Distinguished Encoding Rule Podzbiór BER określający sposób kodowania pola długości Rozmiar pola długości: 1,2,3 lub 4 bajty Dwa najbardziej znaczące bity oznaczają klasę obiektu Klasa oznacza ogólny typ danych obiektu: uniwersalna ogólne obiekty (np. liczby całkowite, łańcuchy danych) aplikacyjna obiekt właściwy dla danych zastosowań lub standardów (np. ISO/IEC 7816-6) zależna od kontekstu zastosowania niestandardowe prywatna zastosowania niestandardowe W drugim bajcie najbardziej znaczący bit przeznaczony do przyszłych zastosowań (obecnie nieużywany) PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 14
Kodowanie znaczników w ASN.1 PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 15
Kodowanie TLV - przykład PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 16
Struktura pola długości BER w ASN.1 PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 17
Pozostałe informacje nt. ASN.1 Wzorzec (template) - wg normy jest to obiekt danych działający jak kontener dla innych danych ISO/IEC 7816-6 definiuje znaczniki dla obiektów danych stosowanych w różnych zastosowaniach KE (także inne wychodzące poza ten sektor) ISO 9992-2 znaczniki dla KE stosowanych w sektorze finansowym PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 18
ASN.1 zalety i wady Zalety: bardzo łatwe rozszerzanie struktur danych (wystarczy dodać dodatkowy obiekt zakodowany TLV) zapewniona pełna kompatybilność z wcześniejszą wersją (o ile nie usunięto poprzednich obiektów TLV) pełna kompatybilność z nowymi wersjami struktur (wymagana tylko pewna modyfikacja znaczników) łatwo można przedstawić te same dane różnym kodowaniem Wady: w przypadku małych zbiorów danych użytkownika duże koszty zarządzania kodowanymi danymi (1 bajt danych użytkownika wymaga 3 bajtów kodu) PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 19
Schemat budowy złożonej struktury z typów prostych przy kodowaniu TLV PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 20
Porządek danych w strukturze TLV Porządek danych w strukturze TLV nieistotny procesor najpierw odczytuje znacznik szuka znacznika wśród tych znaczników, które zna jeśli znajdzie to następnie czyta pole długości i odpowiednią liczbę bajtów danych jeśli nie znajdzie to pomija nieznany znacznik i przechodzi do następnego obiektu Rozszerzenie struktury przez dodanie nowego obiektu bezproblemowe można go dodać w dowolnym miejscu (pomiędzy innymi obiektami) jeśli jakiś starszy program nie będzie znał nowego znacznika po prostu go przeskoczy PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 21
Porządek obiektów danych w strukturze TLV - przykład PODSTAWY IT STRUKTURY DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 22
Podstawy IT struktury danych kodowanie danych alfanumerycznych notacja SDL automat skończony EDC i ECC kompresja danych dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 23
Kod siedmiobitowy (ASCII) 2 7 =128 znaków ASCII American Standard Code for Information Interchange norma ISO/IEC 646 główna wada za mało znaków dla wielu praktycznych zastosowań stosowany w systemach GSM (standard TS 23.038) PODSTAWY IT KODOWANIE DANYCH ALFANUMERYCZNYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 24
Kod ośmiobitowy (PC-ASCII) 2 8 = 256 znaków pochodzi od ASCII (pierwsze 128 znaków) norma ISO/IEC 8859 dwie 7-bitowe tablice: stała zgodna z ASCII zmienna używana na potrzeby znaków charakterystycznych dla alfabetów narodowych np. Latin 1, Latin 2 (w DOS-ie strona kodowa 850, w Windows ANSI, mainframe EBCDIC /nie stosowany w KE/) PODSTAWY IT KODOWANIE DANYCH ALFANUMERYCZNYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 25
Kod szesnastobitowy (Unicode) do 65 546 znaków opracowany przez Unicode Consortium pierwsze 256 znaków takie jak w ISO/IEC 8859-Latin 1 da się zakodować większość znaków (nie wszystkie) możliwość łączenia znaków parami (tzw. escape sequence w Unicode 3.0) umożliwia zakodowanie ok. 1 mln znaków PODSTAWY IT KODOWANIE DANYCH ALFANUMERYCZNYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 26
Kod 32-bitowy (UCS) 2 32 =4 294 967 296 znaków (obecnie używana tylko połowa) Pozwala zakodować wszystkie znaki (litery, cyfry, ideogramy itp.) ze wszystkich żywych i martwych języków świata UCS Universal Character Set Norma ISO/IEC 10 646 Składa się z 4 bajtów nazywanych (od najbardziej znaczącego): grupa płaszczyzna wiersz komórka PODSTAWY IT KODOWANIE DANYCH ALFANUMERYCZNYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 27
UCS płaszczyzna zerowa i wiersz zerowy Płaszczyzna składa się z 65 536 znaków Najniższa płaszczyzna (grupa 0, płaszczyzna 0) to tzw. podstawowa płaszczyzna wielojęzyczna - jest identyczna z unikodem Najniższy wiersz (g:0, p:0, w:0) odpowiada ISO/IEC 8859-Latin 1 (a pierwsze 128 znaków kodowi ASCII) PODSTAWY IT KODOWANIE DANYCH ALFANUMERYCZNYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 28
Porównanie systemów kodowania znaków alfanumerycznych PODSTAWY IT KODOWANIE DANYCH ALFANUMERYCZNYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 29
UTS Istnieją trzy powszechnie używane schematy UTS (UCS Transformation Format) UTF-8 koduje bajty UTF-16 koduje znaki 16-bitowe (Unicode) tzw. UCS-2 UTF-32 tzw. UCS-4 PODSTAWY IT KODOWANIE DANYCH ALFANUMERYCZNYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 30
Plan Podstawy IT struktury danych kodowanie danych alfanumerycznych notacja SDL automat skończony EDC i ECC kompresja danych dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 31
Notacja SDL SDL Specification and Description Language Szczegółowy opis w CCITT Recommendation Z.100 Notacja w postaci diagramów opisujących stany i przejścia pomiędzy nimi Diagram SDL zawsze jest prowadzony od lewego górnego rogu do prawego dolnego (nie trzeba stosować strzałek) W uproszczeniu notacja służy do opisu systemu składającego się z wielu procesów, gdzie każdy proces to automat skończony, który w stanie stabilnym może otrzymać sygnał zewnętrzny, na skutek którego może przejść do nowego stanu (pomiędzy stanami mogą wystąpić dodatkowe działania np. transmisja danych, obliczenia wartości itp.) PODSTAWY IT NOTACJA SDL dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 32
Podstawowe symbole notacji SDL 1 - Start (początek procesu); 2 Task (czynność opisana tekstem umieszczonym wewnątrz pola); 3 Decision (pytanie z odpowiedzią T/N); 4 Label (odnośnik do innego diagramu); 5 Input oraz 6 Output (interfejsy do świata zewnętrznego parametry wewn. bloku); 7 State (stan); 8 Subroutine (oznacza, że ten fragment diagramu jest opisany gdzie indziej); 9 Suroutine start oraz 10 Subroutine end (ograniczają szczegółowy opis podprogramu) PODSTAWY IT NOTACJA SDL dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 33
Plan Podstawy IT struktury danych kodowanie danych alfanumerycznych notacja SDL automat skończony EDC i ECC kompresja danych dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 34
Automaty - podstawy teoretyczne Diagram stanów digraf reprezentujący zbiór stanów (węzły) i związki pomiędzy nimi (łuki) Ścieżka Pętla Norma ISO/IEC 7816-9 definiuje automaty dla KE i opisuje m.in. Access Control Descriptor (ACD) ACD określa komendy dopuszczalne w danym stanie i ich parametry PODSTAWY IT AUTOMAT SKOŃCZONY dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 35
Reprezentacja automatu w postaci diagramu stanów i diagramu SDL diagram stanów diagram SDL PODSTAWY IT AUTOMAT SKOŃCZONY dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 36
Reprezentacja automatu w postaci tabelarycznej PODSTAWY IT AUTOMAT SKOŃCZONY dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 37
Reprezentacja automatu w UML prosty z podstanami PODSTAWY IT AUTOMAT SKOŃCZONY dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 38
Zalety praktycznych zastosowań automatu Zalety: mała zajętość pamięci zwarty kod programu ściśle określona sekwencja stanów jest wystarczającym prostym i skutecznym zabezpieczeniem dostępu do danych PODSTAWY IT AUTOMAT SKOŃCZONY dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 39
Wady praktycznych zastosowań automatu Wady: błąd w diagramie stanów może mieć fatalne skutki dla bezpieczeństwa systemu w przypadku skomplikowanych automatów problemy z wykazaniem poprawności diagramu stanów implementacja rozbudowanego automatu o określonych możliwościach czasochłonna zarówno na etapie projektowania, jak i programowania skomplikowane automaty potrzebują bardzo dużo pamięci (w kontekście pojemności pamięci KE) PODSTAWY IT AUTOMAT SKOŃCZONY dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 40
Prosty dwustanowy automat dla KE PODSTAWY IT AUTOMAT SKOŃCZONY dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 41
Plan Podstawy IT struktury danych kodowanie danych alfanumerycznych notacja SDL automat skończony EDC i ECC kompresja danych dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 42
EDC i ECC Układy elektroniczne KE wrażliwe na skoki napięcia zasilającego oraz na wysoką temperaturę Konieczność stosowania mechanizmów wykrywania błędów pamięci EDC Error Detection Code pozwala wykryć błędy pamięci (z prawdopodobieństwem zależnym od zastosowanej metody) ECC Error Correction Code rozszerzenie EDC, które w pewnym stopniu (z prawdopodobieństwem zależnym od zastosowanej metody) potrafi naprawić błędy pamięci Wszystkie metody EDC opierają się na sumach kontrolnych metody są jawne PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 43
Zasada działania EDC PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 44
Bit parzystości Najprostsza technika Parzystość parzysta i nieparzysta Wady: korekcja niemożliwa (nie można okreslić pozycji błędu) nie wykrywa błędów parzystych duże nakłady pamięciowe 1:8 (12,5%) problemy ze stosowaniem w pamięci o organizacji bajtowej (dlatego nie stosowane w KE) PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 45
Bit parzystości przykład PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 46
Suma kontrolna XOR Inna nazwa to LRC (Longitudinal Redundancy Check) Zasada: wylicza sumę XOR kolejnych bajtów (((B1 xor B2) xor B3) xor B4) sprawdzenie polega na ponownym wyznaczeniu sumy XOR i wykonaniu operacji XOR wyniku z zapamiętaną sumą kontrolną (wynik różny od zera oznacza wykrycie błędów) Zastosowania: transmisja danych w niektórych zastosowaniach do weryfikacji spójności zawartości pamięci PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 47
Suma kontrolna XOR przykład PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 48
XOR zalety i wady Zalety: proste i szybkie obliczenia bardzo łatwa implementacja (kod wielkości 10-20 bajtów) sprawdzony w transmisji danych często z definicji zaimplementowany na karcie (norma ISO wymusza dla protokołu T=1) Wady: nie wykrywają zmiany kolejności bajtów nie wykrywają błędów tego samego bitu w parzystej liczbie bajtów PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 49
Suma kontrolna CRC CRC Cyclic Redundancy Check Metoda EDC powszechnie stosowana w transmisji danych (modemowe protokoły Xmodem, Zmodem, Kermit, sprzętowe implementacje w kontrolerach HDD Norma ISO/IEC 13 239 i rekomendacja CCITT V.41 Mechanizm: dane są traktowane jak bardzo duża liczba, która następnie jest dzielona przez wielomian generatora Sprawdzenie poprawności danych wymaga znajomości wielomianu generatora i początkowej wartości rejestru przesuwnego i polega na ponownym wyliczeniu CRC i porównaniu z zapisaną wartością PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 50
CRC-16 i CRC-32 CRC-16 jest wyznaczane z zastosowaniem 16- bitowego rejestru przesuwnego CRC-32 jest wyznaczane przy zastosowaniu 32-bitowego rejestru przesuwnego CRC-16 stosowane dla bloków o rozmiarze do 4kB (powyżej spada wydajność) CRC-32 może obsłużyć bloki o rozmiarze do 4GB Początkowa wartość rejestru przesuwnego to 0 (metody zgodne z ISO 3309), w nielicznych przypadkach wszystkie bity rejestru ustawione na 1 (rekomendacja CCITT X.25) PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 51
Powszechnie stosowane wielomiany PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 52
Zasada wyliczania CRC-16 Generator G(x)=x 16 +x 12 +x 5 +1 PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 53
Liczenie CRC przykład wielomian G(x)=x 16 +x 12 +x 5 +1 początkowa wartość rejestru 0000 PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 54
CRC zalety i wady Zalety; solidny sposób wykrywania błędów (nawet wielokrotnych) umożliwia wykrycie zamiany bajtów (kolejność ma znaczenie) łatwy w implementacji mała zajętość pamięci możliwość implementacji sprzętowej niektóre mikrokontrolery wyposażone w elementy wspomagające liczenie CRC Wady: stosunkowo wolne działanie w wersji software owej (ok.200 razy wolniej niż XOR) PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 55
Kodowanie Reeda-Solomona 1960 podstawy opracowane przez matematyków Reeda i Solomona Jest to również kod ECC Mechanizm oparty na arytmetyce ciał skończonych Zastosowania: magazynowanie danych (CD, DVD, dyski Blue- Ray, kody kreskowe) transmisja danych (DSL, WiMAX, komunikacja satelitarna, sondy kosmiczne) PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 56
Kodowanie Reeda-Solomona c.d. Kodowanie cykliczne Metoda zorientowana na bloki danych Wielomian generatora ma wpływ na liczbę wykrywanych i poprawianych błędów Kod RS oparty na ciele skończonym rozmiaru 2 8 wykrywa 2 błędne bajty i poprawia 1 (przy 2 dodatkowych bajtach), 3 i 1 (przy 3), 4 i 2 (przy 3) Powszechnie stosowany od lat w KE do wykrywania błędów danych przechowywanych w pamięciach EEPROM lub Flash PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 57
Kodowanie Reeda-Solomona zalety Program wielkości ok. 100B Dość szybki Możliwa implementacja sprzętowa Powszechnie używany w różnych obszarach zastosowań PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 58
ECC schemat działania PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 59
ECC Metody obliczeniowe pamięciowo- i czasochłonne, zazwyczaj projektowane tylko dla drobnych błędów Rozwiązania alternatywne: umieścić kopie danych w kilku obszarach i zastosować technikę głosowania większościowego (typowe 3 obszary, 2/3 zwycięża) mniej pamięciożerne rozwiązanie to dwa obszary sprawdzanie sumą kontrolną EDC (łatwo wykryć błąd, łatwo wykryć miejsce błędu, stosunkowo łatwo można go naprawić) PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 60
ECC metody alternatywne zalety i wady Zalety: łatwość zaprogramowania prosty mechanizm prosty i zwięzły kod programu Wady: duża zajętość pamięci PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 61
Metoda Reeda-Salomona jako ECC Wymagane około kilkuset bajtów na kod programu Rozmiar zakodowanych danych zależy przede wszystkim od wymaganego prawdopodobieństwa wykrywania i lub poprawnej korekcji PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 62
Korekcja błędnych danych - wady Znacząca ilość potrzebnej pamięci Czasochłonne (metoda kilku kopii, czas zapisu) Wymagane miejsce na przechowywanie EDC Nie zabezpieczają w pełni (tylko do wybranego poziomu) Jeśli korekcja przebiega automatycznie (z poziomu OS-u) to nie ma pewności co do jej poprawności (w niektórych zastosowaniach błędna korekcja niedopuszczalna np. portmonetka elektroniczna) Czynnik ludzki łatwiej uwierzyć w manipulowanie danymi niż w błąd zaimplementowanej metody PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 63
Korekcja błędnych danych w pamięci flash o rozmiarze rzędu MB Podejście zwane FTL (Flash Translation Layer) W przypadku wykrycia błędnych danych w bloku pamięci, blok ten jest izolowany i zabrania się wykonywania na nim jakichkolwiek operacji PODSTAWY IT EDC I ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 64
Plan Podstawy IT struktury danych kodowanie danych alfanumerycznych notacja SDL automat skończony EDC i ECC kompresja danych dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 65
Kompresja danych Metody stratne i bezstratne W KE stosowane wyłącznie metody bezstratne Warunki dobrego algorytmu kompresji niewielka zajętość pamięci (przede wszystkim RAM) akceptowalna prędkość kompresji PODSTAWY IT KOMPRESJA DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 66
Podstawowe procesy kompresji i dekompresji danych PODSTAWY IT KOMPRESJA DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 67
Podział metod bezstratnych PODSTAWY IT KOMPRESJA DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 68
RLE i VLE RLE Run-Length Encoding (kodowanie długości serii) powtarzające się znaki zastępuje się parą (liczba wystąpień znak) VLE Variable-Length Encoding (kodowanie znakami o zmiennej długości) analizowana jest częstotliwość wystąpienia poszczególnych znaków, najczęściej występujące znaki są kodowane w pierwszej kolejności krótkimi kodami PODSTAWY IT KOMPRESJA DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 69
Wersje VLE Statyczna do kodowania używana wcześniej zdefiniowana tablica Dynamiczna najpierw analizowana jest częstość wystąpienia poszczególnych znaków i na jej podstawie budowana jest tablica Adaptacyjna tablica jest na bieżąco modyfikowana w czasie kompresji PODSTAWY IT KOMPRESJA DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 70
Kompresja danych w KE Dynamiczna i adaptacyjna wersja VLE: raczej nie stosowane, ze względu na pamięciochłonność (szczególnie RAM) RLE: krótki kod programu zastosowanie wyłącznie do danych z powtarzającą się zawartością Statyczna wersja VLE: dobry gdy znany jest zbiór używanych znaków oraz częstość występowania poszczególnych znaków (np. książka telefoniczna na karcie SIM) Kompresja i dekompresja powinny być transparentne dla użytkownika PODSTAWY IT KOMPRESJA DANYCH dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 71
PODSTAWY ZABEZPIECZEŃ Kryptologia, funkcje haszujące, liczby losowe, uwierzytelnianie dr inż. dr Marek inż. Marek Mika, Mika, Instytut Instytut Informatyki, Politechnika Poznańska, 2011 2011 72
Plan Podstawy bezpieczeństwa kryptologia funkcje haszujące liczby losowe uwierzytelnianie dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 73
Kryptologia Kryptologia dzieli się na kryptografię i kryptoanalizę Kryptografia wiedza o metodach szyfrowania i deszyfrowania danych Kryptoanaliza wiedza o łamaniu metod kryptograficznych dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 74
Cele kryptografii Poufność tylko właściwy odbiorca może odczytać dane Autentyczność odbiorca ma pewność, że komunikat pochodzi od właściwego nadawcy Integralność odbiorca jest w stanie zweryfikować czy otrzymany komunikat nie był modyfikowany w trakcie transmisji Niezaprzeczalność siła wiążąca, strona biorąca udział w wymianie nie może się wyprzeć swojego w niej udziału Cele są niezależne i stanowią odrębne wymagania względem systemu dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 75
Symbolika dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 76
Notacja dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 77
Podstawowe informacje o kryptografii W uproszczeniu technologia szyfrowania ma do czynienia z 3 typami danych: tekst jawny szyfrogram klucze Współczesne algorytmy kryptograficzne są zorientowane blokowo (mogą przetwarzać tylko pakiety danych o określonym rozmiarze) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 78
Podstawowe zasady kryptografii Zasada Kerckchoffsa całe bezpieczeństwo systemu powinno zależeć od poufności klucza, a nie od poufności zastosowanej metody szyfrowania Zasada bezpieczeństwa przez niezrozumienie (security through obscurity) polega na ukrywaniu szczegółów dotyczących, algorytmów, implementacji, formatów i protokołów dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 79
Zasady kryptografii w praktyce Wiele algorytmów szyfrujących stosowanych w sektorze cywilnym zostało upublicznionych a część z nich ustandaryzowano Wbrew pozorom nadal wiele systemów stosuje praktykę ukrywania szczegółów stosowanej metody praktyka pokazuje, że systemy takie są szynko łamane Możliwe jest łączenie obydwu zasad, wtedy ukrywanie szczegółów metody pełni rolę dodatkowego zabezpieczenia Błędnym okazuje się przyjęcie założenia, że współczesny sprzęt nie jest w stanie złamać szyfru dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 80
Algorytmy kryptograficzne Dwa typy: symetryczne ten sam klucz używany do szyfrowania i deszyfrowania asymetryczne szyfrowanie i deszyfrowanie odbywają się przy zastosowaniu różnych kluczy Główny parametr to tzw. rozmiar przestrzeni kluczy (im większy tym lepiej) Główne wymaganie wobec algorytmu szyfrującego to niezależność czasu przetwarzania od klucza, tekstu jawnego i szyfrogramu dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 81
Podział algorytmów kryptograficznych dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 82
Kryptoanaliza bezpieczeństwo systemu System teoretycznie bezpieczny system, którego nie da się złamać dysponując nawet nieograniczonym czasem i nieograniczonymi środkami System praktycznie bezpieczny system, którego nie da się złamać w określonym czasie przy użyciu ograniczonych środków dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 83
Szkodliwe działania intruza dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 84
Typy ataków kryptoanlitycznych dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 85
Ataki kryptoanalityczne ciphertext-only (atak ze znanym szyfrogramem) kryptoanalityk ma do dyspozycji jedynie szyfrogram i na jego podstawie chce odnaleźć klucz (dobre współczesne szyfry są odporne na tego rodzaju ataki). known-plaintext (atak ze znanym tekstem jawnym) kryptoanalityk ma do dyspozycji tekst jawny i odpowiadający mu tekst zaszyfrowany (może to być jedna lub wiele takich par). chosen-plaintext (atak z wybranym tekstem jawnym), kryptoanalityk może wybrać dowolny tekst jawny i poznać (także wielokrotnie) odpowiadający mu szyfrogram klucz można odkryć eksperymentalnie chosen-ciphertext (atak z wybranym szyfrogramem), kryptoanalityk może wybrać szyfrogram i zdobyć odpowiadający mu tekst jawny atak brutalny (brut-force) dla znanej pary tekst jawnyszyfrogram sprawdza się kolejne klucze (statystycznie atak taki wymaga przejrzenie połowy przestrzeni kluczy) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 86
Algorytmy symetryczne DES AES IDEA COMP 128 Milenage TDES dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 87
Podstawowy mechanizm działania symetrycznego algorytmu kryptograficznego dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 88
DES DEA Data Encryption Algorithm Najbardziej znany najpowszechniej stosowany algorytm symetryczny Opracowany przez IBM przy współpracy z US NBS (National Bureau of Standards Opublikowany w 1977 jako FIPS 46 standard Standard opisujący DEA jest powszechnie znany jako Data Encryption Standard (DES) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 89
Zasada działania algorytmu DES dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 90
Confusion i diffusion Dwie reguły: confusion i diffusion Confusion statystyki szyfrogramu powinny wpływać na statystyki tekstu jawnego w taki sposób, że jest to zbyt złożone, by atakujący mógł osiągnąć z tego jakieś korzyści Diffusion każdy bit tekstu jawnego i każdy bit klucza powinny wpływać na tyle bitów szyfrogramu na ile tylko się da dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 91
Cechy algorytmu DES Stosuje zasadę Kerckchoffsa Symetryczny Blokowy Nie poszerza szyfrowanego zbioru danych (rozmiar tekstu jawnego i szyfrogramu identyczne) Rozmiar bloku 64 bity Rozmiar klucza 64 bity (obecnie używane 56) 8 bitów parzystości na blok (od lewej 8,16, 24,,64 bit) Parzystość parzysta Przestrzeń kluczy 2 56 7,2 10 16 za mała jak na możliwości współczesnego sprzętu dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 92
Zastosowanie algorytmu DES Był projektowany z myślą o implementacji sprzętowej Wiele obecnych mikrokontrolerów jest wyposażonych w sprzętowy układ DES Implementacja software owa w assemblerze zajmuje 1-2kB Prędkość działania implementacji software owej raczej niska Klucze mogą być generowane generatorem liczb losowych powinny być porównane z 4 słabymi i 12 prawie słabymi kluczami obliczane są bity parzystości wynik staje się kluczem DES dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 93
Typowe czasy obliczeń dla DES dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 94
Algorytm AES 1997 US NIST (National Institute of Standard and Technology) ogłasza konkurs na następcę DES-a 1998 wybór 15 kandydatów i poddanie ich ocenie przez US NSA (National Security Agency), instytucje badawcze, ekspertów i inne zainteresowane strony 2000 ogłoszenie zwycięzcy algorytm nazwany wcześniej Rijdael opracowany prze belgijskich kryptografów (Daemen i Rijmen) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 95
Cechy algorytmu AES Symetryczny Blokowy Rozmiar bloku 128 bitów Rozmiar klucza: 128 bitów AES-128 192 bity AES-192 256 bitów AES-256 Odpowiedni do implementacji sprzętowej Łatwa implementacja software owa Rozmiar programu ok. 4kB Przestrzeń kluczy 2 128 3,4 10 38 Wolna licencja, darmowy standard FIPS 197 Użyteczny czas życia ok.20 lat dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 96
Typowe czasy dla AES-128 dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 97
IDEA IDEA International Data Encryption Algorithm Opracowany przez Lai i Massey a 1990 opublikowany jako PES (Proposed Encryption Standard) 1991 poprawiona wersja IPES (Improved PES) Przemianowany na IDEA W pełni spełniona zasada Kerckchoffsa Patent dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 98
Cechy algorytmu IDEA Blokowy Rozmiar bloku 64 bity Rozmiar klucza128 bitów Przestrzeń kluczy 2 128 3,4 10 38 Strukturalnie kompatybilny z DES i Triple DES (może być używany w ich miejsce, ale nie może odszyfrować szyfrogramu zaszyfrowanego przez któryś z tych algorytmów) Rozmiar kodu programu ok. 1kB Nieliczne implementacje w KE Czas obliczeń trochę mniejszy niż dla DES dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 99
Czasy obliczeń algorytmu IDEA dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 100
COMP 128 Pierwotnie poufny Złamany w 1998 po opublikowaniu szczegółów struktury Działa w 9 rundach i ma w jądrze funkcję haszującą generującą 128 bitową wartość haszującą z 256 bitowej wartości wejściowej COMP 128-2 i COMP 128-3 następcy COMP 128 bez słabych stron swego poprzednika COMP 128-4 (Milenage) następca COMP 128 oparty na AES dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 101
Milenage Symetryczny Przeznaczony dla funkcji kryptograficznych f1 i f5 USIM Jądro używa AES Standard TS 35.206 Oficjalny algorytm projektu 3GPP używany przez wielu operatorów sieciowych w operacjach czasu rzeczywistego dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 102
Tryby operacyjne algorytmów szyfrowania blokowego Wg ISO 8372 każdy blokowy algorytm szyfrujący może być użyty w jednym z 4 trybów: CFB i OFB odpowiednie dla łańcuchów tekstowych nie mających struktury blokowej (nie stosowane w KE) ECB i CBC oparte na blokach 8 bajtowych (stosowane w KE) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 103
Tryby ECB ECB Electronic CodeBook Podstawowy tryb operacyjny DES-a 8 bajtowe bloki szyfrowane osobno tym samym kluczem dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 104
Tryby CBC CBC Cipher Block Chaining Poszczególne bloki wieloblokowego łańcucha danych łączone podczas szyfrowania operacją XOR Bloki wzajemnie od siebie zależą, możliwa jest więc detekcja manipulacji zawartości dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 105
Wielokrotne szyfrowanie Może być używane dla każdego blokowego algorytmu szyfrującego Algorytm szyfrujący nie może być grupą (nie zwiększa się przestrzeń kluczy dwukrotne szyfrowanie dwoma różnymi kluczami może być osiągnięte jednokrotnym szyfrowaniem trzecim kluczem) Dwukrotne szyfrowanie łatwe do złamania metodą meet-in-the-middle dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 106
Meet-in-the-middle Trzeba znać co najmniej jedną parę tekst jawnyszyfrogram Tekst jawny jest szyfrowany wszystkimi możliwymi wersjami pierwszego klucza, a szyfrogram jest deszyfrowany wszystkimi możliwymi wersjami drugiego klucza Porównywane są wygenerowane zbiory wynikowe, jeśli jest zgodność, to prawdopodobnie znaleziono parę kluczy, ale potrzeba to jeszcze potwierdzić dla innej pary tekstów dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 107
Triple DES TDES, DES-3, 3-DES, 2-DES, TDEA Nie da się go złamać atakami meet-in-the-middle Stosowany w sektorze płatniczym i w standardach dla tego sektora (np. EMV) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 108
Opcje kluczy dla Triple DES 3 możliwości wszystkie 3 klucze niezależne pierwszy i drugi niezależne, trzeci identyczny z pierwszym wszystkie 3 identyczne (wtedy to samo co DES) nie zalecane Druga operacja odwrotna do pierwszej i trzeciej (gwarancja zgodności z DES i wzmocnienie wersji z dwoma kluczami) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 109
Tryby pracy Triple DES TDES w wewnętrznym trybie CBC wszystkie trzy operacje wykonywane bezpośrednio na każdym bloku tekstu jawnego TDES w zewnętrznym trybie CBC operacje wykonywane po kolei na całym pliku dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 110
Podstawowe parametry symetrycznych algorytmów kryptograficznych stosowanych w KE dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 111
Algorytmy asymetryczne 1976 Koncepcja Diffiego i Hellmana by użyć jednego klucza (publicznego) do szyfrowania i drugiego (prywatny) do deszyfrowania Nie ma problemu z poufnym przekazywaniem klucza symetrycznego Możliwość użycia w do tej pory niemożliwych zastosowaniach (np. weryfikacja podpisu elektronicznego) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 112
Mechanizm klucza asymetrycznego dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 113
Algorytmy asymetryczne stosowane w KE RSA DSS EC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 114
Algorytm RSA RSA Rivest, Shamir, Adleman (1978) Najbardziej znany algorytm asymetryczny Prosta reguła oparta na arytmetyce wielkich liczb rzeczywistych Obydwa klucze generowane na podstawie bardzo dużych liczb pierwszych Przed szyfrowaniem tekst jawny należy uzupełnić (padding) do właściwego rozmiaru bloku dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 115
Mechanizm algorytmu RSA szyfrowanie: deszyfrowanie: y = x e mod n x = y d mod n y szyfrogram x tekst jawny e klucz publiczny d klucz prywatny n dzielnik modulo (publiczny) n=p q p, q liczby pierwsze (tajne) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 116
Bezpieczeństwo algorytmu RSA Szyfrogramu nie można zdeszyfrować bez znajomości klucza prywatnego Faktoryzacja dzielnika modulo bardzo trudna dla dużych liczb brak efektywnych algorytmów Udana faktoryzacja umożliwia wyznaczenie całego klucza prywatnego Długość klucza prywatnego ma istotny wpływ na bezpieczeństwo: stosowane są klucze 128 bajtowe i 256 bajtowe (1024 bity i 2048 bitów) Zaleca się stosować klucze równej długości, ale w niektórych zastosowaniach warto używać krótkiego klucza publicznego Złamano już klucz 768-bitowy (2009 klaster komputerów) Potencjalnym zagrożeniem będzie komputer kwantowy dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 117
Typowe wartości klucza publicznego dla algorytmu RSA Wartość dziesiętna Wartość potęgowa Wartość binarna Uwagi 2 2 1 10 Jedyna parzysta liczba pierwsza; Stosowana w algorytmie Rabina 3 2 1 + 1 11 Najmniejsza nieparzysta liczba pierwsza 17 2 4 + 1 1 0001 Druga liczba Fermata 65 537 2 16 + 1 1 0000 0000 0000 0001 Czwarta liczba Fermata dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 118
Typowe rozmiary klucza RSA i charakterystyczne wartości Rozmiar klucza bity bajty Max liczba cyfr Rozmiar przestrzeni liczb (RP) Liczba liczb pierwszych (LP) LP/RP 8 1 3 256 54 4.7 40 5 13 1.1 10 12 3.9 10 10 28 512 64 155 1.3 10 154 3.8 10 151 342 768 96 232 1.6 10 231 2.9 10 228 552 1024 128 309 1.8 10 308 2.5 10 305 720 2048 256 617 3.2 10 616 2.3 10 613 1 391 4096 512 1 234 1.0 10 1 233 2.5 10 12 290 4 000 dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 119
Nakłady obliczeniowe algorytmu RSA Proporcjonalne do długości klucza (zależność wykładnicza) Potęgowanie dużych liczb całkowitych jest czasochłonne i zajmuje dużo pamięci RAM Usprawnienia: algorytm szybkiego potęgowania dla potęgowania modulo chińskie twierdzenie o resztach 8 bitowe procesory KE (bez koprocesora) nie są w stanie efektywnie wykonać algorytmu RSA Rozmiar kodu dla sprzętowo wspomaganego RSA z kluczem 1024 bitowym to ok. 1kB dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 120
Przykładowe czasy obliczeń RSA czasy szyfrowania i deszyfrowania RSA w funkcji długości klucza rzeczywiste czasy mogą znacznie odbiegać od zaprezentowanych w zależności od konfiguracji sprzętowej, struktury klucza, zastosowania Chińskiego twierdzenia o resztach (podpis cyfrowy) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 121
RSA pozostałe informacje Algorytmy RSA są skalowalne - nie są sztywno związane z jednym rozmiarem klucza, wydłużenie klucza nie wymaga zmian w programie Dla obecnie dostępnych algorytmów faktoryzacji obowiązuje zasada, że wydłużenie klucza o 15 bitów podwaja nakłady obliczeniowe algorytmów faktoryzacji RSA mimo dużej skuteczności rzadko używany do szyfrowania ze względu na czas obliczeń, stosowany głównie w podpisach cyfrowych W przypadku zastosowań w obszarze KE główną wadą jest ilość pamięci potrzebna do zapamiętania klucza Złożoność procesu generowania klucza jest problemem w niektórych przypadkach dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 122
Przykład generowania klucza RSA Wybierz dwie liczby pierwsze [np. p=3, q=11] Oblicz publiczny dzielnik modulo n=p q [n=3 11] Oblicz wartość z=(p-1) (q-1) [z=(3-1) (11-1)=2 10=20] Wyznacz klucz publiczny e spełniający warunki: e < z NWD(z,e)=1 [3,7,9,11,13,17,19] jeśli kilka liczb spełnia te warunki, to wybierz dowolną z nich [np. e=7] Wyznacz klucz prywatny spełniający warunek (d e) mod 2=1 [np. d=3] dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 123
RSA generowanie kluczy W praktyce generowanie kluczy jest bardziej skomplikowane: zastosowanie metody Sita Eratostenesa niepraktyczne dla kluczy o rozmiarze 1024 bitów (liczby 309 cyfrowe) aby określić prawdopodobieństwo, że liczba jest liczbą pierwszą stosowane są testy probabilistyczne (np. Millera-Rabina lub Solovaya-Strassena) aby przyspieszyć działanie najpierw sprawdza się podzielność wygenerowanej liczby przez małe liczby pierwsze (2,3,5 i 7), dopiero potem stosuje się testy czas potrzebny na wygenerowanie klucza nie jest stały ale ma rozkład w przybliżeniu normalny dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 124
Algorytm generowania klucza RSA z testem Millera- Rabina dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 125
Rozkład czasów generowania kluczy dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 126
Typowe czasy generowania kluczy Czasy potrzebne do wygenerowania pary kluczy publiczny/prywatny dla asymetrycznego algorytmu RSA 3 typowe czasy: średni, potrzebny do wygenerowania 95% wszystkich par i potrzebny do wygenerowania 99% wszystkich par PC z zegarem 2 GHz jest około 7 razy szybszy dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 127
Algorytm DSS 1991 draft algorytmu kryptograficznego do podpisu komunikatów opracowany przez US National Institute of Standards and Technology (NIST) Obecnie standard FIPS 186 Sam algorytm nosi nazwę DSA (Digital Signature Algorithm) a definiujący go standard DSS (Digital Signature Standard) DSA jest modyfikacją algorytmu El Gamala DSA drugi po RSA pod względem popularności algorytm podpisu cyfrowego dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 128
Bezpieczeństwo algorytmu DSS U podstaw leży problem znajdowania logarytmu dyskretnego: łatwo wyznaczyć y=a x mod p odwrotne działanie, czyli obliczenie x dla znanych y, a oraz p wymaga bardzo dużych nakładów obliczeniowych W przypadku zastosowań do podpisu cyfrowego przed zastosowaniem algorytmu DSS komunikat należy skrócić do wymaganej długości algorytmem haszującym SHA-1, generującym 160 bitową wartość z komunikatu o dowolnej długości W praktyce RSA jest jednak dużo częściej stosowany dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 129
Kryptografia krzywych eliptycznych Trzecie podejście do asymetrycznych algorytmów kryptograficznych 1985 Victor Miller i Neal Koblitz niezależnie proponują zastosowanie krzywych eliptycznych w konstrukcji algorytmów kryptograficznych ECC Elliptic Curve Cryptosystems systemy kryptograficzne, których działanie opiera się na zastosowaniu krzywych eliptycznych Krzywe eliptyczne krzywe planarne określone wzorem y 2 =x 3 +ax+b w skończonej przestrzeni trójwymiarowej Standard IEEE 1363 i norma ISO/IEC 15946 dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 130
Kryptografia krzywych eliptycznych - cechy Mniejsze wymagania obliczeniowe niż RSA Szacuje się, że system ECC z kluczem 160 bitowym jest tak samo bezpieczny jak RSA z kluczem 1024 (256/2048 i 320/5120) Moc kryptograficzna i względnie krótki klucz zaletą w zastosowaniach KE Koprocesory mikrokontrolerów KE wspierają ECC, ale niskie wymagania umożliwiają zastosowanie również w kartach bez koprocesora Ograniczona liczba wdrożeń wynika z: konieczności modyfikowania istniejących systemów zaprojektowanych do współpracy z RSA większego stopnia trudności od strony obliczeń matematycznych niż RSA dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 131
Przykładowe czasy obliczeń ECC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 132
Rozmiary klucza w asymetrycznych algorytmach kryptograficznych stosowanych w KE dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 133
Padding Proces powiększania zbiorów danych do rozmiaru odpowiadającego całkowitej wielokrotności rozmiaru bloku Stosowany w kryptografii w algorytmach blokowych Problem z deszyfrowaniem (nie wiadomo, gdzie granica pomiędzy tekstem jawnym a paddingiem) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 134
Rozwiązania problemu deszyfrowania danych uzupełnionych paddingiem Na początku pliku dodać informację o długości komunikatu wady: wydłużony komunikat, nadmiarowe w przypadku danych, które nie muszą być szyfrowane Wiele innych podejść Algorytm wg ISO/IEC 9797 pierwszy bajt po danych użytkownika ustawiany na 80 pozostałe na 00 odbiorca czyta od końca zdeszyfrowany komunikat w poszukiwaniu bajta o wartości 80 i następnie odcina część z paddingiem dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 135
Padding wg ISO/IEC 9797 Method 2 Odbiorca musi wiedzieć czy padding jest stosowany zawsze, czy tylko wtedy gdy niezbędny Aby uniknąć nieporozumień często stosowana jest reguła mówiąca, że padding stosowany jest zawsze wadą takiego rozwiązania jest dodawanie w niektórych sytuacjach jednego nadmiarowego bloku dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 136
Różne metody paddingu stosowane w KE i ich charakterystyki ISO/IEC 9797 Method 1: dane n 00 w generowaniu kodu MAC Method 2: dane 80 n 00 w szyfrowaniu danych ISO/IEC 9796-2 60 n 00 01 dane BC w podpisie cyfrowym 60 n 00 01 RND dane BC w podpisie cyfrowym, gdy potrzeba zindywidualizowania danych PKCS#1 Typ 1: 00 01 n FF 00 dane w podpisie cyfrowym Typ 2: 00 02 n RND 00 dane w szyfrowaniu i generowaniu kodu MAC PKCS#5 dla DES i TripleDES ISO 14888 tylko przy szyfrowaniu dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 137
MAC i kryptograficzne sumy kontrolne MAC Message Authentication Code Autentyczność komunikatu ważniejsza niż jego poufność (autentyczny = niezmieniony, niezmanipulowany) MAC jest obliczany dla danego komunikatu i dodawany na jego końcu; Odbiorca sam oblicza MAC dla odebranego komunikatu i porównuje z MAC-iem otrzymanym od nadawcy; Jeśli są zgodne, to otrzymany komunikat jest poprawnym komunikatem dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 138
Mechanizm wyznaczania MAC MAC Message Authentication Code Autentyczność komunikatu ważniejsza niż jego poufność (autentyczny = niezmieniony, niezmanipulowany) MAC jest obliczany dla danego komunikatu i dodawany na jego końcu; Odbiorca sam oblicza MAC dla odebranego komunikatu i porównuje z MAC-iem otrzymanym od nadawcy; Jeśli są zgodne, to otrzymany komunikat jest poprawnym komunikatem dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 139
Mechanizm wyznaczania MAC dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 140
MAC informacje różne Liczony jest przy użyciu poufnego klucza, który musi być znany obydwu stronom Jest pewnego rodzaju kodem EDC Czasami określany mianem CCS (cryptographic checksum) lub Signature Pojecie MAC stosowane w transmisji danych; CCS w innych zastosowaniach MAC może być wyznaczany symetrycznymi algorytmami kryptograficznymi (Triple DES lub AES) szyfrowanie odbywa się c trybie CBC (bloki zależą od siebie) a ostatni blok (lub jego część) to właśnie MAC (oryginalny tekst komunikatu pozostaje w formie jawnej) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 141
Warunki stosowania DES do generowania MAC Jeśli długość komunikatu nie jest wielokrotnością 8 bajtów należy zastosować padding W większości przypadków padding to wartości 00 zgodnie z ANSI X.99 Konieczne uzgodnienie długości i położenia kodu MAC (najczęściej są to 4 najbardziej znaczące bajty ostatniego bloku po szyfrowaniu CBC) Bajty paddingu nie są transmitowane (tylko oryginalna wiadomość i kod MAC) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 142
Plan Podstawy bezpieczeństwa kryptologia funkcje haszujące liczby losowe uwierzytelnianie dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 143
Funkcje haszujące Motywacja: obliczanie podpisu cyfrowego czasochłonne duże pliki wymagają wielu podpisów Rozwiązanie: dokument jest kompresowany do krótszej wersji (o określonej długości) i dopiero ta skompresowana wersja jest podpisywana kompresja nie musi być odwracalna, ponieważ podpis można wyznaczyć ponownie z oryginalnego dokumentu tzw. jednokierunkowe funkcje haszujące dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 144
Podstawowe funkcje haszujące stosowane w obszarze KE Funkcje haszujące bez klucza: MD5 SHA-1 SHA-256 SHA-512 Funkcje haszujące z kluczem HMAC RIPEMD 160 dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 145
Mechanizm algorytmów haszujących z kluczem i bez klucza dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 146
Zastosowanie funkcji haszujących w KE Jednokierunkowe funkcje haszujące funkcje obliczające wartość o stałej długości z dokumentu o zmiennej długości; wartość ta reprezentuje oryginalną zawartość dokumentu w postaci skompresowanej, ale nie może być użyta do odtworzenia oryginalnego dokumentu W KE stosowane do wyznaczenia wartości wejściowej do wygenerowania podpisu cyfrowego oraz przy generowaniu liczb pseudolosowych Padding niezbędny, gdy rozmiar pliku nie jest całkowitą wielokrotnością rozmiaru bloku Wartość funkcji obliczana w terminalu lub komputerze podłączonym do terminala (wolna transmisja danych z/do karty) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 147
Cechy dobrej funkcji haszującej Wynik powinien mieć stałą długość Duża przepustowość Łatwe wyliczanie wartości, ale bardzo trudne lub wręcz niemożliwe odtworzenie oryginalnego dokumentu Musi być odporna na kolizje (trudno znaleźć dokument, który będzie prowadził do tej samej wartości dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 148
Ataki na algorytmy haszujące Dwie formy ataku: Wykorzystanie kolizji znalezienie pliku o takiej samej wartości i podmiana pliku Przygotowanie dwóch dokumentów o identycznej wartości haszującej, ale różnej zawartości; Ten sam podpis może być użyty w obydwu przypadkach i trudno dowieść, który z dokumentów był podpisany W oparciu o tzw. paradoks urodzin druga metoda jest skuteczniejsza (183:23) Wartość funkcji haszującej musi być na tyle duża, aby zabezpieczyć przed obiema formami ataku (obecnie za bezpieczną uznaje się wartość 160 bitową) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 149
Funkcje haszujące stosowane w KE Istnieje wiele funkcji haszujących, sporo z nich jest sformalizowanych w formie standardów, które są dość często poprawiane Przegląd funkcji haszujących: ISO/IEC 10118-2 funkcja oparta na algorytmie szyfrującym z n-bitowym blokiem (AES), wartość może być w takim przypadku n lub 2n długa 128,160,256,384,512 bitów MD5 (Message Digest 5) 1990/91, Rivest, następca algorytmu MD4, cały czas w użyciu ale nie uznawany za bezpieczny (wykryto kolizyjność) 128 bitów dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 150
Przegląd funkcji haszujących c.d. SHA (Secure Hash Algorithm) 1992, NIST, opracowana dla DSS, po wykryciu pewnych słabości zmodyfikowana, poprawiona wersja od 1995 znana jako SHA-1 (standard FIPS 180-1) 128 bitów Rodzina funkcji haszujących SHA-2 NIST, SHA-224, SHA-256, SHA-384, SHA-512 liczba po nazwie oznacza długość; do tej pory uważane za bezpieczne ponieważ nie stwierdzono żadnej formy udanego ataku HMAC 1996, RFC 2104 funkcja haszująca z kluczem (wartość liczona na podstawie dokumentu wejściowego i klucza); stosowane do obliczeń kodu MAC np. HMAC- MD5 (128 bitów) i HMAC-SHA-1 (160 bitów) RIPEMD-160 160 bitów dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 151
Plan Podstawy bezpieczeństwa kryptologia funkcje haszujące liczby losowe uwierzytelnianie dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 152
Liczby losowe w KE Zastosowania w KE: w uwierzytelnianiu do zapewnienia unikalności sesji w paddingu przy szyfrowaniu danych jako liczniki ciągów wysyłania Długość liczb losowych w tych zastosowaniach 2 do 8 bajtów Maksymalna długość jest konsekwencją rozmiaru bloku w algorytmach DES lub AES W tych zastosowaniach potrzebne są liczby losowe: których nie da się przewidzieć nie można na nie wpłynąć z zewnątrz Rozwiązanie generator sprzętowy TRNG (True Random Number Generator) w pełni odporny na czynniki zewnętrzne (temperatura, napięcie zasilania, promieniowanie) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 153
Sprzętowy generator liczb losowych W mikrokontrolerach karty stosowane są układy z rejestrem przesuwnym z liniowym sprzężeniem zwrotnym (LSFR) napędzane oscylatorem sterowanym napięciowo Zaprojektowanie i wykonanie sprzętowego TRNG jest bardzo trudnym zadaniem Projektanci stosują więc rozwiązania sprzętowo-software owe, w których wynik wygenerowany przez sprzętowy RNG jest traktowany jako wejście dla software owego generatora liczb pseudolosowych, który spełnia wymagane kryteria jakości; W połączeniu mogą być traktowane jako TRNG Ważne aby wszystkie karty z danej serii produkcyjnej generowały różne sekwencje liczb losowych Rozwiązanie na poziomie systemu operacyjnego karty do pamięci kolejnych kart wpisuje się wygenerowane liczby pseudolosowe, traktowane jako ziarno generatora dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 154
Generowanie liczb losowych Ograniczenia pamięciowe oraz czasowe znacznie ograniczają liczbę możliwych do zastosowania algorytmów Generator powinien spełniać następujące warunki: nie może generować tych samych liczb w każdej nowej sesji nie może działać w nieskończonej pętli kryterium lawinowe zmiana jednego bitu na wejściu powoduje zmianę co najmniej połowy bitów na wyjściu dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 155
Zasada działania silnego generatora liczb pseudolosowych trzy etapy: inicjowanie, sekwencjonowanie stanów, generowanie liczb losowych idealną wartością początkową (ziarnem generatora) jest liczba losowa pochodząca z fizycznego generatora liczb losowych dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 156
Przykładowa architektura generatora liczb pseudolosowych dla KE generator wykorzystuje blokowy symetryczny algorytm kryptograficzny (np. AES) z blokiem o rozmiarze 8 bajtów i sprzężeniem zwrotnym wartość odczytana z bufora cyklicznego jest szyfrowana kluczem karty, wynikowy szyfrogram jest liczbą 8 bajtową, wartość ta jest sumowana XOR z poprzednim tekstem jawnym i podawana na wejście bufora cyklicznego, zapisywana w pamięci trwałej i generator przechodzi do następnej wartości dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 157
Cechy w/w implementacji Klucz karty i zawartość bufora cyklicznego zapisywane w ostatniej fazie produkcji Jeśli w buforze cyklicznym zapisane jest 12 liczb 8 bajtowych, to: wzrasta poziom bezpieczeństwa (większa losowość) wzrasta żywotność generatora (12 krotna wartość maksymalnej liczby zapisów pamięci EEPROM) Czas generowania liczby losowej dla KE z 3,5MHz zegarem: wyczyszczenie i zapisanie pamięci EEPROM ok. 14 ms (2 2 3,5 ms) algorytm DES ok. 17 ms reszta pomijalna razem ok. 31 ms Czas wykonania można skrócić o połowę przy sprzętowej implementacji AES-a dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 158
Inny przykład architektury generatora liczb pseudolosowych szybszy od poprzedniego (tylko jeden cykl zapisu EEPROM w każdej sesji tuż po resecie a dalej używana wyłącznie pamięć RAM) zaleta: szybkość wady: używanie pamięci RAM i niezbyt dobra statystyczna jakość generatora jakość wystarczająca do zastosowań w uwierzytelnianiu typu challenge-response wystarczająco długie cykle i nie możliwe powielanie dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 159
Standardy Między innymi: X 9.17, FIPS 186, Internet RFC 1750 Standard FIPS 140-2 zaleca sprawdzenie wbudowanych generatorów testami statystycznymi za pośrednictwem modułów bezpieczeństwa wyłącznie pozytywne przejście wszystkich testów pozwala na dalsze używanie generatora Większość obecnych systemów KE nie ma takiej możliwości zakłada się, że generatory liczb pseudolosowych ze względu na swoją deterministyczną naturę są wystarczająco wydajne dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 160
Testowanie liczb losowych Zaimplementowany generator należy przetestować: test matematyczny przy użyciu metod statystycznych dla liczb 8 bajtowych należy wygenerować 10 000 100 000 liczb i poddać je analizie Powinno być spełnione twierdzenie Bernoulliego o niezależności zdarzeń Okresowość generatora powinna być jak najdłuższa (najlepiej jeśli przekracza długość życia generatora) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 161
Przegląd metod testowania liczb losowych Najprostszy test zliczenie liczby wystąpień poszczególnych bajtów Prezentacja na wykresie Każda liczba 1 lub 2 bajtowa powinna wystąpić mniej więcej taką samą liczbę razy Jeśli jakaś liczba występuje częściej niż inne, to jest to potencjalne miejsce ataku Test nie sprawdza porządku (wygenerowanie liczb po kolei daje idealny rozkład, ale jest bardzo łatwe do złamania) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 162
Przegląd metod testowania liczb losowych c.d. Inny prosty test skompresować plik z wygenerowanymi danymi im niższy stopień kompresji, tym lepiej Test 2 liczone są wartość średnia i odchylenie standardowe, lepszy niż dwa poprzednie, ale również nie sprawdza porządku Serial test do określenia interwałów pomiędzy wzorcami występującymi w sekwencji liczb losowych Gap test do określenia interwałów wolnych od wzorców Poker test do określenia rozkładu 2 dla wzorców i/lub ciągów wolnych od wzorców Coupon collector test - do określenia rozkładu 2 dla ciągów wolnych od wzorców dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 163
Przegląd metod testowania liczb losowych c.d. Spectral test rozkład liczb sąsiadujących w ciągu Two-dimensional spectral test wykres na osi poziomej wygenerowana liczba na osi pionowej następna wygenerowana liczba Three-dimensional spectral test dochodzi trzecia oś (następnik następnika) n- dimensional test w podobny sposób jak poprzednie, ale nie da się przedstawić na wykresie dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 164
Two-dimensional spectral test dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 165
Plan Podstawy bezpieczeństwa kryptologia funkcje haszujące liczby losowe uwierzytelnianie dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 166
Uwierzytelnianie Proces, który ma udowodnić, czy osoba lub jednostka są tym, czym twierdzą, że są Uwierzytelnianie może odbyć się na podstawie: czynnika posiadania czynnika wiedzy cech biometrycznych Uwierzytelnianie dwuczynnikowe i trzyczynnikowe oznacza, że sprawdzane będą dwa lub trzy z wymienionych czynników Przykład - Osoba posiada paszport zna klucz poufny cechuje się odciskami palców dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 167
Podział metod uwierzytelniania Ze względu na zastosowania: uwierzytelnianie dotyczy potwierdzenia autentyczności identyfikacja ma na celu rozpoznanie obiektu autoryzacja dotyczy sprawdzenia, czy dana osoba może wykonać odpowiednią operację Ze względu na dane: statyczne zawsze na podstawie tych samych danych dynamiczne każda sesja wymaga innych danych Ze względu na wynik: jednostronne potwierdza autentyczność co najmniej jednej strony dwustronne potwierdza autentyczność obydwu stron dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 168
Uwierzytelnianie w KE Terminal (lub karta) sprawdza autentyczność karty (terminala) Metody oparte na algorytmach kompresji dzielą się na symetryczne i asymetryczne Prawie wyłącznie stosowane są algorytmy symetryczne (asymetryczne są zbyt wolne) Norma ISO/IEC 9798 Metoda challenge-response stosowana w uwierzytelnianiu dynamicznym KE polega na: zadaniu losowo wybranego pytania drugiej ze stron (challenge) obliczeniu odpowiedzi przez drugą stronę i zwrócenie jej stronie zadającej pytanie (response) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 169
Jednostronne uwierzytelnianie symetryczne Terminal generuje liczbę losową i wysyła ją do karty (challenge) Karta szyfruje otrzymaną liczbę przy użyciu klucza (znanego obu stronom) Karta zwraca do terminala wynik szyfrowania (response) Terminal deszyfruje odpowiedź przy pomocy klucza i porównuje z wartością wysłaną do karty Jeśli liczby są zgodne, to znaczy, że karta zna poufny klucz i jest autentyczna dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 170
Bezpieczeństwo uwierzytelniania jednostronnego Poufność zapewniona wspólnym tajnym kluczem Nie da się zastosować zapisu podsłuchanej transmisji (za każdym razem inna liczba losowa) jedynym atakiem, który może być skuteczny, jest systematyczne poszukiwanie tajnego klucza (np. atakiem siłowym) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 171
Jednostkowy klucz karty W przypadku gdy wszystkie karty w danym zastosowaniu mają ten sam klucz, to jego złamanie jest jednoznaczne z dyskredytacją całego systemu Przeciwdziałanie stosowanie jednostkowych kluczy kart Jednostkowy klucz karty zależy od jej unikalnego numeru (cecha jawna np. nr seryjny mikrokontrolera) i klucza głównego znanego tylko terminalowi (w praktyce część numeru seryjnego zaszyfrowana algorytmem TDES lub AES) Klucz główny musi być przechowywany bezpiecznie, ponieważ jego złamanie jest równoznaczne ze złamaniem całego systemu; jeśli to możliwe to powinien on być bezpowrotnie usunięty po wykryciu próby ataku dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 172
Dwustronne uwierzytelnianie symetryczne Podstawowa zasada działania jest równoznaczna dualnemu jednostronnemu uwierzytelnianiu symetrycznemu Dwustronne uwierzytelnianie można zastąpić dwoma jednostronnymi uwierzytelnieniami wykonanymi po jednym przez każdą ze stron Zalety podejścia dwustronnego w stosunku do podejścia jednostronnego: mniej czasu poświęconego na transmisję danych większe bezpieczeństwo (mniej danych do podsłuchania) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 173
Dwustronne uwierzytelnianie symetryczne zasada działania Terminal odczytuje numer karty Terminal wyznacza klucz uwierzytelniający karty Terminal pyta kartę o liczbę losową i jednocześnie generuje własną liczbę losową Terminal łączy obie liczby przez konkatenację i szyfruje otrzymaną liczbę kluczem uwierzytelniającym karty Terminal wysyła szyfrogram do karty Karta deszyfruje otrzymany blok danych Karta sprawdza czy zdeszyfrowana liczba losowa otrzymana od terminala jest identyczna z tą, którą wysłała do terminala Jeśli tak to terminal staje się wiarygodny dla karty Karta zastępuje miejscami liczby losowe i szyfruje poufnym kluczem Karta wysyła do terminala wynik szyfrowania Terminal deszyfruje otrzymany szyfrogram Terminal porównuje zdekodowaną liczbę losową z tą, którą wcześniej wysłał do karty Jeśli liczby są zgodne, to karta jest wiarygodna dla terminala Obie strony są dla siebie wiarygodne dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 174
Statyczne uwierzytelnianie asymetryczne Mniejsze bezpieczeństwo niż w przypadku uwierzytelniania dynamicznego (brak zabezpieczeń przed powtórzeniem podsłuchanej sesji) Stosowane wyłącznie jako uzupełniające sprawdzenie wiarygodności dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 175
Statyczne uwierzytelnianie asymetryczne - wady Motywacja: część mikrokontrolerów KE nie jest wyposażona w NPU do liczenia RSA dodatkowe uwierzytelnianie kluczem asymetrycznym zwiększa bezpieczeństwo (atakujący ma do złamania dwa algorytmy) prostota i ekonomiczność działania (weryfikacja odbywa się w terminalu, a dodatkowy układ nie podnosi znacząco kosztów systemu) dużo szybsze niż dynamiczne uwierzytelnianie asymetryczne (jedno szyfrowanie zamiast dwóch) dr inż. Marek Mika, Instytut Informatyki, Politechnika Poznańska, 2011 176