TrueCrypt v6.3
Den před oficiálním vypuštěním Windows 7 vydali vývojáři TrueCryptu verzi 6.3. Vzhledem k tomu, že jednou z klíčových nových vlastností nového TrueCryptu je „plná podpora Windows 7“, lze se domnívat, že tato časová shoda není zcela náhodná :-). Já sice Windows 7 zatím neplánuji (resp. plánuji, ale odkládám, protože z nich mám obavy), ale už mě začala výrazně omezovat některá omezení starších TrueCryptů, takže jsem šest-trojku stáhl a vyzkoušel. Závěry? Střídavě zataženo.
Jednoznačně pozitivním faktem je to, že můj bugreport přinesl své ovoce a vývojáři obešli jedno nepříjemné omezení Windows XP, které se přímo dotýkalo právě TrueCryptu. Jde o to, že Windows XP (novější Windows už ne) za normálních okolností chybně pracují s velmi dlouhými soubory: až do velikosti 2TiB-1MiB-1B (2,199,022,206,975 bajtů) všechno funguje perfektně, ale jakmile přidáte jediný další bajt, Windows XP se začnou vzpouzet a při pokusu o čtení souboru začnou házet chyby („Ke zpracování tohoto příkazu není dostatečný prostor“). Problém je ve Win32 funkci CreateFile,
konkrétně v jejím parametru dwFlagsAndAttributes
– ve standardním nastavení, které používá skoro každý program včetně TrueCrypt GUI, Windows XP selžou. Dokonce na to existuje článek v Knowledge Base, tzn. není to bug, je to featura :-). Řešením je použít do dwFlagsAndAttributes
příznak FILE_FLAG_NO_BUFFERING
– to ovšem znamená, že si uživatel postižený příliš velkými disky, musí zkompilovat vlastní TrueCrypt – nebo použít verzi nejvýše 6.0a, kde se mountování kontejnerů děje právě v NO_BUFFERING režimu, takže všechno funguje (na rozdíl třeba od 6.2 a 6.2a). Každopádně ve verzi 6.3 je to opraveno.
(Chybu si mimochodem můžete vyzkoušet i v případě, že nemáte 2TB volného místa – stejný problém se projevuje i na sparse files o dané velikosti, bez ohledu na to, jestli na disku zaberou třeba jen pár set KB.)
Další zjištění už tak pozitivní nejsou. Stále existuje bug instalačního programu TrueCryptu, který se k souborům s příponou .tc
asociuje poněkud nešťastně – a pokud asociování vypnete, tak existující asociace pro jistotu smaže. Řešení je naštěstí docela jednoduché – po instalaci TrueCryptu stačí provést následující dva příkazy (samozřejmě s příslušně upravenými cestami):
ftype TrueCryptVolume="c:\program files\truecrypt\truecrypt.exe" /a /cn /q /v "%1" assoc .tc=TrueCryptVolume
(pokud to uložíte do .bat
souboru, je třeba zdvojit to procento na prvním řádku)
Další nepříjemná chyba, která tu s námi je také už pěkných pár verzí, se opět týká GUI: Z mě naprosto nepochopitelných důvodů nelze vytvářet zálohy hlaviček u kontejnerů, ke kterým nemá GUI právo zápisu. Přitom záloha hlaviček by měla kontejner pouze číst, není žádný rozumný důvod, proč by se do něj mělo i zapisovat. Ale prostě to nejde, autoři zapisovací přístup vyžadují. Pro mě je to dost problém, protože používám postup uvedený v článku Ochrana TrueCryptovského kontejneru a téměř veškerý zapisovací přístup jsem odstranil. Problém samozřejmě jde obejít: zálohování hlavičky je jednorázová záležitost, takže stačí dočasně povolit zápis, uložit hlavičku a pak zápis zase zakázat. Ale je to nepohodlné.
Podstatně horší je, že TrueCrypt ve verzi 6.3 tuto chybu rozšiřuje na mnohem víc operací, bohužel včetně mountování kontejneru: GUI si před mountováním ověří, jestli má ke kontejneru zapisovací přístup, a když ne, natvrdo zapne příznak „připojit v režimu ‚jen pro čtení‘ (read-only)“. To fakticky znamená, že celá myšlenka ochrany kontejneru, jak jsem ji popsal ve výše uvedeném článku, s TrueCryptem 6.3 padá. Pro mě jde ovšem o podstatnou věc – radši oželím podporu Windows 7, než abych oželel ochranu kontejnerů. TrueCrypt 6.3 jsem tudíž smazal a pokorně se vrátil k osvědčené verzi 6.0a.
Jsem zvědavý, jak se bude situace vyvíjet dál. Zatím jsem aspoň autorům nahlásil všechny tři výše uvedené chyby a budu se těšit, že budou opraveny – promptní oprava „2TB bugu“ ve mě vzbuzuje slušné naděje (chybu jsem hlásil asi tak před měsícem, když jsem opět upgradoval pole v NASu).
Takže asi jediná možnosť je kompletná zmena súčasného spôsobu šifrovania pevného disku a do toho sa im asi príliš chcieť nebude.
Tak samozřejmě, těžko předvídat budoucnost. Jsem si jistý, že další hashovací algoritmy by se do stávajícího kódu určitě ještě daly dodat bez větších problémů, ale s podporou keyfiles a zejména tokenů to vidím bledě. TrueCrypt je v tomto obětí svého přístupu, kdy je celý bootovací kód umístěn do první stopy disku, tedy maximálně do 63 (teoreticky 64, ale odporuje to specifikaci) sektorů (tzn. po odečtení partition tables něco kolem 32100 bajtů – a to je maximum, které nemusí být dostupné vždy).
Mňa by skôr zaujímalo, ako si kedysi písal ohľadne obmedzení pri šifrovaní bootovacieho disku, že tam môžeš mať len najzákladnejší hashovací algoritmus a že nemôžeš používať Tokeny, či keyfiles na USB kľúčoch, či toto nejako dokážu vyriešiť? Ty si písal o nedostatky miesta, takže riešením bude len to „vymyslieť nanovo“?