Wiarygodne zaprzeczenie w aplikacjach: co to jest i dlaczego ma znaczenie

Wiarygodne zaprzeczenie w aplikacjach: co to jest i dlaczego ma znaczenie

Wiarygodne zaprzeczenie oznacza, że istnienia ukrytych danych nie można udowodnić.


Wiarygodne zaprzeczenie w szyfrowaniu to właściwość pozwalająca użytkownikowi wiarygodnie zaprzeczyć istnieniu określonych zaszyfrowanych danych. Zaszyfrowane przechowywanie wydaje się zawierać tylko te dane, które użytkownik zdecyduje się ujawnić. Ekspert kryminalistyki, strona stosująca przymus lub ktokolwiek z fizycznym dostępem do urządzenia nie może udowodnić, że istnieją dodatkowe ukryte dane. To nie jest funkcja ukrywania. To właściwość matematyczna samego schematu szyfrowania.

Ten poradnik wyjaśnia, jak wiarygodne zaprzeczenie działa w aplikacjach, różnicę między prawdziwym kryptograficznym zaprzeczeniem a kosmetycznymi trybami wabika, rzeczywiste scenariusze, w których ma to znaczenie, i jak oceniać twierdzenia o możliwości zaprzeczenia.

Co wiarygodne zaprzeczenie oznacza w szyfrowaniu

W codziennym języku wiarygodne zaprzeczenie oznacza, że możesz wiarygodnie czemuś zaprzeczyć. W kryptografii oznacza to, że istnienia ukrytych danych nie można udowodnić, nawet przez eksperta z nieograniczonym czasem i narzędziami kryminalistycznymi.

Koncepcja ta wywodzi się z szyfrowania dysku. TrueCrypt (i jego następca VeraCrypt) zapoczątkowały ukryty wolumin: zaszyfrowany wolumin wewnątrz innego zaszyfrowanego woluminu. Jedno hasło ujawnia zewnętrzny wolumin z nieszkodliwymi plikami. Inne hasło ujawnia wewnętrzny ukryty wolumin z wrażliwymi plikami. Ekspert kryminalistyki nie może stwierdzić, czy ukryty wolumin istnieje, ponieważ nieużywane miejsce w zewnętrznym woluminie jest wypełnione losowymi danymi nieodróżnialnymi od zaszyfrowanych danych.

Dla aplikacji wiarygodne zaprzeczenie oznacza, że różne poświadczenia (hasła, PIN-y, wzory) otwierają różne zestawy danych i nie ma metadanych, rejestru, flagi konfiguracyjnej ani artefaktu strukturalnego ujawniającego istnienie dodatkowych zestawów danych.

Prawdziwe zaprzeczenie vs. kosmetyczne tryby wabika

To krytyczna różnica, którą większość aplikacji się myli.

Kosmetyczny tryb wabika (nie prawdziwe zaprzeczenie)

Wiele aplikacji-sejfów oferuje funkcję „wabika" lub „fałszywego PIN-u". Ustawiasz dodatkowy PIN, który otwiera osobną przestrzeń z innymi zdjęciami. Problem: te aplikacje zazwyczaj przechowują flagę boolean, wpis w bazie danych lub plik konfiguracyjny wskazujący, że tryb wabika istnieje i jest skonfigurowany.

Ekspert kryminalistyki rozumiejący aplikację może znaleźć tę flagę. Znalezienie skonfigurowanego trybu wabika udowadnia, że ukryte dane istnieją. Zaprzeczenie jest kosmetyczne – działa przeciwko przypadkowemu snoopowi, ale zawodzi przy badaniu kryminalistycznym.

Oznaki kosmetycznego zaprzeczenia:

  • Aplikacja ma przełącznik „trybu wabika" w ustawieniach
  • Plik konfiguracyjny przechowuje, czy tryb wabika jest włączony
  • Tabela w bazie danych zawiera listę ID sejfów ze wskaźnikami typu (główny/wabik)
  • Struktura pamięci aplikacji zmienia się po włączeniu trybu wabika
  • Odinstalowanie i ponowna instalacja aplikacji ujawnia inne zachowanie, gdy tryb wabika był skonfigurowany

Prawdziwe kryptograficzne zaprzeczenie

Prawdziwe zaprzeczenie jest właściwością architektoniczną, a nie przełącznikiem funkcji. Zaszyfrowane przechowywanie musi być zaprojektowane tak, aby:

  1. Każde poświadczenie otwierało prawidłowy zestaw danych. Nie ma błędu „złego hasła" dla poświadczeń otwierających ukryte sejfy. Każda prawidłowa kombinacja wzoru/hasła produkuje klucz, który deszyfruje coś.

  2. Nie istniał rejestr sejfów. Aplikacja nie może wyliczyć, ile sejfów istnieje. Brak liczby, indeksu, listy ID sejfów. Ekspert kryminalistyki badający pamięć aplikacji znajduje niezróżnicowaną pulę zaszyfrowanych danych.

  3. Żadne flagi konfiguracyjne nie ujawniały ukrytych sejfów. Nie ma wartości boolean, wpisu w bazie danych, pliku preferencji wskazującego, czy istnieją dodatkowe sejfy.

  4. Pamięć jest dopełniana. Całkowita zajęta pamięć nie zmienia się na podstawie liczby sejfów lub plików. Bez dopełniania ekspert mógłby oszacować liczbę sejfów na podstawie całkowitego rozmiaru zaszyfrowanych danych w stosunku do widocznej zawartości.

  5. Zaszyfrowane dane są nieodróżnialne od szumu losowego. Nie ma granic plików, nagłówków, znaczników strukturalnych ujawniających, gdzie kończą się dane jednego sejfu, a zaczynają dane innego.

