[Bezpieczeństwo] Dropbox + Trucrypt

„Chmura” – słyszał o tym prawie każdy, nie tylko na lekcjach geografii…
Początkowo „chmura” była utożsamiana z Cloud Computing – czyli przetwarzanie danych na bliżej nie znanych komputerach zdalnych. Moc tych komputerów łączy się w celu dokonania obliczeń i zwrócenia wyniku.

Co to jest chmura?

Dzisiaj mówiąc chmura mamy najczęściej na myśli przetwarzanie lub przechowywanie danych na serwerach w Internecie, które są z sobą powiązane (połączone w celu świadczenia usługi).
Fakt, że nasze dane są zgromadzone na wielu serwerach, być może w całkiem rożnych lokalizacjach geograficznych jest dla użytkownika przejrzysty (nie ma wpływu na korzystanie z usługi). Dzięki temu „chmura” charakteryzuje się wysoką niezawodnością i dostępnością (High availability) – odpornością na awarie pojedynczego węzła (serwera, lub grupy serwerów), jest też kilka korzyści z perspektywy samej chmury, tzn. lepsze wykorzystanie zasobów serwera, łatwiejsze zarządzanie chmurą niż niestowarzyszonymi serwerami, elastyczność, skalowalność (chmura łatwo się „rozszerza”, gdy jest taka potrzeba), wyższa wydajność, oszczędności (po co budować jeden super-komputer, skoro można wykorzystać kilkadziesiąt mniejszych)…

Co daje chmura?

Przechowywanie danych w chmurze (na tym się skupimy w tym wpisie) jest bardzo wygodne.
Mamy do nich szybki dostęp z każdego miejsca na świecie, nie martwimy się, czy akurat w tym będziemy mieli dobry transfer (nasze pliki są w kilku profesjonalnych serwerowniach, a nie np. na domowym PC podłączonym do Neostrady), nie obawiamy się czy oby nie padnie łącze, czy dziewczyna nie wyłączyła przypadkiem kompa, czy dysk nie ulegnie awarii i czy będzie na nim odpowiednia ilość miejsca. Plusy są i jest ich sporo, można je nazwać jednym słowem: wygoda!

Chmura, a bezpieczeństwo danych

Skupmy się na przechowywaniu danych w chmurze. Nigdy nie wiemy gdzie one są (Berlin, Kanada, Moskwa, Johannesburg?), a może część plików jest tu, a część tu..?
Jeśli korzystamy z chmury publicznej nigdy nie mamy 100% pewności gdzie aktualnie znajdują się nasze dane i czy na pewno w tym miejscu nikt ich nie przejrzy.

Obojętnie czego byśmy nie gromadzili (zdjęcia statków, dzienniki podróżne, czy osobiste przemyślenia) uważam, że powinniśmy zadbać o bezpieczeństwo naszych danych.

Dropbox

Przejdźmy do konkretów.
Oszczędzę Wam dokładnego tłumaczenia co to jest Dropbox: zasadniczo to usługa w Internecie umożliwiająca przechowywanie danych w chmurze.

Dostęp do naszych plików mamy na 2 sposoby:

  • Poprzez specjalny program.
  • Poprzez stronę internetową.

Strona Internetowa służy raczej do „doraźnego” dostępu do danych, program jest dużo ciekawszy. Jak działa?
Instalujemy go na wszystkich komputerach, na których chcemy mieć dostęp do danych (jest też wersja na urządzenia mobilne), uruchamiany i… już.
Dropbox sam dba o aktualność „obserwowanego” katalogu na wszystkich maszynach, a robi to bardzo inteligentnie. Jeśli na jednym komputerze zmienimy jakiś plik, po zakończeniu jego edycji, Dropbox wykryje zmiany i prześle plik  do chmury; gdy na innym komputerze uruchomimy Dropboxa, wykryje on, że mamy nieaktualny plik i pobierze z chmury.

