37
Rinktiniai informacijos saugos skyriai 8. Kriptografija ir kriptografijos protokolai: Maišos funkcijos, MAC funkcijos

Rinktiniai informacijos saugos skyriai

  • Upload
    toki

  • View
    61

  • Download
    0

Embed Size (px)

DESCRIPTION

Rinktiniai informacijos saugos skyriai. 8. Kriptografija ir kriptografijos protokolai: Maišos funkcijos, MAC funkcijos. Paskaitos tikslai. Šioje temoje nagrinėjami klausimai: Informacijos vientisumo poreikis. Pranešimo santrauka, maišos funkcijos, jų savybės. - PowerPoint PPT Presentation

Citation preview

Page 1: Rinktiniai informacijos saugos skyriai

Rinktiniai informacijos saugos skyriai

8. Kriptografija ir kriptografijos protokolai:Maišos funkcijos, MAC funkcijos

Page 2: Rinktiniai informacijos saugos skyriai

2

Paskaitos tikslai

Šioje temoje nagrinėjami klausimai:

Informacijos vientisumo poreikis. Pranešimo santrauka, maišos funkcijos, jų savybės. Maišos funkcijų naudojimas vientisumui užtikrinti. Kriptografinės maišos funkcijos. Dažniausiai naudojamų maišos funkcijų apžvalga. MD5 veikimas. SHA-1 veikimas. SHA-2 veikimas. Autentiškumo užtikrinimas: MAC. HMAC – viena iš MAC funkcijų.

Page 3: Rinktiniai informacijos saugos skyriai

3

Kriptografijos uždaviniai ir priemonės (priminimas)

Slaptumas (konfidencialumas, confidentiality) Šifravimas

Vientisumas (integralumas, integrity) Kriptografinės maišos funkcijos Skaitmeninis parašas

Autentiškumas (tapatumo nustatymas, authenticity) MAC Skaitmeninis parašas

Neišsižadėjimas (nonrepudiation) Skaitmeninis parašas

Page 4: Rinktiniai informacijos saugos skyriai

4

Informacijos vientisumas (priminimas)

Vientisumas (integrity) – tai garantija, kad bus išsaugotos teisingos duomenų reikšmės. Tai užtikrinama draudžiant neautorizuotiems vartotojams kokiu nors būdu pakeisti, modifikuoti, sunaikinti, arba kurti duomenis.

Page 5: Rinktiniai informacijos saugos skyriai

5

Pavyzdys

Algis rašo testamentą, norėdamas paskirstyti savo turtą po mirties. Testamentas neturi būti užšifruotas, kad bet kas galėtų su juo

susipažinti. Tačiau jo vientisumas turi būti išsaugotas (Algis nenori, kad

jo testamentą pakeistų kas nors kitas).

Page 6: Rinktiniai informacijos saugos skyriai

6

Maišos funkcija ir santrauka

Pranešimo vientisumui užtikrinti naudojama pranešimo santrauka (message digest, kartais dar vadinama Modification Detection Code (MDC)).

Pranešimo santrauka skaičiuojama, naudojant maišos funkciją. Pranešimo santrauka vadiname maišos funkcijos reikšmę.

Maišos funkcija (hash function) vadiname funkciją, kuri bet kokio baigtinio ilgio ženklų eilutei priskiria fiksuoto ilgio eilutę.

Maišos funkcijos naudojamos ne tik informacijos vientisumo patikrinimui, bet ir dokumento santraukai gauti skaitmeninio parašo schemose, slaptažodžių saugojimui, paieškos raktų formavimui duomenų bazėse ir panašiai.

Page 7: Rinktiniai informacijos saugos skyriai

7

Pavyzdys

Pranešimo Informacijos saugumas įvairių maišos funkcijų reikšmės: CRC32 (32 bitai): 9468ffc5 MD5 (128 bitai):

5ccb2201a7ee633d2b2dc1ff527d4c79 SHA-1 (160 bitų):

09035a1b2703a81b7a86e1abe9965b5756666591 SHA-256 (256 bitai):

7765253a2cf3996d41c2a54af094a80bfcb8f9c4b4b8d4352c3e1ab8e3c7bbfb

