Kryptografia i mechanizmy bezpieczenstwa

Embed Size (px)

Citation preview

Kryptografia
i mechanizmy bezpieczestwa

Pawe Krawczyk

Kontakt z autorem:

[email protected]. +48-602-776959

Prezentacja udostpniona na licencji Creative Commons BY-NC-SA(uznanie autorstwa, uycie niekomercyjne, na tych samych warunkach)

http://creativecommons.org/licenses/by-nc-sa/3.0/pl/

Literatura:

http://ipsec.pl/http://securitystandard.pl/http://csrc.nist.gov/

Niels Ferguson, Bruce Schneier,t Tadayoshi Kohno "Cryptography engineering"

Konspekt

Funkcje kryptografii

Podstawowe operacje kryptograficzne

Ataki kryptoanalityczne

Podstawowe techniki kryptograficzne

Zarzdzanie kluczami

Funkcje kryptografii

PoufnoSzyfrowanie

IntegralnoFunkcje skrtu

RozliczalnoProtokoy uwierzytelniania, integralno logw

AnonimowoDowd z wiedz zerow, szyfrowanie

DostpnoKontrola dostpu

Terminologia

Tekst jawny, otwarty (plain, clear text - P)

Szyfrogram, kryptogram (cipher text C)

Szyfrowanie deszyfrowanie (rozszyfrowanie)

Klucz (key)Tajny parametr realizuje kontrol dostpu do tekstu jawnego

Atak kryptoanalitycznyTeoretyczny

Praktyczny

Sowa "kod" i "szyfr" s czsto stosowane jako synonimy. Szyfr rni si od kodu tym, e posiada dodatkowy, tajny parametr czyli klucz szyfrujcy.

Terminologia

Algorytm kryptograficznyFunkcja bezpieczestwa

DES, AES, MD5, SHA-1, RSA...

Protok kryptograficznyOperacja

ESP (IPSec), SSL Record Protocol (TLS)

System kryptograficzny (cryptosystem)Funkcja biznesowa

PGP, X.509

Algorytmy s podstawowymi jednostkami sucymi do budowy protokow kryptograficznych. Algorytm realizuje okrelon funkcj np. poufnoci.Protok wykorzystuje kilka algorytmw w celu zapewnienia szeregu podanych funkcji bezpieczestwa, suy jednak realizacji jednej okrelonej operacji np. szyfrowana transmisja danych.System kryptograficzny korzysta z wielu protokow i algorytmw zapewniajc kompletny i spjny zestaw operacji niezbndnych do realizacji okrelonych potrzeb biznesowych np. bezpieczna wymiana poczty elektronicznej musi obejmowa transmisj danych, wymian kluczy, uwierzytelnienie stron itd.

Zasada Kerckhoffsa

Zasada KerckhoffsaAuguste Kerckhoffs 1883

Bezpieczestwo systemu powinno polega na tajnoci klucza, a nie systemu

Claude ShannonWrg zna szczegy systemu

Oryginalne brzmienie praw Kerckhoffsasystem musi by praktycznie, a lepiej matematycznie, do do zamanianie mozna da by system by utajniony, w razie wpadnicia w rce nie przyjaciela powinien pozosta bezpiecznymmusi nadawa si do korespondencji telegraficznejmusi by przenony, a jego uywanie nie moe wymaga zaangaowania wielu osbsystem powinien by atwy w uyciu, nie powinien wymaga duego wysiku umysowego ani pamitania dugich zbiorw regu

Jawno algorytmw kryptograficznych

Algorytmy jawneNiezalena weryfikacja poprawnociCryptology ePrint Archive (IACR), ArXiv.org

Wikszo algorytmw cywilnych jest jawna

Algorytmy niejawneDodatkowe zabezpieczenie, utrudnia analiz

Tylko jeli skuteczne ograniczenie dostpu do implementacji jest moliwe

Nie dotyczy wikszoci implementacji komercyjnych

Niemal wszystkie stosowane obecnie algorytmy cywilne s jawne. Warunkiem udziau w konkursach majcych wyoni standardy kryptograficzne (AES, SHA-3, NESSIE) jest jawno.Niejawne algorytmy s stosowane w zastosowaniach rzdowych i wojskowych (np. polski NASZ). Niejawno sprawdza si tylko wtedy gdy dostp do implementacji jest ograniczony, za ona sama jest zabezpieczona przed penetracj.Wikszo komercyjnych, niejawnych algorytmw zostaa odtworzona i niekiedy zamana gdy tylko udao si uzyska dostp do implementacji (RC4, DVD CSS, MS-DRMv2, GSM A5, COMP128), Mifare CRYPTO-1.Niejawno algorytmu nie moe stanowi podstawy jego bezpieczestwa.

Standardy kryptograficzne

