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 Vaultaire z jednym katalogiem przechowywania na sejf nie zapewnia takiej gwarancji analitykowi śledczemu z dostępem do kontenera aplikacji.

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 udostępnia jeden policzalny indeks lokalny na skonfigurowany sejf.

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 pozwala policzyć sejfy. Pliki główne vault_index_<locator>.bin leżą w puli uzupełnianej do pasm po 64 losowymi plikami-przykrywkami, ale każdy sejf ma też katalog przechowywania o tym samym lokatorze. Lokator nie ujawnia wzoru ani nazwy sejfu, ale osoba mająca dostęp do kontenera aplikacji może policzyć sejfy. Uwierzytelnianie AES-GCM i deterministyczna nazwa pliku zapewniają 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. Lokalny kontener aplikacji nie rezerwuje stałej puli rzeczywistych i fikcyjnych miejsc sejfu, więc całkowita ilość miejsca na dysku i liczba indeksów mogą ujawnić strukturę.

Istnieje stan odpoczynku i przymusu. Vaultaire przechowuje informacje dotyczące odzyskiwania w bazie danych Keychain zaszyfrowanej AES-GCM. Tryb przymusu usuwa lokalne indeksy i mapowania odzyskiwania dla pozostałych sejfów oraz izoluje to urządzenie od synchronizacji. Nie usuwa kopii zapasowych w chmurze, kopii na innych urządzeniach ani wszystkich udostępnionych zaszyfrowanych obiektów blob, 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. Przyszły katalog o stałej pojemności z nieodróżnialnymi miejscami rzeczywistymi i fikcyjnymi będzie wymagany, aby ukryć liczbę lokalnych sejfów przed migawką kontenera aplikacji offline.

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ęć i zliczyć katalogi przechowywania sejfów, które wskazują prawdziwe pliki vault_index_*.bin. Nie ujawniają one nazw sejfów ani zawartości w postaci jawnej, ale ich liczba ujawnia liczbę lokalnych sejfów. 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: liczba indeksów lokalnych pozostaje widoczna, 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 format z jednym katalogiem przechowywania na sejf nie zapewnia drugiego dla analityka śledczego z dostępem do kontenera aplikacji.

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, jednolite typy rekordów, 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 udostępnia liczbę zaszyfrowanych indeksó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.