http://www.fileformat.info/tool/hash.htm?text=Informacijos+saugumas

Page 8: Rinktiniai informacijos saugos skyriai

8

Santraukos ilgis yra fiksuotas

Pavyzdys. Skaičiuosime duoto pranešimo MD5 maišos funkcijos reikšmę:

Tuščias pranešimas: d41d8cd98f00b204e9800998ecf8427e

A: 7fc56270e7a70fa81a5935b72eacbe29

Ilgesnis pranešimas iš kelių žodžių: cd894604746deba896568cb8f2f6f197

3,5 MB dydžio failas: 9659f0218ab08598f7f53edec512479e

Page 9: Rinktiniai informacijos saugos skyriai

9

Maišos funkcijų savybės

Maišos funkcijos yra determinuotosios, t. y. ne atsitiktinės: Skaičiuojant maišos reikšmę tai pačiai įvesčiai kelis kartus,

visada bus gaunamas tas pats rezultatas. Kadangi galimų įvesčių yra daugiau, negu galimų

išvesčių, tai maišos funkcijos nėra injektyvios: Gali būti, kad skirtingoms įvestims maišos reikšmės bus

vienodos. Tai vadinama sutapimu (kolizija, collision).

Page 10: Rinktiniai informacijos saugos skyriai

10

Santraukos naudojimas vientisumui užtikrinti: Schema

Pranešimas

Maišos funkcija

Santrauka

Algis Birutė

Pranešimas

Maišos funkcija Santrauka

Lygu? T

N

Priimti

Atmesti

Santrauka

Nesaugus kanalas

Saugus kanalas

Page 11: Rinktiniai informacijos saugos skyriai

11

Santraukos naudojimas vientisumui užtikrinti

Kadangi maišos funkcijos yra žinomos viešai, tai bet kas gali apskaičiuoti jų reikšmes. Todėl santrauka turi būti perduodama saugiu kanalu, nes kitaip atakuojantysis galės pakeisti ir pranešimą, ir santrauką, apskaičiavęs pakeisto pranešimo maišos reikšmę.

Be to, vientisumui užtikrinti bet kokios maišos funkcijos netinka. Pavyzdžiui, tarkime, kad maišos funkcija yra tokia, kad turint pranešimą ir jo santrauką, nesunkiai galima rasti kitą pranešimą su tokia pačia santrauka. Tada atakuojantysis galės pakeisti pranešimą į kitą pranešimą, ir gavėjas to nepastebės. Vientisumui užtikrinti reikia naudoti kriptografines maišos funkcijas.

Page 12: Rinktiniai informacijos saugos skyriai

12

Kriptografinės maišos funkcijos

Kriptografine maišos funkcija vadiname maišos funkciją, kuri yra: vienakryptė (preimage resistant, one-way):

pranešimo santrauką apskaičiuoti yra lengva, o turint santrauką rasti atitinkamą pranešimą yra skaičiavimų prasme neįmanoma (computationally infeasible),

atspari sutapimams (2-nd preimage resistant, weakly collision resistant):turint pranešimą, skaičiavimų prasme neįmanoma rasti dar vieną pranešimą su ta pačia santrauka,

labai atspari sutapimams (collision resistant, strongly collision resistant):skaičiavimų prasme neįmanoma rasti sutapimą, t. y. du pranešimus su ta pačia santrauka.

Page 13: Rinktiniai informacijos saugos skyriai

13

Lavinos efektas

Pageidautina, kad kriptografinė maišos funkcija tenkintų savybę, vadinamą lavinos efektu (avalanche effect). Taip kriptografijoje vadinama pageidaujama kriptografinių algoritmų (paprastai blokinių kriptosistemų ir kriptografinių maišos funkcijų) savybė, kai nežymiai pakeitus įvestį (pavyzdžiui, pakeitus vos vieną bitą), išvestis pasikeičia žymiai (pavyzdžiui, pusė visų išvesties bitų pasikeičia).

