Informačná bezpečnosť 2. Hash funkcie. Ján Karabáš

Podobné dokumenty
Blokové a prúdové šifry

Základní definice Aplikace hašování Kontrukce Známé hašovací funkce. Hašovací funkce. Jonáš Chudý. Úvod do kryptologie

Úskalia autentifikácie

Štruktúra údajov pre kontajner XML údajov 1. Dátové prvky pre kontajner XML údajov

ZÁKLADY TEÓRIE GRAFOV

Základy algoritmizácie a programovania

Aritmetické operácie v rôznych číselných sústavách. Ľudmila MACEKOVÁ, KEMT-FEI-TUKE, sep. 2017

Teória grafov. Stromy a kostry 1. časť

Funkcia - priradenie (predpis), ktoré každému prvku z množiny D priraďuje práve jeden prvok množiny H.

Hashovací funkce. Andrew Kozlík KA MFF UK

Návrh, implementácia a prevádzka informačného systému

Hashovací funkce a SHA 3

VYSPORIADANIE PREHRADENÝCH ZÁVÄZKOV A POHĽADÁVOK

[1] ICAReNewZEP v1.2 Užívateľská príručka

Autentifikačné zariadenia:

Množiny, relácie, zobrazenia

Metóda vetiev a hraníc (Branch and Bound Method)

Postup registrácie certifikátov do Windows

PODPROGRAMY. Vyčlenenie podprogramu a jeho pomenovanie robíme v deklarácii programu a aktiváciu vykonáme volaním podprogramu.

Školská sieť EDU. Rozdelenie škôl. Obsah: Deleba škôl podľa času zaradenia do projektu: Delba škôl podľa rýchlosti pripojenia:

Metodické usmernenie č. 4/2007 k poskytovaniu informácií prostredníctvom portálu Úradu pre dohľad nad zdravotnou starostlivosťou

5. Hašovací funkce, MD5, SHA-x, HMAC. doc. Ing. Róbert Lórencz, CSc.

Kombinatorická pravdepodobnosť (opakovanie)

8. Relácia usporiadania

EDA Klient (príjem výsledkov z oddelení klinickej biochémie a mikrobiológie prostredníctvom internetu)

Obr. 1 - názov podpísaného súboru/kontajnera v sivej lište

POSTUP GENEROVANIA ŽIADOSTI O KVALIFIKOVANÝ CERTIFIKÁT POMOCOU PROGRAMU COMFORTCHIP.

To bolo ľahké. Dokážete nakresliť kúsok od prvého stromčeka rovnaký? Asi áno, veď môžete použiť tie isté príkazy.

Virtuálna Registračná Pokladnica. Modul OPD pre ios

Technická príručka pre pripojenie k portálu

RIEŠENIE NIEKTORÝCH ÚLOH LINEÁRNEJ ALGEBRY V PROSTREDÍ MS EXCEL. 1. Zadáme prvky matice A a B do buniek pracovného hárku zošita MS Excel

Limita funkcie. Čo rozumieme pod blížiť sa? y x. 2 lim 3

Stavební bloky kryptografie. Kamil Malinka Fakulta informačních technologií

Studentove t-testy. Metódy riešenia matematických úloh

Pracovné prostredie MS EXCEL 2003.

Operační mody blokových šifer a hašovací algoritmy. šifer. Bloková šifra. šifer. Útoky na operační modus ECB

KORUNOVAČNÁ BRATISLAVA MANUÁL LOGA VER. 1/2017

Všeobecné požiadavky na výrobu DPS

vá ro ko Sý ětuše Kv

nastavenie a realizácia vzájomných zápočtov v Money S4 / Money S5

CENNÍK PRE-PAID SIM KUPÓNOV

TomTom Referenčná príručka

1. Gigabajty si hneď v prvom kroku premeníme na gigabity a postupne premieňame na bity.

Návod na inštaláciu sieťovej tlačiarne KONICA MINOLTA C20P pre Windows XP a Vista

Testovanie 5. v školskom roku 2015/2016. Testovanie sa uskutoční 25. novembra 2015 (streda). Žiaci budú testy písať v nasledovnom poradí:

Dátové rozhranie pre výmenu dát v stavebníctve NDS. Verzia 1.1

Vytvorenie používateľov a nastavenie prístupov

Pred samotnou prácou s objednávkami odporúčame vykonať súvisiace nastavenia cez menu Firma - Nastavenie

Všeobecné požiadavky na výrobu DPS

Základné prvky loga OPCHS

