ProtonDrive – jakie zabezpieczenia zaoferuje klientom?

ProtonDrive – jakie zabezpieczenia zaoferuje klientom?

17 września 2020 0 przez Maciej Lewczuk

Już pod koniec bieżącego roku wystartuje usługa ProtonDrive. Niniejszym tekstem przybliżymy zabezpieczenia, jakie będzie oferować osobom chcącym przechowywać swoje poufne dane.

ProtonDrive będzie kolejną usługą, po odnoszącej sukcesy poczcie ProtonMail, dostępną na rynku.

Jak wskazuje nazwa, będzie to przestrzeń na pliki, w tym dokumenty, zdjęcia, itp. Tym, co będzie wyróżniało ją spośród innych, będzie wysoki stopień szyfrowania, które zabezpieczy je przed niepowołanym dostępem.

ProtonDrive wykorzysta szyfrowanie end-to-end

Konstrukcja ProtonDrive wykorzystuje szyfrowanie end-to-end. W takim szyfrowaniu chodzi o to, że dane nie są szyfrowane na serwerze po wgraniu do niego danych, ale na komputerze użytkownika, zanim zostaną one wysłane. Jednym słowem, odszyfrować może je jedynie osoba, która je tam wgrała.

Dzięki zastosowaniu technologii wykorzystywanej w przypadku poczty ProtonMail, dane gromadzone w wirtualnym dysku będą doskonale chronione.

Dzięki zabezpieczeniom osoba, która nawet uzyska dostęp do serwerów, nie będzie mogła:

  • przeglądać struktury plików w osobistej przestrzeni użytkowników,
  • przeglądać lub zmieniać zawartości plików,
  • przeglądać lub zmieniać nazw plików,
  • dodawać nowych plików i przypisywać ich użytkownikom.

Mimo takich zabezpieczeń użytkownicy nie odczują żadnych problemów związanych z:

  • przesyłaniem, pobieraniem i podglądem plików,
  • przenoszenie zawartości ProtonDrive pomiędzy folderami,
  • przenoszenie, zmiana nazwy i usuwanie plików i folderów.

Model danych w PotonDrive

W ProtonDrive każdy użytkownik ma swój własny prywatny wolumin. W przyszłości ProtonDrive umożliwi administratorom tworzenie woluminów dla ich organizacji i możliwość udostępniania ich członkom tych organizacji.

Każdy plik i folder w ProtonDrive jest opisany przez dwie jednostki:

  • węzeł (node) – śledzi metadane wpisu (na przykład typ, rozmiar, czas utworzenia i modyfikacji) oraz jego atrybuty,
  • łącze (link) – identyfikuje pozycję wpisu w drzewie folderów. Odsyłacz wskazuje lokalizację wpisu, odwołując się do wpisu nadrzędnego i przechowując nazwę wpisu.

Model ten jest podobny do modelu systemu plików Portable Operating System Interface (POSIX), ułatwiając komunikację i synchronizację między ProtonDrive a systemami plików na urządzeniu użytkownika. W przyszłości, dla łatwiejszej komunikacji dostępne będą aplikacje na komputery stacjonarne i przenośne.

ProtonDrive Links and Nodes

Łącza (links) określają pozycję pozycji w drzewie folderów, a węzły (nodes) zawierają metadane pozycji.

Dostęp do danych w ProtonDrive

Dostęp do woluminu zawsze odbywa się za pomocą informacji zwanej udziałem (share). Udział można postrzegać jako rodzaj karty dostępu, która zapewnia użytkownikowi określone uprawnienia i dostęp do określonej części drzewa folderów.

Pełni on zatem trzy funkcje:

  • odnosi się do łącza w drzewie,
  • ogranicza operacje, które można wykonać na treści (np. tylko do odczytu, tylko do zapisu, itp.),
  • zawiera materiał kryptograficzny wymagany do rozpoczęcia procesu deszyfrowania treści.

Każdy wolumin ma domyślny udział odpowiadający korzeniowi jego drzewa folderów bez żadnych ograniczeń w uprawnieniach.

Share 1 to udział domyślny, który odpowiada korzeniowi drzewa folderów woluminu i nie ma ograniczeń dotyczących uprawnień. Share 2 to zwykły udział wskazujący na określony folder lub plik i definiujący uprawnienia.

