Dla zaawansowanych: przegląd architektury

Usługa Dropbox została stworzona z wykorzystaniem wielu warstw ochrony, włączając w to bezpieczne przesyłanie danych, szyfrowanie, konfigurację sieci oraz kontrolę z poziomu aplikacji, zastosowanych na różnych poziomach skalowalnej i bezpiecznej infrastruktury.

Infrastruktura plików

Użytkownicy Dropbox mogą uzyskać dostęp do plików i folderów w dowolnym momencie z wielu interfejsów, w tym klientów komputerowych, przeglądarkowych i mobilnych lub poprzez aplikacje innych firm połączone z Dropbox. Wszystkie z nich mają ustawienia i funkcje bezpieczeństwa, które przetwarzają i chronią dane użytkowników, jednocześnie zapewniając łatwy dostęp. Klienty te łączą się z bezpiecznymi serwerami, aby zapewnić dostęp do plików, umożliwiają udostępnianie plików innym i aktualizację połączonych urządzeń, gdy pliki są dodawane, zmieniane lub usuwane.

Infrastruktura plików w dystrybucjach Dropbox

Nasza infrastruktura plików składa się z następujących elementów:

Serwery metadanych

Niektóre podstawowe informacje o danych użytkownika, tzw. metadane, są przechowywane we własnej, odrębnej usłudze przechowywania i działają jak indeks danych na kontach użytkowników. Metadane obejmują podstawowe informacje o koncie i użytkowniku, np. adres e-mail, imię i nazwisko oraz nazwy urządzeń. Metadane zawierają również podstawowe informacje o plikach, w tym nazwy i typy plików, które pomagają obsługiwać funkcje takie jak historia wersji, odzyskiwanie i synchronizacja.

Bazy metadanych

Metadane plików są przechowywane w usłudze bazy danych zabezpieczonej systemem MySQL i w razie potrzeby są partycjonowane i replikowane, aby spełnić wymagania z zakresu wydajności i wysokiej dostępności.

Serwery blokowe

Dropbox z założenia zapewnia unikalny mechanizm bezpieczeństwa, który wykracza poza tradycyjne szyfrowanie w celu ochrony danych użytkownika. Serwery bloków przetwarzają pliki pochodzące z różnych aplikacji Dropbox, dzieląc każdy z nich na bloki, szyfrując każdy blok przy użyciu silnego szyfru oraz synchronizując tylko te bloki, które uległy modyfikacji pomiędzy kolejnymi wersjami pliku. Gdy aplikacja Dropbox wykrywa nowy plik lub zmiany w istniejącym pliku, powiadamia serwery bloków o zmianie, a nowe lub zmodyfikowane bloki plików zostają przetworzone i przesłane do serwerów przechowywania bloków. Dodatkowo serwery bloków mogą być wykorzystywane do dostarczania plików użytkownikom i umożliwiania im podglądu.

Serwery przechowywania bloków

Właściwa zawartość plików użytkowników jest przechowywana w zaszyfrowanych blokach na serwerach przechowywania bloków. Właściwa zawartość plików użytkowników jest przechowywana w zaszyfrowanych blokach na serwerach przechowywania bloków. Przed przekazaniem klient Dropbox dzieli pliki na bloki plików w ramach przygotowań do przechowywania. Serwery przechowywania bloków działają jako system Content-Addressable Storage (CAS), a każdy zaszyfrowany blok pliku jest pobierany na podstawie jego wartości skrótu.

Serwery podglądu

Serwery podglądu odpowiadają za tworzenie podglądów plików. Podglądy to renderowanie pliku użytkownika w innym formacie pliku, który lepiej nadaje się do szybkiego wyświetlania na urządzeniu użytkownika końcowego. W celu wygenerowania podglądów serwery podglądu pobierają bloki plików z serwerów przechowywania bloków. Po otrzymaniu żądania podglądu pliku serwery podglądu pobierają podgląd z pamięci podręcznej serwerów przechowywania podglądów i przesyłają je do serwerów bloków. Podglądy są ostatecznie dostarczane użytkownikom przez serwery bloków.

Serwery przechowywania podglądów

Podglądy z pamięci podręcznej są przechowywane w zaszyfrowanych formatach na serwerach przechowywania podglądów.

