TrueCrypt a šifrování operačního systému

TrueCrypt jsem dlouhá léta používal (a stále používám) k plné spokojenosti, ale funkcionalitu pro šifrování systémových oddílů zavedl až dost pozdě – v době, kdy už jsem měl pořízený BestCrypt Volume Encryption, který zatím nemám důvod měnit. Proto jsem TrueCryptu nevěnoval až tak velkou pozornost a nemám ho vyzkoušený v ostrém provozu na ostrých datech. Nicméně jsem se mu věnoval aspoň natolik, abych získal představu o jeho vlastnostech, kdybych třeba někdy v budoucnu pořizoval další počítač a chtěl jsem ušetřit na licenci BCVE. Je ovšem možné, že některé z věcí, které mi na TrueCryptu jako nástroji pro šifrování systému vadí, jdou nějak vyřešit. Komentáře nebo fórum jsou tím pravým místem, kde se k tomu můžete vyjádřit.

Hlavní okno TrueCryptu

TrueCrypt je nepochybně výborný produkt a proti ostatním programům tohoto typu má obrovskou výhodu v tom, že je zdarma – znám vlastně jen jediný další free nástroj pro šifrování systému, InfoTech CompuSec, který mě ovšem odradil velmi závažnými chybami (které možná mezi tím byly opraveny, ale v době, kdy jsem po tom pátral, byly ty chyby tak vážné, že vážně nemám chuť tomu programu svěřit svá data). TrueCrypt je díky mnoha letům vývoje a používání té „obyčejné nesystémové“ stabilní a spolehlivý produkt, u kterého nejsou nějaké velké chyby pravděpodobné.

Část pro šifrování operačního systému velmi silně vychází z kódu, který se už dlouhá léta používá pro šifrování virtuálních disků. To je nepochybně obrovská výhoda – virtuální disky TrueCryptu jsou mnoha léty důkladně prověřené a pravděpodobně se jim dá věřit (s výhradami, které jsem uvedl v článku Open-source a backdoory). Jsou v nich velmi důsledně řešeny mnohé faktory související s bezpečností, od kvalitního generátoru náhodných čísel přes key-strengthening mechanismy a používání bezpečných šifer až po plausible deniability. Z tohoto hlediska těžko na TrueCryptu najít něco, co by nešlo chválit.

Velmi silné využití té původní virtuálně-diskové funkčnosti je ovšem i největší nevýhodou TrueCryptu jako nástroje pro šifrování systému. Nikdy jsem se nezbavil dojmu, že celá ta systémová část je jen jakási nadstavba nad už funkčním celkem, a to nadstavba dělaná tak, aby byla co nejmenší a nejméně pracná. V principu v pořádku, znovuvyužití existujícího kódu nepochybně vede k méně chybám než psaní kódu nového, ale napasování kódu určeného pro virtuální disky na systémové disky přináší i nepříjemná omezení, ke kterým by nedocházelo, kdyby byla systémová část napsaná speciálně. Krásně je to vidět na formátu virtuálních disků – TrueCryptovské kontejnery mají na svém začátku zašifrovanou hlavičku. I šifrované systémové oddíly mají na začátku zašifrovanou hlavičku. To znamená, že na tu hlavičku musí být na disku místo. Když není, máte smůlu. U běžných kontejnerů to nevadí – u souborových vytvořím tu hlavičku úplně bez problémů, u partition- nebo device-based stejně ničím všechna původně existující data, tak prostě první sektor(y) přepíšu hlavičkou a řeknu, že „užitečná oblast je o těch X sektorů zabraných hlavičkou menší“. U systémových oddílů tenhle postup použít nejde, protože je třeba zachovat existující data, a to i na původních místech (protože součástí těch dat mohou být struktury souborového systému, které jsou závislé na přesném umístění). Je tedy třeba vyřešit zapeklitý problém, jak do prostoru o kapacitě N sektorů nacpat údaje z (N+X) sektorech. TrueCrypt to řeší velmi přímočarým způsobem – nechá operační systém, aby partition zmenšil, a získané sektory použije pro svoje data. Fajn řešení, pokud váš operační systém zmenšování partition podporuje, pokud partition jde zmenšit a pokud při tom nedojde k nějakým potížím. Programy, které byly od počátku tvořeny jako programy pro šifrování systému, toto mohou řešit mnohem elegantněji.

