Skryté oddíly a plausible deniability

Před nedávnem proběhla i našimi médii zpráva o britovi, který byl tamním soudem potrestán za neprorazení hesla k šifrovanému kontejneru. Britové mají pro tento účel roztomilý zákon RIPA (Regulation of Investigatory Powers Act), který to umožňuje; u nás by to zatím neprošlo, ale nemylme se – stačí jeden úspěšný teroristický útok nebo jedna nepotrestaná pedofilní vražda, ve kterých bude figurovat šifrovaný disk, a můžeme s nějakou formou zákazu šifrování počítat i u nás. Jde se tomu bránit, pokud sice nejste vrah ani terorista, ale přesto si chcete chránit své soukromí? Ano, jde – některé šifrovací nástroje už dlouho operují s přístupy, jak dosáhnout tzv. plausible deniability. V duchu hesla „buď připraven“ se pojďme podívat, co to obnáší.

Termín „plausible deniability“ by se dal přeložit jako „schopnost něco uvěřitelně popřít“, v případě šifrování tedy schopnost uvěřitelně popřít existenci šifrovaných dat. Už jen tahle definice klade významná omezení na to, čeho je a čeho není možné dosáhnout – mimo jiné vyžaduje, aby váš útočník byl vůbec ochoten uvěřit, že třeba mluvíte pravdu. K tomuto a dalším omezením se ale dostaneme později. Napřed se podíváme, jak se vlastně plausible deniability dosahuje, protože z toho vyplývají jak omezení plausible deniability, tak způsoby, jak se jim bránit.

V článku předpokládám, že všechna použitá hesla nejsou prolomitelná, ani pomocí brute-force, ani „sociálními technikami“ nebo prostřednictvím keyloggerů.

Jak dosáhnout plausible deniability?

Konkrétní příklady toho, jak šifrovací programy dosahují plausible deniability (dále PD), ukážu na příkladu TrueCryptu, ale podobných nebo stejných přístupů využívají i jiné šifrovací programy, například FreeOTFE nebo DriveCrypt Plus Pack, dosažené závěry je tedy možné do značné míry aplikovat i na ně. Každopádně je však dobré si předem důkladně projít dokumentaci zvoleného šifrovacího nástroje a ověřit si, že se tyto obecné závěry týkají i vaší konkrétní situace.

Základním principem, na kterém stojí PD, je, že dobrý šifrovací algoritmus produkuje takový výstup, který není bez znalosti dešifrovacího klíče odlišitelný od náhodných dat. Za takových okolností totiž vždycky můžete prohlásit, že daná data jsou ve skutečnosti náhodně vygenerovaná, a pokud se útočníkovi nepodaří odhalit šifrovací klíč (např. skrz hádání slabého hesla), nemůže přímo prokázat, že to není pravda.

To je ovšem značně zjednodušené tvrzení – útočník sice možná nebude schopen nezvratně prokázat, že jde o šifrovaná data, ale může to prokázat s takovou pravděpodobností, která mu stačí. Pokud by například útočníkem byl policejní vyšetřovatel, nepotřebuje soudu dokázat existenci šifrovaných dat mimo veškerou pochybnost – úplně mu stačí, když to prokáže s velkou mírou pravděpodobnosti, a pokud nedokážete předložit dostatečně silné protiargumenty, soud mu uvěří. Co je „velká míra pravděpodobnosti“, to závisí na uvážení soudu – ale lze předpokládat, že pokud bude ve vašem počítači nalezen soubor tajná_data.tc, bude nainstalovaný TrueCrypt a přípona .tc bude s TrueCryptem asociována, bude se vám mimořádně obtížně argumentovat, že ten soubor tajná_data.tc ve skutečnosti obsahuje data náhodně vygenerovaná sledováním rozpadu atomů za účelem testování vlastností náhodných čísel. Zrovna tak budete ve značně problematické situaci, pokud všech vašich 5 disků bude obsahovat evidentně náhodná data – jistě, teoreticky je možné, že jste se je rozhodli důkladně vymazat zrovna před příchodem vyšetřovatele, ale málokterý soudce tomu uvěří.

Jinými slovy, nerozlišitelnost náhodných a šifrovaných dat sama o sobě pro dosažení PD nestačí. Je však pro to nutnou podmínkou, a proto u její základní podoby ještě chvilku zůstaneme.

Než se vůbec dostaneme k pokročilejším a skutečně funkčním technikám pro dosažení PD, musíme tedy zajistit, aby šifrovaný kontejner nešel odlišit od náhodných dat. Ve skoro celém rozsahu kontejneru to dostaneme „zadarmo“ už z vlastností šifrovacích algoritmů. Jsou tu ale dvě místa, kterým je potřeba věnovat zvláštní pozornost:

Hlavička kontejneru