Dla naszych dalszych rozważań musimy wiedzieć o kilku sprawach:

  • Dropbox przesyła zmodyfikowany plik do chmury dopiero wtedy gdy zostanie odblokowany, tzn. zamknięty.
  • Dropbox dzieli pliki na części po 4 MB i tworzy sumy kontrolne każdej części w celu analizowania zmian.
  • Sumy kontrolne przechowywane są w wewnętrznych strukturach danych.

Poza tym Dropbox jest darmowy, udostępnia 2 GB powierzchni z możliwością rozszerzenia  po spełnieniu pewnych warunków, lub wykupieniu dodatkowych GB (szczegóły na ich stronie).

Dropbox działa dobrze i jest skuteczny.
Jego podstawowa wada to fakt, że nasze cenne dane wysyłamy do Internetu (teoretycznie Dropbox dba o bezpieczeństwo naszych plików).
Druga sprawa to fakt, że przy domyślnych ustawieniach (automatyczny start Dropboxa po uruchomieniu systemu) na każdym komputerze na którym go zainstalowaliśmy i powiązaliśmy z naszym kontem ściągną się najaktualniejsze wersje plików (tak wiem, przecież to zaleta!), ale co w przypadku nieuprawnionego dostępu do komputera – klops – atakujący bez wysiłku uzyska dostęp do naszych „świeżych” danych…

TrueCrypt

TrueCrypt to narzędzie (program komputerowy) umożliwiający szyfrowanie całych partycji dysku, lub tworzenie bezpieczny woluminów.
Wolumin „z zewnątrz” jest zwykłym plikiem, TrueCrypt umożliwia – po podaniu hasła – zamontowanie go w systemie operacyjnym jako dysku twardego i korzystanie z niego tak samo jak ze zwykłego dysku.

Udostępnia przy tym zaawansowane algorytmy szyfrowanie, które przy zastosowaniu odpowiednio skomplikowanego hasła lub/oraz pliku klucza (zwykły plik, który „trzeba mieć” aby otworzyć dysk) można uznać za bardzo bezpieczny.

Nie jest już tajemnicą, że niektóre agencje rządowe dysponują sprzętem (wykonanym specjalnie w tym celu) umożliwiającym siłowe łamanie zabezpieczeń tego typu, atak polega na bardzo szybkim sprawdzaniu poszczególnych kombinacji hasła.
Nie znaleziono jednak podatności (dziury), która umożliwiałaby „wejście tylnymi drzwiami” do naszego, zaszyfrowanego dysku.
Odpowiednia złożoność hasła i wykorzystanie pliku klucza – w mojej ocenie – uniemożliwia złamanie zabezpieczeń TrueCrypt’a w warunkach domowych, lub „pół-profesjonalnych„, lepiej wtedy skorzystać z rozmaitych metod przechwycenia hasła niż próbować bezpośrednio forsować TrueCrypta.

Bezpieczny duet: Dropbox + TrueCrypt

Tak jest! Takie połączenie może zagwarantować bardzo wysokie bezpieczeństwo naszych danych (oczywiście o ile nie popełnimy innych błędów), trzeba jednak wiedzieć o kilku warunkach „dobrej współpracy” i zasadach znacznie ułatwiających codzienną pracę z tym zestawem.

Do dzieła!

Nasz cel: chcemy przechowywać pliki na Dropboxie przy jednoczesnym wykorzystaniu szyfrowania ich TrueCryptem; chcemy możliwie szybko uzyskiwać dostęp do naszego zaszyfrowanego woluminu nawet na komputerach, na których nie zainstalowano TrueCrypta.

Pobieramy Dropbox, instalujemy, zakładamy konto. Pobieramy TrueCrypt, instalujemy.

Tworzenie przenośnej wersji TrueCrypt’a

Na początek utworzymy przenośna wersję TrueCrypta dzięki temu nie będziemy musieli dbać o jego instalację na każdym komputerze.
Zajmiemy się tutaj systemem Windows, bardzo podobnie możemy działać na systemach z rodziny Linux.

1. Z menu narzędzi wybieramy opcję tworzenia „dysku podróżnego”:

Dysk przenośny
Tworzenie dysku przenośnego

