Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
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