Pavyzdys. Žodžiai Taisyklė ir taisyklė skiriasi tik vienu bitu, o jų MD5 reikšmės labai skiriasi: T – 0x54 – 0101 0100 t – 0x74 – 0111 0100 Taisyklė:

MD5: f26ad7627a11f62e559a9a6516dd2392 taisyklė:

MD5: f0517727eaba12da46385b6b9418ff30

Page 14: Rinktiniai informacijos saugos skyriai

14

Dažniausiai naudojamos maišos funkcijos

MD5 (Message-Digest algorithm 5). 1992 m. sukūrė Ron Rivest. Santraukos 128 bitų ilgio. Naudojama tokiuose plačiai naudojamuose protokoluose ir

programose, kaip TLS ir SSL, SSH, PGP, S/MIME, IPsec. UNIX šeimos operacinėse sistemose plačiai naudojama

slaptažodžių santraukoms saugoti. Įveikta 2004 metais (surasti sutapimai). Iki tol plačiai naudota, ir vis dar naudojama. Neberekomenduojama naudoti.

Page 15: Rinktiniai informacijos saugos skyriai

15

Dažniausiai naudojamos maišos funkcijos

SHA-1 (Secure Hash Algorithm 1). SHA 1993 m. sukūrė JAV nacionalinė saugumo agentūra

(National Security Agency, NSA). 1995 m. paskelbtas naujas variantas SHA-1, kuriame ištaisyta SHA buvusi klaida. Senasis variantas dabar dažnai vadinamas SHA-0.

JAV paskelbta standartu. Santraukos 160 bitų ilgio. Naudojama tokiuose plačiai naudojamuose protokoluose ir

programose, kaip TLS ir SSL, SSH, PGP, S/MIME, IPsec. Naudojama DSS (Digital Signature Standard) elektroninio

parašo schemoje. Kol kas neįveikta, bet 2005 metais rasta teorinių spragų.

Atsiranda poreikis ieškoti stipresnės maišos funkcijos.

Page 16: Rinktiniai informacijos saugos skyriai

16

Dažniausiai naudojamos maišos funkcijos

SHA-224, SHA-256, SHA-384, SHA-512. Visos kartu vadinamos SHA-2 maišos funkcijų šeima. 2001 m. sukūrė JAV nacionalinė saugumo agentūra. 2002 m. JAV paskelbta standartu. Santraukos tokio ilgio bitais, koks nurodytas maišos funkcijos

pavadinime. Kol kas nėra labai populiarios. Pagrindinės to priežastys: SHA-1

vis dar nėra įveikta, o 2012 m. planuojama paskelbti naują maišos funkcijų standartą SHA-3.

UNIX šeimos operacinėse sistemose planuojama naudoti SHA-256 ir SHA-512 slaptažodžių santraukoms saugoti vietoj MD5.

Spragų kol kas nerasta, bet ji algoritmiškai panaši į SHA-1. Poreikis ieškoti stiprios maišos funkcijos, nepanašios į SHA-1.

Page 17: Rinktiniai informacijos saugos skyriai

17

Dažniausiai naudojamos maišos funkcijos

SHA-3 – taip pavadintas naujas maišos funkcijų standartas, kuriam paskelbtas konkursas 2007 metais. Nugalėtojas išrinktas 2012 metais.

SHA-3 veikia visiškai kitokiu principu, negu SHA-2. Santraukų ilgis - 224, 256, 384 ir 512 bitai.

Page 18: Rinktiniai informacijos saugos skyriai

18

MD5 santraukos formavimo algoritmas (1)

Visų pirma, pradinis tekstas pailginamas iki 512 bitų kartotinio. T.y. visada atliekama tokia procedūra: prijungiamas vienas bitas, vienetas, prijungiama tiek nulių, kad pradinio teksto ilgis pasidarytų

512 bitų kartotinis minus 64 bitai, likę bitai užpildomi 64 bitų sveikuoju skaičiumi, reiškiančiu

pradinio teksto ilgį bitais. Gautas tekstas suskirstomas į blokus po 512 bitų (64

baitus).

Page 19: Rinktiniai informacijos saugos skyriai

19

MD5 santraukos formavimo algoritmas (2)