ProtonDrive multiple members share

System pozwala na dowolne przyporządkowanie uprawnień dla każdego członka udziału. Można im umożliwić tylko odczyt, możliwość zapisywania, a także dostęp administratora.

Główny model szyfrowania

Sposób szyfrowania treści polega na hierarchicznej strukturze zawartości ProtonDrive, w której drzewa folderów mogą mieć różne głębokości. Oznacza to, że kroki deszyfrowania są powtarzane na każdym poziomie drzewa.

Najważniejsze jest to, że wszystkie klucze i hasła są generowane po stronie klienta i przesyłane na serwer tylko w postaci zaszyfrowanej. Podobnie nazwy plików i folderów, a także zawartość plików są wysyłane na serwer tylko w postaci zaszyfrowanej. To uniemożliwia nawet Protonowi odszyfrowanie któregokolwiek z tych podmiotów. Jednym słowem, może je odczytać jedynie klient lub osoba, której da on dostęp do danych.

Dostęp do udziałów (shares)

Użytkownicy dysponujący wieloma adresami e-mail w poczcie ProtonMail mogą powiązać je ze swoim kontem ProtonDrive. Każdy adres jest powiązany z kluczem umożliwiającym właścicielowi konta dostęp do udziału, gdy zostanie jego członkiem.

Po utworzeniu udziału system szyfrowania generuje 32-bajtowe losowe hasło udziału wraz z kluczem asymetrycznym (kluczem udziału). Klucz udziału jest blokowany za pomocą hasła udziału, które jest zaszyfrowane i podpisane kluczem adresu użytkownika.

W przypadku wielu członków udziału, hasło udziału jest szyfrowane odrębnym kluczem adresowym przypisanym do każdego członka. Każdy członek ma możliwość uzyskania dostępu do hasła udziału za pomocą własnych kluczy adresowych.

Szyfrowanie ładunku (payload)

Metoda szyfrowania PGP pozwala na użycie wielu asymetrycznych kluczy lub haseł do zaszyfrowania ładunku (payload). PGP rozpoczyna proces szyfrowania od wygenerowania nowego symetrycznego klucza sesji, który jest losowym hasłem o wystarczającej długości. Klucz sesji służy do szyfrowania ładunku, tworząc pakiet danych.

Następnym krokiem jest zaszyfrowanie klucza sesyjnego po kolei za pomocą każdego klucza asymetrycznego i każdego hasła dostarczonego przez użytkownika, w wyniku czego powstaje wiele pakietów kluczy. Każdy klucz asymetryczny lub hasło może odszyfrować odpowiadający mu pakiet kluczy i użyć klucza sesji w celu odszyfrowania pakietu danych.

Zezwolenie nowemu kluczowi (tj. nowemu użytkownikowi) na odszyfrowanie ładunku jest prostą operacją, która nie zmienia pakietu danych – wystarczy ponownie zaszyfrować klucz sesji za pomocą nowego klucza, tworząc nowy pakiet kluczy.

ProtonDrive PGP encryption

Zawartość plików i folderów (ładunek) jest zabezpieczona jednym kluczem sesji z szyfrowaniem symetrycznym. Użytkownicy uzyskują dostęp do ładunku poprzez szyfrowanie i deszyfrowanie klucza sesji przy użyciu szyfrowania asymetrycznego.

Pliki i foldery są uporządkowane w strukturze drzewa. W związku z tym istnieje powtarzający się wzorzec, w którym asymetryczny klucz pliku lub folderu jest zablokowany hasłem, które z kolei jest szyfrowane za pomocą asymetrycznego klucza ich folderu nadrzędnego. Wszystkie hasła są podpisywane kluczem adresowym użytkownika, bez którego złośliwe oprogramowanie mógłoby sfałszować zawartość drzewa.

Szyfrowanie węzłów (nodes)

Dla każdego węzła w drzewie niezależnie od tego, czy jest to plik, czy folder, generowany jest również klucz asymetryczny i hasło – klucz węzła i hasło. Hasło do węzła jest szyfrowane kluczem węzła folderu nadrzędnego (jeśli bieżący węzeł nie jest katalogiem głównym woluminu) lub kluczem udziału, jeśli bieżący węzeł reprezentuje katalog główny udziału.