Usługa powiadomień

Jest to osobna usługa służąca do monitorowania kont Dropbox pod względem zmian. Żadne pliki ani metadane nie są tutaj przechowywane ani przenoszone. Każdy klient nawiązuje połączenie typu long poll z usługą powiadomień i oczekuje. W przypadku zmiany jakiegokolwiek pliku w Dropbox usługa powiadomień sygnalizuje zmianę odpowiedniemu klientowi (klientom) poprzez zamknięcie połączenia long poll. Zamknięcie połączenia oznacza, że w celu zsynchronizowania wszelkich zmian klient musi bezpiecznie połączyć się z serwerami metadanych.

Infrastruktura Dropbox Paper

Użytkownicy Dropbox mogą w dowolnym czasie uzyskiwać dostęp do dokumentów Paper przy użyciu klientów internetowych i mobilnych albo za pośrednictwem innych aplikacji połączonych z aplikacją Dropbox Paper. Klienty te łączą się z bezpiecznymi serwerami, aby zapewnić dostęp do dokumentów Paper, umożliwić udostępnianie dokumentów innym osobom i aktualizować połączone urządzenia, gdy dokumenty są dodawane, zmieniane lub usuwane.

Infrastruktura plików w dystrybucjach Dropbox Paper

Infrastruktura Dropbox Paper składa się z następujących elementów:

Serwery aplikacji Paper

Serwery aplikacji Paper przetwarzają żądania użytkowników, renderują u użytkowników wyjściową postać edytowanych dokumentów Paper i wykonują zadania związane z powiadomieniami. Serwery aplikacji Paper zapisują zmiany użytkowników w bazach danych Paper, gdzie trafiają one do trwałej pamięci masowej. Sesje komunikacji między serwerami aplikacji Paper i bazami danych Paper są szyfrowane silnym szyfrem.

Bazy danych Paper

Właściwa zawartość dokumentów Paper użytkowników, a także pewne metadane na temat tych dokumentów, są szyfrowane w trwałej pamięci masowej w bazach danych Paper. Obejmuje to informacje o każdym dokumencie Paper (takie jak jego tytuł, członkowie i uprawnienia, powiązania z projektem i folderem itd.) oraz zawartość samego dokumentu, łącznie z komentarzami i zadaniami. Bazy danych Paper są partycjonowane i replikowane odpowiednio do potrzeb, aby spełnić wymagania z zakresu wydajności i wysokiej dostępności.

Serwery przechowywania Paper

Obrazy przesłane do dokumentów Paper są przechowywane na serwerach obrazów Paper i w takiej postaci szyfrowane. Transmisja danych obrazów między aplikacją Paper i serwerami obrazów Paper odbywa się w ramach zaszyfrowanej sesji.

Serwery podglądu

Serwery podglądu tworzą podglądy obrazów przesłanych do dokumentów Paper i hiperłączy osadzonych w tych dokumentach. W przypadku obrazów przesyłanych do dokumentów Paper serwery podglądu pobierają dane dotyczące obrazu przechowywane na serwerach przechowywania obrazów Paper za pośrednictwem zaszyfrowanego kanału. W przypadku hiperłączy osadzonych w dokumentach Paper serwery podglądu pobierają dane dotyczące obrazu i tworzą jego podgląd przy użyciu szyfrowania, zgodnie z tym, co określa łącze źródłowe. Podglądy są ostatecznie dostarczane użytkownikom przez serwery bloków.

Serwery przechowywania podglądów

Do przechowywania podglądów obrazów w pamięci podręcznej aplikacja Paper korzysta z serwerów przechowywania podglądów opisanych na schemacie infrastruktury Dropbox. Fragmenty podglądu z pamięci podręcznej są przechowywane w zaszyfrowanych formatach na serwerach przechowywania podglądów.

Zarówno specjalne wewnętrzne zespoły ds. bezpieczeństwa, jak i specjaliści innych firm chronią te usługi poprzez identyfikację i ograniczanie zagrożeń oraz luk w zabezpieczeniach. Te grupy przeprowadzają regularne testy i audyty aplikacji, sieci i innych elementów związanych z bezpieczeństwem, aby zapewnić bezpieczeństwo zaplecza sieciowego po naszej stronie. Ponadto nasza polityka odpowiedzialnego ujawniania luk promuje odkrywanie i zgłaszanie luk w zabezpieczeniach.

