Šifrovaný filesystém, díl první - soubor

Obrázek uživatele mira

V tomto díle si ukážeme, jak vytvořit šifrovaný filesystém v souboru.

Výhody

  • Snadno se zálohuje. Není nic snazšího, než vytvořit soubor o velikosti 4GB a ten jednou za čas vypálit na DVD.
  • Snadno se kopíruje z místa na místo. Se souborem je mnohem jednoduší manipulace než z celým filesystémem (diskem). Veškerá data i nastavení práv jsou pěkně pohromadě jako v krabičce od sirek.

Nevýhody

  • Soubor nejde jednoduše zvětšit. Dojde-li místo, nezbývá než vytvořit nový šifrovaný soubor a do něj data přesunout.
  • Poškodí-li se soubor, přišli jsme o všechno.

Některé systémy (např. Mac OS X) umožňují vytvořit nafukovací soubor, tzv. sparse image. V praxi je v něm pak tolik volného místa, kolik je místa na samotném disku. Z osobní zkušenosti mohu říct, je to maximálně bezpečné. Po dvou dnech používání jsem se ke svým datům nedostal ani já sám.

Vytvoření souboru

$ mkfile -n 4700m $HOME/private.dat

Zašifrování

$ pfexec lofiadm -a $HOME/private.dat -c aes-256-cbc
Enter passphrase: 
Re-enter passphrase: 
/dev/lofi/1

V mém případě mi lofiadm přidělil hned první volné blokové zařízení; /dev/lofi/1 se kterým budu dál pracovat.

Vytvoření souborového systému

Na výběr máme dvě možnosti. UFS nebo ZFS. V tomto prvním díle použiji UFS, protože to je pro názornost ukázky prostě jednoduší. Samotnému ZFS se budu zabývat v druhém díle. Pokud by i přesto měl někdo touhu vytvořit ZFS v souboru, není na tom nic složitého. S /dev/lofi/1 pracujte jako s diskem a pomocí zpool create si vytvořte ZFS. V případě zájmu tuto kapitolu později doplním.

Tak, šifrovaný soubor máme připojený na /dev/lofi/1, jdeme na věc.

$ pfexec newfs /dev/rlofi/1
newfs: construct a new file system /dev/rlofi/1: (y/n)? y
/dev/rlofi/1:	9625200 sectors in 16042 cylinders of 1 tracks, 600 sectors
	4699.8MB in 126 cyl groups (128 c/g, 37.50MB/g, 4800 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
 32, 76832, 153632, 230432, 307232, 384032, 460832, 537632, 614432, 691232,
 8908832, 8985632, 9062432, 9139232, 9216032, 9292832, 9369632, 9446432,
 9523232, 9600032

Pokud budeme šifrovaný soubor připojovat přímo do svého domácího adresáře, nezapomeneme vytvořit složku.
$ mkdir $HOME/private

Připojení

$ pfexec mount -F ufs /dev/lofi/1 $HOME/private
$ df -h | grep private
$ /dev/lofi/1           4.6G  4.7M  4.5G   1% /export/home/mira/private

Opakované připojení

V případě, že připojujeme šifrovaný soubor na jiném, právě nezabaveném počítači, je třeba nejprve zavolat lofiadm úplně stejně, jako když jsme šifrovaný soubor vytvářeli.

$ pfexec lofiadm -a $HOME/private.dat -c aes-256-cbc
Enter passphrase: 
Re-enter passphrase: 
/dev/lofi/1

Změna práv

Jako jakýkoliv jiný disk, standardně má nastavená práva pouze pro roota. Proto si přivlastníme jeho obsah.

$ pfexec chown $(whoami) $HOME/private

Odpojení

$ pfexec umount $HOME/private
$ pfexec lofiadm -d /dev/lofi/1

A nyní je to rutina. Lofiadm, mount, umount. lofiadm.