Archiwum Szyfrowanie danych

1 Comment

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.

One Response to “Szyfrowanie danych”

  1. malpka Says:

    W celu uaktualnienia informacji zawartych w artykule – zainteresowanym polecam jeszcze metodę loop-AES: http://www.tidnab.nowaruda.net/linux/8/loop-aes-szyfrowany-system-plikow.html

Leave a Reply

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word