Przejdź do głównej zawartości

Prosty sposób na szyfrowanie danych w chmurze

"Ludzie dzielą się na tych, którzy robią kopie zapasowe i tych, którzy będą je robili". Gdy już należysz do tej drugiej grupy, najprawdopodobniej masz swój domowy serwer NAS lub korzystasz z cloud storage'a pokroju Google Drive czy Dropbox.
Najczęściej wybór pada na tę drugą opcję z uwagi na koszty - Google Drive w darmowej wersji oferuje 15 GB storeage'u, co zaspokaja zdecydowaną większość Kowalskich czy Nowaków, gdzie przeciętny, dwudyskowy serwer NAS to koszt przynajmniej 800 złotych (ci sprytniejsi zapewne wykonają go własnoręcznie na bazie Raspberry Pi). Będąc oszczędnym, zakładasz konto Googlowe, logujesz się na Google Drive i wysyłasz w świat swoje cenne pliki. Wypijasz popołudniową kawę, spoglądasz przez okno na zachód słońca, a Twój kot po raz kolejny drapie Twoją sofę. Czujesz, że spełniłeś swój informatyczny obowiązek, a Twoje dane są bezpieczne. Ale czy na pewno?

Co jeśli dostęp do Twojego konta uzyska nieuprawniona osoba? Zazwyczaj trzymasz na nim ważne pliki, umowy zawierające dane wrażliwe, skany aktów notarialnych. Prawdziwa gratka dla niektórych grup społecznych. Mówisz, że włączyłeś 2FA i możesz spać spokojnie (no bo kto u licha uzyska dostęp do Twojego telefonu i przechwyci token potrzebny do zalogowania na konto)? Gdybyś tylko wiedział(a), jak bardzo się mylisz...

Two-Factor Authentication można ominąć na kilka sposobów, m.in.:
  1. Wystarczy prosty atak socjotechniczny (w tym przypadku phishing). Na spreparowanym formularzu ofiara podaje wygenerowany token, a atakujący używa go podczas logowania do prawdziwego systemu.
  2. Atak sim-swap - atakujący wyrabia duplikat Twojej karty sim, dzięki czemu może odbierać smsy z wygenerowanymi tokenami. Dlatego, z dwojga złego, lepiej generować tokeny za pomocą - na przykład - Authy. Niestety nie uchroni nas to przed sytuacją z punktu pierwszego - dalej jesteśmy wystawieni na phishing. Jeśli nie posiadasz klucza U2F, to masz realny problem.
  3. O wiele bardziej możliwym przypadkiem może być dostęp przez Google API - wystarczy, że jakakolwiek aplikacja na Twoim telefonie ma uprawnienia do grzebania na twoim Google Drive przez API, gdzie dostęp co prawda musi być przez Ciebie autoryzowany, ale jednorazowo, po jej instalacji. W ten oto sposób aplikacja może zapisywać/odczytywać pliki z twojego konta bez każdorazowego przechodzenia przez proces 2FA. Chyba nie muszę mówić, jakie to może rodzić konsekwencje? ;) Dlatego ważne jest, by co jakiś czas przyglądać się zewnętrznym aplikacjom, którym nadało się dostęp do swojego konta i odbierać go tym produktom, z których nie korzystamy, a w których to mogą pojawić się dziury, dzięki którym ktoś wykradnie nasze dane.
Głośnym przykładem obejścia 2FA był - całkiem niedawno - atak przeprowadzony na szefa Twittera.

No dobrze, to jak mam zabezpieczyć moje pliki?

I tu odpowiedź jest bardzo prosta - zaszyfrować je. Jeśli ktoś uzyska dostęp do naszego konta, finalnie zobaczy tylko stertę nie nie znaczących dla niego plików.

Jak to zrobić? Wiele ludzi decyduje się na użycie VeraCrypt - jest to najpopularniejszy program służących do szyfrowania dysków twardych, pojedynczych katalogów itd. Dzięki niemu stworzysz kontener, którego zawartość jest szyfrowana w locie. Aby dostać się do jego wnętrza, konieczne jest podanie hasła, które zna tylko twórca kontenera. Pamiętaj jednak, że jeśli je zgubisz/zapomnisz, już nigdy nie odzyskasz swoich danych.


Po wprowadzeniu hasła, kontener zostaje zamontowany w systemie jako nowy nośnik danych, na którym dostępne są nasze dokumenty. W tym momencie możesz przeprowadzać dowolne operacje na swoich plikach - jeśli na podmontowaną partycję kopiujemy nowe pliki, VeraCrypt szyfruje je w locie w pamięci RAM nim zostaną zapisane w kontenerze. Podczas odczytu następuje sytuacja odwrotna. Niestety w naszym przypadku użycie VeraCrypt będzie wysoce niewygodne - jeżeli wprowadzisz jakiekolwiek zmiany (np. dodajesz nowy plik), finalnie musisz wysłać na serwer cały zaszyfrowany kontener. Powodem tego jest fakt, iż finalną reprezentację kontenera stanowi jeden plik binarny. Jak możesz się domyślić, synchronizacja, przykładowo, 1-gigabajtowego kontenera tylko dlatego, że dodałeś do niego jeden plik tekstowy, nie jest optymalnym rozwiązaniem w codziennej pracy.

Na szczęście na rynku istnieje dużo wygodniejsze, open source'owe rozwiązanie - Cryptomator. W porównaniu do VeraCrypt, tworzy "vault" (w polskiej wersji przetłumaczony jako "portfel") - jest to odpowiednik VeraCryptowego kontenera, z tą różnicą, że reprezentowany jest przez strukturę katalogów, gdzie każdy plik szyfrowany jest indywidualnie - dokładny opis architektury tego rozwiązania znajdziecie pod tym adresem.


W naszym przypadku jest to ogromny plus - nie mamy już do czynienia z jednym, dużym plikiem, a katalogami, które zawierają zaszyfrowane, pojedyncze dokumenty. W tym przypadku jakakolwiek poczęta przez nas zmiana nie będzie wymagać ponownej pełnej synchronizacji danych.
Gdy chcemy zmodyfikować zawartość naszego vaulta, musimy podać hasło. Oczywiście poza zawartością naszych plików szyfrowana jest też ich nazwa. Cryptomator może być użyty z dowolnym cloud storage'owym serwisem (i nie tylko). To my musimy zapewnić synchronizację katalogu będącego vaultem z docelową usługą odpowiedzialną za hostowanie naszych plików. Aplikacja dostępna jest na Windowsa, GNU/Linuksa, macOS, Androida i iOS.

Komentarze