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ść przechowywania, która pozwala użytkownikowi ujawnić jeden zestaw danych bez pozostawiania artefaktu strukturalnego potwierdzającego istnienie innego zestawu danych. Takie twierdzenie musi określać model zagrożenia: statyczny obraz prawidłowo zaszyfrowanego magazynu różni się od działającego, przejętego urządzenia, metadanych usługi w chmurze lub kopii przechowywanych gdzie indziej. To coś więcej niż funkcja ukrywania. Zależy to od współdziałania szyfrowania, układu, dopełnienia i projektu operacyjnego.

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 języku potocznym wiarygodne zaprzeczenie oznacza, że możesz wiarygodnie zaprzeczyć czemuś. W kryptografii pamięci użyteczny cel jest węższy: osoba badająca zaszyfrowany magazyn nie powinna być w stanie odróżnić ukrytej zawartości od niewykorzystanej wypełnionej przestrzeni w ramach określonego modelu zagrożenia. Żadna aplikacja nie może rozszerzyć tej obietnicy na już otwarty sejf, nagrane dane wejściowe, kopie zewnętrzne ani jakąkolwiek formę naruszenia bezpieczeństwa urządzenia.

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. Analityk śledczy 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.

Analityk śledczy 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 śledczym.

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. Alternatywne poświadczenia ujawniają tylko własny zestaw danych. System nie przechowuje osobnej flagi wabika, która identyfikuje poświadczenia jako kamuflaż. Nieprawidłowe poświadczenia mogą zakończyć się niepowodzeniem, ale niepowodzenie to nie może ujawnić, czy istnieje nieujawniony zbiór danych.

  2. Nie istniał rejestr sejfów. Aplikacja nie może wyliczyć, ile sejfów istnieje. Brak liczby, indeksu, listy ID sejfów. Analityk śledczy 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
Ukrywa alternatywne miejsce przechowywania w obrazie statycznym Nie Tak, w ramach podanego modelu zagrożenia pamięci masowej
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

Na przejściu granicznym kontroler może skontrolować urządzenie i poprosić o uwierzytelnienie. Jeśli projekt faktycznie zapewnia zaprzeczanie na poziomie przechowywania, jedno poświadczenie może ujawnić nieszkodliwy zestaw danych, podczas gdy obrazowi statycznemu brakuje znacznika strukturalnego, który odróżnia ukrytą zawartość od wypełnienia. Obecny układ pamięci Vaultaire pozwala analitykowi śledczemu z dostępem do kontenera aplikacji oszacować liczbę sejfów, więc nie daje takiej gwarancji.

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 posiadający umiejętności techniczne może podjąć próbę wydobycia danych ze skradzionego telefonu. Prawidłowo dopełniony magazyn z wiarygodnym zaprzeczeniem ma na celu ukrycie liczby zestawów danych zajmujących pulę, chociaż całkowita alokacja, stan urządzenia, kopie zapasowe i ślady operacyjne nadal należą do modelu zagrożenia. Vaultaire obecnie szyfruje zawartość, ale liczba aren nadal ogranicza liczbę sejfów z plikami.

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.

Co Vaultaire wdraża dzisiaj

Vaultaire implementuje dostęp rozdzielony wzorami i normalny interfejs bez widocznej listy sejfów. Te właściwości są pomocne podczas zwykłego korzystania z aplikacji, ale nie spełniają wszystkich wymagań z powyższej listy kontrolnej wiarygodnego zaprzeczenia.

Skonfigurowane wzory otwierają oddzielne zaszyfrowane sejfy. PBKDF2 wyprowadza klucz sejfu ze wzoru i soli urządzenia. Skonfigurowany klucz uwierzytelnia swój zaszyfrowany indeks i rozpakowuje losowy klucz główny. Nieskonfigurowany wzór wyświetla pusty stan, a nie komunikat „nieprawidłowy wzór”.

Lokalny format nadal pozwala oszacować liczbę sejfów. Vaultaire przechowuje jeden plik główny vault_index_<locator>.bin na sejf, w puli co najmniej 64 plików razem z plikami-przykrywkami. Strony i areny wszystkich sejfów leżą w jednym folderze pod losowymi nazwami. Nazwy nie ujawniają wzoru, nazwy sejfu ani tego, do którego sejfu należy plik, ale osoba z dostępem do kontenera aplikacji nadal może oszacować, ile sejfów zawiera pliki, bo ogranicza to liczba aren. Uwierzytelnianie AES-GCM zapewnia również test offline dla potencjalnych kluczy sejfu.

Pamięć lokalna nie ma stałego rozmiaru. Zawartość plików i metadane są szyfrowane, a fragmenty kopii zapasowych w chmurze korzystają z dopełnienia rozmiaru i rekordów-wabików. Pliki główne leżą w puli z plikami-przykrywkami, a areny-przykrywki utrzymują liczbę aren w określonym przedziale, ale liczba aren, liczba stron katalogu, czasy plików i całkowita zajęta pamięć nadal ujawniają strukturę.

