Słownik

Prywatność i szyfrowanie

Te słowa są luźno używane w opisach aplikacji, a różnice między nimi dotyczą dokładnie tego, gdzie jest ich wartość. Ukryty nie jest zamknięty. Zablokowany nie jest szyfrowany. A klucz, który trzyma ktoś inny, tak naprawdę nie jest twój.

Ukryte vs zaszyfrowane

Ukryty oznacza, że aplikacja zgadza się nie pokazywać czegoś. Zaszyfrowane oznacza, że bajtów na dysku nie da się odczytać bez klucza. Pierwsza to obietnica; druga to arytmetyka.

Ukryty folder to wciąż zwykły folder. Wszystko, co czyta dysk bezpośrednio — kopia zapasowa, menedżer plików, narzędzie śledcze, inna aplikacja z odpowiednim uprawnieniem — widzi dokładnie to, co w nim jest, bo w pliku nic się nie zmieniło.

Szyfrowanie zmienia plik. To, co leży na dysku, to szum, i pozostaje szumem dla każdego bez klucza, łącznie z tym, kto napisał aplikację. Ta różnica staje się widoczna dopiero w dniu, w którym ma znaczenie, dlatego warto ją znać wcześniej.

Zobacz też: W spoczynku vs w transporcieChaCha20-Poly1305

ChaCha20-Poly1305

Nowoczesny algorytm szyfrowania, który zarówno ukrywa dane, jak i wykrywa manipulację przy nich. Szybki na telefonach, które nie zawsze mają akcelerację sprzętową dla starszej alternatywy.

ChaCha20 wykonuje szyfrowanie; Poly1305 tworzy znacznik, który potwierdza, że dane nie zostały zmienione. Razem nazywa się to szyfrowaniem uwierzytelnionym — deszyfrowanie zawodzi głośno przy zmodyfikowanym pliku, zamiast produkować wiarygodnie wyglądający bełkot.

To ta sama konstrukcja, która jest używana w TLS i we współczesnej bezpiecznej komunikacji. Na sprzęcie bez akceleracji AES jest wyraźnie szybszy niż AES, dlatego telefony chętniej go wybierają.

Zobacz też: W spoczynku vs w transporcieOpakowanie na klucze

Opakowanie na klucze

szyfrowanie kopert

Szyfrowanie plików jednym kluczem, a następnie szyfrowanie tego klucza oddzielnie przy każdym wejściu. Zmiana hasła powoduje ponowne zapakowanie małego klucza zamiast ponownego szyfrowania wszystkiego.

Pliki są szyfrowane raz, kluczem wygenerowanym na urządzeniu. Ten klucz jest następnie owijany — szyfrowany — hasłem, i owijany ponownie kodem odzyskiwania. Dwie koperty, w każdej jeden klucz.

Konsekwencje są całkowicie praktyczne. Zmiana hasła przepisuje kilkaset bajtów zamiast stu gigabajtów. Odblokowanie biometryczne to kolejna owinięta kopia, a nie drugi model bezpieczeństwa. A utrata wszystkich kopert oznacza utratę klucza, bo klucz nie istnieje nigdzie indziej.

Zobacz też: Kod odzyskiwaniaChaCha20-Poly1305

Kod odzyskiwania

Jednorazowy ciąg znaków, który może rozpakować klucz główny w przypadku zapomnienia hasła. Nikt nie może go ponownie wydać, ponieważ nikt inny nigdy go nie miał — łącznie z osobami, które napisały aplikację.

Pokazywany jest raz, podczas konfiguracji, i jest drugimi z dwóch drzwi. Zapisany i przechowywany gdzie indziej niż urządzenie, zamienia zapomniane hasło w niedogodność.

Jeśli hasło zostanie zapomniane, a kod odzyskiwania zgubiony, plików nie odszyfruje nikt. To nie jest polityka wsparcia, z którą dałoby się dyskutować; to po prostu znaczenie braku kopii klucza. Przechowuj go tak starannie, na ile zasługują Twoje pliki.

Zobacz też: Opakowanie na kluczeWiedza zerowa

Skarbiec wabik

wiarygodne zaprzeczenie

Drugie hasło otwierające inny, nieszkodliwy skarbiec. Ktoś zmuszony do odblokowania aplikacji może to zrobić, a to, co się otworzy, nie jest tym, czego szukał.

Oba hasła są prawdziwe i oba otwierają prawdziwy skarbiec. Nic na ekranie nie wskazuje, że istnieje ten drugi, a aplikacji nie da się zapytać, który akurat pokazuje.

Istnieje na sytuację, w której odmowa odblokowania nie wchodzi w grę — granica, żądanie, ktoś stojący nad Tobą. Samo szyfrowanie tu nie pomaga, bo problemem nie jest klucz, tylko przymus, by go użyć.

