Cryptographic filesystem
$SUBJ je IMHO vyborna vec, ale ne prilis znama. Pokud nekdo kryptuje, tak vetsinou "zaheslovanim" nejakeho zipu, raru, ci arjcka (btw, slysel jsem, ze nejaka banka pred nekolika lety pouzivala pri prenosu dat modemem JEN A POUZE zaheslovane zipy :-)). Nekteri pouzivaji k crypteni dat PGPcko, nebo podobny soft. Nevyhoda teto metody je, ze pri pouziti kodovanych dat je musite nejprve odkodovat a nakonec zase zakodovat. To cini linym lidem (napr. ja) problemy a tak je potreba pouzit online kodovani. Vyhoda offline metody je vyskoa rychlost - data se de/encryptuji jen 1x. Nevyhoda je to, ze kdyz nekdo prerusi vasi praci (vypne elektrinu...) data na disku zustanou dekodovana. Vyhodou online cryptovani je, ze na disku mate jen kodovana data. Ovsem i zde je nebezpeci ziskani nekodovanych dat, napriklad z pameti nebo swapfile. Pokud jste rootem na stroji s cfs, riziko je mnohem mensi.

Implementaci cryptofs je vice, znam 4. Dva pracuji jako nfs servery, jeden jako rozsireni filesystemu (AFAIK to bylo pro ext2, ale videl jsem to dost davno) a nakonec posledni jako driver (takze se cryptuje cely disk). Posledni reseni je pro multi-user unix zcela nevhodne. Druhou metodou se zde take nebudu zabyvat, nebot' je znacne zavisla na typu unixu a filesystemu. Tuto metodu kodovani dat pouzivaji NTcka a ten zminovany cfs/ext2. Pouziti cfs pres nfs ma nekolik vyhod: mnohem lepe se implementuje a portuje. Cryptovana data muzete mit ulozena na jakemkoliv filesystemu, ktery hostitelsky unix podporuje (napr. tedy zase na dalsim cryptovanem fs, nebo treba pres nfs na druhe strane zemekoule). CFS MUZETE MIT NAMOUNTOVANY SAMOZREJME JEN NA POCITACI, KDE BEZI SAMOTNY cfsd!

Dale se budu zabyvat pouze implementaci cfs by Matt Blaze (mab@research.att.com), kterou si muzete stahnout z ftp://ftp.mathematik.th-darmstadt.de/pub/linux/okir/. cfs pouziva symetricke sifrovani. Konkretne jde o trochu pozmeneny CBC-DES, nebo 3-DES (zase v CBC modu). Dle autora neni problem do cfs dopsat jakoukoliv dalsi sifru, takze pokud se bojite, ze vam nekdo 56bitovy des crackne...

Pojdme se podivat na praxi; po kompilaci mate na disku nekolik programu:


Instalace je velmi jednoducha: Nejprve vyrobte adresar '/.cfsfs', ktery bude exportovany, a adresar do ktereho si namountujete nfs (napr. '/crypt'). Prvni adresar by mel mit mod 000 a ownera root:root. Zadejte jej do /etc/exports, aby byl pristupny jen pro localhost. Nyni nastartujte cfsd a namountujte /crypt (napr.
mount -o port=3049,intr localhost:/.cfsfs /crypt
). Cfsd je jiz nainstalovany a staci jen vytvorit cryptovane adresare. To se dela prikazem cmkdir [jmeno]. Musite zadat minimalne 16ti znakove heslo, kterym se budou data cryptovat. Pokud chcete pracovat s timto adresarem, staci zadat cattach [jmeno1] [jmeno2], tedy napr cattach ~/secret mhi. V adresari /crypt (kde je namountovany cfs) se po chvilce objevi adresar mhi, ve kterem je dekodovany obsah adresare ~/secret. Se soubory v /crypt/mhi muzete jakkoliv pracovat, na disk se data ukladaji do adresare ~/secret, samozrejme kodovana a to vcetne jmen souboru. Priklad:
mhi:~/secret# ls -la
total 19
drwxr-xr-x 3 root root  1024 Oct 11 18:21 .
drwxr-xr-x 8 root root  1024 Oct 11 13:14 ..
-rw-r--r-- 1 root root     8 Oct 10 12:52 ...
-rw-r--r-- 1 root root     1 Oct 10 12:52 ..c
lrwxrwxrwx 1 root root     8 Oct 11 18:03 .pvect_0f046b0fe46fe2ec -
lrwxrwxrwx 1 root root     8 Oct 11 18:21 .pvect_eb824c7fb5f6d065b
-rw-r--r-- 1 root root    31 Oct 11 18:03 0f046b0fe46fe2ec
drwxr-xr-x 3 root root  2048 Oct 11 18:05 2dae624977901f2c
-rw------- 1 root root 12288 Oct 11 19:18 eb824c7fb5f6d065b537b6e4
mhi:~/secret#
Adresar /crypt/mhi samozrejme vypada "normalne". V adresari ~/secret jsou zajimave dva soubory: '...' a '..c'. Soubor '...' se pouziva na verifikaci hesla a soubor '..c' obsahuje cislo udavajici typ sifry. Nechapu, proc to vsechno neni v jednom souboru. Ostatni soubory jsou jiz data. Cryptovana data "odmountujete" pomoci cdetach [jmeno], kde jmeno je jmeno adresare z /crypt (v mem pripade 'mhi'). Rychlost cfs je slusna, pokud se nerozhodnete cryptovat cely disk.

A co ne-unixove systemy? I pod ne existuji cryptovaci programy.