Šifrování disků



V dnešním článku bych vás rád seznámil s několika nejjednodušeji aplikovatelnými (ale samozřejmě účinnými a profesionálními) metodami šifrování, dozvíte se například jak připojit šifrovaný obraz disku jako znakové zařízení či disk, nebo jak šifrovat libovolný adresář, to vše “on-the-fly” (za letu nebo také transparentně). Bezpečnost především…

Úvod

Ačkoli každý z nás občas měl nějaká data, které chtěl skrýt (ať už ve správném a OPODSTATNĚNÉM patologickém schizofrenním paranoidním strachu před black-haty, veřejností, nebo policií), málo kdo se nějakým způsobem zabýval pokusem o jejich šifrování. Musím upozornit, ze těm, kdo potřebují na svém disku ukrývat nějaké věci, před svým nejbližším (převážně Linuxově negramotným) okolím, dostatečně postačí dát na začátek názvu adresáře tečku: mv pr0n .mami_sem_mi_nelez ;D, ale protože tady se zabýváme obraně před orgány s mnohem sofistikovanějšími technologiemi a znalostmi než má pravděpodobně někdo, kdo by mohl ve vašem počítači hledat materiály této povahy…

Přehled různých nástrojů


název/popis/algoritmy/deb/další/další zdroje

EncFS
– připojí zašifrovaný adresář do specifikovaného mountpointu, je postavený na FUSE
– AES, Blowfish, Blowfish-Compat
– ano (encfs + fuse, libfuse2, rlog, OpenSSL)
– já po instalaci musel ještě kompilovat FUSE ze staženého tarrballu (naleznete na oficiálním webu), pomocí balíčku libpam-encfs lze připojovat disky automaticky při přihlášení pomocí PAMu
Oficialní web

TrueCrypt
– připojí zašifrovaný obraz disku do specifikovaného mountpointu
– AES, Blowfish, CAST5 (CAST-128), Serpent, Triple DES, Twofish, kombinace předešlých
– ne
– Velikost zašifrovaného disku se nedá změnit, umožňuje brute-force útok (alespoň u slabých hesel), existuje verze pro Windows (pouze GUI) a přenosná pro flashdisky…
truecrypt.org, root.cz: úvod, více

CryptoLoop (LoSetup)
– Kryptografický wrapper mezi dvě znaková zařízení (nebo znakové zařízení a soubor)
– AES, XOR, (lze doplnit další, např. DES)
– ano – já (Etch – 1CD verze), jsem ho měl již předinstalovaný
– zastaralý, jednoduchý
Encryption HOWTO, man losetup
eCryptFS (SF) [Doplněno 1.11. 2oo7], systém ne nepodobný EncFS. Připojení oddílu ale probíhá takto:

# mount -t ecryptfs ~/crypt ~/crypt
pro používání bez roota potřebujete balíčky ecryptfs-userspace a ecryptfs-utils, pak se pravděpodobně opět mountuje přes dodanou utilitku pomocí FUSE. eCryptFS se sám označuje jako “An Enterprise-class Cryptographic Filesystem for Linux” a patří do rodiny GNUPGFS. S tímto systémem nemám žádné zkušenosti a uvádím ho jen pro úplnost.

Další informace
– Také jsou dostupné další kvalitní systémy jako dm-crypt a LUKS, nebo můžete šifrovat jednotlivé soubory nějakou jednoduchou utilitkou… Tyto možnosti jsem ale již tolik nerozebíral (vzhledem ke své spokojenosti s EncFS).
Wikipedia/List_of_cryptographic_file_systems
Wikipedia/Full_disk_encryption

Vše závisí jen na vašich konkrétních požadavcích a stupni důvěrnosti dat.

EncFS

Tento program jsem si vybral já, protože je nejpohodlnější a třeba narozdíl od také velmi kvalitního TrueCryptu má dynamickou velikost šifrovaného disku a tak nemusím řešit problémy s příliš malým, nebo příliš velkým diskem… Samozřejmě, že není pozadu ani co se týče bezpečnosti.

K připojení slouží program encfs: encfs ~/.crypt ~/crypt
První argument je adresář se zašifrovanými daty, druhý je ten, do kterého se připojí data dešifrovaná – pro čtení a zápis. Dešifrovaná data tedy nejsou fyzicky na disku a tedy se k nim nikdo jentak nedostane…

Při prvním spuštění budou zadané adresáře vytvořeny (pokud již neexistují), potom budete mít na výběr (nejlepším výběrem pro nás bude zadání znaku “p” – paranoidní nastavení (AES-256), zkušenější mohou dát “x” – vlastní nastavení, ovšem pokud nevíte jaký je rozdíl mezi různými algoritmy a jejimi obdobami, verzemi a jak má vypadat bezpečný klíč pro daný algoritmus, nebo prostě nemáte náladu nic řešit, použijte raději “p”). Na druhou stranu v “x” režimu lze například vypnout šifrování názvů souborů (nebezpečné!!! – útočník může zaměnit soubor, ke kterému nemá přístup s tím, který mu poskytujete dobrovlně) a spousta dalších nastavení.