2. PRIDANIE ZÁVEREČNEJ PRÁCE DO EVIDENCIE ZÁVEREČNÝCH PRÁC (EZP) A OZNAČENIE PRÁCE AKO FINÁLNEJ.

Príručka pre prostredie Digitálnej autoškoly pre inštruktorov časť elearning

Postupy pre komunikačné pripájanie zákazníkov ku elektromerom MT880 vo vlastníctve Stredoslovenskej distribučnej, a. s. Verzia 4/1.3.

Kritériá prijímania uchádzačov o magisterské štúdium na Fakulte managementu Univerzity Komenského v Bratislave na akademický rok 2016/2017

SLOVENSKÁ TECHNICKÁ UNIVERZITA V BRATISLAVE FAKULTA INFORMATIKY A INFORMAČNÝCH TECHNOLÓGIÍ. Metodika verzií zdrojového kódu

Pokročilé funkcie Word-u MGR. LUCIA BUDINSKÁ,

Microsoft Project CVIČENIE 6 1

Import cenových akcií FRESH

ELEKTRONICKÝ PORTÁ L KÁTEGORIZÁ CIÁ

Virtuálna Registračná Pokladnica

DEMONSTRAČNÍ APLIKACE HASHOVACÍCH ALGORITMŮ SHA-1 A SHA-2

Kontrola väzieb výkazu Súvaha a Výkaz ziskov a strát Príručka používateľa

PRÍRUČKA SIEŤOVÝCH APLIKÁCIÍ

Kombinatorická pravdepodobnosť (opakovanie)

1. Formát exportov typu *.gpc (ABO)

1. LABORATÓRNE CVIČENIE

DÁTOVÉ PRVKY NA POPIS ČÍSELNÍKA

Microsoft Outlook. Stručný prehľad základných funkcií. Ing.Anna Grejtáková, SPP DFBERG

Vlastimil Klíma. Seminár Bezpecnost Informacních Systému v praxi, MFF UK Praha,

MANUÁL K PROGRAMU MATEMATIKA 2.0 STIAHNUTIE A INŠTALÁCIA PROGRAMU:

Žiadosť o poskytnutie dotácie z FPU v roku 2016

V nej je potrebné skontrolovať správnosť prenesených a prepočítaných zostatkov z roku 2008.

Ochrana dat Obsah. Výměna tajných klíčů ve veřejném kanálu. Radim Farana Podklady pro výuku. Kryptografické systémy s tajným klíčem,

Príručka pre prostredie Digitálnej autoškoly pre účastníkov časť elearning

KATEDRA DOPRAVNEJ A MANIPULAČNEJ TECHNIKY TESTOVANIE ŠTATISTICKÝCH HYPOTÉZ

Používateľská príručka k aplikácii na SOČ

CVIČENIE 1 : ZÁKLADNÉ VÝPOČTY PRAVDEPODOBNOSTI

Návod na programovanie inteligentnej elektroinštalácie Ego-n

Možné elektronické služby katastra a ich realizácia v ČR

UŽÍVATEĽSKÁ PRÍRUČKA K DIGIPASS MOBILE

Import Excel Univerzál

Pravdepodobnosť. Rozdelenia pravdepodobnosti

Osoba podľa 8 zákona finančné limity, pravidlá a postupy platné od

Návod na vkladanie záverečných prác do AIS

12 OPATRENIE Národnej banky Slovenska z 25. septembra 2018

Téma : Špecifiká marketingu finančných služieb

Zachovanie mentálnej mapy pri interakcií s grafom. RNDr. Jana Katreniaková PhD.

Vybrané útoky proti hašovací funkci MD5

Vážení používatelia programu WISP.

Andrew Kozlík KA MFF UK

7 krokov pre úspešné používanie ZEP pri komunikácii s finančnou správou SR

ŽIADOSŤ. o registráciu autoškoly. Meno Priezvisko Titul pred menom DIČ. Kraj. Číslo. Meno Priezvisko Titul pred menom Titul za menom Typ štatutára

Oznámenie o príjme a výdaji liehu v SBL

SSCC v Supply chain. MAKRO Cash&Carry / METRO Cash&Carry. Jaroslav Olejník, Bára Cikánková Praha

Externé zariadenia Používateľská príručka

Manuál pre Registrovaných používateľov / Klientov

Riadiace bloky dvojručného ovládania ZSB

Nebezpečnosť vyplývajúca z fyzikálnych a chemických

Rigips 4PROfesional. Viditeľne lepšie sadrokartónové dosky so zárukou rovinného povrchu konštrukcií UŽ ZAJTRA BEZ VIDITEĽNÝCH SPOJOV DOSIEK