Totéž v bledě modrém platí pro zavaděč: Pokud má být zašifrovaný operační systém, musí existovat nějaký zaváděcí program, který se spustí ještě před OS, zeptá se na heslo a bude provádět základní dešifrování až do okamžiku, kdy se spustí standardní dešifrovací ovladač. Právě pro tyto zavaděče je určen master boot sector (MBR). Problém je jen v tom, jak do 512 bajtů tohoto sektoru (odmysleme teď od toho, že MBR obsahuje i údaje o partitionách, které by bylo vhodné nepřepisovat) vměstnat dotaz na heslo, dešifrovací algoritmy atd. – to prostě nejde. TrueCrypt to opět řeší přímočaře – prostě předpokládá, že volný je nejen MBR, ale celá první stopa, což je u dnešních disků typicky 32 KB – do toho už se potřebný kód nacpat dá. Potíž ovšem je v tom, že zdaleka ne každý disk musí mít stopu dlouhou 32 KB a zdaleka ne vždy musí být tato stopa volná – běžně ji využívají také programy pro výběr operačního systému nebo některé ochrany proti kopírování (což je z jejich strany pěkná blbost, ale pokud takto chráněný program potřebujete, tak vám vědomí toho, že „to je pěkná blbost“, není nic platné). A i kdyby ano – 32 KB není zase tolik, aby se do nich vešlo všechno, co je potřeba. TrueCrypt to třeba řeší řadou omezení, že například nemáte na výběr ze všech algoritmů pro hashování hesla, ale musíte použít RIPEMD160, nebo že nejsou podporovány tokeny a keyfiles.

Dalším potenciálním problémem je velikost dostupné paměti. TrueCrypt běží v reálném režimu, tudíž má k dispozici jen 640 KB paměti, o které se ještě musí dělit s jednotlivými BIOSy, tabulkou interruptů atd. Proč ne, se 640 KB jsme si na PC museli vystačit dlouhá léta a taky se to dalo, i když nad tím programátoři často skřípěli zubama. TrueCrypt ovšem žádné speciální postupy nepoužívá – v souladu se svým chováním u diskových oblastí prostě předpokládá, že se do prostoru vejde, a neřeší případy, když ten předpoklad splněn není.

Důsledek je ten, že u TrueCryptu uživatel nikdy neví, na čem je. Buď bude mít štěstí, jeho systém splní všechny předpoklady TrueCryptu a šifrování pojede jako po másle. Nebo štěstí mít nebude a pak nebude moci TrueCrypt pro šifrování systému použít.

Pokud spadáte do první kategorie, pravděpodobně vám TrueCrypt bude sloužit stejně dobře jako komerční programy, ne-li lépe – TrueCrypt jasně vede v dokumentaci (skvělá a podrobná, navíc je k dispozici i zdrojový kód, kdyby bylo třeba řešit nějakou zvlášť velkou katastrofu), v záchranných procedurách (systémový disk jde připojit „zvenku“ jako normální šifrovaný kontejner), samozřejmě v ceně. Umí nejlepší šifrovací algoritmy a umí je i kombinovat do kaskád, pokud chcete být chráněni i proti (v tuto chvíli teoretickému) případu, že AES jednoho dne bude prolomen. Pokud v něm není backdoor, neznám program více dbající na ochranu uživatele.

I pokud vám TrueCrypt funguje, musíte se však smířit s určitými omezeními. O omezeném výběru hashů už jsem psal, ale to je celkem jedno – pro účely TC lze použít skoro jakýkoliv hash, včetně mnoha prolomených. Nepodpora tokenů a keyfiles zamrzí, ale to také nejsou věci, které by většinu uživatelů trápily. TrueCrypt nepodporuje RAID ani dynamické svazky, takže tady by problém být mohl – a speciálně je třeba s ním počítat v případě, že máte v počítači víc řadičů (např. vedle na desce integrovaných dvou standardních řadičů ještě jeden přídavný s lepšími funkcemi), kdy už se můžete dostat do potíží s dostupnou pamětí. S dynamickými disky se zatím člověk tolik nesetká, do budoucnosti je však třeba s nimi počítat – mimo jiné proto, že tradiční partition table je omezena na disky do kapacity 2TB, které už jsou k dispozici dnes.