Pagrindinis MD5 algoritmas dirba su 128 bitų būsenos eilute, padalinta į keturis 32 bitų žodžius, pažymėtus A, B, C ir D. Šie žodžiai užpildomi pradinėmis reikšmėmis.

Po to algoritmas, naudodamas pradinio teksto 512 bitų ilgio blokus, modifikuoja būsenos eilutę.

Page 20: Rinktiniai informacijos saugos skyriai

20

MD5 santraukos formavimo algoritmas (3)

512 bitų ilgio blokas suskaidomas į šešiolika 32 bitų žodžių Mi.

Kiekvieno bloko apdorojimas sudarytas iš 4 panašių etapų, kurių kiekvienas sudarytas iš 16 iteracijų (taigi, iš viso 64 iteracijos). Kiekvienoje iteracijoje naudojama: netiesinė funkcija F, sudėties moduliu operacija, postūmio į kairę operacija.

Page 21: Rinktiniai informacijos saugos skyriai

21

MD5 vieno rato veikimo schemaA B C D

A B C D

<<<S

F

Mi

Ki

<<<s – ciklinis postūmis kairėn per s bitų, s kinta kiekvienoje iteracijoje; - suma moduliu 232; Ki – konstanta, skirtinga kiekvienai iteracijai.

Page 22: Rinktiniai informacijos saugos skyriai

22

MD5 santraukos formavimo algoritmas (4)

Pradžioje būsenos eilutė užpildoma pradinėmis reikšmėmis: A: 01 23 45 67B: 89 ab cd efC: fe dc ba 98D: 76 54 32 10Naudojamos keturios funkcijos F, kurių argumentai yra trys 32-bitų žodžiai, o

rezultatas vienas 32-bitų žodis:

Pažymėjimai:

reiškia logines operacijas SUMA MODULIU 2 (griežta disjunkcija, xor), IR, ARBA ir NE.

Page 23: Rinktiniai informacijos saugos skyriai

23

MD5 santraukos formavimo algoritmas (5)

Kiekviename etape žodžiai Mi perbėgami vis kita eilės tvarka.

Konstantos Ki kiekvienoje iteracijoje yra skirtingos. Atlikus šiuos veiksmus visiems blokams gautos A, B, C,

D reikšmės sujungiamos. Tai ir yra maišos funkcijos reikšmė.

Page 24: Rinktiniai informacijos saugos skyriai

24

SHA-1 viena iteracija

Page 25: Rinktiniai informacijos saugos skyriai

25

SHA-1 sandara

Page 26: Rinktiniai informacijos saugos skyriai

26

SHA-2 viena iteracija

Page 27: Rinktiniai informacijos saugos skyriai

27

SHA-256 sandara

Page 28: Rinktiniai informacijos saugos skyriai

28

Pagrindinių maišos funkcijų palyginimasAlgoritmas Santrau

kos ilgis (bitais)

Būsenos dydis (bitais)

Žodžių ilgis (bitais)

Iteracijų skaičius

Saugumas

MD5 128 128 32 64 Rasta sutapimų

SHA-1 160 160 32 80 Teorinė ataka

SHA-2 SHA-224

SHA-256

224

256

256 32 64 Saugi

SHA-384

SHA-512

384

512

512 64 80 Saugi

SHA-3 224/256/

384/512

1600 64 120 Saugi

Page 29: Rinktiniai informacijos saugos skyriai

29

Maišos funkcijos ir autentiškumas

Reikia saugaus kanalo santraukai perduoti. Saugus kanalas yra ne visada.

Tinka tik vientisumui patikrinti, bet ne autentiškumui, nes nėra informacijos apie tai, kas yra pranešimo siuntėjas. Maišos funkcijos yra viešos, todėl pranešimo santrauką

apskaičiuoti galėjo bet kas. Ką daryti?

Naudoti raktus: Pranešimo tapatumo nustatymo kodas (Message authentication

code, MAC).

Page 30: Rinktiniai informacijos saugos skyriai

30

MAC

Pranešimo tapatumo nustatymo kodas (MAC) yra funkcija, kurios reikšmė priklauso nuo pranešimo ir slapto rakto.