Návod na používanie Centrálnej úradnej elektronickej tabule (CUET)

Transkript:

Informačná bezpečnosť 2 Hash funkcie Ján Karabáš

Aplikácie hash funkcií Overovanie integrity" Overovanie autenticity" Identifikovanie dát" Deštrukcia dát" Generovanie pseudonáhodných čísel" Generovanie neslovníkových hesiel

Jednosmerné funkcie Hash: angl. zomlieť, zmiešať (vb.), miešaný šalát, mäsová zmes (no.); octothorp, číslo, počet (no.)" Matematický význam: jednosmerná funkcia" Majme funkciu. Funkcia f je jednosmerná, ak existuje efektívny algoritmus na vyčíslenie hodnoty f(x) pre všetky a zároveň pre všetky je vyčíslenie (algoritmicky) ťažký problém.

Kryptograficky bezpečné hash- funkcie Funkcia je kryptograficky bezpečná hashfunkcia ak: (1) f je efektívna: algoritmus pre vyčíslenie f(m) je ľahký$ (2) f je jednosmerná: pre všetky hashe h je výpočet správy algoritmicky ťažký problém (preimage resistance, jednosmernosť)% (3) je ťažké nájsť (všetky) dvojice {m,m } také, že f(m)=f(m ) (collision resist.).% (4) f nie je injektívna; napriek tomu je je ťažké pre danú správu m nájsť správu m takú, že f(m)=f(m ) (2nd preimage resistance, injektívna odolnosť).% (5) všetky algoritmy pre hľadanie vzoru, kolízie ev. druhého vzoru sú bruteforce

Birthday problem (1) Majme skupinu n ľudí a položme otázku, či v tejto skupine je dvojica, ktorá sa narodila jeden deň v roku. Aká je pravdepodobnosť tejto udalosti?$ (ak n=30, p(30) 70%)$ Predpokladáme uniformné pravdepodobnosti dátumov narodenia

Odolnosť voči kolízii Majme množinu hodnôt mohutnosti H, pričom pravdepodobnosť výberu každej hodnoty z tejto množiny je uniformná, t.j. (1/H)." Vyberme náhodne n hodnôt. Pravdepodobnosť, že vo výbere sú aspoň dve hodnoty sú rovnaké je zhruba Počet výberov z danej množiny, kde nastane kolízia s pravdepodobnosťou p je Tabuľka: viď tabuľku na poslednom slajde

Birthday problem (2) Majme skupinu n ľudí, a vyberieme konkrétny deň v roku (napr. 8. 4.). Aká je pravdepodobnosť, že v tejto skupine je aspoň jeden človek, ktorý sa narodil práve v tento deň?$ (ak n=30, p(30,d) 8%)$ Predpokladáme uniformné pravdepodobnosti dátumov narodenia

Merkle Damgårdova konštrukcia Metóda získania hashu odolného voči kolíziám (1979)$ Inicializačný vektor je konštantná postupnosť, zabezpečujúcia prvok zmätenia a dobre definovaný štart tvorby hashu" Vstupom je hodnota Pad(M), ktorá je vytvorená spojením správy M a jednoznačne definovaných doplňujúcich bitov$ Vlastnosti Pad(M): 1. M je prefix Pad(M)$ 2. M1 = M2 Pad(M1)=Pad(M2)" 3. M1 M2 Pad(M1) a Pad(M2) sa líšia príponou f je jednosmerná funkcia$ Finalizačná funkcia je často kompresná funkcia, zabezpečuje SAC a BIC výstupu

MD5 (padding, doplnenie) Hashovacia funkcia navrhnutá R. Rivestom (1992)$ Vstupom je správa M0 ľubovoľnej dĺžky (ako bitové pole); začneme doplnenie s hodnotou M := M0$ Pripojíme bit s hodnotou 1: M := M 1" Pokým M % 512!= 448, M := M 0" Pridáme dĺžku pôvodnej správy ako 64-bitovú hodnotu, M := M len(m0)" Táto správa zodpovedá definícii Merkle Damgårdovej konštrukcie" Správu M rozdelíme na 512-bitové bloky

MD5! 64 iterácií nad 512 bitovým blokom$ A,B,C,D,M j,k i sú 32-bitové slová (registre)$ A0 = 0x67452301, B0 = 0xefcdab89, C0 = 0x98badcfe, D0 = 0x10325476 pole M[j] je postupnosť 16tich 32-bitových slov bloku$ pole K[i] je konštantná postupnosť 64och 32-bitových hodnôt$ i prebieha rozsah 0..63$ i j Fi (B,C,D) 0 i 15 i (B & C) (!B & D) 16 i 31 (5*i+1) % 16 (D & B) (!D & C) 32 i 47 (3*i+5) % 16 (B ^ C) ^ D 48 i 63 7*i % 16 C ^ (B!D) operácia je sčítanie vektorov modulo 2, bez prenosu (xor registrov)

