z hashe nejde zpět dosta puvodni zprava. Je to pocetne narocne. Mnohem lepší je jet opačnou stranou:
zkoušet hashovat kombibnaci po kombinaci - hesla obyčejně nejsou tak dlouhá, aby se vyplatilo hledat kolizi.
Mnohem lepší je nají puvodní heslo.
Zahasjujete wordbook, slova do 5-6ti pismena a mate skoro 95% sanci se to naleznete.
Ted mi napada myslenka, jake budem dávat hesla až budeme mít rychlé PC tak, že 12ti písmená kombinace bude prolomena za pár hodin...:D
hesla, která jsou ve viditelné podobě samozřejmě měním, jde o to, že přes md5 jsem měl ochráněná hesla klientů, která ani po nabourání nemohl cracker nijak zjistit nebo obejít, teď, když ale zjistí md5 hash si může vyrobit jiné heslo
OK PDF ano (podle mne to ovsem bylo PDF bez font a cisla byly obrazky), tam to pujde, protoze bitmapa neztrati svuj vyznam tak jednoduse.
Najit kolizni MD5 pro dejme tomu z 90% stejny archiv doplneny pouze o nejake poznamky nebude asi tak prilis snadne.
Krome toho bych rekl, ze specialne u hesel (coz jsou typicky velice kratke textove retezce do rekneme dvaceti znaku), bude extremne tezke najit kolize. Z principu veci pocty kolizi narustaji s velikosti pomeru originalni zprava/hash.
nevite jak je to s tim land atackem? ja osobne to zkousel na SP1 i SP bez firewallu, ale zadny 100% vytizeni procesoru ani na sekundu se mi nepodarilo docilit i po opakovanem posilani packetu. IMHO je nachylnych tak asi 10% pocitacu s velmi haluzni konfiguraci, exploit je na http://net-way.localstudio.org(asi patej nejnovejsi clanek, prelozitelny na win platformach) a pak na www.k-otik.com(unix). fakt by me zajimalo, co presne tu chybu zpusobuje, vsude akroat popisuji co je to land atak obecne, ale presny duvod se mi nepodarilo najit. me to proste zatim nikde nafungovalo, nevite nekdo vic?
viz root.cz: jeden student tam tohle dokazal s fiktivni smlouvou o prodeji nemovitosti. 2 PDFka, 2 stejne MD5, 2 ruzne ceny nemovitosti. dusledky si kazdy domysli sam.
nejde o to, že ho nabourá, jde o to, že když ten systém pak budu chtít obnovit, tak všechno vrátím do původní podoby ale útočník už bude mít databázi md5 heshů hesel, které mu předtím byly k ničemu, teď ale podle nich si může vygenerovat svá hesla (je jasné, že nebudou stejná ale o to nejde, jde o to, že budou mít stejné md5 řetězce, protože script to heslo stejně nezná, zná jen jeho md5 hesh)
šlo mi o to, že jakýkoliv i fatální útok šlo řešit tím, že se přeinstaloval server a více se zabezpečil, teď už ale data uložená (třeba hesla) v md5 jsou takovým stylem ohrožena, nejde o to, aby někdo získal původní data (i když by mu o to šlo) jde o to, že si může podle hashů nadělat vlastní přístupové kódy, což je pěkně nanic
To by nemusel byt az takovy problem. Rada formatu souboru v sobe umi ulozit dalsi data, ktera normalne celkem k nicemu nejsou a nebrani normalni praci se souborem (napriklad archivy obvykle maji pole pro poznamku, pokud uz pomineme moznost proste do nich vlozit jeden soubor navic; takovy ZIP navic umi ke kazdemu archivovanemu souboru ulozit dalsich az 64 KB [myslim] volnych dat; u exace zase celkem nic nebrani tomu, ulozit na jeho konec par kilo nesmyslu, jejichz jedinym ucelem bude vyrobeni konkretniho MD5).
Jenze tu je jeste jeden problem, muzete vygenerovat soubor se stejnym MD5, ale otazka je, zda i jeho obsah bude vzhledem k puvodnimu mit nejaky smysl, o cemz si dovolim vrele pochybovat.
Pro priklad, takto vygenerovany archiv (zip, rar ...) nejspis nepujde ani rozbalit, ani jej SW jako archiv nerozpozna.
Protože tohle se neumí. Prolomení md5 spočívá v nalezení různých zpráva1 zpráva2 které mají stejnou hash, nikoli v tom, že by se k libolné hashi uměla rychle najít zpráva.
A i kdyby se uměla, situace ještě není katastrofální. V databázi hesel máte uložené hash(sůl, heslo),sůl. Sůl - náhodný řetězec. Takže ani nestačí umět najít "cokoli" co má stejnou hash. Potřebujete něco co má tvar (salt,něco) a má stejnou hash.
V dobře navrženém kryptosystému to tak funguje - i když selže jednotlivá vlastnost šifry, neznamemená to, že se to zhroutí celé - další komponenty ztíží útok tak, že máte rozumný čas na výměnu.
Praktický závěr: ví, se že md5 je rozbitá, a je ji potřeba vyměnit. Nicméně v téhle aplikaci nehrozí okamžité nebezpečí, a můžete počkat třeba na upgradu systému a hesla nechat vyměnit přirozenou obměnou.
Prakticky to znamena, ze nelze spolehat overeni neporusenosti nejakych dat pomoci MD5. Nekdo zlomyslny muze vytvorit pozmenena data se stejnou MD5.
Priklady
- pokud si stahujete nejaky sobor (program, zdrojaky) a
overujete si jeho integritu (ze nekdo "nenaboural"
ftp server a nevlozil do tech souboru napr. virus)
pomoci MD5, tak to neni dobry napad, nebot zmena
je mozna zmena souboru bez naruseni MD5
- pokud si kontrolujete integitu (operacniho) systemu
tak, ze ke vsem binarkam, knihovnam a pod udelate
databzi MD5 a tu jednou za cas kontrolujete, tak
to opet nemusi byt dobry napad z vyse uvedenych duvodu
- pokud je MD5 pouzita pouze pro detekci nahodnych
chyb a vypadku napr. filesystemu, tak to nevadi
- ukladani hesel v MD5 podobe - chyby MD5 nenarusuji
nemoznost z MD5 hashe ziskat puvodni data
- autorizace zalozena na posilani
zprava
salt
MD5 (salt + tajemstvi + zprava)
Predpokladam, ze "tajemstvi" utocnik nezna.
Utocnik nezna cela data, ze kterych je hash pocitan.
Zna jenom salt a zprava. Menit muze oboje (salt ma
ale obvykle jen malou delku).
To by stalo za vyzkum. Vzhedem k tomu, ze MD5 cte data
postupne, by urcite byl problem, kdyby kontrola byla
postavena na funkci
MD5 (salt + zprava + tajemstvi)
Utocnik je schopen vytvorit kolidujici bloky
MD5 (salt + zprava)
MD5 (salt + zprava_pozmenena)
Ktere maji stejnoy MD5 hash a z konstrukce MD5 pak
plyne, ze
MD5 (salt + zprava_pozmenena + tajemstvi)
bude take kolidovat s puvodnim
MD5 (salt + zprava + tajemstvi)
Doufam.
Vyse uvedeny pripad
MD5 (salt + tajemstvi + zprava)
neumim takto od boku posoudit, zadne oslabeni me
nenapada, ale kdo vi ...
1) Vyzaduje to, aby se nekdo naboural do systemu natolik, aby si z databaze dokazal vytahnout ty hashe. Kdyz uz bude mit takovejhle pristup, k cemu by mu bylo generovani dalsich hesel?
2) I kdybychom pripustili, ze bod 1 neplati, porad je otazka, jak to utocnik udela. Jestli jsi cetl ten text od p. Klimy, tak vis, ze jeho utok umoznuje upravit zdrojovou zpravu tak, aby vysledek mel stejny hash. To, o cem ty mluvis, je utok opacnym smerem (k hashi vygenerovat zpravu) a ten, pokud vim, zatim uspesne proveden nebyl.
3) I kdyby nahodou neplatil ani bod 2, je tu otazka, proc by to prislusny narusitel delal tak slozite (generovani hesel odpovidajicich MD5 by prece jen nejakou dobu trvalo). Kdyz uz ma takovy pristup k serveru, ze se dostava k hashum, tak bych skoro povazoval za jednodussi, kdyby
a) upravil prihlasovaci skript tak, aby mu plaintextova hesla ukladal do nejakeho vhodneho mista (do souboru, do zvlastni tabulky, klidne i primo na jeho web pomoci GET requestu).
b) si vygeneroval par novych uzivatelu s predem pripravenym heslem a administratorskymi pravy.
c) si vysype databazi uzivatelu do souboru a pak se pokusi hesla zjistit pomoci slovnikoveho utoku, ktery je daleko snaz proveditelny i pro script kiddies a umoznuje zjistit skutecne puvodni heslo.
4) Hadani hesel uzivatelu by snad melo smysl jen tehdy, kdyby tu byl predpoklad, ze uzivatele maji stejne heslo na vice ruznych serverech, takze prolomenim jejich uctu treba na Zive by se dalo prihlasit treba do jejich posty na Seznamu. Coz o to, ten predpoklad u drtive vetsiny uzivatelu plati, ale porad tu zustava drobnost - z hashe se NEDA zjistit PUVODNI heslo. Da se zjistit NEJAKE heslo, ale to je pouzitelne pouze na tech webech, ktere pouzivaji presne stejnou hashovaci funkci jako napadeny web.
jakto, že to nepřináší nebezpečí,
mám třeba heslo "111" které se zahešuje do nějakého md5 řetězce a pokud mi někdo nabourá server, stáhne si md5 řetězce a bude schopen podle těchto md5 řetězců vytvořit jiná hesla, která budou mít stejné md5 řetězce, tak se mi vpohodě přihlásí do systému
Zrovna na overovani hesel nema prolomeni MD5 zadny vliv, respektive neprinasi zadne nebezpeci, ktere uz by tu nebylo driv. Problem to prinasi spis pro podepisovaci aplikace ("Tato distribuce Linuxu ma MD5 hash xyz", rozlisovani ruznych aplikaci v personal forewallech apod.)
jestli bude možné lehce vygenerovat k md5 zdrojový řetězec, pak to bude pro mě dost velký problém, protože podle md5 ověřuji hesla :(
no nic budu muset vymyslet něco lepšího