Prvním místem je hlavička kontejneru. Prakticky každý šifrovací program ji používá pro uložení informací důležitých pro svoji funkci*). Pro účely PD je tedy třeba zajistit, aby hlavička byla přístupná pro oprávněného uživatele, ale útočník aby ji nedokázal rozeznat od náhodných dat. TrueCrypt to řeší tak, že má hlavičku složenou ze dvou komponent – náhodně generované soli (tzn. jsou to skutečná náhodná čísla, žádná maskovaná šifra) a šifrovaného obsahu (který se díky vlastnosti šifry nedá odlišit od náhodných dat). Z hesla a soli odvodí šifrovací klíč, kterým se pokusí rozšifrovat hlavičku. Když se mu to podaří (to zjistí porovnáním, jestli sedí kontrolní součet a známá signatura), ví, že heslo bylo správné, a může pokračovat v práci. Kdyby bylo heslo špatné, výsledkem dešifrování budou opět náhodná data; TrueCrypt z chyby CRC a/nebo signatury pozná, že bylo použito špatné heslo nebo špatný šifrovací algoritmus, a zkusí další. Podstatné je, že správný výsledek dostane právě jen při zadání správného hesla. Tím je cíle dosaženo – bez znalosti hesla vypadá hlavička jako náhodná data, se znalostí hesla se dá dostat k jejímu pravému obsahu. Předpokládá se přitom, že heslo zná jenom oprávněný uživatel.

Opačný přístup je vidět například u šifrovací komponenty GELI v operačním systému FreeBSD: Tam hlavička šifrovaná není a dá se snadno identifikovat. To má zase svoje výhody**), ale také to znamená, že nemůžete dost dobře dosáhnout PD – každý útočník uvidí, že disk vykazuje znaky zašifrování pomocí GELI, a vám se bude jen velmi problematicky argumentovat, že to je jen náhoda a že to ve skutečnosti opravdu jsou náhodná data.

*) Teoreticky by šlo obejít se bez hlavičky, ale neslo by to s sebou příliš mnoho nevýhod. Mimo jiné by musel být jednoznačný vztah mezi heslem a šifrovacím klíčem (všechny kontejnery se stejným heslem by měly i stejný šifrovací klíč), nedalo by se ověřit, jestli bylo zadáno správné heslo, atd.

**) Operační systém snadno pozná, že disk je šifrovaný, a nebude se ani pokoušet s ním pracovat běžným způsobem. Mimo jiné se tak nestane, jako ve Windows, že by vám systém nabídl možnost disk inicializovat nebo dokonce zformátovat, a tím mimochodem znepřístupnit všechna data na něm.

Metadata kontejneru

Druhé potenciálně slabé místo jsou metadata kontejneru – něco, co je sice s kontejnerem spojeno, ale leží to mimo něj. U souborových kontejnerů to je zejména jméno souboru (viz ten příklad se souborem tajná_data.tc). Šifrovací programy to obvykle řeší tím, že jméno souboru používají čistě jako identifikátor, se kterým blokem dat na disku se má pracovat, ale nepřiřazují mu žádný význam; pokud jde o ně, budou se stejným klidem pracovat s kontejnerem v souboru tajná_data.tc jako moje_svatební_foto.jpg nebo statistika_růstu_trávy.xls. Při volbě „nenápadných“ jmen si ale dejte pozor na to, že pokud použijete nějaký běžný typ souboru, bude útočník znát jeho charakteristiky a jistě se bude divit, proč se mu vaše moje_svatební_foto.jpg nechce otevřít v prohlížeči obrázků (nemluvě o údivu nad tím, že vaše foto je 200 GB dlouhé, když běžná délka bývá v řádu stovek KB až jednotek MB). Pamatujte, že k narušení PD vede nejen přítomnost identifikačních znaků skutečného názvu, ale také nepřítomnost nebo neobvyklost znaků maskovacího názvu (je to stejný princip jako u Identifikace browseru i bez cookies – už to, že o sobě něco očekávaného neříkáte, nese informaci).

Jsou i další potenciální slabiny, o kterých je dobré vědět. TrueCrypt například vytváří kontejnery o celkem libovolné délce, ale vždycky takové, aby byla dělitelná 512ti (aby kontejner přesně vyplnil celý sektor na disku). Nemusí být vždy jednoduché vysvětlit i nezaujatému pozorovateli, proč všechny vaše soubory náhodných testovacích dat „shodou okolností“ mají délku zarovnanou na velikost diskových sektorů a není tam ani jeden, který by měl „lidsky pochopitelnou“ délku dělitelnou tisícem nebo milionem. (Není divu, že se čas od času na diskusních fórech TrueCryptu někdo ptá, jestli by nešlo implementovat kontejnery s náhodnou délkou na posledních cifrách.)

Zrovna tak může být podezřelé, proč váš „soubor náhodných dat pro výzkum“ vznikl před čtyřmi lety a od té doby se s ním nijak nepracovalo – u normálního souboru by bylo vidět datum a čas posledního přístupu, ale u TrueCryptového kontejneru ne, protože TC schválně všechny tyhle datumy udržuje nezměněné (vede ho k tomu také snaha o PD, ale zase z trochu jiného pohledu).

V případě kontejnerů jiného než souborového typu (tzn. šifrované disky, partitions nebo svazky) je nebezpečí plynoucí z metadat podstatně menší, už proto, že tyto objekty nesou metadat podstatně méně – a také se jejich metadata podstatně méně často aktualizují. Je ale dobré o potenciálním nebezpečí vědět – pokud chcete využít PD, měli byste si nastudovat, jaká metadata pro vámi zvolený typ kontejneru připadají v úvahu, a najít způsoby, jak se s jejich hrozbou vypořádat.

