Používání šifrovaných souborových systémů

Supportní databáze (jsj_crypto_filesystem_mini_howto)
Platí pro

SuSE Linux: Od verze 7.2

V současnosti jení možné provést konfiguraci širovaného souborového systému pomocí YaST2. Proto je třeba tuto konfiguraci provádět ručně.

Dotaz:

Jak je možné provést konfiguraci šifrovaného souborového systému?

Postup:

Nejdříve je třeba nahrát jaderný modul se šifrovacími algoritmy příkazem:
modprobe loop_fish2
Algoritmus Twofish je v současnosti jediný, který je součástí SuSE Linuxu. Všechny ostatní algoritmy nejsou dostatečně bezpečné a jsou dokumentovány úspěšné pokusy o prolomení šifry nebo je šifrovací algoritmus chráněn speciálními licencemi.

Existují dvě možnosti, jak vytvořit šifrovaný souborový systém:
  1. Zašifrovat celý diskový oddíl
  2. Použít pro šifrování regulární soubor

Šifrování celého diskového oddílu

Nejdříve je třeba konfigurovat programovou smyčku (loop), poté vytvořit souborový systém a nakonec ho připojit. Budeme v tomto příkladu předpokládat, že budeme chtít šifrovat diskový oddíl /dev/hda3 a že tento diskový oddíl byl vytvořen již dříve.
Upozornění: všechny data, která se nachází na /dev/hda3 budou zničena
losetup -e twofish /dev/loop0 /dev/hda3
Nyní se dotazuje na heslo. Toto heslo bude použito pro zašifrování dat na souborovém systému. Toto heslo prosím nezapomeňte, protože je klíčem k souborům, které jsou uloženy na diskovém oddílu. Pokud toto heslo zapomenete, pak jsou všechna zde uložená data ztracena.
mkreiserfs /dev/loop0
mount -t reiserfs /dev/loop0 /encrypt_part
Nyní vytváříte na diskovém oddílu souborový systém Reiser, data budou šifrována Twofish algoritmem pomocí uvedeného hesla. Cesta k tomuto souborovému systému je v našem příkladu /encrypt_part (nezapomeňte se přesvědčit, že tento bod připojení existuje).

Používání regulárního souboru

Hlavním rozdílem oproti předchozímu případu je to, že zde používáme normální soubor na běžném souborovém systému, kde jsou uložena zašifrovaná data. Nejdříve je třeba tento soubor vytvořit.
dd if=/dev/urandom of=/tmp/cryptfile bs=1024 count=20000
losetup -e twofish /dev/loop1 /tmp/cryptfile
mke2fs /dev/loop1
mount -t ext2 /dev/loop1 /encrypt_file
Po příkazku losetup budete dotázáni na heslo, které bude použito pro zašifrování souboru.

V tomto příkladu obsahuje soubor /tmp/cryptfile zašifrovaný ext2 adresář veliký 20MB. Data jsou dostupná prostřednictvím adresáře /encrypt_file.

Odpojení šifrovaného souborového systému

Odpojení (umount) se provádí ve dvou krocích. Nejdříve je souborový systém odpojen příkazem
umount /encrypt_part
a následně je uvolněna používaná programová smyčka tak, aby bylo možné ji později opět použít:
losetup -d /dev/loop0

Automatické připojování během startu počítače

Pokud chcete, aby se šifrovaný souborový systém aktivoval automaticky během spouštění počítače, je třeba navíc vytvořit soubor soubor /etc/cryptotab a naplnit ho následujícím obsahem:
/dev/loop0  /dev/hda3       /encrypt_part  reiserfs  twofish  defaults
/dev/loop1  /tmp/cryptfile  /encrypt_file  ext2      twofish  defaults
Formát tohoto souboru je velmi podobný /etc/fstab. V prvním sloupci je název programové smyčky (loop), v druhé pak název diskového oddílu, resp. zařízení, kde jsou obsažena šifrovaná data. Ve třetím sloupci je pak uveden bod připojení (mountpoint) následovaný typem souborového systému. Pátý sloupec obsahuje název šifrovacího algoritmu a v posledním pak parametr připojování, které odpovídají parametrům v /etc/fstab. Popis jednotlivých parametrů je uveden v manuálových stránkách.

Nezapomeňte, že při připojování souborových systémů je třeba také uvést heslo! To musíte v každém případě vložit ručně. Systém čeká na vložení hesla!

Ruční připojování

Šifrované souborové systémy je možné připojovat také ručně. To ale naráží na ten problém, že příkaz mount je možné provést pouze jako superuživatel. Je možné to ale obejít tak, že nebudete vytvářet soubor /etc/cryptab a vytvoříte položku v /etc/fstab tak, jak je uvedeno níže.
V dosud uvedeném postupu jsme vycházeli z toho, že souborový systém může používat pouze uživatel root.
Abyste toto obešli, pak změňte vlastníka bodu připojení na požadované uživatelské jméno, např. linuxuserL
chown linuxuser /encrypt_file
Z důvodu bezpečnosti pak ještě upravte přístupová práva k tomuto bodu přpojení tak, abyste pouze vy mohli přistupovat k tomuto adresáři:
chmod 700 /encrypt_file
Nyní ale budeme provádět zápis do /etc/fstab. Do tohoto souboru napište následující:
/tmp/cryptfile /encrypt_file ext2 loop,encryption=twofish,noauto,user
Tento řádek se stará o to, že Po přihlášení již můžete příkazem
mount /encrypt_file
připojit po zadání hesla šifrovaný souborový sytém. Máte tak exkluzivní přístup k adresářové struktuře v /encrypt_file.

Pro odpojení souborového systému opusťte adresářovou strukturu /encrypt_file a použijte příkaz
umount /encrypt_file

Hesla

V současnosti není k dispozici možnost, jak dodatečně změnit heslo pro šifrovaný souborový systém. Jedinou možností je vytvoření nového šifrovaného souborového systému s novým heslem a následně zkopírovat všechny data ze staré do nové adresářové struktury. Následně pak můžete starý šifrovaný oddíl odstranit.

Je vždy velice dobré použít hesla delší než 8 znaků. Ale ještě lepší je použít automaticky vygenerované heslo, čímž se možnost rozlomení šifry minimalizuje.

Další informace

http://EncryptionHOWTO.sourceforge.net/
Klíčová slova: šIFRA, šIFROVáNí, KRYPTOVáNí, CRYPTO, SOUBOROVý SYSTéM, FILESYSTEM, KRYPTO, KRYPTOFILESYSTEM, VERSCHLUESSELUNG

Kategorie: Často kladené dotazy

SDB-jsj_crypto_filesystem_mini_howto, Copyright SuSE Linux AG, Nürnberg, Germany - Verze: 18. Jun 2001
SuSE Linux AG - Poslední změnu: 29. Apr 2002 provedl jsj (sdb_gen 1.40.0)