Przechowywanie poufnych
danych w GNU/Linuksie
Piotr Tyburski
Jedyną gwarancją
bezpieczeństwa ważnych
informacji jest stosowanie
zaawansowanych algorytmów
kryptograficznych. Linuksowe
narzędzia umożliwiają
szyfrowanie pojedynczych
plików, wybranych katalogów
czy nawet całych partycji.
Przyjrzyjmy się metodom
szyfrowania poufnych danych.
yobrazmy sobie następującą sytu- wykorzystać pakiet gpg (Gnu Privacy Guard),
ację: dostajemy nową pracę w fir- będący nowszym i publikowanym na licencji
Wmie zajmującej się projektowaniem GPL odpowiednikiem słynnego PGP (Pretty
urządzeń elektronicznych i ich oprogramo- Good Privacy). Oferuje on możliwość szyfro-
wania. Przy podpisywaniu umowy nie obej- wania zarówno asymetrycznego (z kluczem
dzie się bez złożenia podpisu pod dokumen- publicznym), jak i symetrycznego (patrz Ram-
tem o nazwie confidentiality agreement, wedle ka Szyfrowanie symetryczne i asymetryczne).
którego wszystkie informacje, jakie otrzymuje- Zacznijmy od takiej sytuacji: mamy ważną
my od firmy, bez względu na medium, są po- specyfikację nowego projektu zapisaną w pliku
ufne i podlegają ścisłej ochronie przed wycie- o nazwie DD32X.pdf. Chcemy ukryć jej treść
kiem do osób nieupoważnionych. Ostatni, dłu- przed niepowołanym dostępem. Wydajmy za-
gi akapit mówi co nam grozi, jeśli z naszej wi- tem następujące polecenie:
ny dojdzie do takiego wycieku.
Jednak aby pracować, potrzebujemy od $ gpg --output cyph1.1 --symmetric \
czasu do czasu zabrać ze sobą dokumenta- --cipher-algo TWOFISH DD32X.pdf
cję czy kod zródłowy; używamy do tego celu
swojego laptopa. Co się stanie, jeśli go zgubi- gpg zadaje nam pytanie o hasło, które będzie
my albo ktoś nam go ukradnie i znajdzie na je- zabezpieczać nasze dane, a następnie prosi
go dysku katalog z dokumentami naszpikowa-
nymi słowami poufne? Rozsądnie jest zabez-
Z artykułu nauczysz się...
pieczyć się przed taką ewentualnością zasta-
nówmy się więc, jak można to zrobić.
" jak za pomocą darmowych narzędzi zapewnić
kryptograficzną ochronę poufnych danych.
Szyfrowanie
Powinieneś wiedzieć...
pojedynczych plików
" powinieneś umieć korzystać z systemu Linux.
Jeśli poufnych plików mamy niewiele, zaś ich
rozmiar i ilość nie stanowią tajemnicy, możemy
14 www.hakin9.org Hakin9 Nr 6/2004
Podstawy
Przechowywanie poufnych danych
rm DD32X.pdf, nie jest bezpieczne.
Powoduje jedynie, że informacja
Szybki start szyfrujemy pojedynczy plik
o pliku zostaje usunięta ze struktur
Aby zaszyfrować pojedynczy plik, na przykład DD32X.pdf, wydajemy polecenie:
opisujących zawartość systemu pli-
$ gpg --output cyph1.1 --symmetric --cipher-algo TWOFISH DD32X.pdf
ków, lecz sama treść pliku pozosta-
je na dysku (to tak, jakbyśmy usu-
Zaszyfrowana wersja pliku zostaje umieszczona w pliku cyph1.1. Teraz możemy skaso-
nęli rozdział książki ze spisu treści,
wać jawną wersję pliku. Zróbmy to bezpiecznie:
lecz zapomnieli wyrwać z niej odpo-
$ shred -n 35 -z -u DD32X.pdf wiednie kartki). W efekcie odpowied-
nio zdeterminowany intruz może
Kiedy zechcemy odszyfrować plik, wystarczy wydać polecenie:
ukraść nasz dysk, a następnie przej-
rzeć jego niezajęty obszar i tam zna-
$ gpg --output DD32X.pdf --decrypt cyph1.1
lezć resztki ważnego pliku (przypo-
Powyższy przykład zakłada, że mamy zainstalowany pakiet gpg lub korzystamy mnijmy sobie choćby niedawną afe-
z Hakin9 Live. rę z dyskiem minister Jakubowskiej,
z którego w taki właśnie sposób od-
Szybki start tworzymy zaszyfrowany katalog
zyskano istotne informacje).
Aby stworzyć zaszyfrowany katalog, wydajemy polecenie:
Aby zabezpieczyć się przed taką
# encfs ~/.crypto ~/secret
ewentualnością, powinniśmy nadpi-
sać zawartość pliku. W tym celu wy-
Powoduje to utworzenie zaszyfrowanego katalogu ~/.crypto. Jego wersja rozszyfrowa-
damy polecenie:
na widoczna jest w katalogu ~/.secret (to w tym katalogu powinniśmy umieszczać pliki,
które chcemy chronić). Kiedy dostęp do zaszyfrowanego katalogu nie jest nam już po-
$ shred -n 35 -z -u DD32X.pdf
trzebny, odmontowujemy go poleceniem:
# fusermount -u ~/secret
Spowoduje to trzydziestopięcio-
krotne nadpisanie pliku śmieciami
Powyższy przykład zakłada, że mamy zainstalowany pakiet EncFS lub korzystamy
(-n 35), następnie zerami (-z), a na-
z Hakin9 Live.
stępnie jego usunięcie (-u).
Szybki start tworzymy szyfrowany system plików
Niestety, metoda ta nie jest sku-
Aby stworzyć szyfrowany system plików o wielkości 100 megabajtów, wydajemy po-
teczna dla systemów plików z jour-
lecenia:
nalingiem (ext3, ReiserFS, xfs, jfs).
Journaling wiąże się bowiem z za-
$ dd if=/dev/urandom of=crypto.raw bs=1k count=100000
# losetup -e aes-256 /dev/loop0 crypto.raw pisywaniem w osobnym miejscu
# mkfs.ext3 /dev/loop0
(w tak zwanym dzienniku ang. jour-
# losetup -d /dev/loop0
nal) dodatkowych informacji o zmia-
nach wprowadzanych w systemie pli-
Powyższe polecenia powodują utworzenie szyfrowanego systemu plików w pliku cryp-
ków (w systemie ext3 są to nie tylko
to.raw. Kiedy zechcemy w przyszłości korzystać z tego systemu plików, musimy pod-
informacje o strukturze systemu, ale
montować go poleceniem:
nawet same dane). Jest to wykorzy-
# mount -t ext3 crypto.raw /mnt/crypt -oencryption=aes-256 stywane w razie problemów z odtwo-
rzeniem spójności systemu plików.
System plików zostanie zamontowany do katalogu /mnt/crypt.
W tej sytuacji nie mamy gwarancji,
Przykład zakłada, że mamy odpowiednio skonfigurowane jądro i uaktualniony pa-
że wypełnienie pliku losowym cią-
kiet util-linux (dokładny opis w odpowiednim HOWTO patrz Ramka W Sieci) lub ko-
giem powoduje całkowite usunięte
rzystamy z Hakin9 Live.
jego poprzedniej treści systemy pli-
ków z journalingiem nie umożliwiają
o jego potwierdzenie. Hasło powinno opcji wykorzystany zostałby algo- całkowitego usuwania danych. Mimo
być skomplikowane i jednocześnie rytm domyślny, czyli CAST5. Pli- tych problemów korzystanie z pole-
łatwe do zapamiętania (patrz Ram- kiem wyjściowym miał być cyph1.1 cenia shred na pewno jest bezpiecz-
ka Hasła z dużą entropią). (--output cyph1.1). Warto zauważyć, niejsze niż zwykłe usuwanie plików
Przyjrzyjmy się wydanemu przez że gdyby plik o takiej nazwie już ist- przy użyciu rm.
nas poleceniu. Kazaliśmy gpg za- niał, program zapytałby, czy chcemy Kiedy po pewnym czasie zechce-
szyfrować plik DD32X.pdf korzy- go nadpisać. Żeby być konsekwent- my odszyfrować nasz plik, wydamy
stając z szyfrowania symetryczne- nym, należy teraz możliwie bez- polecenie:
go (--symmetric), używając do tego piecznie skasować wersję jawną.
algorytmu TWOFISH (--cipher-algo Zwykłe usunięcie pliku, na przy- $ gpg --output DD32X.pdf \
TWOFISH). Bez podania tej ostatniej kład przez wydanie polecenia --decrypt cyph1.1
2004 Hakin9 Nr 6/2004 www.hakin9.org
15
Wyszukiwarka
Podobne podstrony:
hakin9 5 04 atak jabber?mohakin9 6 04 testy penetracyjne?mohakin9 6 04 wykrywanie sniffingu?mohakin9 5 04 rozpoznawanie honeypotow?mohakin9 5 04?os obrona?mohakin9 5 04?maskowanie nadawcy?mohakin9 6 04 cisco ios?mohakin9 5 04 szelkod python?mohakin9 6 04 inzynieria odwrotna?mohakin9 5 04 skanowanie portow?mo04 (131)2006 04 Karty produktów04 Prace przy urzadzeniach i instalacjach energetycznych v1 104 How The Heart Approaches What It Yearnsstr 04 07 maruszewski[W] Badania Operacyjne Zagadnienia transportowe (2009 04 19)Plakat WEGLINIEC Odjazdy wazny od 14 04 27 do 14 06 14więcej podobnych podstron