A když už propírám metadata, nedá mi to, abych se nezmínil o dalším typickém problému, kterým je PD ohroženo, ačkoliv se přímo netýká žádného konkrétního kontejneru: Až budete zjišťovat detaily o tom, jak PD dosáhnout, tak se napřed ujistěte, že jste dokonale zakryli svoji identitu. Není nic trapnějšího, až budete argumentovat náhodnými daty, když se vás vyšetřovatel zeptá, proč jste před měsícem na čtyřech diskusních serverech poptávali informace o tom, jak dosáhnout PD.

Skrytý šifrovaný oddíl

Dobrá, máte splněno všechno, co bylo popsáno v předchozím odstavci. Tím je PD dosažena, ne? Ne. Nemožnost identifikovat kontejner je důležitý první krok, jak ukážu za chvíli, ale sama od sebe má jen omezený význam: uvěřitelně vysvětlit, k čemu potřebujete soubor s náhodnými daty, není až tak jednoduché a vesměs se to dá udělat jen v některých specifických situacích – bohužel takových, které nemají s reálným používáním mnoho společného: Lze zdůvodnit, k čemu mám megabajtový soubor náhodných dat, ale už podstatně hůř budu vysvětlovat, proč mám náhodných dat jeden a půl terabajtu, navíc rozprostřených přes tři disky. V takové situaci si asi i přátelsky nakloněný protivník pomyslí, že to spíš budou šifrovaná data než náhodná.

Naštěstí i na tenhle problém už bylo vymyšleno řešení, a to řešení se jmenuje skrytý oddíl. „No ano,“ řeknete, „samozřejmě šifruji disky, abych ochránil svoje soukromí před případnými zloději. Před oficiálními osobami nemám co skrývat, naopak, rád pomůžu s vyšetřováním, jak to jen půjde. Heslo je konvalinka***).“ Útočník vám to pochopitelně nebude věřit, takže si to heslo vyzkouší – a skutečně, šifrovaný svazek se připojil a zobrazil svůj skrytý obsah. Jenže co čert nechtěl, nic inkriminujícího v něm není.

***) Ano, i já jsem hrál Město robotů.

Skrytý oddíl funguje tak, že kontejner nemá jen jednu hlavičku a jedno heslo, ale obojí má dvakrát. Zadáte „normální“ heslo a otevře se „normální“ hlavička na začátku kontejneru. Z té se šifrovací program dozví šifrovací klíč a všechny další relevantní údaje a zpřístupní pěkně celý oddíl.

Jenže existuje i druhá, skrytá hlavička se skrytým heslem. Tato hlavička je obvykle uložena na konci kontejneru a mimo obvyklých údajů obsahuje i informaci o tom, že skutečný (skrytý) obsah nezačíná hned na začátku kontejneru, ale až někde uprostřed. Vypadá to nějak takhle:

Normální oddíl
Skrytý oddíl

Na horním obrázku je vidět, jak se šifrovaný oddíl jeví po zadání normálního hesla: Na začátku je hlavička svazku (1), zbytek kontejneru je vyplněn daty (2). Co ale útočník neví je, že někde na konci kontejneru se ve skutečnosti nachází ještě skrytá hlavička (3), která šifrovacímu programu řekne, že určitá část kontejneru – která se překrývá s normálními daty – slouží jako oblast skrytých dat (4). Jak to, že to útočník neví? Protože, jak už jsem vysvětlil v první části článku, šifrovaný kontejner a šifrovaná hlavička nejdou odlišit od náhodných dat. Dokud vy nezadáte skryté heslo, tak se nedá poznat, jestli je příslušný sektor skrytou hlavičkou nebo jen normálními náhodnými daty. No a vy pochopitelně to tajné heslo útočníkovi říkat nebudete!

Dobře, co tedy útočníkovi brání, aby se zeptal, proč máte ve svazku spoustu náhodných dat? Nebrání mu nic. Jenže vy máte v tomto případě jednoduché a účinné argumenty, kterými podložíte své tvrzení, že to opravdu jsou náhodná data:

  1. Všechny šifrovací programy, které se starají o PD, při vytváření nového kontejneru tento kontejner zaplní náhodnými daty. Operační systémy obvykle zapisují data od začátku disku ke konci, proto je poměrně logické, že na konci šifrovaného svazku ještě stále zbyla spousta místa, do kterého operačním systémem nic zapsáno nebylo a tudíž tam zůstává to, co tam zapsal šifrovací program – tedy náhodná data. Prostě jste ještě ten kontejner nenaplnili, to je celé.

  2. Jak jistě víte, když smažete soubor, tak se ve skutečnosti jen označí jako smazaný a na disku zůstane. Dokud ho nepřepíše něco dalšího, dá se tento soubor obnovit. To se může hodit, když si omylem smažete něco, co jste smazat nechtěli – prostě spustíte šikovný nástroj a data obnovíte. Ale také to znamená, že pokud něco chcete natrvalo zničit, nestačí to jen smazat – musíte to také přepsat, a to pokud možno několikrát (kvůli zbytkovému magnetismu). Takže se vyrábějí i programy, které dělají přesný opak funkce popsané v předminulé větě – smazané soubory neobnovují, ale přepisují. A aby si byly úplně jisté, tak nepřepisují jen konkrétní smazaný soubor, ale pro jistotu veškeré volné (neobsazené) místo na disku. Navíc vám dávají několik možností, čím to volné místo přepsat – nulami, jedničkami, pozdravem „AHOJ“, nebo taky náhodnými daty. A jsme u toho. Proč je na disku v neobsazeném prostoru spousta náhodných dat? No přece proto, že jsem právě ten prostor tímto způsobem vyčistil…