Odpowiedzialno projektanta systemw

Wybr technik kryptograficznych100% oparcia w standardach i normachRegulacje polskie i europejskie (uodo, uope, uooin, bankowe)

NIST Computer Security Resources CenterNIST Federal Information Processing Standards (FIPS)

NIST Special Publications (zalecenia)

NIST SP 800-53 "Recommended Security Controls for Federal Information Systems and Organizations"NIST SP 800-57 "Recommendation for Key Management"

IETF RFC (Request For Comments)RSA PKCS (Public Key Cryptography Standards)

Standardy kryptograficzne

Wybr implementacji kryptograficznychWbudowane w system lub framework aplikacjiMicrosoft Cryptographic API (CAPI)

Biblioteki kryptograficzneKomercyjne, otwarte

Certyfikaty bezpieczestwa

Certyfikacja bibliotek i moduw sprztowych:NIST FIPS 140-2 Cryptographic Algorithm Validation Program (CAVP) Cryptographic Module Validation Program (CMVP)Common Criteria, ITSEC CWA 14169

Podstawowe operacjekryptograficzne

Atak: podsuch

mmm

m

Alice

Eve

Bob

Alice i Bob to tradycyjnie przyjte w literaturze kryptograficznej imiona stron komunikacji.Eve ("evil") wystpuje zawsze w roli atakujcego chce podsucha, sfaszowa lub w inny sposb zaszkodzi oryginalnej komunikacji midzy Alice i Bobem.Schemat pokazuje transmisj wiadomci (m jak "message") w sposb jawny, bez uycia mechanizmw kryptograficznych.W tym scenariuszu Eve moe bez ogranicze podsuchiwa lub podrabia wiadomoci midzy Alice i Bobem.Eve wykonuje atak pasywny przeciwko poufnoci wiadomoci.

Obrona: szyfrowanie

m,c := E(Ke,m)c,m := D(Ke,c)c

c

Alice

Eve

Bob

Alice szyfruje (E) wiadomo m przy pomocy klucza (Ke). Wynikiem jest kryptogram c, ktry jest nastpnie wysyany do Boba.Bob dysponujcy kluczem Ke moe rozszyfrowa (D) kryptogram i otrzyma oryginaln wiadomo m.Eve zgodnie z zasad Kerckhoffsa moe zna szczegy algorytmu, ale dopki nie zna klucza Ke nie powinna mie praktycznej moliwoci odtworzenia wiadomoci m.Prosz zwrci uwag, e pomijamy zupenie kwesti jak Alice i Bob mog mie ten sam tajny klucz Ke, skoro generalnie maj problem z bezpieczn cznoci?

Atak: faszerstwo

mm'm'

m

Alice

Eve

Bob

m'

