Kryptograficzny System Plików pod Linuxem - Jak To Zrobić
Autor: Alexander O. Yuriev, alex@bach.cis.temple.edu
WWeerrssjjaa ppoollsskkaa:: KKrrzzyysszzttooff GG.. BBaarraannoowwsskkii KKGGBB@@rruubbiikkoonn..nneett..ppll
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.
11.. WWpprroowwaaddzzeenniiee
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.
22.. OO CCFFSS
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
.
33.. KKOOMMPPIILLAACCJJAA II IINNSSTTAALLAACCJJAA CCFFSS..
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 .
Olaf podpisał zmodyfikowane archiwum. Podpis PGP dla zmodyfikowanej
wersji cfs-1.1.2 można otrzymać z: ftp.mathematic.th-darmstadt.de
.
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)
44.. TTWWOORRZZEENNIIEE KKAATTAALLOOGGUU CCFFSS
Ż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, TTYYLLKKOO 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".
55.. OOCCHHRROONNAA CCFFSS
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.
55..11.. ZZNNAANNEE PPRROOBBLLEEMMYY ZZ CCFFSS
W tym momencie jedyny znany problem, to komunikat "Permission denied",
kiedy próbujesz dostać się do plików na płycie CD.
66.. PPOODDZZIIĘĘKKOOWWAANNIIAA
Niżej wymienieni ludzie przyczynili się do powstania tego dokumentu:
Topher Hughes z Dickinson College, Elie Rosenblum z Montgomery Blair
High School, Mario D. Santana z Florida State University, Daniel P
Zepeda i Olaf Kirch.
====================[poczÄ…tek pliku cfsfs]======================
#!/bin/sh
#
# $Header: /Secure/secure-doc/linux/CFS/RCS/CFS-Doc,v 1.
4 1996/03/15 04:49:37 alex Exp alex $
#
# cfsfs Kryptograficzny System Plików
#
# Autor: Alexander O. Yuriev
#
# Derived from cron
# Source function library.
. /etc/rc.d/init.d/functions
# See how we were called.
case "$1" in
start)
echo -n "Uruchamianie Kryptograficznego Systemu Plików: "
if [ -x /usr/local/sbin/cfsd ]; then
/usr/local/sbin/cfsd > /dev/null
/bin/mount -o port=3049,intr localhost:/.cfsfs /securefs
echo "done"
else
echo -n "Nie zainstalowano poprawnie Kryptograficznego Systemu Plików"
fi
touch /var/lock/subsys/cfsfs
;;
stop)
echo -n "Zamykanie Kryptograficznego Systemu Plików: "
umount /securefs
killproc cfsd
echo
rm -f /var/lock/subsys/cfsfs
;;
*)
echo "Użycie: cfsfs {start|stop}"
exit 1
esac
exit 0
====================[koniec pliku cfsfs]======================
77.. DDOODDAATTEEKK AA
Jak najwygodniej posługiwać się CFS...
Copyright (C) 1997 by Krzysztof G. Baranowski (KGB@rubikon.net.pl)
Ponieważ ciągłe używanie komend "cattach","cdetach" i przechodzenie
pomiędzy wieloma odległymi od siebie katalogami może być na dłuższą
metę męczące i może zniechęcić użytkownika od używania CFS,
postanowiłem napisać ten dodatek, w którym przedstawię naprawdę bardzo
proste porady, dzięki którym będzie można zhumanizować pracę z CFS.
A zatem zacznijmy od początku. Najwygodniej jest utworzyć w domowym
katalogu użytkownika ukryty katalog, w którym będziemy trzymać
wszystkie zakodowane pliki. Wiąże się to jednak z ryzykiem. Bo jeżeli
ktoś pozna nasze hasło dostępu to będzie mógł swobodnie manipulować
naszymi plikami.
Z drugiej strony posiadanie wielu katalogów może przyprawić
użytkownika o ból głowy, gdyż będzie on musiał zapamiętać ogromną
ilość haseł. A minimalna długość hasła dostępu do każdego katalogu
wynosi 16 (szesnaście) znaków. ;-)
Pozostańmy więc przy jednym katalogu. Zatem piszemy:
/home/kris$ cmkdir .xfiles
Zakładam, że użytkownik ma login: kris, a jego katalog domowy to
/home/kris i używa bash'a jako domyślnego shella. Następnie CFS
poprosi nas o hasło, które musi składać się przynajmniej z 16 znaków.
Po weryfikacji hasła nasz tajny katalog ".xfiles" zostanie utworzony:
Następnie dopiszmy dwa aliasy do pliku ".bashrc":
alias dekoduj='cattach /home/kris/.xfiles tajne'
alias koduj='cdetach tajne'
W tym przypadku katalog, w którym będziemy mogli przeglądać odkodowane
pliki posiada nazwę "tajne", a jego scieżka dostępu to:
/securefs/tajne.
Oczywiście nazwę możemy sobie wybrać dowolną. :-)
Następnie w naszym domowym katalogu utwórzmy dołączenie symboliczne do
katalogu /securefs/tajne za pomocÄ… komendy:
/home/kris$ ln -s /securefs/tajne tajne
Wybór nazwy dołączenia także zależy od użytkownika. I to wszystko. Od
tej pory używanie CFS staje się dziecinnie proste.
Jeśli chcemy dostać się do naszego zakodowanego katalogu wpisujemy:
/home/kris$ dekoduj
i podajemy hasło. Komenda "cd tajne" od razu przenosi nas tam gdzie
trzeba, gdzie możemy buszować sobie do woli :-), a "cd .." przenosi
nas z powrotem do katalogu domowego. Proste i praktyczne. Po
zakończeniu pracy wpisujemy:
/home/kris$ koduj
I już nikt nie odczyta naszych danych, włącznie z nami, chyba że
użyjemy jeszcze raz komendy "dekoduj".
Na koniec mała uwaga. Kopiowanie, przenoszenie plików, przechodzenie
do katalogów będących pod kontrolą CFS może być trochę opóźnione.
ZwiÄ…zane jest to z enkrypcjÄ…/dekrypcjÄ… dokonywanÄ… w czasie
rzeczywistym. No to bawcie siÄ™ dobrze.
Wyszukiwarka
Podobne podstrony:
krypto pl 1
krypto pl (2)
krypto pl 7
krypto pl
krypto pl 4
krypto pl
krypto pl 2
krypto pl (3)
krypto pl 6
krypto pl 5
krypto pl 5 zsceavt2letcao4lswslfdrd6uquoebt5cqc7ha
krypto pl 3
wil pl labor krypto osiagn
więcej podobnych podstron