Ale pozor – zase tak jednoduché to není. Nezapomeňte na to, že nestačí, aby vaše tvrzení bylo možné, ono musí být i uvěřitelné. Dobře, připustili jste, že daný svazek je šifrovaný, dokonce jste v rámci dobré spolupráce prozradili heslo, aby do něj útočník mohl nahlédnout. Až potud dobré. Jenže musíte počítat s tím, že i útočník si přečetl manuál k TrueCryptu a ví tedy o možnosti používat skryté oddíly. Jistě tedy bude zjišťovat, jestli náhodou skrytý oddíl nepoužíváte. A pokud si při práci se skrytými oddíly nedáte pozor, může vám položit velmi nepříjemné otázky:

  • Proč máte pět velkých pevných disků, když na každém je uloženo jen pár GB dat? Pokud má být skrytý oddíl uvěřitelný, neměl by se vyskytovat ve všech šifrovaných kontejnerech, ale jen v některých, a už vůbec by neměl být větší než normální šifrovaný oddíl – rozumná velikost se bude lišit případ od případu, ale divil bych se, kdyby překročila nějakých 25% dostupné kapacity.

  • Proč je v tomhle kontejneru nejnovější soubor tři a půl roku starý? Normální oddíl musí vykazovat známky běžného používání. Dobře, když budu mít disk označený jako „archiv účetnictví“, dá se pochopit, proč se do něj nová data přisypávají jen jednou nebo dvakrát za rok, ale určitě bych si měl dát pozor na to, aby tam skutečně ten pohyb jednou dvakrát za rok byl – a bylo by hezké, kdyby časy toho pohybu korelovaly s datumem konce finančního roku a datumem dokončení auditu. Pokud budu mít disk označený „zálohy“, měl bych na něj zapsat aspoň jednou za měsíc nebo dva (podle toho, jak pečliví v zálohování jste). Atd.

  • Jak je možné, že v každém šifrovaném disku bylo vymazáno volné místo? Není úplně od věci, když budete mít nainstalovaný nějaký vymazávací program, pokud možno nastavený na automatické vyčištění všech připojených pevných disků každý den v noci.

  • Tvrdíte, že nepoužíváte skrytý oddíl? Dokažte mi to. „Nedokážu. To nejde. Mohl bych prokázat, že skrytý oddíl existuje, tím, že bych k němu zadal heslo. Ale nemůžu dokázat, že neexistuje – nedá se odlišit případ, kdy svazek neexistuje, od případu, kdy zadám špatné heslo. Já tu můžu celou noc zkoušet hesla, ale vy mi vždy můžete namítnout, že schválně zadávám špatné heslo. A i kdybych ten skrytý oddíl opravdu měl a opravdu se rozhodl vám ho ukázat, vždycky bude existovat možnost, že v tom skrytém oddílu je vnořený další skrytý oddíl.“

  • Tak to prázdné místo vyčistíme spolu, co vy na to? Nechcete si to rozmyslet? Přepíše vám to váš skrytý oddíl! „Jasně, klidně to místo můžeme přepsat. Já s tím nemám žádný problém, protože tam žádná skrytá data nejsou. Ale napřed chci mít zápis, že to přemazávání děláte vy a přejímáte zodpovědnost za to, že pak budou všechna data zničena. Nechci se dostat do situace, že mě někdo obviní, že jsem případné důkazy odstranil .“ Samozřejmě předpokládám, že máte (šifrovanou) zálohu a že si dáte pozor, aby vás někdo nechytl za ruku při jejím obnovování.

  • (Tahle otázka se týká skrytých systémových oddílů, tedy takových, ze kterých se spouští operační systém.) Máme doloženo, že váš počítač při přístupu na internet střídá dvě identity****). Jak nám to vysvětlíte jinak než použitím skrytého oddílu? Tady platí jednoduché pravidlo: Ze skrytého operačního systému se v žádném případě nesmí přistupovat na internet ani do lokální sítě. Je nanejvýš vhodné před aktivací skrytého operačního systému odpojit všechny síťové kabely a vypnout WiFi.

    ****) Znovu odkazuji na článek Identifikace browseru i bez cookies.

Omezení skrytého oddílu a cesty dál

Ani skrytý oddíl ale není všemocný – má několik vad. První a základní je ta, že funguje pouze proti útočníkovi, který dodržuje moderní vymoženosti typu presumpce neviny (dokud vám není prokázán opak, jste považován za nevinného) nebo zákaz mučení. V praxi to tedy znamená ochranu pouze proti policejním složkám v moderních demokraciích. Naproti tomu je vcelku bezzubý proti policii v nedemokratických zemích a totálně neúčinný proti útočníkům, kteří si se zákonem nelámou hlavu vůbec (zločinecké skupiny, tajné služby, rozzuřená ex-manželka atd.). A i proti té policii má zásadní vadu – pokud se spolehnete na PD, skoro jistě to znamená, že budete útočníkovi lhát; pokud to bude odhaleno, nebudou následky příjemné.

Tahle poslední výhrada se dá do jisté míry vyřešit. Dokonce několika způsoby – jedním je rozdělení šifrovaného kontejneru na dvě části, druhou je použití falešných hlaviček.