Pak budete dotázáni na heslo (poprvé ho zadejte ještě jednou pro ověření)…

Dešifrovaný adresář odpojíte příkazem fusermount -u ~/crypt (kde adresář je mountpoint – tedy rozšifrovaná data)

Šťouralové si jistě všimnou, že v adresáři se zašifrovanými daty je soubor .encfs? (? = zřejmě číslo podverze – v mém případě EncFS 1.2.5 má soubor .encfs5), který obsahuje všecna nastavení šifrování našeho adresáře. Já dopručuji tento soubor pečlivě zazálohovat stejně dobře, jako si pamatujete heslo, je totiž pravděpodobné, že v případě jeho poškození přijdete o všechna zašifrovaná data!!!

[Doplněno 1.11. 2oo7]: EncFS obsahuje ještě dvě další utilitky, tou první je encfssh, která udělá pouze to, že vytvoří dočasný zašifrovaný adresář a otevře nový shell, jakmile ukončíte svojí práci v tomto shellu (např. Ctrl+D), tento adresář se smaže. Ve skutečnosti jde pouze o jednoduchý skript.

Další utilitkou je encfsctl, ta vám umožní provádět různé změny v nastavení a jiné pomůcky (změna hesla, jednorázový přístup k zašifrovaným souborům, atd..). Pro více informací viz. screenshot.

Screenshot z encfsctl:

harvie@harvie-srv:~$ encfsctl
encfsctl version 1.2.5
Usage:
encfsctl (root dir)
-- displays information about the filesystem, or
encfsctl info (root dir)
-- zobraz informace (Implicitní příkaz)
encfsctl passwd (root dir)
-- změnit heslo pro svazek
encfsctl autopasswd (root dir)
-- change password for volume, taking password from standard input.
No prompts are issued.
encfsctl showcruft (root dir)
-- ukázat nerozkódovatelná jména souborů ve svazku
encfsctl cat (root dir) path
-- decodes the file and cats it to standard out
encfsctl decode (root dir) encoded-name
-- rozkódovat jméno a ukázat jeho čitelnou verzi
encfsctl encode (root dir) [plaintext-name]
-- encodes a filename and print result
encfsctl export (root dir) path
-- decrypts a volume and writes results to path
encfsctl --version
-- vypiš číslo verze a ukonči běh

Example:
encfsctl info ~/.crypt

harvie@harvie-srv:~$ encfsctl info ~/.crypt

Version 5 configuration; created by EncFS 1.2.5 (revision 20040813)
Filesystem cipher: "ssl/aes", version 2:1:1
Filename encoding: "nameio/block", version 3:0:1
Key Size: 256 bits
Block Size: 512 bytes, including 8 byte MAC header
Each file contains 8 byte header with unique IV data.
Filenames encoded using IV chaining mode.
File data IV is chained to filename IV.

harvie@harvie-srv:~$

A na závěr screenshot z expertního režimu encfs:

harvie@harvie-ntb:~$ encfs ~/.crypt ~/crypt
The directory "/home/harvie/.crypt/" does not exist. Should it be created? (y,n) y
The directory "/home/harvie/crypt/" does not exist. Should it be created? (y,n) y
Creating new encrypted volume.
Please choose from one of the following options:
enter "x" for expert configuration mode,
enter "p" for pre-configured paranoia mode,
anything else, or an empty line will select standard mode.
?> x

Manual configuration mode selected.
The following cipher algorithms are available:
1. AES : 16 byte block cipher
-- Supports key lengths of 128 to 256 bits
-- Supports block sizes of 64 to 4096 bytes
2. Blowfish : 8 byte block cipher
-- Supports key lengths of 128 to 256 bits
-- Supports block sizes of 64 to 4096 bytes
3. blowfish-compat : algorithm compatible with EncFS 0.2-0.6
-- key length 160 bits
-- block size 64 bytes

Enter the number corresponding to your choice: 1

Selected algorithm "AES"

Please select a key size in bits. The cipher you have chosen
supports sizes from 128 to 256 bits in increments of 64 bits.
For example:
128, 192, 256
Selected key size: 256

Using key size of 256 bits
---------------- Zkráceno ----------------

THX2Ihrisko.org (EncFS quickstart by Wiro Wire)




Líbí se vám článek? Chcete se o něj podělit? Přidejte ho! (volba topclanky.cz nevyžaduje registraci)

Leave a Reply