[WARNING · ZKONTROLOVAT TENTO TÝDEN]/Zprávy·

PDF s AES-256 z MuPDF < 1.28.5 a jednoho buildu Foxitu jdou otevřít bez hesla: aktualizujte MuPDF

Výzkumníci z v12.sh 28. října ukázali, že několik programů a knihoven pro PDF generuje souborový klíč AES-256 z tak omezené náhodnosti, že ho lze uhodnout. Klíč padne během milisekund u MuPDF před verzí 1.28.5 a u nedávno vytvořených souborů také u Foxit PDF Readeru, build 2026.1.3.36551. Dešifrovací nástroje pro oba programy jsou veřejně dostupné. Výzkumníci výrobce informovali; oprava je hlášena jen pro MuPDF.

Týká se vás to?

  • Koho se to týká: firem, jejichž heslem chráněné výplatní pásky, smlouvy nebo reporty šifruje pomocí AES-256 MuPDF před verzí 1.28.5, zmíněný build Foxitu nebo – na základě slabších důkazů – javovské knihovny OpenPDF 3.0.5 či iText 9.7.1.
  • Netýká se vás, pokud: ve vaší firmě se nikdo nespoléhá na hesla k PDF.

Co udělat

  • Zjistěte, který program přidává heslo: pole „PDF Producer“ ve vlastnostech dokumentu u odeslaného souboru obvykle uvádí program nebo knihovnu, která soubor zapsala, ne vždy tu, která ho zašifrovala. U mzdového softwaru se dodavatele písemně zeptejte, která knihovna šifruje.
  • MuPDF: přejděte na 1.28.5 nebo novější, i v nástrojích, které ho v sobě mají.
  • Build Foxitu, OpenPDF, iText: článek žádnou opravu nezmiňuje. Dokud ji výrobce nepotvrdí, posílejte důležité dokumenty kanálem s osobními přihlašovacími údaji, ne jen jako PDF chráněné heslem.
  • Co nedělat: spoléhat na to, že aktualizace zachrání kopie, které už odešly. Pokud soubor zašifrovaný zmíněným buildem Foxitu nebo MuPDF před verzí 1.28.5 obsahoval něco citlivého, počítejte s tím, že ho může přečíst kdokoli, kdo ho má.

Co víme – a co ne

  • Při šifrování PDF pomocí AES-256 zamyká obsah náhodný 32bajtový souborový klíč; heslo chrání jen tento klíč. Kdo klíč uhodne, heslo nepotřebuje, ať je jakkoli dlouhé.
  • MuPDF před verzí 1.28.5: do klíče se promítá 9 bitů náhodného stavu, takže zbývá 512 kandidátů. Neoptimalizovaný Python je vyzkoušel všechny zhruba za 11 milisekund.
  • Build Foxitu hashuje aktuální čas, 32 bajtů, které jsou v praxi nulové, a konstantu; výzkumníci zkoušejí 370 až 376 milionů časových razítek za sekundu.
  • OpenPDF 3.0.5 a iText 9.7.1 berou jako zdroj náhodnosti pro klíč časové razítko v milisekundách a volnou paměť běhového prostředí Javy. To kolísá víc, ale podle výzkumníků to i tak podkopává slib 256bitové bezpečnosti. Pro tyto dvě knihovny dešifrovací nástroj nezveřejnili.
  • Způsob odvození klíče jako ve Foxitu byl už v prvním veřejném commitu PDFium (květen 2014); jiné PDF editory ho mohly převzít.
  • Otevřené: zda Foxit, OpenPDF nebo iText chybu opraví a zda jsou zasažené i jiné verze nebo nástroje. Článek nezmiňuje žádné použití proti skutečným souborům.

Proč na tom záleží

Pro mnoho malých firem je heslo k PDF jedinou ochranou výplatních pásek a smluv. U MuPDF před verzí 1.28.5 a zmíněného buildu Foxitu je to spíš dekorace. Užitečným krokem pro tento týden je podle nás zjistit, který program šifruje: to rozhodne, zda stačí aktualizace, nebo zda máte otázky pro dodavatele.

Zdroje