Řekněme, že mám šifrovaný kontejner. Vytvořte soubor zcela náhodných dat (nasbíraných počítáním počtu neutronů vystřelených z vašeho domácího jaderného reaktoru za jednotku času, nebo tak nějak) o stejné velikosti, jakou má váš kontejner. Nyní proveďte operaci XOR mezi oběma soubory, čímž vznikne soubor třetí. Náhodná data a výsledek XORu uložte (každý zvlášť!), původní kontejner zničte. Dostanete dva soubory, ze kterých se dá původní kontejner snadno vytvořit (opět operací XOR mezi nimi), ale o kterých můžete s čistým svědomím říci, že to nejsou šifrované kontejnery. Ale moc praktické na používání to nebude.

Druhá cesta s falešnými hlavičkami je praktičtější. Opět začneme se šifrovaným kontejnerem. Uložte si hlavičku skrytého oddílu (na to má TrueCrypt funkci přímo v grafickém rozhraní, v jiných programech to přinejhorším zvládnete pomocí malého prográmku, který příslušnou část kontejneru vykopíruje) na bezpečné místo. Nyní vytvořte soubor náhodných dat o stejné velikosti, jakou má hlavička, a přepište jím v kontejneru skutečnou hlavičku. A je to – sice nemůžete poctivě říct, že nepoužíváte skrytý oddíl, ale zato můžete zcela poctivě prohlásit, že neznáte heslo, které ho zpřístupní – protože takové heslo neexistuje. Pro přístup je třeba obnovit původní správnou hlavičku a na ni použít správné heslo.

Tato technika jde ještě vylepšit: Skrytou hlavičku nemusíte nahrazovat náhodnými daty, ale skutečnou hlavičkou se změněnými klíčovými daty. V zásadě by stačilo přepsat šifrovací klíč v hlavičce uložený. Skrytý oddíl pak dokážete v TrueCryptu zadáním správného hesla*****) připojit, nebo říct útočníkovi heslo a nechat ho, ať si ten skrytý oddíl připojí sám. TrueCrypt řekne, že to proběhlo úspěšně, útočník si klidně může svým vlastním programem ověřit, že dostal platnou hlavičku (tzn. existuje důkaz, že heslo bylo správné) – nicméně k datům se útočník stejně nedostane, protože se je bude snažit dešifrovat špatným klíčem. Až se nad tím bude rozčilovat, můžete se k němu přidat – kdo ví, co s tím šifrovaným kontejnerem provedl, dokud se v něm nezačal hrabat, tak byla všechna data v pořádku! Toto řešení má jen jednu drobnou nevýhodu – útočník se dozví o velikosti skrytého oddílu. Ale pokud budete chtít, můžete v hlavičce zfalšovat i další údaje, ne jen master key – klidně i pozici na disku. Jen si dejte pozor, že všechna data v hlavičce spolu musí souhlasit, takže když změníte velikost, nezapomeňte změnit i pozici…

Jak už jsem nadhodil o něco výše, v úvahu připadají i vícenásobně vnořené skryté oddíly. Tam už se ale nevyhnete programování, tak daleko žádný mě známý program nejde – vesměs vycházejí ze (správné) úvahy, že nejslabším článkem je člověk, a než aby se útočník páral s prolamováním ochran, skřípne radši pořádně majitele, zákon nezákon.

*****) Doporučuji, aby to heslo bylo jiné než heslo ke skutečné hlavičce – co kdyby ji útočník našel?

Závěr

Pozor! Tento článek nepodává ani zdaleka vyčerpávající přehled toho, na co je třeba dát si pozor. Než se začnete spoléhat na PD, měli byste si důkladně nastudovat technické aspekty práce vašeho operačního systému, protože jinak se snadno můžete dostat do situace, kdy půjde existence skrytého svazku s rozumnou pravděpodobností prokázat. Jak už jsem několikrát uvedl, nestačí, aby každý jednotlivý prvek vašeho šifrování splňoval PD – vy musíte zajistit, že PD bude splněno i v případě, že se všechny komponenty dají dohromady a posoudí ve vzájemném kontextu.

Než mě někdo začne vyčítat, že pomáhám zločincům skrývat jejich trestnou činnost: Ano, je možné, že informací z tohoto článku někdo takovým způsobem využije. Tomu se nedá vyhnout – každou informaci jde zneužít pro zločinné účely. Pokud jde o mě, považuji za menší zlo, když nějaký zločinec unikne spravedlnosti (konečně, k těmto informacím by se dostal i odjinud, než ode mě), než kdybych měl obětovat svoje soukromí za pochybný příslib zvýšeného bezpečí. Slovy Benjamina Franklina, „They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety.“

Doporučené zdroje

Podobné příspěvky:

