Lekce 10 - Šifrujeme jednotlivé soubory
V předchozí lekci, Šifrujeme data na disku, jsme se dozvěděli, jak chránit svoje data pro případ, že útočník získá fyzický přístup k našemu zařízení.
Šifrujeme jednotlivé soubory
Informace, jež vyžadují utajení C2+, by na koncových zařízeních měly být vždy ještě šifrovány na úrovni vlastního souboru. Důvody jsou následující:
- Přístup k obsahu takového souboru má v daném okamžiku pouze program, který s ním právě aktivně pracuje. Ten si od nás heslo musel vyžádat, byť třeba prostřednictvím centrálního správce hesel. Jiný (infikovaný) program k jeho obsahu přístup nemá, samozřejmě za předpokladu, že není infikován samotný operační systém nebo program běžící s obdobnými právy.
- To samé platí i pro uživatele. Pokud se útočník v nestřeženém okamžiku dostane k našemu nezamčenému počítači, zkopírováním takto chráněných souborů si moc nepomůže. Bez konkrétních hesel jsou mu opět víceméně k ničemu.
- Pokud se nám podaří takový soubor nasdílet, uložit mimo šifrované medium či poslat nezabezpečenou linkou (typicky jako přílohu emailu), a tudíž se k němu potenciálně může dostat nepovolaná osoba, většinou se kvůli tomu svět nezboří. Útočník se dozví pouze meta informace o souboru (např. jeho název). Na druhou stranu, doporučuji nezapomínat na velmi poučnou hlášku z britského seriálu Jistě, pane ministře: „Chcete-li uchovat tajemství, pak musíte uchovat tajemství také o tom, že máte tajemství k uchování“.
- Na úrovni souboru můžeme řídit, kteří uživatelé k němu mají přístup (resp. ho můžou číst), bez ohledu na práva nastavená na filesystému, kde je uložen. V nejjednodušším případě rozhodujeme prostě tím, komu heslo k příslušnému souboru sdělíme, nicméně existují i sofistikovanější postupy (viz dále).
Symetrické šifrování samotnou aplikací
Existuje nejstarší a nejjednodušší řešení pro běžné dokumenty
Office a PDF. Při ukládání v příslušné aplikaci, pokud to umožňuje,
vybereme volbu, která se typicky jmenuje Uložit s heslem nebo
Požadovat heslo pro čtení/otevření souboru, načež se nás
aplikace vyptá na heslo a jeho potvrzení. Heslo si následně uložíme do
správce hesel a je to. Pokud používáme pouze dobře prověřené aplikace
jako Libre Office, Open Office, novější MS Office, Adobe
Acrobat, jedná se o velmi bezpečnou ochranu. V MS Office si ještě předtím
musíme ověřit, zda nemáme nastavenou zpětnou kompatibilitu pro starý
formát .doc
. Zkontrolujeme jak nastavení vlastního šifrování,
tak ukládání souborů! Dlouhou dobu tam totiž Microsoft měl výchozí
nastavení Zpětné kompatibility pro MS Office 95, jejíž šifrovací
algoritmus je velice snadno prolomitelný a prakticky nic nechrání!
Také doporučujeme nejdříve (na začátku práce) soubor s heslem uložit a až pak do něho začít psát důvěrné informace. Opačný postup jinak vede k tomu, že máme po celou dobu informace uložené nešifrovaně v automaticky ukládaných zálohách aktuálního stavu souboru!
Šifrování za pomocí externí aplikace
Předchozí řešení je sice jednoduché, ale má několik zásadních nevýhod:
- Zbývá spousta druhů dokumentů či souborů, které tímto způsobem bezpečně zašifrovat nelze, jako je např. řada formátů obrázků či videí. Může to být způsobeno tím, že šifrování nepodporuje už samotný formát souboru, jelikož se při jeho návrhu prostě s touto potřebou nepočítalo. Dále může být šifrování v programu, který s ním pracuje, považováno za nedostatečně důvěryhodné a málo prověřené. Případně v aplikaci tato funkce prostě úplně chybí nebo je dostupná pouze v placené verzi.
- Pokud pracujeme s větším množstvím dokumentů a/nebo větším počtem uživatelů, pro které je potřeba povolit/odepřít přístup ke konkrétnímu dokumentu, je neustálé vytváření hesel pro každý dokument zvlášť neúnosné, jak jsme si již zdůvodnili v lekci o asymetrické kryptografii.
A jelikož často je navíc potřeba takový dokument nejen zašifrovat, ale i autorizovat - podepsat, resp. jeho podpis ověřit, přímo se nám zde nabízí možnost využít pro tyto operace externí aplikaci používající asymetrickou kryptografii. Té bude v zásadě jedno, jaký je formát dat, která má zašifrovat. Namísto konkrétního hesla pro přístup k souboru využije veřejné klíče (resp. certifikáty obsahující veřejné klíče) konkrétních osob (jejich digitálních identit), které k dokumentu mají mít přístup. Vedlejší výhodou tohoto postupu je pak i fakt, že k samotnému zašifrování není nutné heslo zadávat, neboť šifrovací klíč je v tomto případě beztak veřejný, a tak je heslo vyžadováno až pro dešifrování dokumentu nebo v případě jeho podpisu.
GPG a Kleopatra
Prověřená, free a open source aplikace dostupná pro všechny běžné OS, která vše uvedené splňuje, se nazývá GnuPG (jde o zkratku "The GNU Privacy Guard", většinou ale používáme ještě kratší označení GPG). Jedná se vlastně o soubor command line programů. Pokud budeme chtít GPG aplikaci používat pod Windows, stáhněme si rovnou její variantu Gpg4win, neboť nám rovnou nainstaluje příslušná rozšíření do kontextového menu správce souborů. Windows verze GPG také obsahuje grafickou nadstavbu, aplikaci Kleopatra, která nás odstíní od nutnosti použití příkazového řádku, což jistě řada uživatelů Windows ocení:
Pokud zvolíme Encrypt (Zašifrovat), Kleopatra nám nabídne, kdo z
uživatelů k danému souboru bude mít přístup a vytvoří nový soubor s
příponou .gpg
. Pozor, původní soubor s otevřenými
daty ale nesmaže!:
Jestliže veřejný klíč (certifikát) uživatele neznáme, volba Encrypt with password nám umožní zašifrovat jakýkoli soubor i standardní symetrickou šifrou pomocí sdíleného hesla.
Další volby umožňují reverzní funkce – dešifrování, ověření podpisu a kontrolu hashe souboru. Pro většinu z nich pak stačí soubor s příslušnou příponou prostě ve Windows standardním způsobem otevřít a Kleopatra nám možné volby sama nabídne.
GPG, potažmo Kleopatra jako jeho nadstavba, neslouží jenom pro šifrování souborů či jako adresář s certifikáty našich kontaktů (veřejnými klíči jejich identit), nebo našimi vlastními (s privátními klíči), i když ji v této lekci využíváme převážně takto. Umí toho mnohem více, umí generovat nové páry klíčů, žádosti o jejich certifikaci pro certifikační autority nebo je rovnou přímo certifikovat a obsahuje i další pokročilejší funkce. Jde tedy o komplexnější aplikaci, jejíž popis by sám o sobě zabral minimálně jednu samostatnou lekci. Tento kurz je však pojat spíše jako návod, jak vyřešit konkrétní bezpečnostní problémy, než jako popis ovládání určitých aplikací jako celku. K některým z dalších funkcí GPG se však určitě dostaneme i v příštích lekcích.
To nejlepší z obojího nakonec
Nejlepší by samozřejmě bylo, kdyby funkce popsané v kapitole výše byly transparentně dostupné přímo z programů, ve kterých s daty konkrétního formátu pracujeme (nejčastěji textový editor a emailový klient, ale hodilo by se to samozřejmě všude).
Naštěstí k tomu vývoj skutečně směřuje a spousta open source programů umí s GPG víceméně bez problémů spolupracovat. Například, pokud používáme jako editor Writer z Libre Office, máme při ukládání automaticky i možnost zvolit Zašifrovat klíčem GPG. Musíme ho samozřejmě mít nainstalované, ale jinak nikde nic dalšího konfigurovat nemusíme.
Komerční programy (např. MS Office nebo Adobe Acrobat) dnes již samozřejmě nabízí podobné funkce také. Nicméně se nás při tom také snaží dotlačit k tomu, abychom za to něco zaplatili a ve standardní či free verzi tyto funkce zpravidla nejsou dostupné. Někdy zase vyžadují, abychom používali celou sadu software jen od nich (všechno to krásně a snadno spolupracuje, až do okamžiku, kdy se rozhodneme použít jiný program, byť by to s ním podle norem mělo spolupracovat také).
V další lekci, Pravidla bezpečného zálohování dat, se dozvíme, proč je důležité zálohovat a jaké jsou nejdůležitější požadavky na zálohovací řešení.