zaheslovaný rar??? proč ne :-)
ale řekl bych, že vlastní úložistě hesel je již dávno vyřešené pomocí http://keepass.info/
Pokud by ty prostory byly stejné, znamenalo by to, že SHA256 mapuje každé z čísel 1 až 2256 na jiné číslo z rozsahu 1 až 2256. Což by samozřejmě platilo i opačně, tedy že ke každému SHA256 hashi existuje právě jedno "zdrojové" číslo v rozsahu od 1 do 2256. Zároveň byste dokázal - pokud byste někdy v budoucnosti měl tabulku všech hashů od 1 do 2256-1 - určit hodnotu SHA256 hashe 2256 bez použití SHA256 funkce. To není zrovna hezké chování na hashovací funkci.
Ano, ano, to je pravda. Udělal jsem chybu v tom slově "je stejný". Měl jsem napsat něco v tom stylu, že nevíme, jak je ten prostor pokrytý, takže je (za předpokladu téhle neznalosti) stejně pravděpodobné, že heslem pro AES bude cokoli z prostoru 0-2^256, čili jestli heslo proženu SHAčkem jednou nebo stotisíckrát, tak se tím nijak nezmění moje znalost o tom, co je heslem - pořád to (pro mě jako útočníka) může být cokoli z prostoru 0-2^256. Ve skutečnosti to některé z těch hodnot být nemůžou, čili prohnat heslo SHAčkem víc než jednou vede ke SLABŠÍ bezpečnosti, čili i tak se "hrk" zmýlil, akorát moje zdůvodnění nebylo přesné.
Záleží na tom, jak rychle to opakované hashování ten prostor možných kombinací zmenšuje – rád bych to někdy pro ideální hashovací funkci spočítal. Předpokládám, že vzhledem k poměru velikosti výstupní množiny SHA256 (2256) a počtu iterací (v tomto případě 1000) je to na aktuálním dostupném výkonu strojů stále bezpečné. Ale pokud by někdo dostal nápad, že použije nějaký krátký hash a zvýší počet iterací, posouvá se tím ke snížení bezpečnosti.
> Záleží na tom, jak rychle to opakované hashování ten prostor možných kombinací zmenšuje – rád bych to někdy pro ideální hashovací funkci spočítal.
To se obecně řešit nedá, ne? Záleží to na tom, kolik bude v té které iteraci kolizí, což by u dobré hashovací funkce mělo být náhodné číslo, ne? Nebo se na to dá vymyslet nějakej fígl - odhad, střední hodnota apod.?
Ono se to možná někomu nezdá, ale třeba i s miliardovou iterací PBKDF2 bude mnohem schůdnější hrubě útočit z prostoru možných hesel která lidé zadávají vstupníko okýnka aplikace lastpass, a pokaždé zapbkdf2ovat; než až z prostoru možných hashů.
(Do diskuze, o kolik je menši prostor hashovaných hashů bych se zde raději nepouštěl)
... znamenalo by to, že SHA256 mapuje každé z čísel 1 až 2^256 na jiné číslo z rozsahu 1 až 2^256. Což by samozřejmě platilo i opačně, tedy že ke každému SHA256 hashi existuje právě jedno "zdrojové" číslo v rozsahu od 1 do 2^256.
Ano, nějak takhle se bude ideální hashovací funkce chovat. Zajímavé, že?
Zároveň byste dokázal - pokud byste někdy v budoucnosti měl tabulku všech hashů od 1 do 2^256-1 - určit hodnotu SHA256 hashe 2^256 bez použití SHA256 funkce. To není zrovna hezké chování na hashovací funkci.
Tak si to zkuste. Kdybyste chtěl každou takovou hodnotu "nakreslit" na jeden atom, tak vám k tomu nebude stačit vesmír..
Nejprve si opravím chybu - platí to, až na to zpětné mapování - zamozřejmě neexistuje právě jedno zdrojové číslo (dokument), ale je jich nekonečně mnoho (nesprávně jsem použil citaci pana F.J., který porovnával velikosti prostorů)
A ke kolizím: Každá, i nejideálnější hashovací funkce z principu musí mít kolize. Vtip je v tom, že zároveň ale musí být velmi těžké takové kolize najít.
No a to byla právě pointa - prostor hesel (P0) je (dejme tomu) nekonečný, po prvním průchodu hashfunkcí se namapuje na prostor P1, po druhém na P2, po třetím na P3 atd. Zaručeně platí, že |Pn-1| <= |Pn|. Podle mě u dobré hashfunkci se nedá obecně nic říct o tom, co Pn obsahuje - měla by to být náhodná množina, takže i ke zmenšování prostorů by mělo dojít náhodně "někdy". Jedinou jistotou, kterou máme, je, že když k tomu zmenšení dojde, tak už se to nikdy "nedožene", nikdy už ten prostor nenaroste. Takže čistě statisticky se zvyšováním počtu iterací se *nějak* ten prostor zmenšuje. Akorátže útočník stejně neví jak a není schopný to hrubou silou vyzkoušet, takže mu to stejně nedá žádnou informaci, kterou by mohl v útoku využít.
Ano, nějak takhle se bude ideální hashovací funkce chovat.
Ne, nebude. Ideální hashovací funkce vrací pro vstupní hodnotu náhodnou hodnotu z oboru výstupních hodnot, přičemž pravděpodobnost výběru kterékoli hodnoty je stejná – takže například nijak nezávisí na tom, zda daná výstupní hodnota je nebo není výstupní hodnotou také pro jiný vstup.
Představte si to třeba na hashovacích funkcích, které vrací pouze 0 a 1. Ideální hashovací funkce vrací pro jakoukoli vstupní hodnotu 0 s pravděpodobností 50 % a 1 také s pravděpodobností 50 %. (Ideální hashovací funkce se bude chovat tak, jako by měla nekonečnou paměť a ideální generátor náhodných čísel. Pro každý vstup se nejprve podívá do paměti, zda už pro něj nemá známý výsledek. Pokud ne, náhodným generátorem vybere jeden z možných výstupů a zároveň si ho uloží do paměti.) Mnou popsaná funkce, která pro obor vstupních hodnot shodný s oborem oborem potenciálních výstupních hodnot pokryje všechny možné výstupní hodnoty (tedy např. funkce identita), by tedy pro vstup 0 vrátila výstup např. 0, a tím pádem by pro vstup 1 už zbyla jediná možná hodnota, tedy 1.
Pro ideální hashovací funkci s oborem hodnot 21 tedy platí, že s pravděpodobností 50 % zůstane po jedné iteraci obor hodnot stejný a s pravděpodobností 50 % se zmenší na polovinu.
Ano, rozumím, v 11:16 jsem se opravil.
Ale jestli sleduji diskusi dobře, tak souhlasíte s tím, že po dalším hashování se obor hodnot už v podstatě nezmenšuje?
Taky jsem se někde setkal s otázkou, co se stane při hashování "do nekonečna".. jestli se vždy dojde ke stejné hodnotě.
Odpověd asi bude že ne, a budou to spíše nějaké cykly, velmi dlouhé..
U Keepassu je moznost nastavit si pocet soleni hesla libovolne v nastaveni databaze...
A komu v tom nic nebrani tak muze nastavit treba 100.000.000x coz v praxi znamena zbrzdeni slovnikoveho utoku v radu nekolika sekund na jedno heslo...
Takze jednoduzsi to nebude zcela jiste.
presne tak - keepass pouzivam uz rok k mojej absoultnej spokojnosti. Je multiplatformovy (teda skoro - .net, ale frci bez problemov aj po linuxom).
Hesla si pekne synchronizujem cez cloud a mam ich tak na kazdej pracovnej stanici k dispozicii vsetky a hned ako nejake pridam/zmenim
Ceresnickou na torte je mrte pluginov (okrem ineho aj doplnanie hesiel pre FireFox aj Chrome).... Zabudni na rar.