Szyfrowanie danych

Tuesday, February 26, 2008, autor: Rafał

Niedawno pojawił się nowy TrueCrypt (5.0) i po raz pierwszy wypróbowałem ten program na platformie Linuksa. Niestety Truecrypt 5.0 w GNOME w OpenSUSE 10.3 zawieszał mi system podczas próby kopiowania pliku. Komputer nie reagował na żadne komendy. Na moje pytanie dotyczące problemu nikt mi na forum SUSE nie odpowiedział, a deweloperzy do których zgłosiłem problem na razie milczą. Skłoniło mnie to do poszukiwania rozwiązań alternatywnych, dzięki czemu trafiłem na opis LUKSa. Postanowiłem to wypróbować, dlatego że gdzie indziej w sieci znalazłem informację o teście, który pokazał, że jest to rozwiązanie szybsze niż TrueCrypt (chodzi o czas dostępu do szyfrowanych danych). Wszystko zależy od tego, do czego potrzebne jest nam szyfrowanie.

Poniżej opiszę metodę szyfrowania, którą przetestowałem w OpenSUSE 10.3 i wiem że działa. Jest to szyfrowanie pliku, a nie partycji, choć w podobny sposób zaszyfrujemy partycję. Testy przeprowadziłem w oparciu o informacje, którą znalazłem w Internecie.

Aby utworzyć szyfrowany plik, jako użytkownik root wykonujemy następujące kroki:

Krok 1:
Tworzymy szyfrowany plik. W poniższym przykładzie w katalogu /test/szyfrowanie
zostanie utworzony plik SzyfrowanyPlik o rozmiarze 10GB:

dd if=/dev/zero of=SzyfrowanyPlik bs=1M count=10000

WYNIK DZIAŁANIA KOMENDY:
10000+0 przeczytanych recordów
10000+0 zapisanych recordów
skopiowane 10485760000 bajtów (10 GB), 506,957 s, 20,7 MB/s

Rozmiar ustawiamy poprzez wstawienie odpowiedniej wartości w count. Jeżeli to, co wpiszemy w count pomnożymy przez wartość bs (w tym przykładzie 1M), to otrzymamy wielkość pliku.

Krok 2:
Aby korzystać z pliku jako zwykły użytkownik zmieniamy właściciela pliku. Oto przykład, jak można to zrobić:

chown rafal:users SzyfrowanyPlik

Krok 3:
Kojarzymy urządzenie pseudosieci z plikiem komendą:

losetup /dev/loop0 SzyfrowanyPlik

Krok 4:
Wybieramy sposób szyfrowania wykonując komendę:

cryptsetup --verbose --cipher "aes-cbc-essiv:sha256" --key-size 256 --verify-passphrase luksFormat /dev/loop0

WYNIK DZIAŁANIA KOMENDY:

WARNING!
========
This will overwrite data on /dev/loop0 irrevocably.

Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase:
Verify passphrase:
Command successful.

Krok 5:
Formatowanie dysku. Wykonujemy komendy:

cryptsetup luksOpen /dev/loop0 SzyfrowanyPlik

mkfs.ext2 /dev/mapper/SzyfrowanyPlik

OTO WYNIK KOMENDY FORMATOWANIA:

mke2fs 1.40.2 (12-Jul-2007)
Etykieta systemu plików=
Typ OS: Linux
Rozmiar bloku=4096 (log=2)
Rozmiar fragmentu=4096 (log=2)
1281696 i-węzłów, 2559743 bloków
127987 bloków (5.00%) zarezerwowanych dla superużytkownika
Pierwszy blok danych=0
Maksymalna liczba bloków systemu plików=2621440000
79 grup bloków
32768 bloków w grupie, 32768 fragmentów w grupie
16224 i-węzłów w grupie
Kopie zapasowe superbloku zapisane w blokach:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Zapis tablicy i-węzłów: zakończono
Zapis superbloków i podsumowania systemu plików: wykonano

Ten system plików będzie automatycznie sprawdzany co każde 33 montowań
lub co 180 dni, zależnie co nastąpi pierwsze. Można to zmienić poprzez
tune2fs -c lub -i.

Krok 6:
Montujemy plik. Oto przykładowa komenda:
mount /dev/mapper/SzyfrowanyPlik /mnt/szyfrowane

Oczywiście zakładam, że w katalogu mnt istnieje folder szyfrowane i mamy do niego dostęp.

Po stworzeniu szyfrowanego pliku, w momencie zaistnienia potrzeby skorzystania z danych na nim zawartych należy taki dysk zamontować. Poniżej przykład dla OpenSUSE 10.3 i zaszyfrowanego pliku.
W folderze, w którym znajduje się zaszyfrowany plik ( w tym przykładzie “SzyfrowanyPlik”), jako root wykonujemy następujące komendy:

losetup /dev/loop0 SzyfrowanyPlik
cryptsetup luksOpen /dev/loop0 SzyfrowanyPlik
mount /dev/mapper/SzyfrowanyPlik /mnt/szyfrowane/

Po zakończeniu możemy go odmontować poprzez:
umount /mnt/szyfrowane
cryptsetup luksClose /dev/mapper/SzyfrowanyPlik
losetup -d /dev/loop0

Nie wykonywałem żadnych pomiarów prędkości, ale ogólnie mam wrażenie że wszystko działa bardzo szybko, dlatego polecam LUKS jako alternatywę do TrueCrypt.



 

 

 



Zostaw komentarz


 


 


 


 

*
Wpisz słowo z obrazka. Kliknij na obrazku aby usłyszeć angielską wersję audio
Kliknij na obrazku aby usłyszeć angielską wersję audio