Nazwa pliku lub folderu jest również zaszyfrowana za pomocą klucza węzła folderu nadrzędnego. Jak wspomniano wcześniej, pliki są przechowywane w blokach, z których każdy ma maksymalnie 4 MB i jest szyfrowany kluczem węzła pliku. Skróty zawartości bloków, które maskują oryginalną zawartość za pomocą szyfrowania, są kolejno łączone, a otrzymany ciąg jest podpisywany za pomocą klucza adresu osoby przesyłającej. Mechanizm ten chroni przed sfałszowaniem zawartości plików przez złośliwy lub zaatakowany serwer.

ProtonDrive Nodes

Każdy węzeł w drzewie ma hasło do węzła i klucz węzła, który odszyfrowuje odpowiednie pakiety danych.

Dotychczasowe wyjaśnienie obejmuje główne punkty modelu bezpieczeństwa: szyfrowanie i weryfikowanie przechowywanej zawartości oraz udostępnianie treści między użytkownikami Protona.

Udostępnianie przez adres URL

Użytkownicy mogą chcieć udostępnić plik znajdujący się w woluminie ProtonDrive osobie, która nie ma konta Proton. Można to zrobić w trybie „tylko do odczytu” za pomocą mechanizmu, który uniemożliwia Protonowi dostęp do udostępnionej zawartości.

Metoda wykorzystuje klienta internetowego generującego bezpieczne adresy URL, które umożliwiają dostęp do zawartości określonych plików. Adresy URL są chronione hasłem, a posiadanie zarówno adresu URL, jak i hasła zapewnia dostęp do udostępnianej zawartości. Chociaż serwer Proton będzie znał adres URL, nigdy nie otrzyma hasła.

Podczas tworzenia nowego udostępnionego adresu URL dla pliku klient WWW najpierw potwierdzi, że istnieje udział kierujący do pliku. Hasło do tego udziału należy następnie zaszyfrować nowym hasłem powiązanym z adresem URL. To nowe hasło jest generowane losowo przez klienta ProtonDrive lub jest określane przez użytkownika.

W przypadku haseł generowanych losowo użytkownik może zdecydować, czy chce je umieścić na końcu adresu URL, co jest równoznaczne z publicznym udostępnieniem treści. Ta sekcja adresu URL nie jest udostępniana serwerom Proton, przez co hasło i zawartość są niedostępne dla Protona. Alternatywnie użytkownik może udostępnić hasło osobno. W przypadku haseł zdefiniowanych przez użytkownika ta opcja nie jest dostępna, a hasło należy zawsze podawać osobno.

Natępnie klient wysyła żądanie do serwera, aby utworzyć nowy adres URL, który można udostępniać, dostarczając nowy pakiet zaszyfrowanych kluczy dla hasła udziału. Serwer przechowuje zaszyfrowany pakiet kluczy i zwraca klientowi unikalny losowy adres URL w celu uzyskania dostępu do udostępnianej zawartości.

Aby uzyskać dostęp do pliku lub folderu za pośrednictwem udostępnionego adresu URL, użytkownik musi mieć hasło, którego Proton nie zna.

ProtonDrive Share URL

Po uzyskaniu dostępu do adresu URL serwer zwróci zaszyfrowany ładunek potrzebny do uzyskania dostępu do udostępnianej zawartości. Tylko znajomość hasła URL umożliwia odszyfrowanie ładunku i uzyskanie dostępu do udostępnionego pliku.

To jest uproszczony opis, który oddaje centralną zasadę projektu. Rzeczywista implementacja obejmuje mechanizmy zapobiegające ponownemu nieuprawnionemu dostępowi do adresów URL. Oferuje również możliwość ustawienia czasu wygaśnięcia adresów URL lub ograniczenia liczby dostępnych adresów URL.

Podsumowanie i wnioski

W tym artykule opisano model zabezpieczeń ProtonDrive, który został zaprojektowany w celu ochrony danych użytkowników przed złośliwymi podmiotami. Pomimo tego ProtonDrive oferuje jednocześnie taką samą łatwość użytkowania, jak usługa przechowywania w chmurze bez kompleksowego szyfrowania.