autentikacija poruka i hash funkcijerti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/arhiva... · –...

31
Autentikacija poruka i hash funkcije

Upload: others

Post on 23-Oct-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

  • Autentikacija poruka i hash funkcije

  • Sigurnosni zahtevi - napadiSigurnosni zahtevi napadi

    1. Otkrivanje1. Otkrivanje 2. Analizu saobraćaja3 Lažno predstavljanje3. Lažno predstavljanje4. Izmena sadržaja5 I k ( d l d )5. Izmena sekvence (redosleda)6. Promena vremena7. Poricanje slanja8. Poricanje prijema

  • Autentikacija porukaAutentikacija poruka

    • Autentikacija poruka se bavi:Autentikacija poruka se bavi: – Zaštitom integriteta i redosleda poruka– Proverom identiteta pošiljaocaProverom identiteta pošiljaoca– Neporicanjem porekla (razrešavanje sporova)

    • Razmatra sigurnosne zahteveRazmatra sigurnosne zahteve• Podrazumeva kreiranje autentikatora• Koriste se tri bazične funkcije:• Koriste se tri bazične funkcije:

    – Šifrovanje poruke– Kod za autentikaciju poruke (MAC)– Kod za autentikaciju poruke (MAC)– Hash funkcije

  • Šifrovanje porukeŠifrovanje poruke

  • Šifrovanje porukeŠifrovanje poruke• Šifrovanje samo po sebi obezbeđuje i j p j

    autentikaciju u određenoj meri• U slučaju simetričnog šifrovanja:

    – Primalac zna da je morao da bude kreiran od strane pošiljaoca, jer samo pošiljalac i primalac znaju tajni ključj

    – Tada se sadržaj ne može promeniti• Problem 1: kako automatski odrediti da je došlo

    d k ?do promene poruke?– Ako poruka ima određenu strukturu, redundansu ili

    kontrolne sume mogu automatski da se otkriju bilo g jkakve promene

    • Problem 2: poricanje

  • Frame Check SequenceFrame Check Sequence

    • a) vrši garanciju zadržavanja autentičnostia) vrši garanciju zadržavanja autentičnosti• b) napadač iako ne zna originalnu poruku

    može da izvrši DoS napad na primaocamože da izvrši DoS napad na primaoca

  • Asimetrično šifrovanje porukeAsimetrično šifrovanje poruke

    • Ako je javni ključ upotrebljen:Ako je javni ključ upotrebljen:– Šifrovanje ne potvrđuje identitet pošiljaoca,

    jer potencijalno svi znaju javni ključ– Ako pak

    • Pošiljalac potpiše poruku korišćenjem svog privatnog ključaprivatnog ključa

    • Tek tada šifruje javnim ključem pošiljaoca• Istovremeno tajnost i autentikacijaj j

    – Potrebno prepoznati izmenjene poruke– Cena su dva ključa upotrebljena za porukuj j

  • Kod za autentikaciju poruke (MAC)Kod za autentikaciju poruke (MAC)

    • Generiše se algoritmom koji stvara mali blokGeneriše se algoritmom koji stvara mali blok fiksne veličine– Zavisi od poruke i nekog ključa– Kao enkripcija koja ne mora da bude reverzibilna

    • Priključuje se uz poruku kao potpis• Primalac sprovodi isto izračunavanje nad

    porukom i proverava da li se slaže MAC• Osigurava da poruka nije menjana i dolazi od

    pošiljaoca

  • Message Authentication CodeMessage Authentication Code

  • Autentikacioni kodovi porukaAutentikacioni kodovi poruka• Pokazano je da MAC obezbeđuje sigurnost

    M ž šif ti b t j ti• Može se šifrovati zbog tajnosti– Generalno se koriste različiti ključevi za svaku stvar– MAC se može izračunati pre ili posle šifrovanjaMAC se može izračunati pre ili posle šifrovanja– Preporučuje se da se uradi pre šifrovanja

    • Zašto MAC?– Broadcast– Performanse

    N k d ht t tik ij– Nekada se zahteva samo autentikacija– Nekada je neophodno da autentikacija perzistira duže

    od tajnosti (npr. Arhive)• MAC nije digitalni potpis

  • Osobine MACOsobine MAC

    • MAC je kriptografska kontrolna sumaMAC je kriptografska kontrolna sumaMAC = CK(M)

    – Kondenzuje poruke M promenljive dužineKondenzuje poruke M promenljive dužine– Koristi tajni ključ K– Konvertuje u autentikator fiksne dužinej

    • Funkcija preslikavanja je više na jedan– Potencijalno mnoge poruke imaju isti MACj g p j– Nalaženje takvih poruka sa identičnim MAC

    mora da bude veoma teško

  • Zahtevi za MACZahtevi za MAC

    • Predvideti sve tipove napadaPredvideti sve tipove napada• Zadovoljiti zahteve:

    1 P j ći k i MAC ij č ki1. Poznajući poruku i MAC, nije računarski ostvarljivo u razumnom vremenu naći drugu poruku sa istim MACporuku sa istim MAC

    2. MAC treba da budu uniformno distribuirani3 MAC treba da podjednako zavisi od svih bita3. MAC treba da podjednako zavisi od svih bita

    poruke

  • Sigurnost - primerSigurnost primer

    • Ako je algoritam siguranAko je algoritam siguran• Ključ – k bita, MAC – n bita, k>n, poruka M1

    B t f• Brute force:– Prvi krug. Poznato M1 i MAC1. 2k puta

    MAC C(K M ) bić 2(k ) t ij l ih klj čMACi=C(Ki,M1) – biće 2(k-n) potencijalnih ključeva– Drugi krug. Poznato M2 i MAC2. 2k-n puta

    MAC C(K M ) bić 2(k 2n) t ij l ih klj čMACi=C(Ki,M2) - biće 2(k-2n) potencijalnih ključeva– Posle k/n krugova dobiće se ključ

    k• Ako je k

  • Ali ako algoritam nije siguranAli ako algoritam nije siguran...

    • MAC algoritam je XORMAC algoritam je XOR• M=M1||M2||... ||Mn

    MAC E(K M M M )• MAC=E(K,M1 M2 ... Mn)• Svaka poruka Y=Y1||Y2||... ||Yn gde je

    Yn=Y1 Y2 ... Yn-1 M1 M2 ... Mn će dati isti MAC kod, tako da napadač može da kreira proizvoljnu poruku i da ne zna ključ, ako poznaje algoritam i osnovnu poruku.

  • Upotreba simetričnih šifara za MACUpotreba simetričnih šifara za MAC

    • Može se upotrebiti bilo koji algoritamMože se upotrebiti bilo koji algoritam šifrovanja sa blokovima u nizu i iskoristiti poslednji blok kao MACposlednji blok kao MAC

    • Data Authentication Algorithm (DAA) je široko rasprostranjen MAC zasnovan naširoko rasprostranjen MAC zasnovan na DES-CBCK j ji MAC j iš li i t• Krajnji MAC je suviše mali za sigurnost

  • DAADAA

    • Smatra se da nije dovoljno siguranSmatra se da nije dovoljno siguran

  • Hash FunkcijeHash Funkcije

    • Sabija proizvoljnu poruku na fiksnu veličinuSabija proizvoljnu poruku na fiksnu veličinu• Najčešće se podrazumeva da je hash funkcija

    javna i ne sadrži ključ za razliku od MAC koji j j jsadrži

    • hash se koristi za otkrivanje promena u porucij p p• Može se koristiti na različite načine u poruci• Najčešće da se napravi digitalni potpisajčešće da se ap a d g ta potp s

  • Osobine Hash funkcijaOsobine Hash funkcija

    • Proizvodi otisak prsta neke poruke/datotekeProizvodi otisak prsta neke poruke/datoteke h = H(M)

    Kondenzuje poruku M promenljive dužine– Kondenzuje poruku M promenljive dužine– Otisak prsta je fiksne dužine

    P d d j j• Podrazumeva se da je javna

  • Korišćenje Hash Funkcija

  • Zahtevi za Hash funkcijeZahtevi za Hash funkcije1. Mogu se primeniti na poruke M bilo koje

    d židužine2. Proizvodi izlaz fiksne dužine h3 L k j i č ti k3. Lako je izračunati h=H(M) za svako M4. Za dato h teško je naći x takvo da je H(x)=h

    bi- one-way osobina5. Za dato x teško je naći y da je H(y)=H(x)-

    weak collision resistanceweak collision resistance6. Teško je naći bilo koje x,y da je H(y)=H(x)-

    strong collision resistancestrong collision resistance

  • Primeri hash funkcijaPrimeri hash funkcija• XOR svih blokova poruke (blokovi fiksne dužine)

    Problem ASCII kod teksta sva slova pocinju nulom pa– Problem ASCII kod teksta – sva slova pocinju nulom, pa je broj efektivnih bita 12.5% manji

    • RXOR - XOR sa rotacijom – da se izbegne j gproblem patterna u ulaznom nizu

    • Slabe hash funkcije – jednostavno se generišu j j gporuke koje daju istu hash funkciju ako se šalje poruka u cleartextu

    • Rešenje – kriptovanje poruke (neki CBC algoritam) i hash funkcije, međutim, ovakav algoritam nije

    t d l d bl k j j XORotporan na promenu redosleda blokova, jer je XOR komutativna operacija

  • XOR + CBCXOR + CBC

    • MAC = XN 1 = X1 X2 XNMAC = XN+1 = X1 X2 ... XN• Y=Ecbc(K,X)

    X IV D(K Y )• X1 = IV D(K, Y1)• Xi = Yi1 D(K, Yi)• XN+1=YN D(K, YN+1)• XN 1=X1 X2 XN = [IV D(K Y1)]XN+1 X1 X2 ... XN [IV D(K, Y1)]

    [Y1 D(K, Y2)] ... [YN1 ... D(K, YN)]

  • Birthday napad/paradoksBirthday napad/paradoks

    • Ako je hash dužine k bita u proseku jeAko je hash dužine k bita, u proseku je potrebno da se generiše 2k-1 poruka koje bi dale isti hash – brute forcedale isti hash brute force

    • Birthday paradox: ako napadač generiše 2k/2 poruka verovatnoća da će jedna od2k/2 poruka, verovatnoća da će jedna od njih dati isti hash kod je veća od 0.5P l di k j h h d ži 160 bit• Posledica – ako je hash dužine 160 bita, smatra se da je potrebno 280 operacija da

    đ d k i t h hse pronađe druga poruka istog hasha

  • SHA algoritamSHA algoritam

    • Secure Hash Algorithm (SHA) razvijen odSecure Hash Algorithm (SHA) razvijen od strane National Institute of Standards and Technology (NIST) 1993 poslednjaTechnology (NIST) 1993, poslednja revizija 2009.

    • Dokument: Secure Hash Standard• Dokument: Secure Hash Standard • SHA-1 ima hash vrednost od160 bita.

    2002 NIST j i i ij SHA 2562002, NIST je napravio revizije SHA-256, SHA-384 i SHA-512 sa hash-om

    č b j bitoznačenog broja bita

  • SHA-512 algoritamSHA 512 algoritam• Maksimalna veličina poruke 2128

    Si t 256 bit• Sigurnost 256 bita• Veličina bloka 1024 bita

  • SHA jedan blok FSHA jedan blok F• 80 iteracija• Inicijalizacioni baferi• a = 6A09E667F3BCC908

    b = BB67AE8584CAA73Bc = 3C6EF372FE94F82Bc = A54FF53A5F1D36F1e = 510E527FADE682D1f = 9B05688C2B3E6C1Fg = 1F83D9ABFB41BD6Bh = 5BE0CDI9137E2179

  • SHA jedna iteracijaSHA jedna iteracija• T1=h+Ch(e,f,g)+∑e+Wt+Kt• T2=∑a+Maj(a,b,c)• a=T1+T2• b=a• c=bc b• d=c• e=d+T1

    f• f=e• g=f• h=g• Ch(e,f,g) – If e, then f else g• Maj(a,b,c) –• ∑a=RR28(a) RR34(a) RR39(a)∑a RR (a) RR (a) RR (a)• ∑e=RR14(a) RR18(a) RR41(a)• + sabiranje po modulu 264

  • W konstanteW konstante

  • Whirlpool algoritamWhirlpool algoritam

    • Zasnovan na AESZasnovan na AES• Veličina bloka 512

    V liči klj č 512• Veličina ključa 512

  • HMACHMAC• RFC 2104• Razvijene iz poznatih hash

    funkcija SHA i MD5• b – broj bita u bloku• b – broj bita u bloku• K – ključ dužine k bita• K+ - ključ dopunjen do b bita j p j

    nulama, a ako je k>b, onda H(K)+dopunai d 36h b/8 t• ipad - 36h b/8 puta

    • opad - 5Ch b/8 puta

  • CMACCMAC• Cipher based MAC, CBC-MAC• Problem – ako se zna T=MAC(K,X),

    onda se zna i MAC za svaku porukuonda se zna i MAC za svaku poruku X||(X T)

    • Poboljšanje – CMAC – više ključeva (izvedeni iz osnvnih ključeva)

    • L = E(K, 0n)K L x• K1 = L · x

    • K2 = L · x2 = (L · x) · x• Cn - koeficijenti prvog polinomaCn koeficijenti prvog polinoma

    nerazloživog u GF(2n)• C128= x128 + x7 + x2 + x + 1

    If msb(L)=0 then k1=k0 1 else k1=(L 1) CIf msb(k1)=0 then k2=k1 1 else k2=(k1 1) C