If you can't read please download the document
Upload
pawel-krawczyk
View
3.374
Download
0
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 /