Ochrana elektronických dokumentů
Můj názor je, že elektronické dokumenty Winstonovi práci ani trochu neulehčují, ba naopak ji činí nepříjemně komplikovanou až nemožnou a v pokusím se to nyní dokázat.
Všechno zapři
Podívejme se na Winstonovu starou i novou úlohu z praktického hlediska. Dne X vyšel v deníku Y článek, který dnes, po pěti letech, obsahuje historické nepravdy (samozřejmě podle dnešního pojímání historie). Co s tím? Najít všechna původně vydaná čísla a zaměnit je novou verzí? To je, myslím, i pro všemocné Ministerstvo historie (dále jen MH) dosti komplikovaný problém. Jenže víte, jak to chodí s denním tiskem - po přečtení noviny používáme na ... používáme. Stačí vyměnit výtisky archivované v knihovnách a pokud se najde někdo, kdo si náhodou původní číslo uschoval (spolu s botami) a zjistí rozdíl, obviníme ho z falšování a zavřeme až zčerná (nebo přesvědčíme, že se mýlí). V tom není mezi elektronickými a obyčejnými dokumenty žádný rozdíl. Opravdu není?
V jednom z předchozích článků o bezpečnosti počítačových sítí jsem se zabýval kryptografií, mimo jiné i šifrováním s veřejným klíčem a elektronickými podpisy. Elektronický podepsaný dokument může změnit jen ten, kdo zná tajný klíč autora podpisu. Pokud si uchováte kopii podepsaného elektronického dokumentu, můžete kdykoliv dokázat, že tato kopie je autentická a že jste si ji nevymysleli sami.
Náš problém je tedy do jisté míry uspokojivě vyřešen - pokud si chceme být jisti, že náš článek v elektronickém deníku nikdo svévolně nezmění, opatříme jej elektronickým podpisem a každý neoprávněný zásah budeme moci kdykoliv odhalit. Tolik z pohledu autora - jenže co když MH autora přin..., pardon, přesvědčí, aby článek upravil sám nebo aby odhalil svůj tajný klíč? Pokud je dokument archivován někde, kam MH nemá přístup, je to pořád dobré... Avšak MH má přístup všude. Samozřejmě archivář se o případné změně také dozví a bude schopen ji prokázat, ale asi k tomu nebude ochoten.
Hledá se neopakovatelný algoritmus
Jak vlastně určit, že nějaký dokument je "pravý"? Podle autora? Ale i autor může falšovat. Navíc, jak dokázat, že dokument napsal opravdu ten člověk, který je pod ním podepsaný? Pro naše účely ovšem stačí, když bude u každého dokumentu známo, kdy vznikl - to vyloučí jeho pozdější změny. Ideální by bylo, aby přímo do dokumentu byl zakomponován čas vzniku a aby dokument byl podepsaný a nezměnitelný. Jenže jak na to? Potřebujeme algoritmus, jenž ze zadaného dokumentu a data vyrobí nový datovaný dokument. Musí přitom platit dvě věci:
- musí být dokazatelné, že dokument vznikl právě tímto algoritmem (t.j. že ho nikdo nezfalšoval),
- tento algoritmus nesmí být opakovatelný (respektive musí dávat pokaždé jiné výsledky).
Druhá vlastnost, ač napohled vypadá nesmyslně, není tak nesplnitelná - hledaný algoritmus musí být nedeterministický, t. j. ve svém průběhu musí používat náhodně vygenerované údaje. Jenže jak splnit první podmínku? Konkrétně, jak zjistit, že použitá náhodná data byla zvolena opravdu náhodně? Vždyť MH si mohlo při prvním uveřejnění dokumentu tato náhodná data uschovat a použít pro vytvoření nového vhodnějšího dokumentu.
Odpověď leží ve faktu, že vlastně nepotřebujeme zajistit neopakovatelnost algoritmu - potřebujeme pouze, aby případné opakování (a tedy pokus o falzifikaci) mohl kdokoliv odhalit a znemožnit. Stačí (spíše bych měl napsat "stačí") tedy, aby každý občan dodal jakýsi vstupní údaj - nejlépe náhodně vygenerované číslo zašifrované jeho tajným klíčem spolu s aktuálním datem a hashem daného dokumentu - který autor připojí k textu a podepíše. Bude-li chtít MH takový dokument změnit, musel by znát všechny tajné klíče. Bude-li kdokoliv chtít ověřit autenticitu dokumentu, ověří podpis autora na dokumentu a svůj podpis na vlastnoručně dodaném "razítku". Může ověřit i jiné razítko, pokud je schopen ověřit správnost patřičného veřejného klíče. Pokud se datum v razítku nějak výrazně liší od data uvedeného na dokumentu, je něco špatně.
Tímto způsobem můžeme dokument označit datem a zabezpečit, že toto datum nikdo tajně nezmění. Připadá vám to náročné? Jistě, jenže obrana proti všemocným organizacím nebývá snadná. Je to vůbec realizovatelné? Jistě - vždyť od čeho je síť a výpočetní technika?
Závěr
Samozřejmě toto schéma má spoustu nevýhod, je extrémně náročné na komunikaci a velikost dokumentů, ale dokazuje, že falšování elektronických dokumentů není ani pro mocné organizace úplně jednoduché. Samozřejmě pomíjíme některé "detaily" - například otázku certifikačních autorit a ověřování, komu ve skutečnosti patří daný veřejný klíč, otázku životnosti autorů razítek respektive archivaci patřičných veřejných klíčů. Jenže, pokud by MH mělo kontrolu úplně nade vším, jaký smysl by mělo dokazovat změny v novinových článcích? ;-)