2. W kolejnym kroku możemy wybrać bardziej szczegółowe ustawienia, w polu „File Settings” wskazujemy folder na dysku twardym naszego komputera, w którym stworzymy przenośną wersję. Niech będzie to D:\dysk\ Kreator automatycznie utworzy w nim podfolder TrueCrypt.
Pozostałe opcje pozostawiamy bez zmian.

Dysk przenosny2
Ustawiamy szczegóły

3. Powinniśmy otrzymać następujące pliki w naszym folderze np. D:\dysk\TrueCrypt

Dysk przenosny3
Przenośna wersja TrueCrypt

4. Kolejny krok to utworzenie zaszyfrowanego woluminu, czyli pliku wglądającego jak „zwyczajny” jednak po podłączeniu do TrueCrypta będzie  widziany przez system operacyjny jako zwykły dysk.
Dysk tworzymy w naszym folderze roboczym (u mnie D:\dysk) i nazywamy dowolnie, u mnie będzie to DYSK.tc.

Tworzenie woluminu
Tworzenie woluminu

5. Kolejny krok kreatora umożliwia wybór typu woluminu. Możemy utworzyć:

  • Zwykły wolumin,
  • Zaszyfrować partycję inną niż systemowa,
  • Zaszyfrować partycję, lub dysk systemowy.

My wybieramy pierwszą opcję.

Tworzenie woluminu
Tworzenie woluminu

6. Kolejny krok to wybór wielkości dysku (dowolnie, polecam ok. 1 GB – pamiętajmy, że 2 GB to max w darmowej wersji Dropboxa), oraz metody szyfrowania .
Nie będę zagłębiał się w szczegóły. Zasada jest prosta: czy bardziej złożony algorytm tym większe bezpieczeństwo, ale i większa złożoność obliczeniowa, czyli w praktyce wolniejsze działanie (biorąc pod uwage moc dzisiejszych komputerów nie ma to dużego znaczenia).

Hash Algorithm – jest wykorzystywany przez TrueCrypt do generowania liczb pseudolosowych, które będą potrzebne do wygenerowania klucza głównego, klucza zapasowego (XTS) i tzw. soli, najprościej: ma to za zadanie uodpornienie naszego woluminu na ataki.

Metoda szyfrowania
Metoda szyfrowania

7. Ostatni i zarazem najważniejszy krok to wybór hasła (polecam co najmniej 12 znaków w tym małe i duże litery, cyfry i znaki specjalne).
Dodatkowym elementem „kosmicznie” podnoszącym odporność naszego „wirtualnego dysku” na złamanie hasła przy użyciu metod siłowych (Brute Force) jest wykorzystanie pliku klucza. To zwyczajny plik o wielkości doMB, który zostanie użyty do zaszyfrowania dysku (dane w nim zawarte – sprowadzone do postaci binarnej – wejdą w skład klucza szyfrującego dysk), może to być niewielkie zdjęcie, krótki plik dźwiękowy, czy specjalnie na tę okazje wygenerowany dowolnym sposobem plik binarny (opcja Generate Random Keyfile dostępna u dołu okna wyboru klucza).
Plik klucza wskazujemy w okienku, które ukaże się po wybraniu opcji „Keyfiles” poniżej pola do wprowadzenia hasła.

Ustawianie Hasła i pliku klucza
Ustawianie hasła i pliku klucza

Plik klucza powinniśmy mieć zawsze przy sobie: na pendrivie, na karcie SD noszonej w portfelu (potrzebny będzie jeszcze czytnik), możemy też (choć to mniej bezpieczne) zwyczajnie skopiować go w „tajne miejsce” na każdym komputerze, na którym chcemy otwierać dysk, czy (niezalecane) przechowywać klucz koncie pocztowym.

 Jaki mamy stan?
  • Przenośna wersja TrueCrypta jest umieszczona w folderze np. D:\dysk\TrueCrypt
  • Plik dysku jest utworzony w folderze D:\dysk i nazywa się DYSK.tc

