Skip Ribbon Commands
Skip to main content

Ondrej Sevecek's Blog

:

Engineering and troubleshooting by Directory Master!
Ondrej Sevecek's Blog > Posts > Filosofie časových razítek vůči digitálním podpisům dokumentů
září 05
Filosofie časových razítek vůči digitálním podpisům dokumentů

Dnes je už docela často potřeba rozumnět pojmům (elektronický) digitální podpis a časové razítko (s přídomky jako kvalifikovaný podpis a zaručené časové razítko apod.). Obvykle se člověk zamýšlí nad tím, kdy potřebuje dokumenty razítkovat a kdy je potřebuje podepisovat a všechno se to plete. A vzhledem k možnosti dnes už uchovávat například faktury v elektronické podobě se to začíná týkat čím dál tím víc lidí.

Pokud porozumíme jejich základní filosofii, tak to bude hned jasnější. Vezměme si za příklad právě faktury. Řekněme z pohledu vystavitele faktury. Vy jste pro někoho něco udělali, nebo mu něco prodali, a teď mu vystavujete účet.

Na co je digitální podpis? To stejné jako normální ruční podpis. Pokud je to provedeno kvalifikovaným certifikátem, tak je podpis neodmítnutelný (neodvolatelný, non-repudiation), stejně jako je tomu v případě, že si někdo na dokument opíše údaje z vaší občanky a vy mu to podepíšete. Taky nemůžete později tvrdit, že jste to nechtěli udělat. Tedy můžete, to vám zase nidko nebere, otázka je, jestli to bude někoho zajímat :-) Jako vždy platí - s policajtama nediskutujeme a nic nepodepisujeme :-)

Takže podepsat fakturu (nebo prostě účet), kterou vystuvuji svému zákazníkovi, podepíšu, abych tím potvrdil, že jsem ji opravdu chtěl vystavit. Až si ji ten, kdo za ni vydal peníze, dá do účetnictví, tak abych později nemohl tvrdit, že jsem tu fakturu nevystavil. Tím pádem já nemůžu odmítnout za to zaplatit daně.

K provedení elektronického podpisu se používá certifikát, který má určitou platnost (obvykle rok, tak jak doporučuje NIST). Počítačové programy by správně neměly umožňovat nic digitálně podepsat certifikátem, jehož platnost už skončila (nebo pokud byl zneplatněn předčasně - revoked, CRL). Takže by se dalo očekávat, že digitálně podepsaná faktura, na které je napsáno nějaké datum, nemohla být podepsána později, než vypršela (byla zrušena) platnost podepisovacího certifikátu. Omyl samozřejmě.

I když byste nechtěli vyvíjet vlastní software, tak by i po pár letech přece stačilo posunout na počítači hodiny, vyrobit podvrh a podepsat to "tehdy platným" certifikátem.

Můžete to udělat takto s papírovou fakturou? Samozřejmě :-) Jenže elektronický svět je mnohem rychlejší a flexibilnější. Mohli bychom například jednoduše vytvořit nějaké klaudové účetnictví, které by skupině firem nabízelo službu "generování faktur na klik". Prostě až by dorazil finančák, ťukli byste na červený čudlík "berňák" a ono by to prostě něco nagenerovalo a fičink. S papírem by to nebylo tak jednoduché a nešlo by to tak rychle, když už holky zvoní u dveří.

Ale to není až tak zásadní důvod. Zásadní důvod je jiný.

Omezená (kvalifikovaná) zodpovědnost za privátní (soukromý) klíč

Kvalifikovaný certifikát platí rok. Po dobu tohoto roku je jeho majitel 100% zodpovědný za ochranu jeho soukromého klíče. Tedy stejně jako za digitální podpisy jím provedené (podepisuje se privátem, že jo).