Znowu scenariusz z cznoci jawn. Eve tym razem uniemoliwia dorczenie oryginalnej wiadomoci m i zamiast niej wysya do Boba wiadomo podrobion (m').Tym razem jest to atak aktywny przeciwko integralnoci wiadomoci.

Obrona: uwierzytelnienie

m,a := h(Ka,m)m,a =? h(Ka,m)m'

m,a

Alice

Eve

Bob

Alice wprowadza kod uwierzytelniajcy wiadomoci (MAC Message Authentication Code). Autentyczno pochodzenia jest zapewniana przez kolejny klucz tajny (Ka), inny ni do szyfrowania, ktre tutaj pominito.MAC, dla tej samej wiadomoci i tego samego klucza Ka, da zawsze ten sam wynik (a). Kod a moe by przesyany w postaci jawnej jego znajomo nie umoliwia odtworzenia wiadomoci m.Technicznie MAC jest realizowany przy pomocy funkcji skrtu (h).Eve nadal moe wysa faszyw wiadomo m'. Jednak Bob powtarza operacj MAC dla otrzymanej wiadomoci i porwnuje jej wynik z otrzymanym kodem a.Eve mogaby take wysya wczeniej przechwycone wiadomoci wraz z ich kodami MAC (replay attack). Alice i Bob chroni si przed tym numerujc wiadomoci (sequence number).

Koncepcja klucza publicznego

Kryptografia symetrycznaAlice i Bob stosuj ten sam klucz (Ke, Ka)

le skalowalny (10 os. - 45 kluczy, 20 190 itd)

Kryptografia asymetrycznaAlice ma terazKlucz do szyfrowania (publiczny jawny)PAlice (public)

Klucz do deszyfrowania (prywatny tajny)SAlice (secret)

Public Key (PK) Cryptography (PKC)

Szyfrowanie kluczem publicznym

m,c := E(PBob,m)c,m := D(SBob,c)

c

Alice

Bob

Alice szyfruje (E) wiadomo m kluczem publicznym Boba (PBob). W kryptografii z kluczem publicznym do szyfrowania uywamy klucza publicznego adresata.Bob deszyfruje otrzymany kryptogram c przy pomocy swojego klucza prywatnego (SBob).

Jeszcze o kluczach publicznych

Wiadomo zaszyfrowana PxTylko posiadacz Sx moe j odczyta

Nawet nadawca jej nie odczytaJeli np. zgubi orygina

W praktyce nadawca uywa i Px i swojego P

Znaczco zredukowana liczba kluczyKady publikuje tylko swj klucz

Kluczowa obserwacja tylko posiadacz klucza prywatnego pasujcego do uytego klucza publicznego moe rozszyfrowa wiadomo.Nawet Alice nie bdzie w stanie odszyfrowa kryptogramu, jeli zgubi oryginaln wiadomo!

Szyfrowanie hybrydowe

Wady PKCWymagajce obliczeniowo i pamiciowo

O rzd wielkoci wolniejsze ni szyfry symetryczne

RozwizanieWiadomo m szyfrujemy KeDua porcja danych, szybki szyfr

Ke szyfrujemy PxMaa porcja danych, wolny szyfr

Odbiorca deszyfruje Ke swoim Sx

Uywajc Ke deszyfruje m

Podpis cyfrowy

m,s := S(SAlice,m)M, V(PAlice,s)?

m,s

Alice

Bob

Operacja podpisu cyfrowego rwnie korzysta z pary kluczy S,P ale nalecych do osoby skadajcej podpis.Podpis jest skadany przy pomocy klucza prywatnego Alice. Daje to wskazwk, e tylko Alice moga stworzy t wiadomo (niezaprzeczalno).Bob weryfikuje podpis przy pomocy klucza publicznego (P) nadawcy czyli Alice. Poniewa jej klucz jest jawny, kady moe atwo zweryfikowa autentyczno podpisanego dokumentu.Technicznie podpis realizuje si przez zaszyfrowanie kluczem prywatnym (S) skrtu wiadomoci. Weryfikacja polega na prbie odszyfrowania przy pomocy klucza publicznego (P). Powodzenie operacji dowodzi, e podpis zoono pasujcym kluczem S.

Terminologia e-podpisowa

Pojcia techniczne i prawne kolizje

Podpis cyfrowyPojcie inynierskie

Powiadczenie autentycznoci i integralnoci danych

Rne zastosowania

Podpis elektronicznyPojcie prawno-inynierskie

Zwizany z osob fizyczn

ISO 7498-2:1989 Digital signatureDigital signature: data appended to, or a cryptographic transformation of, a data unit that allows a recipient of the data unit to prove the source of the data unit and protect against forgery, e.g. by the recipientPodpis pod danymi, dokumentem lub operacja podpisu przy logowaniu do systemu i inne tego typu Te zastosowania (z wyczeniem podpisu pod dokumentem) obejmuje rozszerzenie keyUsage=digitalSignatureDyrektywa UE 1999/93/EC Electronic signatureElectronic signature means data in electronic form which are attached to or logically associated with other electronic data and which serve as a method of authenticationTylko podpis pod konkretn treciTo zastosowanie obejmuje rozszerzenie keyUsage=nonRepudiation

Autentyczno kluczy

Klucz Ka lub Px zapewnia autentyczno danychAle co zapewnia autentyczno Ka i Px?

Konieczne rozwizania organizacyjne

Powiadczanie kluczyWzajemne (mesh)

Zaufana trzecia strona (TTP Trusted Third Party)Urzdy certyfikacji, centra certyfikacji (CA Certifying authority)

Informacja o aktualnoci kluczy

PKI

Infrastruktura klucza publicznegoPKI Public Key Infrastructure

rodki techniczne, organizacyjne i prawneSystemy kryptograficzne

TTP wiadczce usugi certyfikacyjne

Osadzenie w prawie

Ataki kryptoanalityczne

Cel ataku na szyfr

Cel szyfruUtrzymanie zoonoci ataku na poziomie przeszukiwania wszystkich kluczy (brute force, exhaustive)

Poredni cel atakuObnienie zoonoci poniej tej wartoci

Bezporedni cel atakuUzyskanie dostpu do wiadomoci

Obiekt ataku

Ataki na algorytmySaboci w algorytmach Enigma, Lorenz, PURPLE, RC4

Ataki na implementacjeWEP (RC4), PPTPv1 (RC4), OpenSSL (RSA)

Ataki na uytkownikaKleptografia, "rubber-hose cryptanalysis"

Wiedza atakujcego

Tylko kryptogram (ciphertext only)Zawsze

Znany tekst jawny (known-plaintext)Przewidywalny tekst jawny, tekst podesany

Wybrany tekst jawny (chosen plaintext)

Wybrany tekst jawny i zaszyfrowany (chosen ciphertext)

Przykady atakw

Paradoks dnia urodzin (birthday paradox)W grupie 23 osoby prawdopodobiestwo urodzin tego samego dnia przekracza 50% ("kolizja")

Wrd identyfikatorw transakcji z przedziau 264 kolizje po 232 transakcjach

W zbiorze N elementw 50% kolizji po

Due znaczenie dlaIdentyfikatorw wiadomoci (anti-replay)Wartoci, ktre nie mog si powtarza (niektre klucze)

Przykady atakw

Spotkanie w rodku (meet-in-the-middle, collision attack)Pregenerowanie "sownika"232 par: tekst jawny kryptogram

ledzenie komunikacjiKolizja prawdopodobna ju po 232 kryptogramach

Zoono po ataku: 232 + 232 = 8,6 x 109

Oryginalna zoono: 264 = 1,8 x 1019

Realna sia algorytmw

Idealnie rwna dugoci kluczaKlucz 2128 bitw 2128 krokw do zamania klucza

Znane ataki mog zmniejsza zoono2TDES klucz 112 bitw sia ok. 80 bitw

3TDES klucz 168 bitw sia ok. 112 bitw

DES-X klucz 184 bity sia ok. 118 bitw

Podstawowe technikikryptograficzne

Szyfr blokowy

Pracuje na porcjach danych o staej dugociBloki - obecnie min. 128 bitw (16 bajtw)

SymetrycznyTen sam klucz do szyfrowania i deszyfrowania

Obecnie min. 128 bitw (16 bajtw)

Stae przeksztacenieTen sam algorytm dla tego samego Ke i tego samego P da ten sam C

Standardowy interfejsUstaw klucz, szyfruj, deszyfruj

Wymagania wobec szyfrw

Efekt lawinowy (avalanche effect)Zmiana jednego bitu tekstu jawnego lub klucza zmienia wszystkie bity kryptogramu

Rozproszenie (diffusion)Zatarcie charakterystyki tekstu jawnego w kryptogramie

Przemieszanie (confusion)Zatarcie zwizku midzy kluczem a kryptogramem

Szyfry blokowe w praktyce

DES (Data Encryption Standard)Blok 64 bity, klucz 56 bitw

Nie uywa

3DESBlok 64 bity, klucz 168 bitw

AES (Advanced Encryption Standard)Blok 128 bitw, klucz 128, 192, 256 bitw

Aktualnie zalecany standard cywilny

Serpent, Twofish, MARS, RC6

DES

Standard od 1975

Niezalecany od 1999 (NIST)

Brak atakw praktycznych lepszych ni brute force

WadyKrtki klucz (RSA DESCHALL)

Krtki blok (kolizje)

Niska wydajno

DES w dokumentach oficjalnych jest take znany pod nazw DEA (Data Encryption Algorithm).DES nadal jest stosowany w niektrych systemach bankowych. Wymienione wady mog nie mie znaczenia praktycznego jeli dane wejciowe maj niewielk dugo (np. numer karty kredytowej), krtki czas ycia i nie jest wymagana wysoka wydajno.DES jest algorytmem projektowanym pod ktem implementacji sprztowej, std niska wydajno w oprogramowaniu.

3DES

Szyfrowanie-deszyfrowanie-szyfrowanie3DES-EDE

Dugo klucza 3x56 = 168 bitw

Dopuszczalny pod warunkiem uywania trzech niezalenych kluczy

WadyKrtki blok (kolizje)

Niska wydajno

3DES jest prawdopodobnie najbardziej rozpowszechnionym szyfrem. Cieszy si zaufaniem (35 lat odpornoci na kryptoanaliz).Powszechnie stosowany w bankowoci, zastosowaniach rzdowych i wojskowych.Polskie szyfratory do informacji niejawnej CompCrypt stosuj 3DES do poziomu "tajne". Na poziom "cile tajne" jest dopuszczony niejawny algorytm NASZ-1, stanowicy zmodyfikowan wersj 3DES.W praktyce du wad 3DES jest niska wydajno 3x nisza od DES, ktry i tak jest do wolny w implementacji programowej.NIST SP 800-57 dopuszcza 3DES (TDEA) pod warunkiem uywania trzech rnych kluczy.NIST SP 800-67 Recommendation for the Triple Data Encryption Algorithm (TDEA) Block Cipher

AES

Advanced Encryption Standard (AES)Rijndael

Bardzo wydajny

Wg niektrych niski margines bezpieczestwa

AES jest ustandardyzowan wersj szyfru Rijndael. Rijndael dopuszcza klucze o dowolnej dugoci w okrelonym przedziale. AES, dla zachowania interoperacyjnoci, dopuszcza tylko klucze 128, 192 i 256 bitw.AES jest szyfrem bardzo wydajnym w implementacjach programowych.NIST SP 800-57 dopuszcza go dla wszystkich dugoci kluczy.

Inne szyfry

Serpent Wysoki margines bezpieczestwa, wolniejszy od AES, darmowy

TwofishWydajny, darmowy

MARSDarmowy

RC6Opatentowany (RSA)

Tryby szyfrowania

Blok 128 bitw = 16 bajtwPodzia tekstu jawnego na bloki

Uzupenianie blokw (padding)

Rne sposoby podziau na blokiTryby szyfrowania (block cipher modes)

Rne istotne konsekwencje dla bezpieczestwa

Dodatkowe parametry

Standardowy interfejs programistycznyDES_cbc_encrypt(), DES_cbc_decrypt()

Obszerna lista standardowych trybw szyfrowania wraz z uwagami dotyczcymi ich stosowania w praktyce zostaa opublikowana przez NIST w SP 800-38A.Szereg dodatkowych trybw do zastosowa specjalnych zostaa opublikowana w innych dokumentach z tej serii (SP 800-38B do 800-38E).

Electronic Code Book (ECB)

Najbardziej intuicyjnyP dzielony na bloki po 16 bajtw

Kady blok szyfrowany samodzielnie

Ci := E(K, Pi), Pi := D(K,Ci)

Taki sam blok P da taki sam blok CSzereg problemw zwizanych z bezpieczestwem

Kryptogram ECB moe ujawnia wewntrzn struktur danych jeli jest to np. zaszyfrowany obrazek (mapa bitowa), skadajcy si z dugich sekwencji takich samych bajtw.Moe rwnie ujawnia powtarzajce si bloki, zawierajce okrelone wiadomoci np. kwoty przelewu lub komendy systemowe. ledzc transmisj atakujcy moe zbudowa specyficzn "ksik kodow" i bez znajomoci klucza analizowa jakie dane s przesyane w danym momencie. Zalet ECB jest moliwo swobodnego dostpu (zmian) w kryptogramie zapisanym np. na dysku.

Cipher Block Chaining (CBC)

Kady blok wejciowy jest dodawany do poprzedniego kryptogramuOperacja XOR

Ci := E(K, Ci-1Pi)

Pi := D(K, Ci) Ci-1

Najbardziej rozpowszechniony tryb

Tryb CBC jest najbardziej rozpowszechniony w praktyce i moe by stosowany z kadym szyfrem blokowym.Operacja szyfrowania CBC nie moe by prowadzona rwnolegle, co jest wad.Modyfikacja jednego bloku tekstu jawnego wpywa na wszystkie kolejne bloki kryptogramu.Modyfikacja jednego bloku kryptogramu wpywa na dwa bloki tekstu wynikowego.

IV oraz Nonce

Wektor inicjalizujcy, wartoc pocztkowa (Initialisation vector)P0 i C0 w trybie CBC

Moe by jawny, musi by nieprzewidywalny

Nie moe by licznikiem

Nonce (number used once)Warto unikalna

Uyta tylko jeden raz z danym kluczem

Moe by licznikiem lub numerem wiadomoci

Najpopularniejsz metod generowania IV jest uycie do tego celu liczby losowej. Moe by ona jawna i przesana jako pierwszy blok kryptogramu. W takim przypadku kryptogram wyduy si o jeden blok.W przypadku bardzo krtkich wiadomoci narzut ten moe by niepodany, dlatego IV mona wygenerowa na podstawie nonce. Moe to by liczba o wiele krtsza ni peny blok szyfru.Poniewa niepodane jest by sam IV by prostym licznikiem, dlatego licznik-nonce mona zaszyfrowa jako pojedynczy blok uzyskujc kryptogram, ktrego uywamy jako IV.W takim przypadku przesyanie IV nie jest w ogle konieczne wystarczy, e druga strona bdzie liczy odebrane wiadomoci.

Output Feed Back (OFB)

Cig kluczowy generowany niezalenieSzyfrowanie przez XOR

K0 := IV

Ki := E(K, Ki-1)

Ci := Pi Ki

OFB dziaa jak szyfr strumieniowy, gdzie generatorem cigu kluczowego jest szyfr blokowy (do czsta konstrukcja).Zalet jest dua niezaleno w generowaniu cigu kluczowego bez oczekiwania na tekst jawny. Drug zalet jest moliwo szyfrowania niepenych blokw, bo faktyczn operacj szyfrowania zapewnia funkcja XOR, ktra moe operowa na pojedynczych bajtach czy nawet bitach.Ze wzgldu na wasnoci funkcji XOR krytyczne dla bezpieczestwa szyfru jest uywanie danego IV tylko jeden raz dla danego klucza szyfrujcego.

Tryb licznikowy (CTR)

Cig kluczowy generowany niezalenieSzyfrowanie przez XOR

Ki := E(K, Nonce || licznik)

Ci := Pi Ci

Moliwe przetwarzanie rwnolege

Nonce krytyczne dla bezpieczestwa

Tryb CTR jest ustandardyzowany w NIST SP 800-38A. Przetwarzanie rwnolege umoliwia osiganie bardzo wysokiej wydajnoci.Jak w przypadku OFB, unikalno nonce dla danego klucza K jest krytyczna dla bezpieczestwa szyfru.

Tryby specjalne

XTS-AES (SP 800-38E)Tryb do szyfrowania nonikw danych (np. Dyskw) ze swobodnym dostpem do blokwPracuje na sektorach, wikszych ni jeden blok

Standard IEEE 1617-2007

Tryby kombinowane (encryption-authentication)CCM (SP800-38C)

GCM (SP800-38D)Szybszy od CCM

OCB 2.0Najszybszy, opatentowany

Kryptograficzne
funkcje skrtu

Funkcja skrtu (hash function)Dane dowolnej dugoci na wejciu m

Skrt o staej dugoci na wyjciu h(m) Typowe dugoci skrtu - 128-1024 bity

Unikalna reprezentacja wiadomoci

ZastosowanieKontrola integralnoci

Podpis cyfrowy

Funkcja jednokierunkowa

Spotykane s rwnie nazwy polskie: funkcja mieszajca, funkcja haszujca oraz angielskie: message digest, fingerprint lub po prostu hash.

Wymagania wobec funkcji skrtu

Odporno na kolizje (collision resistance)Kolizja dowolne m1,m2 gdzie h(m1)=h(m2)

First preimage resistanceObliczenie x=h(m) jest atwe, znalezienie m na podstawie x jest praktycznie niemoliwe

Jednokierunkowo (one-way function)

Second preimage resistance Dla wybranego m1 znalezienie m2 gdzie h(m1)=h(m2) jest praktycznie niemoliwe

"Praktycznie niemoliwe" w kadym wypadku oznacza konieczno wyczerpujcego przeszukiwania.Dla funkcji dajcej skrt o dugoci 128 bitw (MD5) zoono kadego z atakw powinna wynosi 2128.Atak "dnia urodzin" umoliwia generowanie kolizji przy zoonoci 2n/2, wic dla n=128 bdzie to 264. W 2010 roku NIST okreli doln granic zoonoci na 280, jak wic wida MD5 jej nie spenia w zastosowaniach wymagajcych odpornoci na kolizje.

RFC 4270, "Attacks on Cryptographic Hashes in Internet Protocols"NIST SP 800-107

Funkcje skrtu w praktyce

Zasady doboru funkcji skrtu:

W nowych aplikacjachfunkcje z grupy SHA2

przygotowa na SHA3 (length extension attack)

SHA1 powinno by zastpowane po 2010 roku

MD5 powinno by zastpowane od 1999 roku

Powysze dotyczy zastosowa, gdzie konieczna jest dugoterminowa odporno na kolizje i inne ataki (np. podpis elektroniczny). W niektrych zastosowaniach (np. SSL) nawet MD5 moe zapewnia wystarczajcy poziom bezpieczestwa.

Zgodnie z zaleceniami NIST opisanymi we wspomnianej publikacji SP 800-107 oraz - szerzej - w 800-57 funkcja MD5 nie powinna by uywana w zastosowaniach zwizanych z podpisem cyfrowym ju od 1999 roku. W stosunku do SHA-1 tak rekomendacj wyznaczono na rok 2010. A cilej, wyznaczono j dla wszystkich algorytmw posugujc si kryterium zapewnianej odpornoci mierzonej w bitach. I tak: do 2010 roku powinny by uywane algorytmy zapewniajce minimum 80 bitw - nie powinny by stosowane klucze RSA i DSA krtsze ni 1024 bity, w latach 2011-2030 powiny by uywane algorytmy zapewniajce min. 112 bitw - wycofany powinien zosta 3DES z dwoma kluczami (2TDEA), minimalna dugo kluczy RSA i DSA to 2048 bitw, po roku 2030 powinny by uywane algorytmy zapewniajce min. 128 bitw - wycofany powinien by kady warian 3DES, minimalne dugoci kluczy RSA i DSA to 3072 bity Zgodnie z zaleceniami SP 800-57 po aktualizacji w 2008 roku SHA-1 jako zapewniajce odporno mniejsz ni 80 bitw nie powinno by stosowane w nowych implementacjach.

Funkcje uwierzytelniajce

MAC (Message Authentication Code)Ochrona integralnoci

Ochrona autentycznoci pochodzenia

Autentyczno zapewnia tajny klucz K

Nadawca generuje MAC i docza do wiadomocim,T := MAC(K,m) T "authentication tag"

Odbiorca generuje MAC i porwnuje z otrzymanymm,T =? MAC(K,m)

Funkcja skrtu sparametryzowana tajnym kluczem

Termin polski - kod uwierzytelnienia wiadomoci.

Funkcje MAC w praktyce

HMAC (FIPS 198a)h(Ka || h(Kb || m) )

Najbardziej rozpowszechniony z SHA1

Zalecany z SHA-256

CMAC (NIST SP 800-38A)CBC-MAC, wykorzystuje AES-128, 192, 256

Zalecany z AES-256

Realna zoono 2n/2Wymagane min. 128 bitw

Wymiana kluczykryptograficznych

Skd si bior klucze?

Liczby losowe w kryptografiiKrytyczne dla bezpieczestwa

Klucze kryptograficzne, cigi kluczowe, IV, nonce, identyfikatory...

rda liczb losowychGeneratory pseudolosowe (PRNG)Istotna jako cigu wyjciowegoTylko PRNG zaprojektowane do celw kryptograficznych

Konieczne zasilenie (seed)

Generatory sprztowe (hardware RNG)Koszt, wydajno

PRNG Pseudorandom number generator. Algorytm deterministyczny dajcy na wyjciu cig liczb majcy wasnoci statystyczne zblione do danych losowych.Deterministyczno PRNG polega na generowaniu zawsze tego samego cigu liczb, ktry w kocu zaczyna si powtarza. Przykad (okres 5):

PRNG(1)=628, 98, 2780, 4, 790, 628, 98...PRNG(2)=98, 2780, 4, 790, 628, 98, 2780...PRNG(4)=790, 628, 98, 2780, 4, 790...

Kryptograficzne PRNG powinny charakteryzowa si bardzo dugim okresem powtarzalnoci.Cech pseudo-nieprzewidywalnoci osigamy dziki temu, e PRNG moe generowa cig od dowolnego kolejnego elementu wskazujemy go parametrem zasilajcym (seed value).

Entropia informacji

Entropia informacjisuma wystpie znakw w tekcie w stosunku do wszystkich moliwych kombinacji

Teksty rzeczywisteNiska entropia (~4)

Cigi losowych bajtwWysoka entropia (~8)

Dobry szyfr produkuje kryptogram o wysokiej entropiiNawet jeli entropia klucza i tekstu jawnego jest niska

Teksty rzeczywistewszystkie znaki A-Z rwnie prawdopodobne

niektre wystpuj znacznie czciej (EOI...)

niektre rzadko lub w ogle

entropia niska (rzdu 4,1, maksymalna 4,7 jeli A-Z)

Cigi losowych bajtw (0-255)maksymalna entropia 8,0 bitw/znak (bajt=8 bitw)

dobre szyfry i generatory liczb losowych osigaj 7,6

jeli tekst naturalny w rodowisku 8-bitowym to entropia relatywnie jeszcze mniejsza (4,1 vs 8,0)

Od hasa do klucza

Niska zoono hase uytkownikwrednio ok. 40 bitw entropii

Techniki zwikszania zoonociModulowany skrt has do uwierzytelnieniaUstawienie hasa: salt, p := h(haso || salt)

Logowanie: h(haso || salt) = p?

Iterowany skrt do szyfrowaniaPKCS#5, Scrypt

"A Large-Scale Study of Web Password Habits", Dinei Florncio, Cormac Herley, Microsoft ResearchColin Percival, Stronger Key Derivation via Sequential Memory-Hard Functions, presented at BSDCan'09, May 2009PKCS #5 v2.1, "Password-Based Cryptography Standard", RSANIST SP 800-118 Guide to Enterprise Password ManagementNIST SP 800-108 Recommendation for Key Derivation Using Pseudorandom FunctionsNIST SP 800-90 Recommendation for Random Number Generation Using Deterministic Random Bit Generators

Metody wymiany klucza

Bezpieczne obliczenie wsplnego kluczaAlgorytm Diffie-Hellman (1976)

Krzywe eliptyczne (ECDH)

Kryptografia z kluczem publicznymAlgorytm RSA

Algorytm Diffiego-Hellmana jest historycznie pierwszym algorytmem kryptografii z kluczem publicznym. Umoliwia dwm stronom komunikacji wsplne wyliczenie tajnej wartoci. Proces ten polega na wymianie okrelonych liczb i wykonywaniu oblicze na nich. Moe si odbywa przez kana publiczny. Ze wzgldu na liczb krokw wykonywanie DH jest preferowane w czasie rzeczywistym (on-line).Algorytm RSA umoliwia szyfrowanie wiadomoci kluczem publicznym i odszyfrowanie kluczem prywatnym. Kada z tych operacji odbywa si w jednym kroku, std nadaje si ona zarwno do pracy on-line jak i off-line (przesyanie wiadomoci).aden z tych algorytmw nie gwarantuje autentycznoci ktrejkolwiek ze stron!NIST SP 800-57 Recommendation for Key Management
NISTP SP 800-56A, 800-56B

Wymiana klucza a uwierzytelnienie

Atak man-in-the-middleNiemoliwe rozwizanie technikami kryptograficznymi

rodki organizacyjneZaufana trzecia strona

PKI

Protok kryptograficzny
w praktyce

Przedstawienie si (identification)

deklaracja tosamoci

Uwierzytelnienie (authentication)

potwierdzenie zadeklarowanej tosamocipodpis elektroniczny (RSA, DSA), lub

wsplne haso (shared secret)

W obu przypadkach konieczne dodatkowe mechanizmy organizacyjne!

Opisany schemat odpowiada sieciowym protokoom bezpieczestwa takim jak IPSec czy SSL.Tosamoci w tym przypadku jest arbitralnie wybrany identyfikator (adres IP, nazwa DNS, nazwa uytkownika w IPSec; nazwa domenowa w SSL). Na jego podstawie strona odbierajca poczenie wybiera ustalone wczeniej dane uwierzytelniajce (klucz publiczny, haso).Uycie podpisu cyfrowego do uwierzytelnienia wymaga zaangaowania PKI. Uycie hasa wymaga uzgodnienia tego hasa innym kanaem.

Protok kryptograficzny
w praktyce

Wymiana klucza (key exchange, key agreement)

wymiana losowego klucza sesyjnego (RSA), lub

ustalenie wsplnego klucza sesyjnego (DH)

Transmisja danych

Zarzdzanie poczeniem

Ustanawianie nowych kluczy co X godzin lub Y bajtw (renegotiation)

Jedno dwukierunkowe poczenie uywa a czterech symetrycznych kluczy kryptograficznych:- jeden do szyfrowania (szyfr blokowy)- jeden do ochrony integralnoci (HMAC)- po jednym takim zestawie dla kadego kierunku transmisji (A->B, B->A)Wymiana wszystkich kluczy co ustalony interwa czasu chroni przed atakami kryptoanalitycznymi wymagajcymi zebrania odpowiedniej iloci kryptogramw; co ustalon ilo bajtw przed atakami wykorzystujcymi paradoks dnia urodzin lub meet-in-the-middle.Jak wida, nawizanie sesji wymaga dwukrotnego uycia RSA lub DH po raz pierwszy do uwierzytelnienia, po raz drugi do wymiany klucza.

Identyfikacja

AliceBobHi, I'm Alice

AliceAlice

m

Identyfikacja

AliceBobHi, I'm Alice

AliceAliceKluczepubliczneAlice?

P

Uwierzytelnienie

AliceBob

PAliceAliceRND?

R

Uwierzytelnienie

AliceBobAliceAlice

a = E(P, R)

Wysae mi R

Uwierzytelnienie

AliceBobAliceAliceRozszyfrowaa R, to znaczye to Alice!

Teraz wymiemy si kluczami

Wymiana klucza

AliceBobAliceAlice

k1 = E(P, K1)

RND?

K1 K2

k2' = E(P, K2)

Transmisja danych

AliceBob

K1, K2AliceAlice

mK1, K2

Transmisja danych

AliceBob

K1, K2AliceAlice

mK1, K2c = E(K1, m)a = E(K2, m)

Transmisja danych

AliceBob

mAliceAlice

mTransmisja danych

Kontakt z autorem:

[email protected]. +48-602-776959

Prezentacja udostpniona na licencji Creative Commons BY-NC-SA(uznanie autorstwa, uycie niekomercyjne, na tych samych warunkach)

http://creativecommons.org/licenses/by-nc-sa/3.0/pl/

Literatura:

http://ipsec.pl/http://securitystandard.pl/http://csrc.nist.gov/

Niels Ferguson, Bruce Schneier,t Tadayoshi Kohno "Cryptography engineering"

Kontakt z autorem:

[email protected]. +48-602-776959

Prezentacja udostpniona na licencji Creative Commons BY-NC-SA(uznanie autorstwa, uycie niekomercyjne, na tych samych warunkach)

http://creativecommons.org/licenses/by-nc-sa/3.0/pl/

Literatura:

http://ipsec.pl/http://securitystandard.pl/http://csrc.nist.gov/

Niels Ferguson, Bruce Schneier,t Tadayoshi Kohno "Cryptography engineering"

MD5SHA1SHA-224SHA-256SHA-384SHA-512SHA3

Dugo128160224256384512224-512

Kolizje2460112128192256?

Preimage116160224256384512?

2nd preimage123105-160201-224201-256384394-512?

???Strona ??? (???)04/22/2010, 22:10:37Strona /