Wszystko gotowe, możemy (testowo) wskazać w TC nasz plik, wybrać Mount, wprowadzić hasło, wskazać klucz i już – wszystko działa – dysk zostanie podłączony do komputera.
Po zakończeniu testu wybierzmy Dismount.

Kilka zasad i ułatwień

  1. Nasz wolumen musimy wysłać do Dropboxa tylko raz! Na przykład z komputera w domu. Następnie – jeden raz – nagrywamy wolumen na pendrive i przenosimy na wszystkie komputery, na których chcemy z niego korzystać.
    Nic nie stoi na przeszkodzie aby pominąć ten krok – zaowocuje to jednak koniecznością długiego oczekiwania na pobranie pliku za pierwszym razem na każdym z komputerów.
    Dropbox jest na tyle inteligentny, że dzieli nasze pliki na drobne kawałki i bada czy coś się zmieniło w każdej części, jeśli przeniesiemy plik bez dokonywania w nim zmian – Dropbox pozna, że niczego nie trzeba aktualizować  – zaoszczędzimy dzięki temu czas i transfer.
  2. Czy za każdym razem Dropbox będzie pobierał cały wolumin, tj. np. 1 GB?!
    NIE!!! To wielka zaleta i kwintesencja naszego rozwiązania (inaczej nie ma ono sensu).
    Dropbox pobiera tylko to co się zmieniło w jego „pokawałkowanych plikach”, załóżmy, że zmieniliśmy tylko kilka plików (o wielkości 2 MB) w naszym woluminie, Dropbox wykryje więc zmianę tylko w obszarze 2 MB i tylko to prześle.
    [Praktycznie przesłane zostanie trochę więcej danych, ponieważ reszta woluminu wypełniana jest zerami, zostaną one skompresowane, przy dzisiejszych łączach jest to fakt marginalny].
  3. Dropbox dokonuje synchronizacji po zamknięciu pliku, a nie po każdej zmianie jego zawartości. (To także najczęściej jest zaleta!)
    Nasz wolumin zostanie wysłany do Dropboxa dopiero po odmontowaniu go.
    Należy pamiętać aby przed zakończeniem pracy odmontować wolumin i dać Dropboxowi trochę czasu na zsynchronizowanie zawartości (czy zawartość obserwowanego folderu już się zsynchronizowała poznamy po ikonce w tray’u). Moim zdaniem jest to jedyne ograniczenie tego rozwiązania, które ciężko ominąć, gdyby synchronizować kontener po każdej zmianie także byłoby to wyjście dalekie od optymalnego i  rodziło mnóstwo problemów.
  4. Jak zoptymalizować montownanie i odmontowywanie woluminów?
    Skryptami! 😉

Tworzymy skrypt, do „otwierania” i „zamykania” zaszyfrowanego dysku

Dotychczasowe rozwiązanie działa bardzo dobrze, ma jednak jedną wadę – trzeba za każdym razem otwierać TrueCrypt’a, wskazywać plik i podłączać zaszyfrowany wolumin, po zakończeniu pracy trzeba wywołać TrueCrypta z tray’a i odmontować dysk.

Możemy te czynności sprowadzić tylko do podwójnego kliknięcia na specjalnie przygotowanym pliku, pliku zawierającym skrypt odpowiedzialny za podłączenie i odmontowanie woluminu.

Skrypt do montowania zaszyfrowanego woluminu

Tworzymy nowy plik, nazywamy go MOUNT.bat i umieszczamy w folderze roboczym, u mnie: D:\DYSK\MOUNT.bat

Notatnik
Tworzenie pliku bat w notatniku

Zawartość pliku powinna być następująca:

TrueCrypt\TrueCrypt.exe /q background /l R /e /m rm /m ts /v "DYSK.tc"
exit

Plik wywołuje TrueCrypt z linii poleceń i przekazuje kilka użytecznych parametrów:

 /q background – nakazuje TC wykonanie akcji, a następnie zamknięcie (ukrycie) okna programu, ikona aplikacji zostanie umieszczona w tray’u (można to wyłączyć w opcjach programu).

