Door Anoniem: Door Erik van Straten:
Maar vooral het gebruik van MD5 in dit specifieke scenario door een third party die "trusted" wil zijn, is absurd. MD5 is zodanig gekraakt (zo'n 17 jaar geleden) dat het relatief eenvoudig is om twee verschillende bestanden te prefabriceren die dezelfde MD5 hash opleveren.
Sorry hoor maar dat is bullshit. Ik weet wel dat het hip is om dat te roepen maar het blijft bullshit.
Zeker als het bestand wat je beveiligt ook nog een andere vorm van integriteitcontrole heeft (dwz het is sourcecode die
wel moet compileren en die bij doorlezen geen rare bagger in comments laat zien, of het is bijvoorbeeld een zipfile die
correct uitpakt) dan is dit zeker niet te doen.
Die paar scenarios waarin het gelukt is die berusten op de aanwezigheid van grote hoeveelheden onbelangrijke data
in het bestand, en het feit dat er niemand naar het bestand zelf kijkt.
En zelfs dan nog was het niet "relatief eenvoudig" maar juist relatief moeilijk.
Wat een bizarre reactie op deze site, notabene onder "security professionals". Ik schat de kans in als zeer klein, maar misschien wil je toch wat van mij aannemen en er wijzer van worden.
In 2006 hebben Benne de Weger et al laten zien dat je twee verschillende x.509 certificaten kunt maken met dezelfde (van MD5 gebruikmakende) signature. Die bestanden zijn 825 bytes groot. Zie
https://www.win.tue.nl/~bdeweger/CollidingCertificates/. Meer info in
https://www.win.tue.nl/hashclash/rogue-ca/.
Juist in een zip-bestand is het simpel om een willekeurig bestand toe te voegen waar bijv. een make file niet naar verwijst. Dan hoef je niet eens (bekende) trucs uit te halen zoals twee bestanden met dezelfde naam, bestanden met namen met illegale karakters of simpelweg achteraan of op een specifieke plaats in de file geplakte data. Veel bestandsformaten bieden namelijk de (soms onbedoelde) mogelijkheid om bepaalde metadata toe toe voegen (soms nodig voor specifieke besturingssystemen, zoals de klassieke MacOS resource forks). Ook Microsofts Authenticode bestanden kunnen nog steeds worden gemanipuleerd doordat niet alle bytes in de file (exclusief de signature en certificaten) in de berekening van de hash worden meegenomen.
Door Anoniem: Als je maar lang genoeg eisen blijft stellen aan het algorithme dan is IEDERE hash slecht, immers de lengte van de hash is (veel) kleiner dan die van het sourcebestand, dus er is ALTIJD een heeveel:1 mapping van bestanden naar hashes.
Dat er collissions bestaan is inderdaad meestal een feit. Echter, bij een niet gekraakte cryptografische hash zijn er sterke aanwijzingen dat het, met onze huidige kennis en computers, binnen afzienbare tijd rekenkundig onmogelijk is om collisions te vinden. Bovendien moet niemand gepubliceerd hebben dat ze toch te vinden zijn; anders wordt zo'n hash als gekraakt beschouwd en hoort niet meer te worden gebruikt.
Zonder PKI was het internet enorm veel kwetsbaarder dan nu het geval is. Betrouwbare cryptografische hashes zijn daarbij een essentiële bouwsteen. Er zijn vele van dat soort hashes waar cryptografen zich op hebben blindgestaard, maar die desondanks niet gebroken zijn. Gelukkig maar.
De meeste zijn gratis in te zetten. Behalve laksheid zie ik geen enkele reden om, voor welke toepassing dan ook, MD5 te blijven gebruiken.
Met name indien vooraf gepland misbruik een risico vormt, zoals in dit specifieke geval (en bij digitale certificaten), is het idioot om verificatie op MD5 te baseren.