Skirtumas tarp maišos funkcijos reikšmės (pranešimo santraukos) ir MAC reikšmės yra tas, kad MAC priklauso ir nuo slapto rakto, žinomo tik siuntėjui ir gavėjui (Algiui ir Birutei).

MAC reikšmė leidžia patikrinti ir pranešimo vientisumą, ir autentiškumą.

Page 31: Rinktiniai informacijos saugos skyriai

31

MAC naudojimas Tarkime, siuntėjas (Algis) ir gavėjas (Birutė) turi bendrą slaptą raktą. Siuntėjas (Algis), naudodamas savo slaptą raktą, suskaičiuoja

pranešimo MAC reikšmę, ir siunčia pranešimą bei MAC reikšmę nepatikimu kanalu gavėjui (Birutei).

Gavėjas irgi suskaičiuoja gauto pranešimo MAC reikšmę, pasinaudojęs bendru su siuntėju slaptuoju raktu, ir palygina suskaičiuotą MAC reikšmę su gauta iš siuntėjo.

Jei sutampa, tai: pranešimas tikrai atėjo nuo Algio, nes tik jis galėjo tokią MAC

reikšmę gauti, nes tik jis turi tą patį slaptą raktą, kaip Birutė, pranešimas siunčiant nebuvo iškraipytas ar pakeistas, nes atsiųsta

MAC reikšmė atitinka atsiųstą pranešimą. Jei atakuojantysis būtų pakeitęs siunčiamą pranešimą, jis būtų turėjęs pakeisti ir siunčiamą MAC reikšmę, bet jis negali naujos MAC reikšmės apskaičiuoti, nes jis nežino slapto rakto.

Jei nesutampa, tai pranešimas arba MAC reikšmė siunčiant buvo iškraipyti, arba pranešimas atėjo ne iš Algio.

Page 32: Rinktiniai informacijos saugos skyriai

32

MAC naudojimo schema

Page 33: Rinktiniai informacijos saugos skyriai

33

MAC funkcijų sudarymo būdai

MAC funkcijos gali būti sudarytos naudojant:

kriptografines maišos funkcijas: HMAC,

blokines kriptosistemas: CMAC, OMAC, CBC-MAC, PMAC.

Page 34: Rinktiniai informacijos saugos skyriai

34

HMAC

HMAC (Hash-based MAC) yra vienas iš būdų sudaryti MAC, naudojant kriptografinę maišos funkciją ir slaptą raktą.

Saugumas priklauso nuo: naudojamos kriptografinės maišos funkcijos saugumo, santraukos ilgio, slapto rakto ilgio ir kokybės.

HMAC reikšmės ilgis lygus naudojamos maišos funkcijos reikšmės ilgiui.

HMAC-SHA-1 ir HMAC-MD5 naudojami IPsec ir TLS protokoluose.

Page 35: Rinktiniai informacijos saugos skyriai

35

HMAC sudarymas

Tegu: H(·) yra kriptografinė maišos funkcija, K slaptas raktas, papildytas iš dešinės nuliais iki maišos funkcijos

bloko ilgio, m pranešimas, žymi sujungimą, žymi griežtą disjunkciją (xor), opad yra išorinis užpildas (padding) (0x5c5c5c…5c5c, vieno bloko

ilgio šešioliktainė konstanta), ipad yra vidinis užpildas (0x363636…3636, vieno bloko ilgio

šešioliktainė konstanta).Tada HMAC(K,m) yra apibrėžtas taip: HMAC(K,m) = H((K opad) H((K ipad) m)).

Page 36: Rinktiniai informacijos saugos skyriai

36

HMAC-SHA-1

Page 37: Rinktiniai informacijos saugos skyriai

37

Literatūra

[Gol05] D. Gollmann, Computer Security, 2nd edition, John Wiley & Sons, 2005.

[PP07] Charles Pfleeger, Shari Lawrence Pfleeger. Security in Computing, Fourth Edition. Prentice Hall, 2007.

[Sta07] V. Stakėnas. Kodai ir šifrai. TEV, Vilnius, 2007, 22 skyrius.

Wikipedia.