/l R – litera dysku pod jaką zostanie zamontowany nasz wolumin (dzięki tej opcji będzie zawsze taka sama co umożliwi np. tworzenie skrótów).
W tym przypadku będzie to literka R, można wybrać dowolną inną.

/e – po zamontowaniu dysku pojawi się okienku Windows Explorera z otwartą zawartością dysku, umożliwi to natychmiastowy dostęp do plików i będzie oznaką, że montowanie powiodło się.

/m rm – dysk zostanie zamontowany jako urządzenie przenośne (tak jak pendrive), dzięki temu system utworzy np. folder Recycled, lub Volume Information na dysku, zastosuje techniki cacheowania i opóźnionego zapisu, ograniczy ilość operacji IO, generalnie: nie będzie zbyt „inwazyjnie: obchodził się z naszym dyskiem co powinno nieco zoptymalizować szybkość jego działania.
W razie problemów można zrezygnować z tej opcji.

/m ts – pozwoli systemowi operacyjnemu „podbić” datę ostatniej modyfikacji dla naszego pliku kontenera. Jeśli nie użyjemy tej opcji – data ostatniej modyfikacji nie zostanie zmieniona nawet jeśli faktycznie zmodyfikujemy zawartość woluminu.
Dzięki skorzystaniu z tego parametru np. programu do backupu będą wiedziały, że plik  kontenera został zmodyfikowany i należy go skopiować.

/v – ścieżka do naszego pliku woluminu.

Od teraz wystarczy dwukrotnie kliknąć na plik MOUNT.bat, w okienku, które się pojawi wpisać hasło, ew. wskazać plik klucza (jeśli go użyliśmy) i… już.

Skrypt do odmontowywania zaszyfrowanego woluminu

Po zakończeniu pracy z zaszyfrowanym dyskiem należy go odmontować (koniecznie, w przeciwnym razie Dropbox go nie zsynchronizuje!).
Użyjemy do tego następującego skryptu, który nazmiemy DISMOUNT.bat:

TrueCrypt\TrueCrypt.exe /q /d R
exit

 /q background nakazuje TC wykonanie akcji, a następnie zamknięcie (ukrycie) okna programu, ikona aplikacji zostanie umieszczona w tray’u (można to wyłączyć w opcjach programu).

/d R – odmontowuje zaszyfrowany dysk R z naszego systemu operacyjnego.

Zakończenie

 To wszystko, tak wygląda folder roboczy po wykonaniu wszystkich operacji:

Efekt prac
Efekt prac

 Teraz pozostało skopiowanie naszego folderu roboczego do katalogu obserwowanego przez Dropbox, dokonanie synchronizacji (jeśli Dropbox jest włączony zacznie się ona automatycznie) i tyle.

Powodzenia!  🙂

4 odpowiedzi na “[Bezpieczeństwo] Dropbox + Trucrypt”

  1. Naprawdę świetny artykuł. Mam jednak pytanie, czy jeżeli w kontenrze umieszcze drugi kontener – to czy jezeli dodam 1 plik do tego wewnetrzengo kontenera czy tutaj takze tylko ten jeden plik bedzie „dograny” na serwer dropboxa. Czy moze cala zawartosc drugiego (wewnetrznego) kontenera ?

    1. Teoretycznie zachowanie powinno pozostać takie samo jak przy pojedynczym kontenerze, ponieważ TrueCrypt stosuje ten sam mechanizm dla wewnętrznego (ukrytego) kontenera.
      Nie testowałem jednak takiego scenariusza – proponuję sprawdzić doświadczalnie…

  2. Ale czy jak Dropbox podmieni tylko ten 2mb „kawałek” to czy przypadkiem nie rozwalił się struktura i spójność całego pliku kontenera?

    1. Nie, nie rozwali się. Dropbox sprawdza co się zmieniło, jeśli zmienił się tylko „ten kawałek” – zostanie on przesłany. Reszta pozostanie bez zmian.
      Dzięki temu plik pozostanie w pełni integralny! 🙂

Leave a Reply