Właściwość Kosmetyczny wabik Prawdziwe zaprzeczenie
Osobne dane per poświadczenie Tak Tak
Brak rejestru sejfów Nie (baza danych śledzi sejfy) Tak
Brak flag konfiguracyjnych Nie (przełącznik wabika przechowywany) Tak
Dopełnianie pamięci Rzadko Tak
Przetrwa badanie kryminalistyczne Nie Tak
Architektoniczne vs. funkcja Przełącznik funkcji Właściwość architektoniczna

Rzeczywiste scenariusze, gdzie ma to znaczenie

Wiarygodne zaprzeczenie nie jest teoretyczną kwestią. Dotyczy udokumentowanych, powtarzających się rzeczywistych sytuacji.

Przekraczanie granic

W Stanach Zjednoczonych US Customs and Border Protection może prawnie wymusić dostęp do urządzenia na granicy. Sądy orzekły, że agenci graniczni mogą żądać haseł do urządzeń. W tym scenariuszu użytkownik z prawdziwym wiarygodnym zaprzeczeniem może podać wzór/hasło otwierające sejf z nieszkodliwą zawartością. Ekspert nie może udowodnić, że inne sejfy istnieją.

Przemoc domowa i przymusowe związki

Ktoś w przemocowym związku może potrzebować przechowywać dowody (zdjęcia obrażeń, groźne wiadomości, dokumenty prawne) na urządzeniu, które sprawca monitoruje. Jeśli sprawca żąda zobaczenia sejfu, użytkownik może otworzyć sejf z nieszkodliwą zawartością. Bez prawdziwego zaprzeczenia flaga „trybu wabika" w konfiguracji aplikacji ujawniłaby istnienie ukrytej zawartości.

Kradzież urządzenia

Złodziej z umiejętnościami technicznymi może próbować wyodrębnić dane ze skradzionego telefonu. Przy prawdziwym zaprzeczeniu zaszyfrowana pula danych nie ujawnia niczego o liczbie sejfów, ich zawartości ani przeznaczeniu.

Ochrona prawna i dziennikarska

Dziennikarze chroniący źródła, prawnicy chroniący pliki klientów i aktywiści w reżimach autorytarnych stoją przed scenariuszami, gdzie zawartość urządzeń może być wymuszona. Prawdziwe zaprzeczenie zapewnia wiarygodną obronę przed zajęciem danych.

Jak Vaultaire implementuje wiarygodne zaprzeczenie

Vaultaire osiąga prawdziwe kryptograficzne wiarygodne zaprzeczenie przez projekt architektoniczny:

Każdy wzór otwiera inny sejf. Siatka 5x5 produkuje klucz przez PBKDF2. Inny wzór produkuje inny klucz. Nie ma klucza głównego, listy sejfów i żadnego sposobu dla aplikacji na wyliczenie istniejących sejfów. Narysowanie wzoru, który nie ma powiązanego sejfu, po prostu otwiera pustą przestrzeń sejfu – nie ma błędu „nieprawidłowego wzoru".

Brak rejestru sejfów. Aplikacja nie ma bazy danych wymieniającej sejfy, nazwy sejfów ani liczby sejfów. Wszystkie zaszyfrowane dane istnieją w jednej niezróżnicowanej puli pamięci. Ekspert kryminalistyki z nieograniczonym dostępem do systemu plików urządzenia znajduje zaszyfrowane bloki bez znaczników strukturalnych wskazujących granice sejfów.

Dopełnianie pamięci. Całkowity rozmiar pamięci pozostaje stały bez względu na liczbę sejfów lub plików, uniemożliwiając analizę użycia dysku.

Brak flag konfiguracyjnych. Nie ma pliku ustawień, wpisu preferencji ani rekordu bazy danych ujawniającego, ile sejfów istnieje lub czy jakikolwiek konkretny wzór był używany.

Tryb przymusu. Użytkownicy mogą wyznaczyć jeden sejf jako sejf przymusu. Narysowanie tego wzoru otwiera sejf normalnie, jednocześnie natychmiast i po cichu niszcząc kryptograficzne sole dla wszystkich innych sejfów. Zniszczenie jest nieodwracalne, nie pozostawia śladów kryminalistycznych i zajmuje mniej niż sekundę.

Jak oceniać twierdzenia o możliwości zaprzeczenia

