Dropbox, TrueCrypt i Delta Sync — bezpieczne dane w chmurze
Popularność usług polegających na udostępnianiu przetrzeni dyskowej na serwerach w chmurze przerosła moje wyobrażenia - za pomocą dedykowanej aplikacji zainstalowanej na komputerze lub telefonie, lub zwykłej przeglądarki wgrywamy nasze pliki na konto znajdujące się w zasobach internetu. Zainstalowany program jest o tyle wygodny, że w większości tego typu usług jest "podpiętny" pod zwykły katalog/katalogi znajdujące się na dysku i każda w nim zmiana powoduje synchronizację z serwerami zewnętrznymi. Oznacza to, że można mieć w pewnym sensie dokładnie ten sam katalog na kilku urządzeniach a każda zmiana będzie widoczna na pozostałych. Przestrzeń "darmową" można powiększać za pomocą rekomendacji, lub abonamentu.
Firm świadczących wirtualną przestrzeń wyrosło jak grzybów po deszczu, każdy chce mieć swoją: Microsoft OneDrive (kiedyś SkyDrive), Google Drive, Logmein (Cubby). Porównań w internecie można znaleźć badzo dużo, gdzie głównie autorzy skupiają się na dostępnej darmowej pojemności, użyteczności aplikacji klienckiej i dodatkowych "ficzerów" w postaci webowych edytorów dokumentów. Ja jednak pozostaję głównie przy Dropbox i o tym jest głównie ten wpis.
Dropbox i synchronizacja przyrostowa
Dropbox ma dość długą historię - dla niektórych synonim metody rozwiązania przechowywania danych - miał wzloty i upadki. Tu należy wspomnieć o konieczności ograniczonego zaufania do wysyłania czegokolwiek do internetu, który zapamięta wszystko na wieki. Nigdy nie ma 100% pewności, że oprogramowanie nie ma krytycznego błędu i nasze selfie przypadkiem nie wycieknie. Zasada ograniczonego zaufania i że nasze pliki przegląda np. prezydent Obama, Putin, lub pryszczaty 12‑latek z sąsiedztwa. Kilka lat temu sam uświadczyłem awarii - po powrocie z wakacji nie miałem połowy plików Dropboksa, na moje szczęście miałem kopię.
Można jednak pokusić się o zaszyfrowanie danych. Jednym z rozsądniejszych rozwiązań jest wykorzystanie dodatkowego programu do utworzeniu kontenera (wolumenu) w ramach systemu pliku, zawierającego silne zaszyfrowany wirtualny dysk. Po tzw. podmontowaniu widoczny jest jako kolejna litera dysku i może służyć np. do backupu newralgicznych danych. Pojawia się natomiast pewien problem...
Załóżmy, że utworzyliśmy wolumen o wielkości 4GB. Sam kontener, nawet gdy nie dodamy do niego plików, będzie zajmował dokładnie tyle miejsca, ile założyliśmy wcześniej. Są oczywiście dynamiczne wolumeny zwiększające swój rozwiar w czasie użycia, ale ze względu na szybkość działania i dobrą praktykę alokowania miejsca lepszym rozwiązaniem jest niestostowanie tego rozwiązania. Wracając do temu, plik taki (4GB) musi zostać wysłany do internetu. Domowe łącza są najczęściej asymetryczne i nawet jak mamy wg. dostawcy 120Mbit, to "upload" wyniesie np. 10Mbit i to w odpowiednich warunkach - oznacza to, że teoretycznie plik będzie wysyłany przez godzinę a w rzeczywistości jeszcze dłużej, gdyż wąskim gardłem okażą się serwery dostawcy usługi ("masz za darmo to ciesz się, że 800k/s"). Plik jest już w internecie, dokonujemy na niej niewiekiej zmiany - np. dodanie do kontenera 100MB zdjęć. Jak zareaguje aplikacja kliencja monitorująca plik (wolumen)?
ooo, plik się zmienił, no to znowu wgram 4GB do internetu i obciążę łącze
Nie brzmi to zachęcająco. Mamy jednak Dropbox i synchronizację przyrostową - jako jedna z niewielu dostępnych usług tego typu obsługuje "delta-sync". Aplikacja kliencka robi coś więcej, niż proste podmienienie dokumentu na serwerze, któremu zmieniła się data lub rozmiar. Po każdej przechywconej operacji na pliku indeksuje jego zawartość i porównuje z poprzednim stanem. W sytuacji, gdy zmienił się tylko fragment, to tylko różnice zostaną zsynchronizowane z wersją znajdującą się na serwerach.
Sam osobiście nie rozumiem polityki Google i np. Microsoftu - algortym delta-sync nie jest sztuką tajemną, dodatkowo przerzucanie gigabajtów danych odciąża samego dostawcę. Jakoś się jednak nikomu nie śpieszy do wdrożenia rozwiązania.
Kontener TrueCrypt
Do utworzenia i dostępu do zaszyfrowanego kontenera zostanie użyty program "TrueCrypt 7.1a ". Z niejasnych do końca powodów rozwój projektu został wstrzymany a bezpośrednim i prawie bliźniaczo podobnym jest "VeraCrypt ". Utworzenie nowego konteneru TC jest proste i opisane na tysiącach stron internetowych w przeróżnych opisach, dla przypomnienia szybki poradnik krok po kroku z minimum zbędnych opisów:
[item]Volumes -> Create New Volume...[/item][img=1_NewTrueCryptVolume]
[item]Create an encrypted file container -> Next[/item][img=2_NewTrueCryptVolume]
[item]Standard TrueCrypt volume -‑> Next[/item][img=3_NewTrueCryptVolume]
[item]wybór nazwy pliku[/item]Standardowo TrueCrypt jest skojarzony z roszerzeniem .tc. Ja z założenia nie nadaję rozszerzenia, zawsze to jakieś dodatkowe niewielkie zabezpieczenie, jak np. wirus/kraker poszukuje na nośnikach *.tc
[item]Encryption Algorithm -‑> Next[/item] Tu wypada wspomnieć, że do wyboru jest większość najpopularniejszych algorytmów szyfrowania, które wpływają na "siłę" zabezpieczenia kontenera przed nieautoryzowanym dostępem. Należy jednak wybrać dość rozsądny kompromis, szczególnie przy mniej wydajnych komputerach (AES, Serpent i Twofish). TrueCrypt ma opcję testowania wydajności poszczególnych metod szyfrowania - nie należy ich mylić z szybkością działania dysku twardego, całość odbywa się bezpośrednio w pamięci RAM. Moim zdaniem 256‑bitowy AES ma wystarczającą siłę i przypadkowemu "krakerowi" raczej się nie oprze (zakładając oczywiście stosowanie silnego hasła).
[item]Wybór wielkości woluminu[/item]Należy pamiętać, że jego wielkość powinna być mniejsza od dostępnego miejsca na Dropbox.
[item]Utworzenie "silnego" hasła[/item]TrueCrypt proponuje min. 20 znaków (małe i wielkie litery), cyfry i znaki specjalne
wybór systemu plików (Filesystem) -‑> Format Nie należy się obawiać, rozpocznie się formatowanie wirtualnego dysku (wewnątrz kontenera) a nie fizycznego nośnika (HDD/SSD) w komputerze
Po kilku sekundach / minutach (zależne od wydajności dysku twardego i procesora) we wskazanym katalogu pojawi się plik o rozmiarze zbliżonym do podanego wcześniej przy tworzeniu konteneru:
Tak utworzyliśmy wolumen TrueCrypt.
Kontener w Dropbox
Plik przenosimy do katalogu powiązanego z Dropbox. Zakładam, że sama aplikacja kliencja jest uruchomiona.
Postęp "uploadu" można śledzić po najechaniu na dostępną w pasku zadań ikonę Drobpox. Na początku komunikat może sugerować problem związany z dostępem do pliku (zostanie od "odblokowany" po pełnym skopiowaniu do folderu powiązanego z Dropbox):
W zależnosci od dostępnego łącza internetowego, ustawień klienta Dropbox i ustawień po stronie usługi może to potrwać nawet kilka godzin - u mnie 3GB plik potrafi się wysyłać do usługi Dropbox nawet 1.5h. Sam proces "rozkręca się" w porywach do 650‑800KB/sec:
Na pełną synchronizację nie trzeba oczywiście czekać, jednak zakończenie jej pomoże to w udowodnieniu działania delta-sync w usłudze Dropbox.
Kontener należy "zamontować" - będzie reprezentowany jako jedna z liter dysku w systemie: po wybraniu wcześniej utworzonego pliku i klikięciu MOUNT zostaniemy poproszeni i hasło.
W podanym przykładzie pojawi się dysk H na dysku:
Na dysk H (do kontenera TrueCrypt...) wgrałem testową porcję 300MB danych w postaci kilkudziesięciu zdjęć. Dropbox pozostał jednak niewzruszony i nie za bardzo chce zabrać sie za plik będący w użyciu.
Spróbujmy "odmontować" kontener:
Dropbox zareaguje indeksowaniem pliku (wyszukiwaniem zmian) a następnie synchronizacją zmian z wersją znajdującą się w chmurze:
Różnica będzie natomiast taka, że proces potrwa kilka minut a nie ponad godzinę.
Podsumowanie
Rozwiązanie nie jest dla wszystkich i ma też pewne wady. Po pierwsze, może się okazać zbyt skomplikowane i mało zrozumiałe dla mniej zorientowanych użytkowników.
Kolejnym problemem może być brak dostępu do dodatkowych możliwości oferowanych przez chmurę - praca na dokumentach Worda, czy wersjonowanie pliku - w przypadku np. zarażenia komputera wirusem typu CryptoWall robal bez problemu zaszyfruje pliki w podmontowanym kontenerze TrueCrypt i poza nim (te znajdujące się w Dropbox). Dropbox udostępnia przechowywanie (śledzenie) zmian na plikach, więc bez problemu można odzyskać zaszyfrowany przez wirusa plik, np. te z kontenera TrueCrypt już nie. Może też okazać się zbyt niewygodna metoda dostępu do kontenera jednocześnie z kilku kompuerów, oraz np. ze smarfona. Należy się zastanowić czy sama idea Dropbox i TrueCrypt jest potrzeba w codziennym użytkowaniu komputera - moim zdaniem jest to jednak jedno z ciekawych rozwiązań przechowywania danych. Przypomnę jednak - to nie powinno osłabiać czujności i należy mieć backup plików przechowywanych w kontenerze.
Aktualizacja 17/11/2015
Zgodnie z prośbą z komentarzy wyjaśniam: jednoczesne otwarcie kontenera osadzonego w Dropbox na dwóch komputerach będzie skutkować konfliktem równoznacznym z utworzeniem kopii pliku z innymi danymi - dzieje się to tak samo ze wszystkimi danymi w Dropboksie. Przykład: [item]dwa komputery, jeden nazywa się ASROCK, a drugi LENOVO,[/item][item]oba komputery mają zainstalowaną usługę Dropbox podiętą do tego samego konta,[/item][item]na komputerze ASROCK został utworzony nowy kontener TrueCrypt, dodane do niego pliki, następnie odłączony od klienta TrueCrypt[/item][item]kontener TrueCrypt zostaje wysłany do usługi Dropbox a następnie pobrany automatycznie na komputer LENOVO[/item] Oba komputery posiadają w tej chwili identyczną kopię kontenera TrueCrypt. [item]podpinamy kontener TrueCrypt do komputera ASROCK[/item][item]podpinamy jednocześnie kontener TrueCrypt do komputera LENOVO[/item][item]wykonywanie zmian na konterze będą widoczne TYLKO na danym komputerze[/item][item]odpięcie kontenerów od TrueCrypt spowoduje utworzenie kopii pliku z nazwą komputera, gdzie nastąpił "konflikt" jednocześnie otwartego tego samego pliku[/item][img=Konflikt]
[item]pliki nie będą miały tej samej zawartości[/item]Oznacza to, że kontener może być w danym momencie podpięty tylko do jednego komputera.
[code=][1] źródło zdjęcia pani z tatuażem delty: https://www.pinterest.com/[/code]