30 Responses to “Skryté oddíly a plausible deniability”

  1. avatar pepak napsal:

    Tak třeba právě ty algoritmy pro přepsání prázdných míst disku (za účelem znemožnění případné obnovy) často taková pseudonáhodná data vytvářejí. Není výjimkou, že to dělají právě pomocí šifrování (vyberou náhodný klíč. tím pak šifrují nějakou posloupnost a výstup pak zapisují na disk). Výstupem kompresních programů je také sekvence dat, která se (bez znalosti dekompresního algoritmu) také velmi blíží náhodnosti šifrovaných dat (nicméně není to úplně ono, šifrovaná a komprimovaná data se dají do jisté míry odlišit).

  2. avatar mt napsal:

    [Nerelevantní části smazány. Pepak.]
    k tematu by tedy mozna mohl byt dotaz, zda existuje nejaky takovy nastroj, jehoz vystupem budou pseudonahodna data splnujici nejake parametry. obavam se, ze ne. vetsinou je tezke takova data i generovat pro matematicke experimenty 🙂

  3. avatar pepak napsal:

    Rozdělím to na několik otázek:

    1) Použití SETI apod.: Principiální problém není v tom, jestli soubor má nějakou rozpoznatelnou strukturu. S tím se lze vypořádat, byť ne třeba přímo ve standardním TrueCryptu. Zařídit, aby šifrovací program místo standardního chování „kontejner se rozprostírá přes celý soubor“ použil mírně obměněné chování „kontejner se nachází v souboru na pozicích P1-P2, P3-P4 atd.“, je triviální záležitost, snadno implementovatelná do jakéhokoliv šifrovacího nástroje. Problém je v otázce, nakolik jsou pracovní data (tzn. ne hlavičky) SETI náhodná z hlediska obsahu informace. Nebyl bych vůbec překvapen, kdyby se ukázalo, že nepříliš.

    2) „Za dob DOSu“: Umístit data můžeš i teď, kam si usmyslíš, a můžeš zajistit jejich nepřepsatelnost. Problém je v tom, že drtivá většina těch uložení nesplňuje vlastnost plausible deniability, tzn. dá se celkem snadno prokázat, že tam ta tajná data jsou. Tvoje řešení, i kdyby fungovalo (vidím v něm přinejmenším tři zásadní chyby, které mě vedou k závěru, že to je jen toretická úvaha bez praktické implementace), by narazilo na stejný problém: s největší pravděpodobností nebude fungovat na vlastnosti plausible deniability, ale jen na „security by obscurity“ (tj. bezpečnosti je dosaženo tím, že nikdo nezná použitý algoritmus), a to ještě v tomto případě na velice slabé security by obscurity. (Pokud si přeješ rozebrat, v čem spatřuju ty chyby a tu slabost, tak si založ vlákno v diskusním fóru, sem to nepatří.)

  4. avatar mt napsal:

    zdravim, nevim jak to je v XP a ruznych modernich sys. ale za dob DOSu bylo nejjednodussi sahnout primo do FAT a zapsat si tam co bylo potreba. druhy oddil byl bak skryty tak ze ho jen tak nekdo neodkryl. v c-cku na par radek, puvodni FAT si ulozim ve formatu ktery se mi libi takze ho tezko nekdo najde. poskozeni dat v zamaskovanem oddilu nehrozilo, protoze pri pokusu o zapis tam se generuje preruseni. jen si clovek musel dat bacha aby to melo stejne velikosti bloku. u ntfs by to bylo asi problematicke 🙂 … no to jen tak naokraj … na to seti (boinc) by to slo naroubovat, ale jak pise abc, pouzivaji konkretni format dat. takze by se to muselo do toho preformatovat. neznam tc a spol. nevim jak by to bylo tezke; v pripade jednotlivych souboru by to asi byla hracka; pokud by se to melo delat pravidelne a tykalo by se to celych oddilu tak good luck 🙂

  5. avatar abc napsal:

    Tudy cesta nevede, protoze pro BOINC klienta (pocita SETI, Rossettu, atd.) dostanes ty „nahodna“ data v urcitem formatu, ktery je rozpoznatelny.

  6. avatar pepak napsal:

    Neumím to posoudit, s projekty tohoto typu nemám žádnou zkušenost.

  7. avatar jrozec napsal:

    Když tu mluvíme o uvěřitelném využití obrovských souborů náhodných dat, tak mě napadá například vyhodnocování dat do projektů typu SETI. Tedy za předpokladu, že data o podobné velikosti je možné ke zpracování získat a jsou dostatečně náhodná.

  8. avatar pepak napsal:

    Přesně o tom mluvím.

    A tím bych diskusi na toto téma ukončil. Další příspěvky týkající se politické a ne technické stránky věci už nebudou zveřejněny.

  9. avatar jrozec napsal:

    Panové. Ústava je pěkná věc, ale stačí před lidmi zamávat terorismem a sadistickou formou pedofilie a je z ní cár papíru. A i kdyby Vás neodsoudili, tak pokud prohlásí že vás podezřívají z držení DP a Vy jste neukázali obsah a tudíž se domnívají, že mají pravdu, tak z Vás během chvíle udělají vyvrhela společnosti…

  10. avatar pepak napsal:

    Máš pravdu, ale s dovolením bych to ukončil s tím, že nesdílím tvoji důvěru v naše demokratické instituce ani v ochotu obyvatelstva potlačit krátkodobé (a zdánlivé) výhody a preferovat svobody jednotlivce.

  11. avatar xpckar napsal:

    1) Tady jde o princip. Máš prostě právo mlčet. Kromě toho, že zákon v rozporu s aktuální ústavou by ústavní soud zrušil, tak by taky zrušil účelově změněnou ústavu. A pokud by už strážce ústavy nefungoval ani v tomto případě, jsme v totalitě a policejním státě. Pak už jen závisí na tom, jak by to šlo do hloubky (většina by se toho ale nerada dožila, a i pak věřím, že by nezůstalo jen u pasivního trpění, ale lid hned v začátku zase povstal, bylo-li by známo, co takovej zásah do základů demokracie vlastně znamená). Ve skutečnosti ale i tak existuje prakticky nekonečně mnoho možností steganografie, včetně takové, která za určitých zvolených okolností klíč nenávratně zničí, což mj. znamená, že z původního vlastníka klíče dělá pro daný účel již zcela nepoužitelnou osobu, jako stejně jako jakoukoliv jinou osobu na zeměkouli.
    To, že si někdo neuvědomuje zcela zřejmej fakt, že drtivá většina lidí, která šifruje, to dělá z čistě soukromýho hlediska, kde nikomu do jejich dat prostě nic není, a že zločin je nutné dokazovat důkazy, a nikoliv „první důkaz budu možná mít, až mi ho on/ona nedobrovolně na sebe dá“, je zcela mimo svobodně-demokratický, ale i základní morální principy, a je nutné to jako princip řízeně a aktivně zcela odmítnout. V demokracii by i tlak na něco ve výsledku jako zákaz šifrování vedl k jedinýmu: šifrovalo by se ještě daleko víc, a ještě daleko víc se používala steganografie (a daleko víc lidí by na to slyšelo), výsledek by tedy byl ještě mnohem horší.
    Jiná věc je, jakej rozum stojí na který straně, když třeba v systému datových schránek se každá bezpečnostní chyba, natož přímo v konceptu bagatelizuje, olhává, popírá a ignoruje, až se jednou ucho utrhne (a jak víš, nejde jen o dokumenty „odeslané po opravě chyby“, ale i o ten úplně první dokument a zprávu, které v DS vznikly, a taky o všechny miliony dalších). Ta samá sorta pak bude rozhodovat a uvažovat bez ohledu na odborníky i o tom, že „zákaz soukromýho šifrování“ je docela dobrej nebo dokonce geniální nápad, jak to uplatňovaný ošklivý právo na soukromí „trochu pootočit“ ke svýmu prospěchu (při neschopnosti se bez potlačování základních práv obejít)…
    Jak ale víme, nebyly bychom první pseudodemokratickou zemí, co tenhle fíkovej list proti totalitě, fašismu, lži a neschopnosti na svoje občany používá. Ale taky víme, jakej obrovskej rozdíl je mezi např. naší ústavou, a nepsanou pseudoústavou ve Velké Británii. Nejen obrovský, ale prakticky obrovský nekonečně.

  12. avatar pepak napsal:

    1) Buď žiješ v jiném státě než já, nebo se zásadně rozcházíme v hodnocení našeho legislativního procesu. Tím líp, pokud bude Ústava respektována – ale upřímně řečeno neznám jediný fakt, na základě kterého bych to mohl brát jako pravděpodobnou možnost.

    2) a) Jde, ale je potřeba na to nezapomenout, protože to není výchozí hodnota.
    b) Taky to chce na to nezapomenout.

  13. avatar xpckar napsal:

    1. DT má pravdu, a ani „dostatečně velký případ“ na tom nemůže nic změnit. Leda by totalita a fašismus pokročily i tady do takový míry, že by se změnila Ústava resp. Listina základních práv a svobod. Článek 37 odst. (1) mluví zcela jasně.

    2. Drobnosti k článku:

    „u normálního souboru by bylo vidět datum a čas posledního přístupu, ale u TrueCryptového kontejneru ne, protože TC schválně všechny tyhle datumy udržuje nezměněné“
    – Toto chování jde odjakživa nastavit (jde tudíž nastavit i „normální“ chování, kdy je po každém použití kontejneru datum změněno).

    „A aby si byly úplně jisté, tak nepřepisují jen konkrétní smazaný soubor, ale pro jistotu veškeré volné (neobsazené) místo na disku.“
    – To dělají pouze na žádost uživatele (samostatnou funkcí), jako součást běžný bezpečný mazací techniky jsem to ještě neviděl (ono by to taky mazání třeba jednoho souboru v závilosti na velikosti onoho volného místa neúměrně prodloužilo).

  14. avatar pepak napsal:

    wdolek: Záleží na tom, kde přesně k poškození dojde:

    1) K poškození dojde v hlavičce kontejneru: V tom případě jsou pryč veškerá data a nedá se s tím nic dělat. TrueCrypt se tomu snaží bránit tím, že má uloženou ještě záložní hlavičku kontejneru, kterou použije po X (myslím třech) nesprávných pokusech o zadání hesla. Plus ti umožňuje tu hlavičku zazálohovat; to bys rozhodně udělat měl, těch záloh si udělat i víc a rozkopírovat je všude možné po tvých médiích i na net.

    2) K poškození dojde jinde než v hlavičce: V tom případě je to stejné, jako kdyby disk nebyl vůbec šifrován. Ten jeden sektor bude nečitelný a řešit se to bude v závislosti na tom, co v něm je za data (jiné to bude, když sektor zabírá volné místo, jiné, když jsou v něm souborová metadata a jiné, pokud v něm jsou užitečná data [u těch se to ještě bude větvit podle typu souboru atd.]).

  15. avatar pepak napsal:

    DT: Až dosud to tak bylo. Ten zákon RIPA ovšem tuhle zásadu porušuje, a vzhledem k tomu, že naše zákony vesele porušují všechny možné zásady od retroaktivity až po presumpci neviny, nevěřím, že šifrování zůstane povoleno, jakmile se jednou objeví dostatečně velký případ.

  16. avatar wdolek napsal:

    jak se sifrovany oddil, ale i sifrovany soubor, vyporada s nejakym nahodnym „poskozenim“ clusteru na disku? zvlaste u externich disku, ktere se porad nekde nechaji nosit v brasnach :), bych to videl jako pomerne „akutni“ problem.

    osobne se sifrovani bojim prave z duvodu, ze jakmile si disk umane a pokazi se zrovna nejaky dulezity sektor, prijdu o vsechno.

    je ma obava licha, nebo zcela opodstatnena?

  17. avatar DT napsal:

    Vždycky jsem žil v domnění, že jako podezřelý nemusím proti sobě předkládat žádné důkazy a informace. Pokud vyšetřovatel nevěří, že mé svatební foto má půl terabajtu, tak ať si laskavě vysere voko a zajistí si důkazy sám jak dovede. Když mi fízlové u domu najdou kontejner plný papírových proužků ze zkartovačky, taky není můj problém, že z toho nepůjde nic přečíst, ne?

  18. avatar pepak napsal:

    Pokud jsem dobře pochopil ustanovení ACTA (angličtina mi nevadí, právničtina taky ne, ale u anglické právničtiny už bych za přesnost výkladu ruku do ohně nedal), tak mohou. Možná to neudělají, ale mohli by.

  19. avatar Lokutus napsal:

    Vyčerpávající popis, bezva článek.
    Co se mě týče, pokud uvážím pouze problematiku autorských práv v rovině ACTA a hypotetického vycestování mimo EU s diskem, plným upirátěných empétrojek a filmů, trápí mě tedy spíše ta demokratická verze útočníka. Pominu malou pravděpodobnost toho, že by nějaký celník na letišti byl v běžném provozu schopen proniknout za hranice skrytých oddílů a zaměřím se na jednoduchou výmluvu v případě objevení šifrovaných dat.

    Fízl: Máte na počítači šifrovaná data, vydejte heslo, abychom je mohli prověřit.
    Já: Jasně, strpeníčko… Tady jsem to někde měl… Sakra, takovej papírek s heslem… No napsal jsem si to doma přece… mámo řekni jim, že jsem si psal to heslo na papír, abych ho nezapomněl.
    Fízl: Víte to heslo nebo ne?
    Já: Já ho zapomněl. Ale měl jsem ho na tom papírku…

    Za to mě přeci nemůžou zavřít ani ve Velké Británii. 😀

  20. avatar Olda Šálek napsal:

    Pěkný článek. Mno, já částečně svá data šifruji. Tzv data jsou šifrovaná, OS nikoliv.. A když jsem chtěl šifrovat systémový, tak mi to nešlo, zkusím někdy později.

  21. avatar tik napsal:

    vyborny clanek. Dekuji. Pouzivam TC uz dlouho, ale takovehle moznosti jsem ani netusil.

  22. avatar pepak napsal:

    Já shodou okolností nepoužívám skryté oddíly vůbec.

  23. avatar Danoboss napsal:

    Napríklad, keď budú obžalovávať teba, tak ako dôkaz existencie skrytého oddielu im bude stačiť tento tvoj článok 🙂 Samozrejme ak vypátrajú tvoju totožnosť, pretože predpokladám, že doména je cez nejakú zahraničnú firmu bez uvedenia mena a si tu cez 4 proxy a TOR zároveň 😉

  24. avatar pepak napsal:

    Máš samozřejmě úplnou pravdu.

  25. avatar abc napsal:

    I kdyz predpokladas, ze to maji vsichni zvladnute, je treba to neustale opakovat a zduraznovat. Jsou to postrehy z praxe, kde i mistr tesar se obcas utne. 😀

  26. avatar pepak napsal:

    O tom, že nejslabším článkem je člověk, není sporu. Já ale ve svých článcích předpokládám, že to už má čtenář nastudované a zvládnuté.

  27. avatar abc napsal:

    Vyborny clanek. Nektere techniky se v praxi obecne pouzivaji, jine ne, dalsi nejsou zmineny, ale na kvalite to neubira. Bylo by dobre ale uvest, ze vse toto muze velice lehce a rychle selhat kvuli nejslabsimu clanku, cloveku. Od obycejneho prereknuti se, socialniho inzenyrsvi, … pres zhrzene milenky, kamarady, „pratele“, … az treba po zanesenou havet v pocitaci/siti a tedy odposlechy. Dale miniaturni skryte kamery, kvalitni dalekohledy, … Nestaci jen pouzivat dobre programy, perfektne je ovladat, zalohovat, atd. Je treba tak zit! Je treba byt (nekdy i nezdrave) paranoidni! 😉

  28. avatar xixik napsal:

    Suprovej článek, díky. Také se přikláním k tomu že články o Drive Snapshot či Truecryptu a podobných zaměřeních, jsou prostě perfektní:)

  29. avatar pepak napsal:

    Nemůže být každý den posvícení 🙂
    Články o knihách jsou tu v první řadě proto, že bych rád, aby z toho časem vylezl zdroj o kompletní tvorbě Johna Wyndhama. A abych upozornil na další zajímavé, a u nás neznámé, knihy.

  30. avatar michal zobec napsal:

    fakt moc pěkný článek. proto tvůj blog mimo jiné také rád čtu (přiznám se že články o knihách mě moc nezajímají) 🙂

Leave a Reply

Themocracy iconWordPress Themes

css.php