Gdy aplikacja twierdzi, że ma wiarygodne zaprzeczenie, zapytaj:

  1. Czy jest przełącznik „trybu wabika"? Jeśli tak, to kosmetyczne. Ekspert kryminalistyki może znaleźć przełącznik.
  2. Czy aplikacja ma listę sejfów lub bazę danych? Jeśli tak, istnienie sejfów jest udowadnialne.
  3. Czy jest błąd „złego hasła"? Jeśli tak, aplikacja może odróżniać prawidłowe od nieprawidłowych poświadczeń, co oznacza, że przechowuje coś, co je weryfikuje.
  4. Czy zużycie pamięci zmienia się z liczbą sejfów? Jeśli tak, analiza dysku może oszacować liczbę sejfów.
  5. Czy aplikacja może wyliczyć sejfy? Jeśli aplikacja może pokazać Ci listę Twoich sejfów, ta lista istnieje na urządzeniu i jest wykrywalna.

Najczęściej zadawane pytania

Czy wiarygodne zaprzeczenie jest legalne?

Używanie szyfrowania z wiarygodnym zaprzeczeniem jest legalne w większości demokracji. Nie ma prawa zabraniającego posiadania zaszyfrowanych danych na urządzeniu, których istnienia nie można udowodnić. W niektórych jurysdykcjach (Wielka Brytania w ramach RIPA, Australia w ramach Assistance and Access Act) organy władzy mogą wymusić ujawnienie kluczy szyfrowania. Kwestią prawną jest, czy wymuszenie ujawnienia klucza do danych, których istnienia nie można udowodnić, jest egzekwowalne. To pozostaje rozwijającym się obszarem prawa.

Czy narzędzia kryminalistyczne mogą wykryć wiarygodne zaprzeczenie?

Profesjonalne narzędzia kryminalistyczne (Cellebrite, GrayKey, Magnet AXIOM) mogą wykryć, że Vaultaire jest zainstalowany i że zaszyfrowane dane istnieją. Nie mogą określić, ile sejfów istnieje, co zawierają, ani czy istnieją dodatkowe sejfy poza ujawnionymi. Zaszyfrowane dane są nieodróżnialne od szumu losowego. Jest to weryfikowane przez projekt, a nie deklarowane przez politykę.

Czy wiarygodne zaprzeczenie działa przeciwko zdeterminowanemu państwowemu aktorowi?

Przeciwko kryptoanalizie (łamaniu szyfrowania): tak. AES-256 nie jest łamalne przez żadną znaną zdolność państwową. Przeciwko przymusowi (zmuszaniu do ujawnienia wzorów): wiarygodne zaprzeczenie oznacza, że możesz ujawnić jeden sejf, wiarygodnie zaprzeczając, że inne istnieją. Przeciwko eksploatacji urządzenia (używaniu zero-day do wyodrębnienia danych z działającego urządzenia): jeśli urządzenie jest odblokowane i sejf jest otwarty, odszyfrowane dane są w pamięci i teoretycznie dostępne. Wiarygodne zaprzeczenie chroni dane w stanie spoczynku, a nie dane w aktywnym użyciu.

Jaka jest różnica między wiarygodnym zaprzeczeniem a ukrytymi sejfami?

Ukryte sejfy to sejfy niewidoczne w interfejsie aplikacji. Wiarygodne zaprzeczenie to właściwość, że istnienia ukrytych sejfów nie można udowodnić. Aplikacja może mieć ukryte sejfy bez wiarygodnego zaprzeczenia (jeśli rejestr sejfów lub flaga konfiguracyjna je ujawnia). Vaultaire zapewnia oba: sejfy są domyślnie ukryte, a ich istnienie jest nieprowadnialne przez projekt.

Czy mogę używać wiarygodnego zaprzeczenia z kopiami zapasowymi w chmurze?

W Vaultaire zaszyfrowane kopie zapasowe iCloud zawierają całą zaszyfrowaną pulę pamięci. Kopia zapasowa to jeden zaszyfrowany blob. Zachowuje wiarygodne zaprzeczenie, ponieważ sama kopia zapasowa nie zawiera żadnej struktury na poziomie sejfu – to ta sama niezróżnicowana zaszyfrowana pula co na urządzeniu.

Podsumowanie

Wiarygodne zaprzeczenie w szyfrowaniu oznacza, że istnienia ukrytych danych nie można udowodnić, nawet przy badaniu kryminalistycznym. Większość aplikacji twierdzących, że ma tę funkcję, oferuje kosmetyczne tryby wabika z wykrywalnymi flagami konfiguracyjnymi. Prawdziwe zaprzeczenie wymaga braku rejestru sejfów, braku flag konfiguracyjnych, dopełniania pamięci i architektonicznie nieodróżnialnych zaszyfrowanych danych.

Vaultaire implementuje prawdziwe wiarygodne zaprzeczenie jako właściwość architektoniczną: każdy wzór otwiera inny sejf, nie ma listy sejfów, pamięć jest dopełniana i żadna inna zaszyfrowana aplikacja-sejf tego nie robi.