Komerční programy vesměs nabízejí různé drobné funkcionalitky, které potěší, ale dalo by se obejít i bez nich nebo je lze řešit jinými způsoby (např. víc přístupových hesel k jednomu disku, lepší možnosti řízení, které disky se připojí hned při bootu, nebo automatické přihlášení do Windows). Obvykle k nim ale dostanete i něco, co u TrueCryptu není – podpora výrobce. A to může být velmi podstatný důvod pro volbu komerčního softwaru – když se dostanete do potíží, máte slušnou šanci, že vám výrobce pomůže. U TrueCryptu nic takového nemáte – nanejvýš můžete zkusit štěstí v diskusním fóru, kde se vám – když budou chtít – pokusí poradit další uživatelé. Ti ovšem dokáží poradit s běžnými opakovanými problémy, těžko se zvláštnostmi týkající se třeba konkrétní hardwarové nebo softwarové konfigurace.

Otázkou ovšem je, jestli to všechny stojí za 100 až 150 Euro, které stojí komerční programy. Pro firmu asi ano. Pro domácnost? Těžko říct. Osobně se přikláním spíš k „ne“ a TrueCrypt bych asi použil také – pokud bude s mojí konkrétní konfigurací fungovat.

Podobné příspěvky:

14 komentářů “TrueCrypt a šifrování operačního systému”

  1. avatar na-místě napsal:

    Děkuji za ochotu

  2. avatar pepak napsal:

    To hřesvědčení je v podstatě správné. Jde o to, že při běžném šifrování TrueCrypt prostě naplní partition náhodnými daty, vytvoří jí rozumnou hlavičku a pak vnitřek zrychleně zformátuje. Při in-place šifrování místo zapisování náhodných dat vždycky přečte původní data, zašifruje je a zase je zapíše na původní místo. Z uživatelského hlediska je hlavní rozdíl v tom, že in-place šifrování zachovává data, ale je méně bezpečné – jak z hlediska plausible deniability (in-place se vylučuje se skrytými oddíly), tak z hlediska přežití dat (vzhledem k tomu, jak je TrueCrypt udělaný, to vyžaduje napřed zmenšení té původní partition, a to je pochopitelně potenciálně problémový krok).

  3. avatar na-místě napsal:

    Nevěděl byste náhodou, jak vyjádřit „šifrování na místě“ (encryption in-place)? Třeba i negací, co není „šifrování na místě“, kdy se nedá použít, nebo poskytnout aspoň příklad. Nemohu se zbavit přesvědčení, že jde o šifrování „z fleku“, tedy nikoliv tak, že se data nejprve odstěhují, pak se vypreparuje např. particie (tedy včetně předpřípravy vyplněním náhodnými daty) a vlastní data se pak v režinu šifrování nasypou zpět. Prostě nějak tuším, ale nemám to potvrzené, že šifrování „na místě“ prostě daný obsah zašifruje ihned bez toho odstěhování a navrácení. Děkuji za ochotu

  4. avatar abc napsal:

    Tak sifrovani kontejneru na tom raidu jde normalne. Sifrovat cely system jsem nestihl, server sel hned do produkce. Ted uz do toho vrtat nemuzu. 🙁

  5. avatar Danoboss napsal:

    http://www.truecrypt.org/docs/?s=truecrypt-volume No podľa tohto sa zas zdá, že Truecrypt priamo hovorí, že podporuje dynamické zväzky a raid, tak teraz si už vážne nie som istý. V každom prípade ten moje dva nesystémové disky v raide 1 som celé zašifroval a zatiaľ to ide. Ešte uvažujem, že by som spustil nejaký linux, ktorý mi tie disky bude ukazovať ako dva ničím nespojené a porovnal či je na diskoch skutočne to isté. To ale bude chcieť inštaláciu truecryptu na Linux aby som disky mohol pripojiť, takže sa mi zatiaľ do toho moc nechce.

  6. avatar pepak napsal:

    Myslel jsem to hlavně tak, že se z toho nedají odvozovat žádné obecnější závěry. Prostě když to bude fungovat, tak to funguje na téhle konkrétní hardwarové a softwarové sestavě a na čemkoliv jiném to už fungovat nemusí (ale může). Pro ten jeden konkrétní případ to pochopitelně užitečná informace je.

  7. avatar abc napsal:

    SP nejsou tak cato, novy OS taky ne, vymena MB nebo radice se taky tak casto nedeje. A pokud se kvalitne zalohuje, tak bych v tom zas az takovy problem nevidel.

  8. avatar pepak napsal:

    Trochu problém je, že nemůžeš dostat pozitivní odpověď. Když to bude fungovat, tak víš akorát to, že na tomto konkrétním počítači s tímto konkrétním operačním systémem a jeho nastavením to funguje. Nevíš nic o tom, jestli to bude fungovat zítra, až nahraješ nový service pack, pozítří, až nainstaluješ nový OS, nebo za týden, až vyměníš základní desku. Jedinou jednoznačnou odpověď dostaneš, pokud to fungovat nebude 🙁

  9. avatar abc napsal:

    Tak toto mam uz delsi dobu chut vyzkouset. Chovani TC na nejakem RAIDu. Chystam se takto zahoret jeden SUN s LSI HW radicem a SAS disky v RAIDu 1. Dam vedet jak jsem dopadl, ale uz ted mi neco rika, ze to asi nepojede. 😀

  10. avatar Danoboss napsal:

    No po tvojej rade a Synopsiho zážitku s Truecryptom a Windowsom 7 si radšej pred samotným šifrovaním ešte veľmi dobre zvážim čo na tých diskoch mám (veľmi dôležité súbory mám zálohované aj tak ale prísť o nejaký seriál ktorý má 300 epizód a k tomu dlho zháňané presne pasujúce titulky). Diky za info.

  11. avatar pepak napsal:

    Je třeba rozlišovat tři možnosti: podporu RAIDu (výrobce přímo deklaruje, že s RAIDy počítá a že by s nimi program měl fungovat), nefunkčnost s RAIDem (výrobce přímo deklaruje, že jeho software s RAIDem nechodí a když do toho přesto půjdeš, tak se nemáš divit, až přijdeš o data) a mlčení o RAIDu (výrobce neříká nic; program s RAIDem může fungovat a nemusí, výrobce od toho tak jako tak dává ruce pryč). TrueCrypt patří do té třetí kategorie. U nesystémového disku a HW RAIDu (včetně „fake-HW“, což je případ Intel Matrix Storage) bych vcelku očekával, že by fungovat mohl; u systémového disku a/nebo čistě SW RAIDu (co umí Windows na dynamických diskách) bych si to napřed vyzkoušel na prázdném disku 🙂

  12. avatar Danoboss napsal:

    Ahoj, tvoje články o bezpečnosti sú skutočne zaujímavé a zaoberajú sa vecami ktorými sa iné blogy príliš nezaoberajú. Čítal som veľa recenzii na truecrypt viac menej na jedno brdo, čo všetko dokáže, ale páči sa mi že ty si našiel aj tie zápory. To isté sa týka výborného článku o zabezpečených usb kľúčoch. Čo ma ale na tomto článku prekvapilo, že vravíš, že truecrypt nepodporuje raid. Asi myslíš, iba raid na systémovom disku. Hulan truecrypt testoval na raid 5 ale on má hw radič takže asi nič, ale aj synopsi testoval a tvrdí že má raid 0 a nespomínal špeciálny hw radič. Si si týmto svojim tvrdením o nepodpore raidu istý? Konkrétne chcem truecryptom zašifrovať systémový non raid disk ale mám v počítači aj raid 1 s dvoch ďalších diskov a sú „zraidované“ tým klasickým dodávaným intel matrix raidom a jeho funkčnosť sa mi hlási ešte pred začatím bootovania windowsu. Doska je Asus P5Q-E (iP45/ICH10). Myslíš, že by sa s tým mohlo niečo stať?

  13. avatar pepak napsal:

    I am almost certain you could get rsync to backup your TrueCrypt volumes, if you told it to check file contents and not just time/size. The reason is, TrueCrypt intentionally preserves modification/access time to improve plausible deniability.

    Also, I am almost certain it has a setting NOT to maintain time/date, somewhere, in case you are not concerned with PD.

  14. avatar roger64 napsal:

    I use Truecrypt for quite a long time. I did not try it for a full partition though but only for sensitive data, i.e. a custom-made 50 MB volume.

    I realized that you need a special backup program for it, in Linux for example, you need to use cp and not rsync. This last program does not notice any change in the TrueCrypt volume.

    If you wish to use only rsync for your backup you need to make a backup when the TC volume is open, which is another thing…

    OK it’s not a Truecrypt drawback, but it seens Truecrypt users should be warned about it.

Leave a Reply

Themocracy iconWordPress Themes

css.php