Au existat cel puțin două încercări reușite de a crea imagini GIF care afișează propriile hash-uri MD5:
Hashquine de spq
Hashquine de Copyheart Rogdham
Puteți descărca ambele fișiere și puteți verifica dacă md5sum
hashurile sunt egale cu hashurile afișate în imagini.
Acestea se bazează pe faptul că coliziunile MD5 sunt ușor de produs în zilele noastre și pe faptul că formatul GIF este o secvență de cadre. Efectiv, GIF-urile constau din 32 de bucăți de date de animație. Fiecare bucată este calculată ca o multicoliziune MD5 cu 16 căi, adică există 16 bucăți diferite care produc același hash, dar afișează cifre hexazecimale diferite. Deci, GIF-ul este construit prin calculul și concatenarea tuturor celor 32 de coliziuni cu 16 direcții, calculând hashul rezultat al fișierului și apoi selectând bucățile care produc rezultatul dorit.Cu alte cuvinte, flexibilitatea formatului GIF și slăbiciunea MD5 permit ca hash-ul afișat să fie ales câte o cifră, fără a afecta hash-ul fișierului imagine.
În principiu, un rezultat similar ar putea fi obținut pentru orice altă funcție hash, atâta timp cât este ușor să se producă coliziuni. De exemplu, ar fi ușor să faceți acest lucru cu familia de hashe-uri CRC, deoarece este ușor să le ciocniți (doar să rezolvați o ecuație liniară). Cu toate acestea, pentru funcțiile hash care sunt în prezent rezistente la coliziuni, cum ar fi SHA-256, este imposibil din punct de vedere computațional.
Și alte formate de fișiere pot fi atacate în acest fel: de exemplu, numărul 14 al jurnalului PoC||GTFO arată propriul hash MD5 pe pagina de copertă a PDF-ului: https://www.alchemistowl.org/pocorgtfo/pocorgtfo14.pdf. PostScript și chiar și formatul NES ROM pot fi atacate în mod similar datorită trucurilor de format de fișiere; citiți jurnalul pentru mai multe detalii tehnice.