Kontrola cez MD5 je je najjednoduchšia. Je jedno, či je to SHA alebo MD5, pretože tu sa nehráme na kolízie. Cez podpis je to zbytočné, lebo je to viac roboty a navyše bežného človeka môže to varovanie zmiasť. Po pravde, mňa by zmiatlo a považoval by som obraz za modifikovaný. Minimálne to hlásenie by malo byť preformulované. No a že môže byť zmanipulované aj MD5? Môže, ale je to nízka pravdepodobnosť, keď obraz a sumu MD5 stiahnem z iného zdroja. V podstate môže byť zmanipulovaný aj podpis. Veď text podpisu, ktorý sa zobrazí nemusí presne obsahovať toto: Podpísané pre Linux Mint. Môže tam byť aj: Podpísané pre Mint. A nemusím si hneď uvedomiť, že podpis je nesprávny. Je to niečo podobné ako s https. Zámok je zelený a všetko je ok. Lenže práve preto internet bankingy bánk majú podpis rozšírený aj o majiteľa podpisu a toho už každý pozná, napr. Všeobecná úverová banka. Takže v podstate bezpečnosť je závislá od toho, kam až narušiteľ je schopný dôjsť a až pokiaľ si koncový spotrebiteľ je ochotný overovať pravosť. Jedného dňa bude aj súčastný systém prekonaný.
Proc? Protoze je proste jedno, kterou z nich pouzijete. Pravdepodobnost, ze nekdo vytvori pozmeneny iso obraz se stejnym hashem (a tady je jedno, jakym), je prakticky nulova. Natoz, aby byl pozmemeny smysluplne. Ano, u MD5 snadno najdete kolizi (jina data se stejnym hashem), ale hledat kolize o velikosti gigabajtu se IMHO neumi/nevyplati. Kolize se umi hledat kvuli prolamovani nekolikaznakovych hesel.
Zrovna v ISO obrazu je triviální podstrčit tam nějaký balast – prostě tam přidáte svůj soubor. Takže falšovat ISO obraz je ještě jednodušší, než falšovat třeba dokumenty. Vytvářet kolize MD5 bylo možné už před pár lety v zanedbatelných časech na běžném notebooku. Takže pravděpodobnost v žádném případě není nulová, naopak je to u ISO obrazu snazší než u čehokoli jiného.
Podtrhněte si to "generovat dvě různá validní". A dvojnásobně si podtrhněte "generovat dvě". Pokud já vám dám jedno PDF, pak vy v dnešní době bratříčka nevyrobíte. Tu "speciální péči" musíte věnovat oběma souborům. Mít v moci jen jeden stále ještě nestačí.
Ale i přesto bych se MD5 raději vyhnul.
Proč bych to měl podtrhávat? Mě jsou rozdíly mezi kolizemi prvního a druhéhu řádu jasné.
Jen mi příliš není jasná ta potřeba neustále reinkarnovat funkci nalomenou v roce 1996 a prolomenou v roce 2004. V roce 2016 máme mnohem lepší (neprolomené, rychlejší a robustnější - md5 není možné považovat za bezpečnou už jen z hlediska velikosti hashe) funkce, ale někteří mají neustálou snahu udržovat md5 při životě a hledat použití, kde to ještě není prokázaně prolomené. Ať si to na soukromých projektech klidně používají, ale veřejně bych se tím nechlubil.
Píšete sice hezky, ale jste ta svá tvrzení schopen něčím podložit, třeba odkazem na nějaké relevantní zdroje? Nebo – když pořád argumentujete tou velikostí – jaká je tedy závislost doby generování kolizí na velikosti souboru? Protože pokud je ta závislost jenom lineární, je velikost souboru nezajímavá.
Čistě náhodou formát ISO souboru? ISO soubor je souborový systém ISO 9660 uložený do souboru. Takže drtivou většinu obsahu toho souboru tvoří obsah vložených souborů.
Vidím že musí následovat podrobné vysvětlení :
Útočník si vygeneruje libovolný ISO obraz se svými podvrženými daty. Je to jednoduché, v zásadě filesystém uložený v jednom souboru postupně (takže jako např. RAR). Jako poslední soubor dá něco u čeho nevadí změny (říkejme tomu např. padding).
Začne generovat hash od začátku souboru. Dostane se ke svému padding. Ví jak je hash těsně před koncem, ví jak se mu změní pokud zahashuje těch pár bytů co má v padding souboru.
Proč by měl útočník hashovat znovu celý soubor a zkoušet jeho různé verze než narazí na kolizi, když můże měnit jen poslední soubor a hashovat třeba jen 512 bytů které jediné v jeho mezihashi nejsou?
"Vytvářet kolize MD5 bylo možné už před pár lety v zanedbatelných časech na běžném notebooku."
Ponekud nepresne ...
Vcelku jednoduse lze vytvorit dva rozdilne streamy se stejnym MD5. Opacna uloha, tj. vytvorit ke znamemu souboru modifikovany se stejnym MD5, pokud vim, prozatim vyresena nebyla. Pokud vite o uspesnem pokusu, prosim o odkaz.
Pokud soubor umožňuje mít na konci nějaké nesmyslné znaky (např. JPEG soubor viz. http://stackoverflow.com/questions/50965/will-random-data-appended-to-a-jpg-make-it-unusable ), tak není žádný problém vygenerovat si obrázek zobrazující prakticky cokoliv s chtěným hashem. Znamená to jen nalézt kolizi posledních 8 bytů "streamu".
A pokud byste chtěl tvrdit že jste myslel využití birthday paradoxu a tedy že nalezení souboru s hashem který chceme je podstatně složitější než nalezení libovolného partu 2 streamů které mají náhodou stejný hash, tak stačí chvíli googlit :
generating file with same md5 hash
en.m.wikipedia.org/wiki/MD5#Collision_vulnerabilities
"On 30 December 2008, a group of researchers announced at the 25th Chaos Communication Congress how they had used MD5 collisions to create an intermediate certificate authority certificate which appeared to be legitimate when checked via its MD5 hash"
http://natmchugh.blogspot.cz/2014/10/how-i-created-two-images-with-same-md5.html
http://natmchugh.blogspot.cz/2015/05/how-to-make-two-binaries-with-same-md5.html
Sarkazmus: Ale jo určitě je prakticky nemožné vytvořit soubor s hashem který chci, to že si tak někdo vytvořil intermediate certificate autority certifikát je určitě jen náhoda /sarkazmus
Vytvoření dvou streamů se stejným MD5 hashem je přesně ten problém. Na serveru budete mít oficiální ISO, když ho rozbalíte, budou tam všechny podstatné soubory jak mají být. Akorát tam bude třeba „divný“ splashscreen – divný v tom, že v tom souboru bude blok, který by tam nemusel být a který v sobě nebude mít žádná známá smysluplná data. No, a vedle toho bude existovat ještě jedno ISO, se stejným hashem, kde ty podstatné soubory (třeba jádro, nějaká aplikace) nebudou úplně tak jak mají být.
Ja vždy kontrolujem checksum a to všetky checksum, ktoré sú k dispozícii. A ručne skontrolujem aj FINGERPRINT kľúča. A nasledovne nabootujem PC z Antivir CD-čka - aktualizujem databázu a zkontrolujem ISO subory na pritomnost malware, rootkits a podobne. Potom ešte raz po inštalácii distribúcie, ono by to malo byť samozrejmé. Open Source je fajn vec, ale musíte preverovať a to neustále.
Tak uživatel si desetkrát ověří hash ISO distribuce a pak:
- bude instalovat nějakou blbost z náhodně nalezeného PPA (v Ubuntu - http://askubuntu.com/questions/35629/are-ppas-safe-to-add-to-my-system-and-what-are-some-red-flags-to-watch-out-fo )
- bude instalovat nějakou blbost pomocí "wget -O - http://example.com/install.sh | sudo sh" ( https://www.seancassidy.me/dont-pipe-to-your-shell.html )
- nainstaluje si sexy docker ( http://reventlov.com/advisories/using-the-docker-command-to-root-the-host )
- nepochopí systém práv v Unixu a nacpe si nesmysly do sudoers a podobně
-- tímhle vším dáte root přístup cizímu neznámému člověku --
Dnes už i vývojáři nechápou základní principy Unixu a internet je plný vážně míněných doporučení, jak svůj server darovat útočníkovi
já bych řekl, že ti vývojáři, kteří chápali unix před deseti/dvaceti lety jsou pořád ti stejní vývojáři, kteří ho chápou i dnes ;).
Neviděl bych problém ve vývojářích, ale ve firmě, která nechá vývojáře administrovat produkční servery. Analogie může být i obrácená a těžko budeš na admina nadávat, že ti neumí upravit css nebo naprogramovat daemona na kontrolu flashdisků při připojení.
A to všechno je nuda proti BadDeveloper. Do open source může přispívat kdokoliv prakticky anonymně. Stačí pár měsíců posílat hodnotný kód, a pak udělat "drobnou chybu". Jazyk C je tak kryptický, že si změrně zaneseného problému nikdo nemusí všimnout. Tak jako si dost dlouho nikdo nevšiml třeba slabých SSL klíčů generovaných Debianem. A když si někdo všimne, tak se to pořád dá obhájit jako přehlédnutí a ne záměr. Dost by mě překvapilo, kdyby tuhle techniku ještě nikdo nepoužil.
a co teprve BadCompany co vytvari BadClosedsource BadSystem, ta ma tech moznosti jak neco zanest nekonecne krat vice, vsimnout si toho muze jen ze zlomku tech co se ke kodu dostanou, zlomek tech co by se v tom BadSource vyznali... jestli to neni jasne tak mluvim o BadCompany BadMicrosoft a jeho BadProduktu BadWindows, a zadnej BadPR posuk to neokeca :)