Hlavní navigace

Vlákno názorů k článku Podvržené jméno a změna PDF po podepsání? Pro většinu PDF čteček žádný problém od Filip Jirsák - Článek je bohužel taková hodně nafouknutá zprávička. Vlastně...

  • 6. 5. 2019 9:00

    Filip Jirsák

    Článek je bohužel taková hodně nafouknutá zprávička. Vlastně celý jeho obsah se dá shrnout do jedné věty: „Některé PDF prohlížeče (neřekneme které) možná chybně zobrazují údaje o elektronickém podpisu, a pak možná mají ještě jinou, ještě tajnější chybu.“

    Od článku bych očekával minimálně:
    • Seznam prohlížečů, které jste zkoumali, s uvedením, který prohlížeč má kterou chybu.
    • Popis problému, alespoň toho, který chcete zveřejnit. První problém není v textu popsán vůbec (resp. po přečtení textu jsem si myslel, že autor vůbec netuší, jak funguje elektronický podpis – teprve po shlédnutí screenshotu jsem pochopil, v čem je problém, a že to autor akorát špatně píše), teprve ze screenshotu se to dá uhodnout. Chtělo by to na tom screenshotu zobrazit přímo i ten certifikát, kterým je dokument podepsán, aby byl vidět ten rozdíl. A hlavně by v textu mělo být popsáno, odkud tedy ty chybující prohlížeče berou údaje o podepisující osobě, když ne z certifikátu.
    • Osobně si myslím, že by bylo správné popsat i ten druhý problém. Objevitelé mívají tendenci závažnost přeceňovat. A hlavně současný text článku vede spíš k tomu myslet si, že chyba je na straně autora článku. Popisem té chyby by byla šance ukázat, že problematice rozumí a chyba není na jeho straně.

    Na tu druhou chybu s dodatečnou manipulací s obsahem dokumentu jsem zvědavý. Snad to opět bude jen nezkušeností při formulování textu, ale z článku to zatím vypadá, že autor neví o tom, že jeden PDF dokument může obsahovat několik verzí a podepisuje se vždy konkrétní verze. Takže můžete mít jednu podepsanou verzi dokumentu, pak v novější verzi uděláte nějakou změnu, která nejprve není podepsaná, a pak ji může podepsat někdo jiný.

    Běžně ty vícenásobné podpisy používáme. Když uživatel vyplní nějaká data, vytvoříme z toho PDF a data přiložíme jako XML přílohu a celé to podepíšeme technickým podpisem, který zaručuje, že ta vložená XML data jsou ekvivalentní s tím, co je v PDF zobrazené. Následně to celé ještě podepíše uživatel svým podpisem jako standardní elektronické podání. Nebo je rozhodnutí elektronicky podepsané úředníkem, a když je rozhodnutí pravomocné, přidá se k dokumentu druhá vrstva s vyznačením data výpravy a data nabytí právní moci, a opět se to celé elektronicky podepíše. Zkontrolovat si pak můžete podpisy obou verzí dokumentu.

    Článek působí trochu jako snaha o bombastické odhalení, autor si stěžuje na to, že autoři programů nekomunikují – ovšem jestli komunikace s nimi byla stejně zmatená, jako článek, tak se autorům aplikací vůbec nedivím. Takových hlášení autoři software dostávají spoustu, a je obtížné zjišťovat, zda se za tím zmateným popisem neskrývá nějaká opravdová chyba.

  • 6. 5. 2019 13:21

    bez přezdívky

    Programátor není spisovatel. Popsané je to podle mě dobře, a to včetně zveřejnění vzorového dokumentu s ukázkou jedné chyby. A důvodů, proč to není tak podrobné a proč nechat výrobcům software časový prostor pro možnou nápravu, je IMHO poměrně dost.

  • 6. 5. 2019 13:33

    Jarda Kuba

    Věc jsme začali řešit v rámci vývoje vlastního software. Určitě tak víme, co jsou revize a také víme, co jsou časová razítka. Software půjde na Github, informací tak bude dost. Jen na to ještě neuzrála ta správná doba, jde částečně o 0-day věc. Pokud jde o detailní technické informace, tak ty uvedeme v dalším článku. Přiložíme i detailní analýzu, s popisem testovaných programů. Je již napsána, elektronicky podepsána a časové razítko od Postsigna má březnové datum. Teď opravdu není cílem dávat někomu návod. Prosím o strpení. Článek neměl být detailním a vyčerpávajícím přehledem. Za mě je článek srozumitelný, nejde o vědecké pojednání. Máme na něj velmi dobré odezvy a také se nám plní e-mailová schránka požadavky na zaslání souborů k analýze. Nicméně děkuji za připomínky, ten začátek jsme skutečně mohli více rozvést.

  • 6. 5. 2019 15:29

    Filip Jirsák

    Určitě tak víme, co jsou revize a také víme, co jsou časová razítka.
    Já v to doufám – je ale škoda, že po přečtení článku o tom čtenář pochybuje.

    Software půjde na Github, informací tak bude dost. Jen na to ještě neuzrála ta správná doba, jde částečně o 0-day věc.
    Ty zranitelnosti přece s vaším softwarem nijak nesouvisí. To podstatné, co teď chybí, jsou úplně jiné informace. To nejdůležitější je, které PDF klienty jste testovali, které jsou zranitelné a které nejsou. Tajením téhle informace uživatelům určitě nepomůžete, maximálně tak útočníkům. Pokud by chtěl té chyby se zobrazením údajů o podepisující osobě někdo zneužít, už teď od vás má návod, jak takové PDF vyrobit. Pokud to bude zkoušet plošně, je mu úplně jedno, že tu chybu má jen některý PDF klient. A pokud bude útočit na někoho konkrétního, buď to zkusí, nebo si zjistí, jaký PDF prohlížeč dotyčný používá, a vyzkouší si to v něm. Takže tajení seznamu postižených programů rozhodně ničemu nepomáhá, spíš naopak. Alespoň v případě té první chyby.

    Teď opravdu není cílem dávat někomu návod.
    V případě té první chyby už jste ten návod ale dali.

    Článek neměl být detailním a vyčerpávajícím přehledem.
    Za mne je otázka, čemu měl článek vlastně sloužit. Pokud by měl sloužit jako varování uživatelů před tím, než dojde k nápravě, musel by obsahovat jasnou informaci, že některé prohlížeče (a seznam těch, u kterých jste to zjistili) nezobrazují u podpisu informaci z certifikátu, ale informaci, kterou může útočník zfalšovat. (Tahle nejpodstatnější informace se dá vyčíst mezi řádky a ze screenshotu, ale explicitně uvedená v článku vlastně není!) Pak seznam prohlížečů, o kterých víte, že touto chybou netrpí, a upozornění, že v těch postižených prohlížečích je potřeba se proklikat až ke konkrétnímu certifikátu.

    Zatím je ten článek nejužitečnější pro potenciální útočníky, kterým dává informací dost.

    Za mě je článek srozumitelný, nejde o vědecké pojednání.
    Kdyby nebyl článek srozumitelný ani pro autora, bylo by to na pováženou… Ne každý má na psaní talent – kdyby měl, tak vyjde na Rootu každý den desítky článků. Ale dá se tomu pomoci třeba tím, že přizvete k editaci někoho, kdo dané problematice nerozumí.

    Problém je v tom, že článek je nevyvážený co do zaměření na cílové publikum. Místy psaný úplně pro laiky, jde v zjednodušování tak daleko, že jsou v něm nepravdivá tvrzení – např. „Že nemůže být PDF elektronicky podepsáno Albertem Einsteinem, protože jmenovaný nežije?“ Tady musí zbystřit každý, kdo alespoň tuší něco o PKI a ví, že důvěryhodnost certifikátům dodává až certifikační autorita – ale nedůvěryhodný certifikát na jméno Albert Einstein si může vyrobit každý a když jím podepíše PDF, bude to PDF zcela správně podepsáno Albertem Einsteinem. Po přečtení citované věty čtenář zbystří a dumá nad tím, jestli autor opravdu chce řešit bezpečnost podpisů PDF a neví, co je certifikát – a dál už se to čte jako detektivka, kdy je účelem zjistit, co o problematice vlastně ví autor. A autor toho může vědět spoustu – ale nešťastné formulace v článku to shazují.

    Hned po té výše citované větě se článek překlápí do opačného extrému, kdy píše o tom, jakým certifikátem je PDF podepsané, na screenshotu přitom ukazuje informační panel z chybného PDF prohlížeče a nechává na čtenáři-expertovi, aby si uvědomil, že PDF prohlížeče zobrazují zvlášť informace o podpisu a zvlášť o certifikátu, že v těchto informacích může být rozpor, a že rozpor mezi screenshotem a textem článku je daný právě tou chybou v PDF prohlížeči. V dalším textu jsou indicie, které této interpretaci nasvědčují, ale explicitně to není napsáno nikde. Laik už se dávno ztratil, odborník se diví, proč podstatu sdělení článku musí rekonstruovat sám.

    Já na vás nechci nijak útočit, jenom mi připadá, že forma úplně neodpovídá obsahu – z čehož plyne riziko, že se tím skutečným problémem nikdo vážně zabývat nebude.

  • 6. 5. 2019 19:40

    Jarda Kuba

    Většina Vašich připomínek je již zohledněna v textu s technickými detaily, myslím, že budete spokojen. :-) Jinak tento článek jsem psal tak, aby mu rozumělo i široké publikum a mohu Vás ujistit, že rozhodně je „testován na lidech“. Předpokládám, že čtenáři Rootu dojde, že nepůjde o „openssl ca“ certifikát a běžného čtenáře nemá smysl zatěžovat s informací, že certifikát lze generovat i svépomocí, protože takovým certifikátem si PDF pro podatelnu obce nepodepíše. Ten článek byl psán tímto stylem celý – možná trochu uvolněně, ale za jeho formou si stojím. Dvojka již bude o poznání odborněji zaměřená, na své si přijde i čtenář, který se rozhodne napsat aplikaci pro elektronický podpis PDF souborů. Samozřejmě s podporou časových razítek od českých kvalifikovaných CA. Hezký večer.

  • 6. 5. 2019 18:45

    Ondrej Nemecek

    Na mě působí ten článek jako celek dost zmateně, trochu naivně, zavádějící je i příklad s Einsteinem. Myslím, že se stačilo podívat na obvyklý způsob, jakým se zveřejňuji zranitelnosti. Na druhou stranu je nutno ocenit ochotu se o zjištěný problém podělit a snaha přispět k řešení je také pozitivní.

  • 7. 5. 2019 7:49

    bez přezdívky

    "Nafouknutá" zprávička to úplně není, protože např. Chrome 74.0.3729.131 (a tedy všechny od něj odvozené prohlížeče) nejenže zobrazuje podpis jako platný, ale ani neumožňuje jeho rozklepnutím zobrazit podrobnosti, takže to ani nezkontroluješ. Aktuální FoxIT sice detaily zobrazí, takže to zkontroluješ, ale zobrazuje to taky jako platné. Acrobata jsem nezkoušel, anžto ho nemám a instalovat nehodlám.
    A ověřit, že se za tím skrývá chyba, je snadné; stačí si ty odkázané soubory zobrazit a hned vidíš, v čem je problém.