MD5! hodnoty K[i] sú konštantné 32-bitové slová, pričom K[i] = floor(abs(sin(i+1)) << 32); pre i v rozsahu 0..63.$ operácia <<< s je ľavá rotácia o vopred zadaný počet bitov s, pre 0 i 63 7 12 17 22 7 12 17 22 7 12 17 22 7 12 17 22 5 9 14 20 5 9 14 20 5 9 14 20 5 9 14 20 4 11 16 23 4 11 16 23 4 11 16 23 4 11 16 23 6 10 15 21 6 10 15 21 6 10 15 21 6 10 15 21 Výstupné hodnoty registrov jednej iterácie sú vstupom pre ďalšiu iteráciu.$ Pokiaľ tvoríme hash pre jeden blok, potom MD5(M) = A B C D, po 64och iteráciách$ Pokiaľ nasleduje ďalší blok, potom A0 = A, B0 = B, C0 = C, D0 = D MD5( \x0 ) = d41d8cd98f00b204e9800998ecf8427e

MD5 s kľúčom Nastavíme štartovacie hodnoty A 0, B 0, C 0, D 0 na ľubovoľné tajné hodnoty$ Bežný proces pri komunikácii vo fixovanej relácii; overovanie pomocou session-id% Užívateľ chce nadviazať reláciu s overovaním integrity a požiada hostiteľa o session-id, ktoré použije ako štartovaciu hodnotu pre MD5 algoritmus$ Každý blok je podpísaný MD5 hashom, ktorý bol odštartovaný jedinečným session-id (heslo na jedno použitie). Tento hash voláme Message Authentication Code - MAC$ Host overí integritu a autenticitu prijatých dát tak, že spočíta hash so štartovacím vektorom rovným session-id$ Táto technológia sa požíva(la?) napríklad v PHPSessionId$ MD5 je náchylné na Length extension attack!" Útočník zachytí správu aj jej hash; nepozná síce session id, ale správu upraví MD doplnením a pripojí svoje dáta. Nový hash vypočíta tak, že zoberie ukradnutý hash a použije ho ako vstupný vektor, pričom svoje doplnené dáta použije ako pokračujúci blok.$ Nový hash obsahuje informácie o pôvodnom session-id a je považovaný hostiteľom za autentický!$ Riešenie: MAC = hash2(kľúč hash1(kľúč,správa))

Linuxové heslá - starý spôsob Heslá sú oddelené od užívateľských mien (shadow)$ Na žiadnom mieste nie je uložené heslo priamo, ale iba jeho hash$ Príklad $ Slovníkový útok (dictionary based attack): útočník predpočíta najfrekventovanejšie heslá pre každý systém, na ktorý útočí$ Kolízny útok (rainbow attack): hash funkcie sú náchylné na kolízie - útočník predpočíta zhruba 2 n/2 hashov a podsúva priamo tieto hodnoty

Linuxové heslá - nový spôsob Systém vygeneruje pri prvotnom uložení jedinečnú náhodnú hodnotu - SALT (šírky 64 bit)$ HESLO sa spojí s hodnotou SALT, vygeneruje sa hash, ktorý sa uloží, spolu s hodnotou SALT$ Užívateľ poskytuje iba heslo, systém pripojí SALT a porovná výsledok s uloženou hash hodnotou$ Príklad: heslo je mojeheslo, salt je 12345678; v /etc/shadow je riadok obsahujúci reťazec $1$12345678$TJMHYQoO2VKNvSCQUMhAF. Spojenie HESLO + SALT: V skutočnosti sa generuje postupnosť 1000 čiastkových hashov$ Indikátor algoritmu v /etc/shadow $1 MD5 $2a Blowfish (salt je heslo) $5 SHA-256 $6 SHA-512 SHA-256 a SHA-512 sú modernejšie hashovacie funkcie (algoritmus SHA-2), ktorých hashe majú 256 (512) bitovú dĺžku, t.j. sú omnoho rezistentnejšie voči kolíziám ako MD5 (s dĺžkou hashu 128 bitov)$ SHA sa používa aj pre overenie konzistencie dát v GIT (algoritmus SHA-1) s dĺžkou hashu 160 bitov.

Birthday bound