Kryptograficzny System Plików pod Linuxem - Jak To Zrobić Autor: Alexander O. Yuriev, alex@bach.cis.temple.edu Wersja polska: Krzysztof G. Baranowski KGB@rubikon.net.pl v1.1 12 Maja 1997 W dokumencie opisano jak skompilować, zainstalować i ustawić Kryp tograficzny System Plików (zwany dalej CFS - przyp. tłumacza), który został napisany przez Matta Blaze z AT&T, pod Linuxa. 1. Wprowadzenie Następujące oświadczenie skopiowane zostało bezpośrednio z CFS 1.12 i opisuje zastrzeżenia co do używania CFS. ˇ Autorem tego oprogramowania jest Matt Blaze. ˇ Copyright (c) 1992, 1993, 1994 by AT&T. ˇ Zezwala się używać, kopiować i modyfikować niniejsze oprogramowanie bez żadnych opłat, pod warunkiem, że zostanie dołączona do wszystkich kopii oprogramowania pełna dokumentacja, uwagi i ostrzeżenia autora. ˇ To oprogramowanie podlega kotroli eksportu ze Stanów Zjednoczonych. ˇ Nie wolno eksportować go, w części lub w całości, albo pomagać w eksporcie, bez zgody rządu USA i pisemnego zezwolenia od AT&T. W szczególności nie wolno udostępniać żadnej części tego oprogramowania i jego nieograniczonych dystrybucji innym osobom, niż obywatele USA i Kanady. ˇ To oprogramowanie jest dostarczane "Takie jakie jest", bez żadnej gwarancji i ani autorzy, ani AT&T nie udzielają żadnej gwarancji jakiegokolwiek rodzaju dotyczącej dopasowania oprogramowania do jakichkolwiek potrzeb. ˇ Pomimo, że informacje w tym dokumencie uważa się za poprawne, ani autor, ani Laboratoria CIS, ani Uniwersytet Temple nie udzielają żadnych gwarancji i nie są odpowiedzialni za to, co się stanie kiedy będziesz stosował się do niniejszego instruktażu. Informacja zawarta w tym dokumencie jest udostępniana, taka jaka jest. 2. O CFS CFS umożliwia niezależne od aplikacji szyfrowanie/deszyfrowanie danych na powłoce struktury plików i nie wymaga modyfikacji kodu istniejącego już systemu plików, ani żadnych modyfikacji jądra systemu. Symetryczne szyfrowanie zawarte w głównym strumieniu CFS bazuje na zmodyfikowanym standardzie DES pracującym w trybie CBC, który czyni brutalny atak przeciwko 56-bitowemu kluczowi DES prawie niemożliwym. Struktura CFS zastępuje główny strumień DES, szyfrem Fast-DES albo jakimkolwiek innym szyfrem, w doskonały, bezpośredni sposób. Gdybyś był zainteresowany przeczytaj Białą stronę o CFS <ftp://bach.cis.temple.edu/pub/Papers/cfs.ps>. 3. KOMPILACJA I INSTALACJA CFS. CFS nie skompiluje się "samo" pod Linuxem. Podążaj za niniejszymi instrukcjami, jeśli chcesz uruchomić CFS na swoim Linuxie. Jest kilka metod osiągnięcia tego celu, ale najprostsza bazuje na modyfikacjach przeprowadzonych przez Olafa Kircha. Jego wersja CFS jest dostępna z: ftp.mathematic.th-darmstadt.de <ftp://ftp.mathematik.th- darmstadt.de/pub/linux/okir/cfs-1.1.2.tar.gz>. Olaf podpisał zmodyfikowane archiwum. Podpis PGP dla zmodyfikowanej wersji cfs-1.1.2 można otrzymać z: ftp.mathematic.th-darmstadt.de <ftp://ftp.mathematik.th-darmstadt.de/pub/linux/okir/>. W trybie jednego użytkownika, skompiluj cfs za pomoca komendy "make". (przeczytaj najpierw odpowiednie pliki, tzn. README, Changes itp. - przyp. autora). Po kompilacji, zainstaluj: cfsd, cdetach, ccat, cmkdir, cname i cattach do katalogu /usr/local/sbin - właścicielem tych plikow niech będzie root, a grupa, do której muszą one należeć to wheel. Nadaj plikom atrybuty 551. Dla bezpieczeństwa można wygenerować sumy kontrolne MD5, na czystych binariach. Następnie skopiuj te pliki razem z "md5sum", na media takie jak płyta CD, albo dyskietka i zabezpiecz ją przed zapisem. Utwórz katalog /.cfsfs, który będzie używany przez serwer CFS. Niech właścicielem katalogu będzie root, grupa root, a jego atrybuty niech wynoszą: 000. Utwórz katalog /securefs, ktory stanie się korzeniem drzewa Kryptograficznego Systemu Plików. Dodaj nastepującą linię do /etc/rc.d/rc.local: echo -n "Inicjacja Kryptograficznego Systemu Plików: " if [ -x /usr/local/sbin/cfsd ]; then /usr/local/sbin/cfsd > /dev/null echo -n "cfsd " /bin/mount -o port=3049,intr localhost:/.cfsfs /securefs echo -n "loopback" echo "done" else echo "Nie zainstalowano poprawnie Kryptograficznego System Plików" fi Użytkownicy Red Hata powinni dodać plik "cfsfs", który znajduje się na końcu tego dokumentu do katalogu /etc/rc.d/init.d. Następnie utworzyć dołączenie symboliczne "S65cfsfs" i umieścić go w odpowiednim katalogu startowym, np. rc3.d używając komendy: ln -s /etc/rc.d/init.d/cfsfs S65cfsfs we właściwym katalogu startowym. Następnie należy dodać linię: /.cfsfs localhost w pliku /etc/exports. Na końcu dodaj linię: portmap: 127.0.0.1 do pliku /etc/hosts.allow. Teraz powinieneś zrestartować komputer. Po jego uruchomieniu, użyj komendy mount żeby sprawdzić, czy CFS pracuje. Jeśli wszystko zadziałało, powinieneś zobaczyć nową następującą linię po wykonaniu komendy mount. localhost:/.cfsfs on /securefs type nfs(rw,port=3049,intr,addr=127.0.0.1) 4. TWORZENIE KATALOGU CFS Żeby utworzyć szyfrowany katalog o nazwie "sekret" użyj komendy: cmkdir sekret Zostaniesz poproszony o podanie i zweryfikowanie hasła. Jeżeli to sie uda, utworzony zostanie katalog "sekret", który pojawi sie w bieżącym katalogu. Katalog ten będzie zawierał zaszyfrowane dane, które będzie można normalnie przeglądać pod warunkiem, że dołączymy ten katalog do drzewa CFS. Żeby można było swobodnie korzystać z informacji zawartych w katalogu, trzeba dołączyć go do drzewa katalogów zarządzanych przez CFS za pomoca komendy: cattach sekret Tajne CFS poprosi Cię o podanie hasła dostępu. Jeżeli będzie się ono zgadzało z hasłem podanym przy tworzeniu katalogu "sekret", dane zawarte w tym katalogu będą dostępne w niezakodowanej formie w /securefs/Tajne, TYLKO dla użytkownika, który podał właściwe hasło dostępu. (nawet root nie może odczytać tych plików ;-) - przyp. tłumacza) Zauważ, że dołączenie katalogu do drzewa CFS, może zająć nawet minutę. (u mnie na P133/16MB RAM zajmuje nie więcej niż 5 sekund). Od tej pory możemy korzystać z katalogu /securefs/Tajne jak z każdego innego katalogu. Kiedy skończymy pracę powinniśmy użyć komendy: cdetach Tajne żeby uniemożliwić dostęp do danych. Komenda ta usuwa katalog "sekret" z listy katalogów zarządzanych przez CFS, co uniemożliwia odczytanie informacji w tym katalogu, gdyż są one zakodowane. Aby znowu umożliwić sobie dostęp do danych należy użyć komendy "cattach". 5. OCHRONA CFS Aby umożliwić użytkownikom dostęp do zaszyfrowanych danych, CFS wymaga od użytkownika hasła, które jest używane do wygenerowania zestawów kluczy. Zdobycie hasła przez niepowołane osoby pozwala intruzom odczytać zaszyfrowane dane, dlatego jest niezwykle ważne, aby użytkownik we własnym interesie chronił hasło dostępu. Istnieją dwie możliwości zdobycia Twojego hasła przez intruzów: 1. Sniffing 2. Atak przeciwko protokołowi. Informacje zawarte poniżej mogą zostać użyte, aby zmniejszyć prawdopodobieństwo skutecznego ataku przeciwko CFS. 1. Upewnij się, że binaria CFS są oryginalne: a. upewnij się, że: cattach, ccat, cmkdir, cname, cfsd i cdetach nie zostały zastąpione "koniami trojańskimi", które zapisują hasła dostępu, b. upewnij się, że CFS serwer (cfsd), nie został w jakiś sposób zmodyfikowany i że szyfruje dane poprawnie, c. atak przeciwko "cdetach" zazwyczaj wymaga małej modyfikacji kodu, która chroni klucze dostępu przed zniszczeniem i pozwala intruzowi uzyskać kontrolę nad zakodowanymi danymi. Najprostszym sposobem na upewnienie się, ze binaria nie zostały podmienione, jest zlinkowanie ich statycznie i umieszczenie na płycie CD. Inny sposób, to zlinkowanie statyczne, wygenerowanie sum kontrolnych za pomocą programu MD5 i umieszczenie ich na dyskietce zabezpieczonej przed zapisem. Przed użyciem CFS w systemie, zamountuj dyskietkę i sprawdź czy sumy kontrolne zgadzają się; w razie potrzeby zastępując podmienione programy ich oryginalnymi wersjami. 2. Uważaj na programy zapisujące do pliku dane wpisywane z klawiatury, tzw. keyboard grabbers i zawsze stosuj się do poniższych zasad: a. kiedy wpisujesz hasło w oknie xterm-a, upewnij się, że xterm jest oryginalny i używaj bezpiecznej klawiatury "Secure keyboard". To uniemożliwi przechwycenie hasła przez wyżej opisane programy, b. wpisuj hasła do terminali przyłączonych bezpośrednio do portów szeregowych systemu, gdy są one dostępne, c. upewnij się, że konsole (pty i tty) są ustawione tak, aby uniemożliwić innym odczytanie twojego hasła. 3. Nigdy nie wpisuj hasła poprzez sieć, nawet jeśli znajduje się ona za firewallem i wiesz, że nikt podłączony do sieci nie używa sniffera. Tyczy się to także sieci używających, tzw. scramble routers, ponieważ nie masz pewności, ze routery używają odpowiednio silnej enkrypcji, nie mają "tylnych drzwi" albo innych dziur, które pozwoliłyby intruzowi pokonać enkrypcję routera. Jeżeli jednak musisz podać hasło poprzez sieć, rób to tylko zaszyfrowanym kanałem pomiędzy hostami. (najbardziej znany i popularny jest (ssh) secure shell - przyp. autora) 4. Zawsze używaj komendy cdetach, kiedy nie pracujesz z danymi. Nawet kiedy przerywasz pracę na kilka minut. 5.1. ZNANE PROBLEMY Z CFS W tym momencie jedyny znany problem, to komunikat "Permission denied", kiedy próbujesz dostać się do plików na płycie CD. 6. ...
Porozmawiajmy.TV