Dla zaawansowanych: przegląd architektury
Usługa Dropbox została opracowana z wykorzystaniem wielu warstw ochrony, włączając w to bezpieczne przesyłanie danych, szyfrowanie, konfigurację sieci, kontrolę z poziomu aplikacji rozproszoną w skalowalnej i bezpiecznej infrastrukturze.
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, zapewniając jednocześnie ł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.
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 wspieranej przez system MySQL i w razie potrzeby są partycjonowane i replikowane, aby spełnić wymagania z zakresu wydajności i wysokiej dostępności.
Serwery bloków
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. Nie są tutaj przechowywane ani przenoszone żadne dane plików ani metadane. Każdy klient nawiązuje połączenie typu long poll z usługą powiadomień, a następnie 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 się bezpiecznie połączyć 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 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 metadanych
Paper korzysta z tych samych serwerów metadanych opisanych na schemacie infrastruktury Dropbox do przetwarzania informacji o dokumentach Paper, takich jak historia wersji pliku Paper doc i członkostwo w folderach udostępnionych. Dropbox bezpośrednio zarządza serwerami metadanych, które znajdują się w zewnętrznych, kolokowanych centrach danych.
Bazy metadanych
Paper korzysta z tych samych baz danych metadanych opisanych na schemacie infrastruktury Dropbox do przechowywania informacji związanych z dokumentami Paper, takich jak udostępnianie, uprawnienia i powiązania folderów. Metadane dokumentów Paper są przechowywane w usłudze bazy danych opartej na systemie MySQL i w razie potrzeby są partycjonowane i replikowane, aby spełnić wymagania z zakresu wydajności i wysokiej dostępności.
Serwery przechowywania obrazów 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 i 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) zarówno w aplikacji komputerowej jak i w klientach mobilnych synchronizacji plików oraz udostępniania. Przypinanie certyfikatu to dodatkowy mechanizm pozwalający upewnić się, że nasze aplikacje łączą się tylko z serwerami, które mają certyfikaty cyfrowe pochodzące z autoryzowanych urzędów certyfikacji. Używamy tej funkcji w celu ochrony przed atakami ze strony państw kontrolujących „podstępne” urzędy certyfikacji, a także ochrony użytkowników przed lokalnym złośliwym oprogramowaniem, które może przejmować połączenia.
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 certyfikatów prywatnego klucza do odszyfrowania ruchu internetowego. To dodaje dodatkową ochronę do szyfrowanej komunikacji z Dropbox, odłączając zasadniczo każdą sesję od wszystkich poprzednich. Dodatkowo w witrynie flagujemy wszystkie uwierzytelniające pliki cookies jako bezpieczne i włączamy mechanizm HTTP Strict Transport Security (HSTS).
Zarządzanie kluczem
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.