Ochrona rozpoczyna się przed przesłaniem
Zawartość plików, nazwy plików, typy MIME, miniatury, nazwy skarbców oraz nazwy i struktura folderów są szyfrowane na Twoim urządzeniu przed przesłaniem. Usługa przechowuje tekst zaszyfrowany i opakowane klucze. Intruz, który uzyska tylko te zapisane rekordy, nie uzyska klucza skarbca w postaci zwykłego tekstu, klucza tajnego urządzenia ani klucza odzyskiwania.
Zakłada się, że przeglądarka, system operacyjny, dostarczony kod aplikacji i generator liczb losowych są godne zaufania podczas tworzenia lub odblokowywania skarbca. Szyfrowanie w spoczynku nie może chronić odblokowanego skarbca przed złośliwym kodem uruchomionym na Twoim urządzeniu.
Niezależne klucze do każdego skarbca
Każdy skarbiec zaczyna się od losowo wygenerowanego 256-bitowego klucza głównego AES. Klucz jest generowany przez kryptograficzny generator liczb losowych przeglądarki, a nie wyprowadzany bezpośrednio z Twojego gestu. Oddzielne klucze skarbca ograniczają efekt ujawnienia pojedynczego klucza skarbca.
Wzorzec urządzenia łączy uporządkowaną sekwencję kropek z losowym 256-bitowym sekretem urządzenia. PBKDF2 z HMAC-SHA-256, świeżą 128-bitową solą i 600 000 iteracji tworzy 256-bitowy klucz zawijający. Następnie AES-256-GCM szyfruje klucz główny pod tym kluczem zawijającym. Usługa otrzymuje zaszyfrowane opakowanie, jego sól i publiczne parametry wyprowadzania. Sekret urządzenia pozostaje w lokalnej bazie danych IndexedDB tej przeglądarki.
Wzory wykorzystują tylko siatkę 5 × 5 i co najmniej sześć odrębnych kropek. Poprzednie formaty wzorców nie są obsługiwane. Istniejące skarbce wymagają kluczy odzyskiwania, aby zarejestrować nowy wzorzec. Rozmiar siatki nie gwarantuje siły hasła: przewidywalne gesty są nadal łatwiejsze do odgadnięcia. Sekret urządzenia dodaje ochronę przed osobą posiadającą tylko rekordy serwera, ale nie jest to klucz sprzętowy. Osoba, która skopiuje zarówno lokalny sekret, jak i opakowanie, może próbować odgadnąć wzorce w trybie offline.
Klucze uwierzytelniają Twoje konto za pomocą odpowiedzi na wyzwanie klucza publicznego. Uwierzytelnienie konta nie pozwala na uzyskanie klucza skarbca ani na odszyfrowanie plików. Ważna sesja konta i pomyślne odblokowanie skarbca to oddzielne wymagania w normalnym przepływie aplikacji.
| Zamiar | Budowa |
|---|---|
| Klucz główny skarbca | Losowy 256-bitowy klucz AES |
| Opakowanie na klucze | PBKDF2-HMAC-SHA-256 · 600 000 iteracji · 128-bitowa sól → AES-256-GCM |
| Metadane i miniatury | AES-256-GCM · Losowa 96-bitowa wartość jednorazowa · 128-bitowy znacznik uwierzytelniający |
| Wyprowadzenie klucza pliku | HKDF-SHA-256 · Losowa 256-bitowa sól na plik · 256-bitowe wyjście AES |
| Sekret odzyskiwania | 192 losowe bity, wyświetlane jako sześć grup znaków szesnastkowych |
Poufność i wykrywanie manipulacji
Metadane skarbca, metadane plików, miniatury i klucze opakowane korzystają z AES-256-GCM ze 128-bitowymi znacznikami uwierzytelniania. Każde niezależne szyfrowanie wykorzystuje nową losową 96-bitową wartość jednorazową. Deszyfrowanie weryfikuje znacznik przed zwróceniem zwykłego tekstu; zmodyfikowany tekst zaszyfrowany lub zły klucz powodują niepowodzenie uwierzytelnienia.
Dodatkowe uwierzytelnione dane wiążą każdy zaszyfrowany obiekt z jego wersją formatu, identyfikatorem skarbca, identyfikatorem obiektu i przeznaczeniem. Na przykład miniatura i rekord metadanych pliku korzystają z różnych kontekstów. Przeniesienie zaszyfrowanego obiektu do innego skarbca lub zastąpienie go innym obiektem powoduje zmianę uwierzytelnionego kontekstu i weryfikację kończy się niepowodzeniem.
Uwierzytelniony kontekst nie ukrywa identyfikatorów i nie świadczy o świeżości. Prawidłowy starszy rekord może nadal mieć prawidłowy znacznik. Sprawdzanie wersji aplikacji wykrywa zwykłe, równoczesne aktualizacje, ale nie jest to ochrona kryptograficzna przed złośliwą usługą odtwarzającą całkowicie starszy stan.
Duże pliki korzystają z uwierzytelnionych segmentów
Zawartość pliku wykorzystuje konstrukcję przesyłania strumieniowego AES-256-GCM-HKDF-SHA-256 opisaną przez Tinka, zaimplementowaną przy użyciu prymitywów kryptograficznych przeglądarki. Każdy nowy strumień pliku ma 40-bajtowy nagłówek zawierający znacznik długości, losową 32-bajtową sól i losowy 7-bajtowy prefiks nonce.
HKDF uzyskuje oddzielny klucz szyfrowania plików z głównego klucza skarbca. Jego kontekst obejmuje identyfikatory skarbca i pliku, długość bajtów zwykłego tekstu i skonfigurowany rozmiar segmentu. 12-bajtowa wartość nonce każdego segmentu łączy losowy prefiks, czterobajtowy licznik segmentu i flagę ostatniego segmentu. Segmenty zawierają 128-bitowe znaczniki GCM.
Aplikacja przetwarza pliki w ograniczonych segmentach o wielkości około 5 MiB. Pozycje segmentów, flaga końcowego segmentu i oczekiwana długość bajtów powodują, że zamienione, zmienione lub obcięte segmenty nie przechodzą weryfikacji. Pobieranie uwierzytelnia każdy segment przed jego udostępnieniem; błąd na koniec transmisji może spowodować, że pobranie będzie niekompletne, dlatego liczy się pomyślne zakończenie. Ponowne przesyłanie powoduje ponowne wykorzystanie już zaszyfrowanych bajtów, zamiast szyfrowania nowej treści za pomocą tego samego segmentu jednorazowego.
Konstrukcja jest zgodna z Specyfikacja przesyłania strumieniowego Tink AES-GCM-HKDF. Wdrożenie i konfiguracja segmentu Revault nie zostały poddane niezależnemu audytowi ani certyfikacji przez Tink.
Odzyskiwanie to druga ścieżka do tego samego klucza
Sekret odzyskiwania jest generowany z 24 losowych bajtów, co daje 192 bity losowego wejścia. Niezależnie generuje klucz zawijający przy użyciu PBKDF2-HMAC-SHA-256 i własnej soli, a następnie szyfruje ten sam klucz główny skarbca za pomocą AES-256-GCM. Każdy, kto uzyska klucz odzyskiwania i kopię zaszyfrowanego skarbca, będzie mógł go odszyfrować.
Sekret odzyskiwania jest wyświetlany podczas konfiguracji i nie jest przechowywany przez usługę w postaci zwykłego tekstu. Trzymaj go oddzielnie od zaszyfrowanych plików. Wyczyszczenie danych przeglądarki usuwa sekret urządzenia; odzyskanie dostępu wymaga zaszyfrowanej kopii konta w chmurze i klucza odzyskiwania lub wyeksportowanej zaszyfrowanej kopii zapasowej i jej klucza odzyskiwania. Nie ma głównego klucza deszyfrującego posiadanego przez dostawcę.
Zestaw do odzyskiwania zawiera opakowanie sekretu i klucza, ale nie zawiera zawartości pliku. Zaszyfrowana kopia zapasowa zawiera uwierzytelniony inwentarz i zaszyfrowane segmenty plików, bez sekretu urządzenia przeglądarki. Import weryfikuje zaszyfrowane dane i tworzy nowy skarbiec z nowymi identyfikatorami i kluczami.
Zmiana wzoru powoduje zastąpienie opakowania tego urządzenia. Nie powoduje rotacji klucza głównego skarbca, nie unieważnia innego urządzenia, nie unieważnia starych kopii zapasowych ani nie zmienia istniejącego sekretu odzyskiwania. Jeśli klucz skarbca lub sekret odzyskiwania zostaną naruszone, przenieś dane do nowego skarbca z nowymi kluczami.
Udziały natywne korzystają z niezależnego szyfrowania
Udostępnianie mobilne domyślnie opakowuje klucze wybranych wersji plików nowym kluczem udostępniania i ponownie wykorzystuje zaszyfrowane bajty. Opcjonalna dodatkowa izolacja ponownie szyfruje pliki. Klucze źródłowego sejfu pozostają prywatne. Identyczny szyfrogram może powiązać udostępnienia; żaden tryb nie cofnie kopii zapisanej przez odbiorcę.
iOS może umieścić ten zaszyfrowany tekst w osobnej hierarchii rekordów CloudKit z prywatnym zaproszeniem tylko do odczytu. Nie udostępnia strefy synchronizacji skarbca. Natywne udziały międzyplatformowe korzystają z ograniczonych części serwera z sumami kontrolnymi SHA-256. Niezależne możliwości losowego odczytu 256-bitowego i zarządzania są przechowywane na serwerze w postaci skrótów. Sekret deszyfrowania jest przekazywany osobno i nigdy nie jest przesyłany. Akcje kontrolowane wygasają w wybranym przez nadawcę terminie, w terminie 30 dni. Usługa automatycznie zlicza sesje dostępu i wymusza wybrane maksimum, wygaśnięcie i unieważnienie. Sesja pobierania trwa maksymalnie 15 minut i nigdy nie przekracza wygaśnięcia udziału.
Odbiorcy uwierzytelniają każdy zaszyfrowany segment i otwierają izolowany wspólny skarbiec z oddzielnym sekretem nadawcy. Nie jest wymagane żadne konto, skarbiec osobisty ani wzór. Skarbce osobiste pozostają zamknięte. Jeśli eksport jest dozwolony, odbiorcy mogą zapisać zaszyfrowaną kopię .qvault, która otwiera się z tym kluczem udziału. W przeciwnym razie nie ma kontroli eksportu. Sesja tymczasowa sprawdza bieżący dostęp. Są to kontrole aplikacji: zrzutom ekranu, zmodyfikowanym klientom i zachowanym kopiom nie można zapobiec kryptograficznie. Udostępnienia to migawki bez bieżących aktualizacji źródeł. Nieograniczone CloudKit zaproszenia nie wymuszają zliczania dostępu ani automatycznego wygaśnięcia; dostęp trwa do momentu zaprzestania udostępniania przez właściciela. Usunięcie oryginału nie unieważnia jego odrębnego udziału, a żadne unieważnienie nie może odwołać już zachowanej kopii.
Opcjonalna aktywność skarbca
Natywne dzienniki inspekcji są domyślnie wyłączone i konfigurowane dla każdego magazynu na każdym urządzeniu. Za pomocą klucza głównego skarbca i dedykowanego uwierzytelnionego kontekstu szyfrowanych jest 500 ostatnich zdarzeń lokalnych. Wykluczają klucze, wzorce, zawartość plików i dane innych skarbców, nie synchronizują się i można je wyczyścić lub wyłączyć. Nie są one dowodem odpornym na manipulacje. Nieudane odblokowania nie są przypisywane do skarbca.
Nowe kontrolowane udziały utworzone z włączoną funkcją rejestrowania zachowują do 100 znaczników czasu sesji dostępu w usłudze udostępniania. Tylko zdolność zarządzania może je odzyskać; dziennik nie zawiera tożsamości odbiorcy ani tajemnicy deszyfrowania. Wyłączenie lokalnego rejestrowania ma wpływ na przyszłe udziały. Istniejące dzienniki udziałów zachowują swoje oryginalne ustawienia aż do odwołania lub wygaśnięcia i oczyszczenia.
Opcjonalne zaszyfrowane zdjęcia włamań
Właściciele mogą włączyć alerty o włamaniach oddzielnie dla każdego skarbca na każdym urządzeniu. Po trzech niezrównanych wzorach aplikacja działająca na pierwszym planie może zrobić zdjęcie przednim aparatem, pod warunkiem uzyskania pozwolenia, dostępności aparatu i jednominutowego czasu odnowienia. Wskaźniki kamer systemowych pozostają widoczne. Dziesięć ostatnich alertów jest przechowywanych lokalnie i nigdy nie jest dodawanych do Zdjęć ani przesyłanych. Niedopasowany wzorzec nie identyfikuje skarbca docelowego, więc każdy skarbiec, do którego włączono opcję, otrzymuje oddzielnie zaszyfrowany rekord próby użycia urządzenia.
Dedykowany klucz publiczny RSA-3072 otacza nowy 256-bitowy klucz AES-GCM dla każdego alertu przy użyciu OAEP z SHA-256 i MGF1-SHA-256. Umożliwia to szyfrowanie, gdy skarbiec jest zamknięty. Odpowiedni klucz prywatny jest sam w sobie szyfrowany pod kluczem głównym skarbca z dedykowanym uwierzytelnionym kontekstem. Tylko odblokowanie tego skarbca może odszyfrować zawarte w nim zdjęcia. Alerty pojawiają się w widoku audytu niezależnie od zwykłego rejestrowania aktywności i można je wyczyścić w ustawieniach alertów o włamaniach. Nie są one dowodem odpornym na manipulacje.
Szyfrowane przesyłanie do Twojego własnego zasobnika
Ustawienia magazynu skarbca umożliwiają bezpośrednie połączenie tej przeglądarki z określonym przez użytkownika punktem końcowym HTTPS zgodnym z S3. Wybrane pliki urządzenia są szyfrowane lokalnie przy użyciu tej samej konstrukcji pliku. Każdy staje się oddzielnym, przenośnym obiektem .qvault zawierającym uwierzytelniony zaszyfrowany ekwipunek i zapakowane klucze skarbca. Losowe nazwy obiektów pozwalają uniknąć ujawniania oryginalnych nazw plików. Przywrócenie wymaga pobranego obiektu i klucza odzyskiwania skarbca.
Konfiguracja punktu końcowego i dane uwierzytelniające są szyfrowane pod kluczem głównym skarbca z dedykowanym uwierzytelnionym kontekstem i przechowywane w IndexedDB tego urządzenia. Nie są one synchronizowane ani wysyłane do interfejsu API Revault. Podpisywanie żądań korzysta z podpisu AWS w wersji 4, HMAC-SHA-256 i skrótu każdej ograniczonej treści żądania. Części wieloczęściowe w formacie ośmiu MiB przenoszą już zaszyfrowane bajty bezpośrednio do dostawcy pamięci masowej. Dostęp do zasobnika nadal regulują uprawnienia tego dostawcy i zasady CORS.
Dostawca może zobaczyć identyfikatory kluczy dostępu, ścieżki obiektów, rozmiary bajtów, czasy przesyłania i informacje o połączeniu. Zachowaj wiadro jako prywatne, a jego poświadczenia w zakresie wymaganych operacji. Przesłane obiekty są niezależne od synchronizacji i udostępniania w chmurze Revault. Blokowanie lub anulowanie prób przerwania niedokończonych przesyłań; zamknięcie karty lub utrata łączności może spowodować pozostawienie osieroconych części, dlatego skonfiguruj regułę cyklu życia niekompletnego przesyłania. Safe Exit usuwa poświadczenia lokalnego magazynu innych skarbców, ale nie usuwa obiektów z ich zasobników.
Safe Exit usuwa dostęp lokalny
W tej przeglądarce możesz wyznaczyć jeden skarbiec jako skarbiec Safe Exit. Wprowadzenie wzorca skarbca powoduje jego normalne otwarcie, bez potwierdzenia uruchomienia lub powiadomienia o zakończeniu. Lokalne migawki innych skarbców, zaszyfrowane fragmenty, sekrety urządzeń i zmiany w kolejce są usuwane. Niezsynchronizowane dane mogą zostać utracone.
Trwała granica lokalna uniemożliwia automatyczne wyświetlanie lub przywracanie tych skarbców poprzez synchronizację w tej przeglądarce. Ich zaszyfrowane kopie w chmurze i kopie na innych urządzeniach pozostają niezmienione. Odzyskiwanie jest jawne, po jednym skarbcu na raz i wymaga klucza odzyskiwania skarbca, zanim będzie można zarejestrować nowy wzorzec urządzenia.
Jest to usunięcie dostępu lokalnego, które nie gwarantuje fizycznego usunięcia ani ukrycia do celów kryminalistycznych. Profile przeglądarek, migawki systemu plików, wcześniejsze pobrania, zrzuty ekranu, zapisy usług i inne urządzenia mogą przechowywać dowody. Wyczyszczenie lokalnych danych tej przeglądarki powoduje również wyczyszczenie lokalnej granicy izolacji; nowa instalacja może ponownie wyświetlić skarbce w chmurze konta po uwierzytelnieniu.
Co pozostaje widoczne
Szyfrowanie chroni zawartość, a nie każdy fakt dotyczący przechowywania. Usługa może obserwować powiązania kont, losowe identyfikatory obiektów, liczbę obiektów, rozmiary bajtów, wersje, znaczniki czasu, zaszyfrowane opakowania, nagłówki strumieni i aktywność żądań. Rejestry sieciowe i operacyjne mogą ujawnić informacje o połączeniu. Nie jest to system zapewniający anonimowość i nie zapewnia odporności na analizę ruchu.
Szyfrowanie transportu chroni żądania przesyłane, gdy aplikacja jest obsługiwana za pośrednictwem protokołu HTTPS. Różni się to od szyfrowania po stronie klienta, dzięki któremu zawartość przechowywanych plików jest szyfrowana w usłudze.
Gdzie kończy się ochrona
Przeglądanie prywatne zwykle usuwa pamięć lokalną po zakończeniu sesji prywatnej. Żądanie przechowywania trwałego nie powoduje trwałej sesji incognito. Zsynchronizowane kopie w chmurze pozostają, ale lokalne wzorce, niezsynchronizowane zmiany, pliki w pamięci podręcznej i ustawienia Safe Exit mogą zostać utracone. Nowa sesja prywatna wymaga dostępu do konta i klucza odzyskiwania, aby zarejestrować nowy wzorzec.
Aplikacja usuwa odwołanie do klucza skarbca w pamięci i po zablokowaniu odwołuje adresy URL prywatnego podglądu. Blokuje się automatycznie, gdy jest ukryty lub po pięciu minutach bezczynności. Aplikacje natywne blokują się także w tle, usuwają tymczasowe podglądy i czyścią posiadane bufory kluczy po zakończeniu operacji. Zarządzanie pamięcią przeglądarki, Swift i JVM nie gwarantuje natychmiastowego usunięcia każdej kopii klucza lub zdekodowanego bufora multimediów.
Złośliwe oprogramowanie, niebezpieczne rozszerzenie, zhakowany kod aplikacji lub ktoś przeglądający odblokowany ekran może przechwycić zwykły tekst i sekrety. Szyfrowanie nie zapobiega odmowie dostępu do konta, usunięciu obiektów w chmurze, oprogramowaniu ransomware, utracie klucza odzyskiwania ani wstrzymywaniu danych przez usługę. Zachowaj oddzielną zaszyfrowaną kopię zapasową i chroń samo urządzenie.
Revault nie przeszedł niezależnego audytu bezpieczeństwa. Są to opisy wdrożonego projektu kryptograficznego, a nie certyfikat czy gwarancja na wypadek każdego włamania.