Centra danych

Systemy korporacyjne i produkcyjne Dropbox mieszczą się w centrach danych innych firm zarządzanych przez dostawców usług z USA. Ci zewnętrzni dostawcy usług są odpowiedzialni za fizyczne, środowiskowe i operacyjne kontrole bezpieczeństwa w ramach infrastruktury Dropbox. Dropbox odpowiada za bezpieczeństwo aplikacji oraz bezpieczeństwo logiczne i sieciowe naszej infrastruktury znajdującej się w centrach danych innych firm.

Szyfrowanie

Pliki Dropbox i dokumenty Paper podczas przechowywania są szyfrowane za pomocą 256-bitowego algorytmu Advanced Encryption Standard (AES). Aby chronić dane przesyłane między aplikacjami Dropbox (obecnie są to aplikacje: komputerowa, mobilna, interfejs API i przeglądarka) oraz naszymi serwerami, Dropbox do transferu danych używa protokołu Secure Sockets Layer (SSL)/Transport Layer Security (TLS), tworząc bezpieczny tunel chroniony 128-bitowym lub dłuższym kluczem szyfrującym AES (Advanced Encryption Standard). Podobnie dane przesyłane między klientem Paper (aplikacją mobilną, interfejsem API lub przeglądarką) i usługami hostowanymi są szyfrowane przy użyciu protokołu SSL/TLS.

Przypinanie certyfikatu

Dropbox obsługuje przypinanie certyfikatu (cerificate pinning) w nowoczesnych przeglądarkach, które wspierają klucz publiczny HTTP, zarówno w aplikacji komputerowej, jak i w aplikacjach mobilnych w większości przypadków i projektów. Przypinanie certyfikatu to dodatkowa pewność, że usługa, z którą się łączysz, jest tą, za którą się podaje i nie jest oszustwem. Korzystamy z tego, aby uchronić Cię przed wprawnymi hakerami, którzy mogliby szpiegować Twoje działania.

Funkcja PFS (perfect forward secrecy)

W punktach końcowych, które możemy kontrolować (komputerowych i mobilnych) oraz w nowoczesnych przeglądarkach używamy silnych szyfrów oraz obsługujemy funkcję PFS. Implementacja PFS uniemożliwia wykorzystanie prywatnego klucza SSL do odszyfrowania ruchu internetowego. To zapewnia dodatkową ochronę do szyfrowanej komunikacji z Dropbox, odłączając zasadniczo każdą sesję od wszystkich poprzednich. Dodatkowo w witrynie flagujemy wszystkie uwierzytelniające cookies jako bezpieczne i włączamy mechanizm HTTP Strict Transport Security (HSTS).

Zarządzanie kluczami

Infrastruktura zarządzania kluczami w Dropbox jest zaprojektowana z wykorzystaniem kontroli bezpieczeństwa na poziomie operacyjnym, technicznym i proceduralnym, z bardzo ograniczonym bezpośrednim dostępem do kluczy. Generowanie, wymiana i przechowywanie kluczy szyfrujących jest rozproszone, aby zapewnić zdecentralizowane przetwarzanie.

W celu zapewnienia wygody Dropbox zarządza szyfrowaniem plików w imieniu swoich użytkowników, obsługuje zaawansowane funkcje produktowe i wspierany jest silną kontrolą kryptograficzną. Klucze szyfrowania plików są generowane, przechowywane i chronione w ramach kontroli bezpieczeństwa infrastruktury systemu produkcji i reguł bezpieczeństwa. Dostęp do systemów produkcji jest strzeżony przy pomocy unikalnych par kluczy SSH. Reguły i procedury bezpieczeństwa wymagają ochrony kluczy SSH. Wewnętrzny system zarządza procesem wymiany kluczy publicznych, a klucze prywatne są bezpiecznie przechowywane.

Więcej na temat naszych funkcji kontroli i wglądu dowiesz się z naszej białej księgi bezpieczeństwa Dropbox Business.