Jenže potom už ne. Právě proto tam je to vypršení. Až certifikát vyprší, už se o něho nemusíte starat. Nemusíte se trápit a můžete ho prostě na flešce hodit z okna. Nemusíte se ani bát, jestli třeba někdo nevymyslí krek na jeho šifrovací algoritmy a nezačne falšovat kdeco. Prostě - je 6 sekund po vypršení, hážu z okna a kašlu na to.

No a tady by právě mohl do hry vstoupit někdo jiný, kdo by váš kvalifikovaný certifikát našel, posunul si čas na počítači, podepsal by (za vás) nějakou sprosťárnu, nebo dlužní úpis. A pak by se vesele soudil, že mu dlužíte, nebo že jste ho pomluvili.

Jenže aha. Má smůlu. Protože nemá důkaz, kdy tento váš podpis obržel. Takže nakašlat.

Časová razítka potřebuje příjemce vašeho podpisu, ne vy

Aby tohle nešlo udělat, je ze zákona příjemce vašeho podpisu - tedy právě vámi podepsané faktury, dlužního úpisu, sprosťárny - povinen si ověřit, že podpisový certifikát byl v tom okamžiku platný. V budoucnu tuto svoji akci - tedy to, že se skutečně podíval, jestli je to v pořádku - v buudoucnu to bude muset dokazovat u soudu.

Ne že vy byste museli dokazovat, že jste něco (ne)podepsali tehdy a tehdy. Jestliže příjemce vašeho podpisu po vás něco chce, on musí prokázat, že si zkontroloval, že váš podpis zrovna platil, když to od vás dostal. Přesně jako zlaté pravidlo "do správního!"

Takže příjemce vaší faktury musí prokázat, že si to zkontroloval. Nebo lépe řečeno, že tehdy ten podpis ještě platil.

Takže příjemce vašeho podpisu, vaší faktury, směnky nebo pomluvy, by si to měl orazítkovat zaručeným časovým razítkem.

Já svoje vydávané faktury ani pomluvy časovat nemusím. Proč bych to dělal? Jestli někdo něco chce, ať si to zajistí sám.

Samozřejmě, pokud napíšete knížku, nebo vymyslíte vynález, a chcete později prokazovat, že jste to měli opravdu už dříve, než konkurence, tak časujete (razítkujete) vy. Ale zase podle principu, kdo něco chce dokazovat, časuje. Vystavitel faktury časovat nemusí. Vy nemáte proč dokazovat finančáku, že jste tu fakturu skutečně vystavili. Proč? Hlavní je, že jste z ní zaplatili daně :-)

Mezi závěr? Ano, vydavatel účtu/faktury ho jen podepisuje. Příjemce (který tu fakturu platí) si musí ověřit, že podpis byl v tom okamžiku platný, k faktuře si přiloží časové razítko a uloží si to, aby měl důkaz do budoucna.

Ještě příklad - to že mám digitálně podepsaný dllužní úpis je mi na nic. Potřebuju ho mít současně očasovaný razítkem, které bylo provedeno ještě dříve, než vypršela platnost toho certifikátu.

Můžu časovat dokumenty později, než jsou podepsány?

Ano, jediné co si musíte zajistit, abyste na ně dali časové razítko ještě v době, kdy ten podpizový certifikát platil.

Tohle navádí i na otázku, jestli bych nemohl časovat dokument dokonce dříve, než bude podepsán.

Můžu časovat jen dokument, nebo musím časovat dokument i s podpisem?

Ano, různé standardy (jako je XAdEs, CAdEs, ETSI apod.) se tváří, nebo spíš jen jsou zmatené, že stačí časovat dokumenty a podpis se k tomu už jenom přiloží. Omyl!