Zobacz też: Kod odzyskiwaniaUkryte vs zaszyfrowane

Brelok

Chroniony przez system magazyn małych tajemnic, wspierany przez sprzęt zabezpieczający urządzenia. To tam należą klucze i tokeny i nie powinno się tam umieszczać niczego dużego.

Elementy w nim mogą mieć warunki: odczyt tylko, gdy urządzenie jest odblokowane, tylko na tym urządzeniu, tylko po potwierdzeniu biometrycznym lub hasłem. Te warunki są egzekwowane przez sprzęt, a nie przez uprzejmą prośbę aplikacji.

Przechowuje sekrety, nie dane. Trafiają tam klucze, tokeny i owinięty materiał; same zaszyfrowane pliki żyją na dysku, gdzie rozmiar nie stanowi problemu.

Zobacz też: Opakowanie na kluczeW spoczynku vs w transporcie

W spoczynku vs w transporcie

Zaszyfrowane w stanie spoczynku oznaczają, że nie można ich odczytać na dysku. Zaszyfrowane podczas przesyłania oznaczają, że nie można ich odczytać w sieci. Są to oddzielne zabezpieczenia i produkt może uczciwie korzystać z jednego, nie korzystając z drugiego.

HTTPS to szyfrowanie w transporcie: bezpieczne przed kimś obserwującym sieć i w pełni czytelne dla serwera po drugiej stronie, gdy tylko dotrze. Szyfrowanie w spoczynku dotyczy przechowywanej kopii, co ma znaczenie, gdy urządzenie zostanie zgubione albo dysk sklonowany.

Uważne czytanie deklaracji o prywatności zwykle sprowadza się do ustalenia, o które z tych dwóch chodzi. „Twoje dane są szyfrowane” bez żadnego z tych słów to zdanie, które celowo niczego nie mówi.

Zobacz też: ChaCha20-Poly1305Wiedza zerowa

Wiedza zerowa

Konstrukcja, w której operator nie może odczytać tego, co przechowuje, ponieważ klucze nigdy nie opuszczają urządzeń użytkownika. Test jest prosty: czy mogą zresetować Twoje hasło i nadal udostępniać Ci dane?

Jeśli usługa może przywrócić dostęp po tym, jak zapomnisz wszystkiego, to znaczy, że posiada coś, co odblokowuje Twoje dane — a to oznacza, że można ją zmusić do użycia tego, i że każdy, kto naruszy tę usługę, dziedziczy tę samą zdolność.

Ten kompromis jest prawdziwy i powinien być powiedziany wprost, zamiast sprzedawany jako czysta korzyść: prawdziwa wiedza zerowa oznacza prawdziwą utratę dostępu, gdy ostatni klucz zginie. Nie ma trzeciej opcji, w której operator może Cię uratować, a nikt inny nie.

Zobacz też: Kod odzyskiwaniaW spoczynku vs w transporcie

Biometria

Face ID, Touch ID

Urządzenie, a nie aplikacja, potwierdza, że to Ty; aplikacja otrzymuje odpowiedź „tak” lub „nie”. Żadne dane odcisków palców ani twarzy nie docierają do aplikacji i żadne z nich nie jest hasłem.

Odblokowanie biometryczne to wygoda owinięta wokół sekretu, a nie jego zamiennik. Chroni przechowywany klucz, dlatego zawsze stoi za nim hasło — biometria może zawieść, a zapasowe rozwiązanie musi być czymś, co wiesz.

Porównanie odbywa się wewnątrz dedykowanego sprzętu, a wzorce nigdy go nie opuszczają. Aplikacja oferująca Face ID zadaje pytanie systemowi, a nie zbiera cokolwiek.

Zobacz też: BrelokOpakowanie na klucze

Anonimowe analizy

Liczenie zdarzeń bez rejestrowania, kto je spowodował. Wartość roszczenia zależy całkowicie od tego, co jest dołączone do każdego zdarzenia — a nazwy plików, ścieżki i adresy URL to miejsca, w których takie obietnice zwykle się kończą.

Wiedza, że ekran został otwarty, to liczba. Wiedza, który plik był odtwarzany, to opis osoby. Granica między tymi dwoma rzeczami to nie słowo „anonimowe”; to to, jakie pola niesie dane zdarzenie.

Deklaracja warta zaufania mówi, czego *nie* wysyła, równie konkretnie jak to, co wysyła: żadnych nazw plików, ścieżek, adresów URL, danych logowania, żadnego identyfikatora, który przetrwa między sesjami — i oferuje sposób, by wyłączyć to wszystko.

Zobacz też: W spoczynku vs w transporcie

Pozostałe tematy