Je jasné, že pro každou hashovací funkci existují kolize, protože množina vstupních dat je řádově mnohem větší než množina výstupních dat, ale nechápu, jak může být třeba taková SHA-1 nebezpečná pro X509 certifikáty. Takový certifikát má přece jasně specifikovanou strukturu s několika povinnými položkami. Je opravdu reálné, že k libovolnému certu s SHA-1 vygeneruji vlastní cert, kde bude stejný podepsaný hash?
Ne k libovolnému, ale to útočník ani nepotřebuje. V případě MD5 ten útok vypadal tak, že vybrali CA s určitými vlastnostmi (přinejmenším sekvenční sériové číslo certifikátu), vystavili certifikát pro svoji domému, a k němu spočítali jiný certifikát pro jinou doménu. Přesně si to už nepamatuju, ale tady jsou podrobnosti: https://www.win.tue.nl/hashclash/rogue-ca/
Nejsem si teď jistý, jestli je možné tento útok replikovat i na SHA-1. Jednak dnes může (ale nemusí) být problém najít vhodnou CA, jednak u MD5 použili AFAIK chosen prefix, což nevím, jestli jde u SHA-1.
Ale přinejmenším je kolize SHA-1 dost velké varování na to, abychom SHA-1 certifikáty nepoužívali. Argument „já to (zatím) neumím“ nestačí. Útoky budou leda horší.
Pokud si dobře pamatuju, tak tam to bylo tak, že pro MD5 exisotval jakýsi "resetovací" blok, tedy to co bylo před ním se anulovalo a hash neovlivnilo. T.j. oni si připravili falešný certifikát tak, že měl začátek shodný jako pravý a nechali si ten pravý vydat s tím, že do nějakého volitelného pole protlačili ten resetovací blok. A tak získali certifikát, který měl stejný podpis, ale jiný obsah....