Podle mě musím časovat současně jak dokument, tak i podpis (podpisem myslím ten malý blok dat ve formátu PKCS#7).

Názorný příklad následuje:

  1. ověřím si, že můj brácha Kamil vlastní elektronický podpisový certifikát (to už bude mít za chvilku skoro každý)
  2. napíšu si dokument ve znění "Kamil mi dluží 1 milion"
  3. to mi brácha samozřejmě nepodepíše
  4. okamžitě to orazítkuju
  5. počkám si, až Kamilovy expiruje jeho podpisový certifikát
  6. tím on ztrácí zodpovědnost za svůj certifikát (zvláště privátní klíč) a zapomene ho na flešce na stole
    1. alternativně počkám pár desítek let, až bude taková technika, abych dokázal jeho certifikát kreknout
  7. vezmu jeho certifikát a privátní klíč a podepíšu si dlužní úpis

a tradá!!!

Takže moji milí. Je potřeba časovat zásadně oboje. Nejen dokument, ale i jeho podpis, nebo lépe řečeno celý podepsaný dokument.

Nestačilo by časovat jen podpis?

Hmmm, podpisem myslím PKCS#7 digitálně podepsaný balíček, který obsahuje heš zdrojového dokumentu. Dobře, takže by možná stačilo časovat jen tento výsledný podpis.

Jenže.

Jenže v tom případě stojíte na hešovacím algoritmu, který použil autor podpisu. Co když ten hajzl schváleně použije něco špatného, co jde (nebo v brzku půjde) jednoduše kreknout. Na to nezapomínejme. My mu budeme dokazovat, že on ten dokument vytvořil. Cílem dlužníka je samozřejmě, aby to bylo co nejtěžší.

Takže já osobně hlasuju, když si já něco časuju, tak si já razítkuju svoje heše, ty nejsilnější jaké existují a je mě srdečně jedno, co je v tom podpisu, který mi ten šmejd poslal na faktuře! Nebo samozřejmě ještě lépe, musím dávat bacha, co on sám použil za heš k tomu podpisu.

A z toho plyne i přerazítkovávání

Nejen algoritmus podpisu, ale samozřejmě i algoritmus heše, použité k časování, může být časem kompromitován.

Co já tedy potřebuju? No měl bych jednou za čas vzít všechna dosavadní časová razítk a i tato znovu přečasovat. Tím budu mít později důkaz, že ta časová razítka existovala ještě v době, kdy nebyla známa kompromitace jejich algoritmu. To je sice těžké určit, kdy se provalila ta díra v algoritmu, ale přecejenom tam budete mít mnoho straších razítek dlouho do minulosti.

Je potřeba přečasovávat i dokument a podpis? Ne. Časové razítko k elektronickému podpisu, jehož certifikát už neplatí, nemá smysl, jak jsme se zmiňovali nahoře. Takže vy prostě musíte jen zajistit, že máte jistotu toho originálního prvního časového razítka k podpisu i dokumentu.

A můžete s tím jít k soudu :-)

Tam potkáte soudce, tohle mu všechno vysvětlíte a až mu splaskne hlava, tak to třeba vyhrajete :-)

Reference na další můj související článeček je tu.

Comments

archive-time-stamp

Tu je popisane zavedenie ATSv3 - archive-time-stamp ver. 3, co tento proces vyrazne zjednodusi.

http://www.etsi.org/deliver/etsi_ts/101700_101799/101733/02.02.01_60/ts_101733v020201p.pdf
Tiger on 6.9.2013 10:35

Add Comment

Title


Pole Title nemusíte vyplňovat, doplní se to samo na stejnou hodnotu jako je nadpis článku.

Author *


Pole Author nesmí být stejné jako pole Title! Mám to tu jako ochranu proti spamu. Roboti to nevyplní dobře :-)

Body *


Type number two as digit *


Semhle vyplňte číslici dvě. Předchozí antispemové pole nefunguje úplně dokonale, zdá se, že jsou i spamery, které pochopily, že je občas potřeba vyplnit autora :-)

Email


Emailová adresa, pokud na ni chcete ode mě dostat odpověď. Nikdo jiný než já vaši emailovou adresu neuvidí.

Attachments