TrueCrypt
Z Wikibooks, biblioteki wolnych podręczników.
|
[edytuj] Co to jest
TrueCrypt jest darmowym oprogramowaniem Open Source dla systemów Microsoft Windows 2000 / XP / 2003 / Vista oraz UNIXów, umożliwiającym szyfrowanie całych partycji dyskowych "w locie". Oprogramowanie wraz z kodem źródłowym udostępnione jest na licencji TRUECRYPT LICENSE przez TrueCrypt Foundation, której oryginalna treść dostępna jest w pliku license.txt w katalogu, w którym zainstalujemy program, oraz tutaj. Nieoficjalne tłumaczenie dostępne jest tutaj
.
[edytuj] Do czego to służy
TrueCrypt potrafi szyfrować całe dyski, pojedyncze partycje, tak iż tylko po wprowadzeniu hasła możliwy jest odczyt bądź zmiana danych znajdujących się na szyfrowanej partycji. Po wprowadzeniu hasła, którym zabezpieczyliśmy naszą partycję, możliwa jest normalna praca na danym dysku, tak jakby był to każdy inny dysk dostępny w systemie. Pozwala tworzyć wirtualne woluminy, pod które możemy podmontować zaszyfrowany system plików zapisany w pojedynczym pliku znajdującym się na nieszyfrowanym dysku, pamięci flash z interfejsem USB, oraz na każdym innym napędzie widzianym w systemie. Niewielkie rozmiary (640 KB - instalka w wersji 3.1a spakowana ZIPem) pakietu niezbędnego do pracy na zaszyfrowanym napędzie pozwalają na efektywne wykorzystanie możliwości przenośnego szyfrowanego napędu bez względu na to, czy chcemy go wykorzystać w domu, w pracy bądź w kafejce internetowej. Jeśli nie posiadamy przy sobie wersji instalacyjnej pakietu, zawsze możemy ją w krótkim czasie ciągnąć ze strony projektu.
Ważnym atutem jest niemożność stwierdzenia na podstawie surowej analizy zawartości zaszyfrowanego systemu plików, czy w danej części partycji znajdują się dane, czy jest to wolna przestrzeń "dysku". Całość sprawia zupełnie przekonujące wrażenie, że jest to zbiór losowo wygenerowanych danych. Technologia ta uniemożliwia efektywną kompresję danego pliku w sytuacji, gdy niewielka część zaszyfrowanej partycji jest zajęta przez dane. Możliwość takiej kompresji mogłaby się okazać przydatna, jeśli chcielibyśmy przesłać ten plik łączami o niewielkiej przepustowości przez Internet.
Przykładowo zaszyfrowany napęd o rozmiarze 250 MB jest zajęty przez pliki, które łącznie zajmują ok. 102 MB. Po skompresowaniu ZIPem (domyślny poziom kompresji) plik zawierający nasz zaszyfrowany napęd ma rozmiar 250.08 MB .
Jest to kompromis, z którym musimy się pogodzić, jeśli zależy nam na bezpieczeństwie danych. Pozorna losowość danych zawartych w pliku z zaszyfrowanym napędem utrudnia przeprowadzenie udanego ataku, w konsekwencji którego nasze dane mogłyby się dostać w niepowołane ręce.
[edytuj] Algorytmy szyfrowania
TrueCrypt może korzystać z następujących symetrycznych algorytmów szyfrujących:
[edytuj] Szyfrowanie kaskadowe
W chwili pisania niniejszego tekstu żaden z wymienionych powyżej algorytmów nie jest uznawany za "słaby" w sensie podatności na złamanie. Pomimo tego TrueCrypt umożliwia również szyfrowanie kaskadowe np. AES-Twofish-Serpent. We wskazanym przykładzie polega ono na zaszyfrowaniu każdego bloku danych najpierw za pomocą algorytmu AES, następnie tak zaszyfrowana postać danych poddana jest szyfrowaniu za pomocą algorytmu Twofish, żeby otrzymaną postać ostatecznie zaszyfrować za pomocą algorytmu Serpent. Proces deszyfrowania każdego bloku danych przebiega w odwrotnej kolejności.
Zastosowanie szyfrowania kaskadowego zabezpiecza nas przed ewentualnością złamania algorytmu, który akurat zastosowany jest do zaszyfrowania naszego napędu. W takim przypadku, aby odczytać pliki z napędu zaszyfrowanego kaskadowo algorytmami AES-Twofish-Serpent, należałoby złamać wszystkie trzy algorytmy, co jest znacznie mniej prawdopodobne.
[edytuj] Wydajność szyfrowania-deszyfrowania
Wzrostowi bezpieczeństwa danych niestety towarzyszy wzrost złożoności obliczeniowej pracy na tak zaszyfrowanym napędzie. A to oznacza konieczność wykonania większej liczby operacji przez procesor naszego komputera. Należy to wziąć pod uwagę, jeśli zamierzamy pracować z dużymi plikami.
Dla tych, którzy lubią przeprowadzać testy i opracowywać rankingi, w programie dostępna jest opcja porównania wydajności każdego z wymienionych wyżej algorytmów włączając szyfrowanie kaskadowe. Znając prędkość zapisu i prędkość odczytu na naszym komputerze przy zastosowaniu danego algorytmu (lub ich kombinacji) wybierzemy optymalne rozwiązanie.
Wyniki przykładowych testów wydajności przedstawiono poniżej:
[edytuj] Intel Pentium III Mobile (650 MHz)
| Algorytm | Szyfrowanie | Deszyfrowanie | Średnia wydajność |
| Twofish | 14,5 MB/s | 13,6 MB/s | 14,0 MB/s |
| AES | 13,0 MB/s | 13,3 MB/s | 13,1 MB/s |
| Serpent | 10,3 MB/s | 9,9 MB/s | 10,1 MB/s |
| AES-Blowfish | 7,0 MB/s | 6,7 MB/s | 6,9 MB/s |
| AES-Twofish | 6,5 MB/s | 6,3 MB/s | 6,4 MB/s |
| Serpent-AES | 5,7 MB/s | 5,4 MB/s | 5,6 MB/s |
| Twofish-Serpent | 5,5 MB/s | 5,2 MB/s | 5,4 MB/s |
| AES-Blowfish-Serpent | 4,2 MB/s | 4,0 MB/s | 4,1 MB/s |
| AES-Twofish-Serpent | 4,0 MB/s | 3,7 MB/s | 3,9 MB/s |
| Serpent-Twofish-AES | 3,9 MB/s | 3,7 MB/s | 3,8 MB/s |
[edytuj] Intel Celeron (2.66 GHz) TrueCrypt v4.2
| Algorytm | Szyfrowanie | Deszyfrowanie | Średnia wydajność |
| AES | 56,5 MB/s | 52,9 MB/s | 54,7 MB/s |
| Twofish | 46,9 MB/s | 45,7 MB/s | 46,3 MB/s |
| Serpent | 36,8 MB/s | 33,3 MB/s | 35,0 MB/s |
| AES-Twofish | 24,9 MB/s | 23,5 MB/s | 24,2 MB/s |
| Serpent-AES | 22,3 MB/s | 19,1 MB/s | 20,7 MB/s |
| Twofish-Serpent | 19,8 MB/s | 17,1 MB/s | 18,4 MB/s |
| AES-Twofish-Serpent | 14,5 MB/s | 12,6 MB/s | 13,5 MB/s |
| Serpent-Twofish-AES | 14,5 MB/s | 12,4 MB/s | 13,4 MB/s |
[edytuj] Intel Pentium 4 (2.8 GHz) TrueCrypt v4.1
| Algorytm | Szyfrowanie | Deszyfrowanie | Średnia wydajność |
| AES | 60,8 MB/s | 58,4 MB/s | 59,6 MB/s |
| Twofish | 35,4 MB/s | 43,3 MB/s | 39,4 MB/s |
| Serpent | 24,4 MB/s | 22,5 MB/s | 23,5 MB/s |
| AES-Twofish | 19,2 MB/s | 19,1 MB/s | 19,1 MB/s |
| Serpent-AES | 17,2 MB/s | 15,7 MB/s | 16,5 MB/s |
| Twofish-Serpent | 14,2 MB/s | 14,1 MB/s | 14,2 MB/s |
| AES-Twofish-Serpent | 10,9 MB/s | 10,2 MB/s | 10,6 MB/s |
| Serpent-Twofish-AES | 10,7 MB/s | 10,2 MB/s | 10,5 MB/s |
Wszystkie operacje szyfrowania i deszyfrowania na potrzeby testu wykonywane są w pamięci RAM komputera. Rzeczywiste osiągi zazwyczaj będą ograniczone przez:
- wydajność posiadanych napędów (prędkość zapisu i odczytu w MB/s)
- obciążenie komputera dodatkowymi procesami (wykorzystanie procesora, pamięci, magistrali systemowej).
[edytuj] Linki zewnętrzne
- Strona domowa projektu - http://truecrypt.sourceforge.net/
- Dane w sejfie [1] - artykuł pochodzi z CHIP 02/2005
- Nieoficjalne Truecrypt HowTo dla Ubuntu, po polsku: http://forum.ubuntu.pl/showthread.php?t=43845