Vybrat si jeden konkrétní program a na něm věci ukazovat je názorné zjednodušení, nicméně přesto a možná i proto je zde řada problémů, které tento konkrétní program neřeší:
Odvolané certifikáty – Zákon požaduje kontrolu na odvolání, definuje periody v kterých musí účastníci obnovovat CRL. Jak vysvětlíte tomuto konkrétnímu programu, že má dvakrát denně obnovovat CRL? Co se stane, když se obnovení nepovede? Jak program pozná, že došlo k porušení politiky a že z hlediska zákona se podpis nepodařilo ověřit?
Použití jednotného úložiště certifikátů – Jak bylo napsáno, posílání jen PDF je zbožné přání. Ze strany úřadu to může být milé, avšak nelze si to od něho vynutit. Nehledě na to, že nestačí jen PDF, ale je nutné dodržet i minimální verzi. (Mimochodem ohánět se zákonem o elektronické spisové službě a archivu je na nic, protože ten zná jen PDF/A, který digitální podpis nemůže obsahovat z definice.) Tudíž bude nutné, aby správně ověřovat podpis umělo více programů. Hlídat je všechny je nepraktické. Jednotné úložiště a jednotné politiky je nutnost. Umí to komentovaný program?
S tím souvisí problém externích a interních podpisů. Systémově čisté řešení jsou externí podpisy. Jedna prověřená aplikace může zpracovat libovolný datový formát. Nevím, proč se tomu všichni brání.
Rozlišení kvalifikovaných autorit od ostatních – v praxi se vedle kvalifikovaných používají i vnitřní nebo jiné nekvalifikované autority. Umí program je od sebe rozlišit nebo bude muset uživatel studovat otisky kořenových certifikátů ručně? Český zákon o elektronickém podpisu si vymyslel textový dovětek do certifikátů, přitom existuje oficiální OID, které má stejnou funkci a moderní programy mu rozumí.
A nakonec si položme otázku, kdo a jak bude podepsané (a orazítkované) dokumenty vyrábět. A hlavně kolik ho vrtochy ministerských úředníků budou stát. Jsou třeba programy na konverzi do (Zajíčkova) jediného správného formátu (ano, různé textové procesory nebo scannery vyrábějí různé verze PDF). Programy na jeho interní podepisování. (Razítko zatím doplňuje ISDS, nicméně pak je nutné tahat s sebou obálku zprávy a razítkování přes hash přílohy v obálce pedantický právník rozcupuje.)
Taky se můžeme podívat na konverzi z moci úřední. Vyhláška říká, že tak lze činit pouze prostřednictvím Czech POINTu. Musejí si úřady pořizovat pracoviště tohoto systému? Poslední novinky z vnitra věc vyjasňují – úřad bez pracoviště Czech POINTu si zažádá o účet do systému omezený za tímto účelem a pak pomocí CzechPOINT@Office bude provádět konverze. Co to je? Je to software? Kde se vezme? Kolik stojí? Jen pro Windows? Autentizace jen nezaručeným komerčním certifikátem od pošty? Znamená to, že úřad bude po 128kb/s ADSL lince nahrávat megabajty scanů někam do centrály, kde se převedou na jediný správný a podepsaný formát (PDF-1.7) a pak zase poputují zpátky?
Externí podpis je univerzální. Interní je specifický pro daný formát. Nejde o platnost podpisu, ta s tím nemá co dělat. Jde o ryze praktický problém.
Chcete-li ověřit platnost externího podpisu, stačí na to jeden nástroj (bez ohledu, v jakém formátu jsou podepsaná data, protože jemu není potřeba rozmět).
Chcete-li ověřit vnitřní podpis, musíte nejprve rozumět formátu dokumentu, pak musíte jeho podepsané části převést do kanonického tvaru (opět závislé na formátu) a teprve pak můžete ověřovat platnost podpisu. Vnitřní podpis podporuje nejen PDF, ale i ODF, obecně všechny formáty založené na XML (takže i MS-OOXML), všechny formáty používající strukturování MIME (e-mail, HTTP).
A teď si vezměte, jak těžké je udělat správnou kryptografii (už třeba jen problémy, které jsem výše popsal, jako práce s CRL, rozlišení kvalifikovaných autorit od ostatních) a s interním podpisem byste musel tohle všechno strkat do každého prohlížeče konkrétního formátu. Jistěže na to existují knihovny, ale i jejich správné použití není jednoduché.
Proto jsem hovořil o jedné prověřené aplikaci, která by implementovala všechny zákonné požadavky, ale sama by nemusela rozumět rozličným formátům. Prostě by ověřila externí podpis a pak zavolala konkrétní prohlížeč, ať ukáže uživateli dokument. Takový systém je snazší vytvořit, je méně náchylný na chyby, je modulární (nevytváří zbytečné závislosti, umožňuje výměnu jednotlivých částí) a je i levnější.
Samozřejmě že „jednou“ aplikací nemyslím, že smí existovat jen jediná. Tím jsem myslel, že uživateli stačí jedna aplikace a může ověřovat podpisy všech dokumentů.