Báječný svět

elektronického podpisu

Jiří Peterka, 2026

Příklady k vyzkoušení

  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í).

 1.pdf

 1000.pdf

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.

Dva PDF dokumenty s různým obsahem, ale stejným otiskem dle SHA-1
Dva PDF dokumenty s různým obsahem, ale stejným otiskem dle SHA-1

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.

Výsledek ověření, není-li nastavená tolerance vůči zastaralé SHA-1
Výsledek ověření, není-li nastavená tolerance vůči zastaralé 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).

nastavení tolerance k zastaralosti SHA-1
nastavení tolerance k zastaralosti SHA-1

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.

výsledek ověření stejného externího (CAdES) podpisu u dvou různých dokumentů
výsledek ověření stejného externího (CAdES) podpisu u dvou různých dokumentů
výsledek ověření stejného externího (XAdES) podpisu u dvou různých dokumentů
výsledek ověření stejného externího (XAdES) podpisu u dvou různých dokumentů

← Zvláštní případy elektronických podpisů