Dva vzájemně kolizní dokumenty
Možnost spoléhat se na elektronické podpisy (i pečeti), využívající konkrétní hashovací funkci, trvá jen po dobu, kdy je reálné očekávat, že není v sílách počítačů najít takové dva dokumenty, které jsou sice různé, ale mají stejný otisk podle této hashovací funkce. O takových dokumentech se říká, že jsou vzájemně kolizní vzhledem k příslušné hashovací funkci.
Hashovací SHA-1 přestala být považována za spolehlivou, ve výše uvedeném smyslu, kolem roku 2012. V ČR již dříve (na přelomu let 2009/2010) tehdejší dozorový orgán k elektronickým podpisů (Ministerstvo vnitra) přikázal certifikačním autoritám přejít na hashovací funkce z rodiny SHA-2, a ostatním subjektům takovýto přechod důrazně doporučila.
Následující dva příklady PDF dokumentů pochází z roku 2017. Jsou vzájemně kolizní vzhledem k hashovací funkci SHA-1. To znamená, že při použití této hashovací funkce mají stejný otisk (zatímco při použití jiných hashovacích funkcí již mají jiné otisky, a vzhledem k těmto hashovacím funkcím tak již nejsou vzájemně kolizní).
To, že oba dokumenty jsou vzájemně kolizní dle SHA-1, má významý důsledek: pokud je jeden z nich podepsán takovým elektronickým podpisem, který jako hashovací funkci (pro otisk podepisovnaých dat) využívá právě SHA-1, pak tento podpis bude "pasovat" i na druhý dokument.
Aby bylo možné aplikovat podpis jednoho PDF dokumentu na druhý, musí se jednat o externí (anglicky detached) elektronické podpisy. Zde je příklad dvou takovýchto podpisů: oba jsou kvalifikované, v úrovni LTA, jeden ve formátu CAdES Baseline (tj. CAdES B-LTA) a druhý ve formátu XAdES Baseline (tj. XAdES B-LTA).
cades_b-lta_kvalifikovany_sha1_kolize.p7s
xades_b-lta_kvalifikovany_sha1_kolize.xml
Ověřit platnost těchto podpisů je možné na takových validátorech, které podporují externí podpisy a lze jim předepsat, že mají tolerovat zastaralost hashovací funkce SHA-1. Jde např. o službu DSS, které lze předepsat toleranci SHA-1 skrze vlastní validační politiku.
Také v případě ověřování v aplikaci AnEP je nutné jí předepsat toleranci vůči zastaralé SHA-1. Jinak pokus o ověření skončí konstatováním o neznámém stavu platnosti právě z důvodu zastaralosti SHA-1.
Pro úspěšné ověření je třeba buď v základním nastavení zrušit ověřování podpisů a pečetí dle standardů (na následujícím obrázku vlevo), nebo v pokročilém nastavení naopak zaškrtnout ignorování zastaralsoti SHA-1 (na obrázku vpravo).
Pak už může být ověření externího podpisu (a to jak CAdES, tak i XAdES) úspěšné. Následující obrázky dokládají, že podpisy skutečně "pasují" k oběma vzájemně kolizním dokumentům - podpisy jsou podtrženy zeleně, podepsané dokumenty jsou v červeném, resp. modrém rámečku.