Istnieje stan odpoczynku i przymusu. Vaultaire przechowuje informacje dotyczące odzyskiwania w bazie danych Keychain zaszyfrowanej AES-GCM. Tryb przymusu (Pro) usuwa indeksy, strony i areny pozostałych sejfów na tym urządzeniu (zwykłe usunięcie plików, bez nadpisywania), czyści dane odzyskiwania i izoluje to urządzenie od synchronizacji. Nie usuwa kopii zapasowych w chmurze ani kopii na innych urządzeniach, a czas zakończenia zależy od wykonanej pracy lokalnej.

Vaultaire zapewnia zatem podział interfejsu i szyfrowaną pamięć, a nie dowód z teorii informacji, że nie istnieje żaden dodatkowy sejf. Format pamięci wprowadzony w wersji 1.0.17 ukrywa, które pliki należą do którego sejfu, ale liczba aren nadal daje migawce kontenera aplikacji offline górną granicę liczby sejfów.

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. Analityk śledczy 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 domysły można zweryfikować offline? Uwierzytelniony szyfrogram może zweryfikować klucz kandydujący bez oddzielnego skrótu hasła. Zapytaj, co ogranicza koszt zgadywania i czy układ pamięci oferuje tańszy odcisk palca.
  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 śledcze mogą wykryć wiarygodne zaprzeczenie?

Analityk śledczy, który uzyska kontener aplikacji Vaultaire, może wykryć zaszyfrowaną pamięć. Pliki główne vault_index_*.bin leżą w puli co najmniej 64 plików razem z plikami-przykrywkami, a strony i areny wszystkich sejfów leżą w jednym folderze pod losowymi nazwami. Nazwy plików nie zdradzają, do którego sejfu należy plik, ale liczba aren ogranicza liczbę sejfów z plikami, więc analityk nadal może oszacować, ile masz sejfów. Pliki nie ujawniają nazw sejfów ani zawartości w postaci jawnej. Dlatego obecny projekt ukrywa sejfy przed normalną nawigacją, a nie przed każdą śledczą analizą pamięci.

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

AES-256-GCM zapewnia silną granicę szyfrowania treści, gdy klucze, wartości jednorazowe i implementacja są prawidłowe. Nie oznacza to jednak, że obecny układ pamięci Vaultaire daje wiarygodne zaprzeczenie wobec śledczego działającego na zlecenie państwa: analityk nadal może oszacować liczbę lokalnych sejfów, a kompromis na żywo może dotyczyć wzorów, kluczy, podglądów lub eksportów, gdy sejf jest otwarty. Obecna funkcja oddziela różne wzory otwierane w interfejsie; nie gwarantuje, że zdeterminowany badacz nie będzie w stanie udowodnić istnienia dodatkowych indeksów lokalnych.

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

Ukryte sejfy to sejfy, które nie są widoczne w normalnym interfejsie aplikacji. Silne kryptograficzne zaprzeczenie jest osobną właściwością polegającą na tym, że ukrytych danych nie można odróżnić od nieużywanej pamięci dopełnionej. Obecnie Vaultaire udostępnia pierwszą nieruchomość. Jego obecny format pamięci nadal pozwala analitykowi śledczemu z dostępem do kontenera aplikacji oszacować liczbę sejfów, więc nie zapewnia drugiej.

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

Vaultaire zapisuje zaszyfrowane manifesty kopii zapasowych i dopełniające zaszyfrowane fragmenty plików w prywatnej bazie danych CloudKit użytkownika. Losowe nazwy rekordów danych, dopełnienie fragmentów o wielkości 10 MB i rekordy-wabiki ograniczają bezpośrednie ujawnianie treści. Liczba rekordów, łączna ilość, czas i wzory aktualizacji pozostają widocznymi metadanymi usługi, więc kopia zapasowa w chmurze nie tworzy magazynu o stałym rozmiarze, którego teoretycznie nie można zaprzeczyć informacjom.

Podsumowanie

Silne zaprzeczanie pamięci ma na celu uniemożliwienie badaczowi odróżnienia ukrytych danych od wypełnionej wolnej przestrzeni w statycznie zaszyfrowanym magazynie. Większość aplikacji korzystających z tej funkcji oferuje kosmetyczne tryby wabika z wykrywalnymi flagami konfiguracyjnymi. Spełnienie silniejszej definicji wymaga precyzyjnego modelu zagrożeń, braku policzalnego rejestru sejfów, żadnych ujawniających flag konfiguracji, stabilnego dopełnienia i zaszyfrowanych rekordów, które nie ujawniają, które gniazda są prawdziwe.

Vaultaire używa skonfigurowanych wzorów do oddzielania zaszyfrowanych sejfów i utrzymuje nazwy sejfów oraz zawartość poza zablokowanym interfejsem. Obecny układ pamięci nadal pozwala oszacować liczbę sejfów przy analizie kontenera aplikacji. Traktuj to jako ukrycie na poziomie interfejsu poparte uwierzytelnionym szyfrowaniem, a nie jako dowód na to, że nie istnieje żaden dodatkowy sejf.