Wiarygodne zaprzeczenie w aplikacjach: co to jest i dlaczego ma znaczenie
Wiarygodne zaprzeczenie oznacza, że istnienia ukrytych danych nie można udowodnić.
Wiarygodna zaprzeczalność 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. W oświadczeniu należy podać model zagrożenia: statyczny obraz prawidłowo zaszyfrowanego sklepu różni się od działającego, zhakowanego 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 skarbiec, 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. 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:
Alternatywne dane uwierzytelniające ujawniają tylko własny zestaw danych. System nie przechowuje osobnej flagi wabika, która identyfikuje dane uwierzytelniające jako kamuflaż. Nieprawidłowe poświadczenia mogą zakończyć się niepowodzeniem, ale niepowodzenie to nie może ujawnić, czy istnieje nieujawniony zbiór danych.
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.
Ż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.
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.
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 obejmujący jeden plik indeksu na skarbiec nie zapewnia takiej gwarancji egzaminatorowi 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 wypełniony magazyn zaprzeczeń 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 skarbiec.
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’a implementuje dostęp rozdzielony wzorami i normalny interfejs bez widocznej listy skarbcó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 zaprzeczania autentyczności.
Skonfigurowane wzorce otwierają oddzielne zaszyfrowane skarbce. PBKDF2 wyprowadza klucz skarbca ze wzorca i soli obejmującej całe urządzenie. Skonfigurowany klucz uwierzytelnia swój zaszyfrowany indeks i rozpakowuje losowy klucz główny. Nieskonfigurowany wzorzec wyświetla pusty stan, a nie komunikat „nieprawidłowy wzorzec”.
Format lokalny jest przeliczalny. Vaultaire przechowuje jeden vault_index_<fingerprint>.bin plik na skarbiec. Odcisk palca nie ujawnia wzorca ani nazwy skarbca, ale osoba mająca dostęp do kontenera aplikacji może policzyć pliki indeksu. AES-GCM uwierzytelnianie i deterministyczna nazwa pliku zapewniają również test offline dla potencjalnych kluczy skarbca.
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 skarbca, 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 pliku AES-GCM zaszyfrowane Keychain baza danych. Tryb przymusu usuwa lokalne indeksy i mapowania odzyskiwania dla skarbców nieprzymusowych oraz izoluje to urządzenie od synchronizacji. Nie usuwa kopii zapasowych w chmurze, kopii na urządzeniach równorzędnych 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 skarbiec. Przyszły katalog o stałej pojemności z nieodróżnialnymi miejscami rzeczywistymi i fikcyjnymi będzie wymagany, aby ukryć liczbę lokalnych skarbców przed migawką kontenera aplikacji offline.
Jak oceniać twierdzenia o możliwości zaprzeczenia
Gdy aplikacja twierdzi, że ma wiarygodne zaprzeczenie, zapytaj:
- Czy jest przełącznik „trybu wabika"? Jeśli tak, to kosmetyczne. Ekspert kryminalistyki może znaleźć przełącznik.
- Czy aplikacja ma listę sejfów lub bazę danych? Jeśli tak, istnienie sejfów jest udowadnialne.
- Czy domysły można zweryfikować offline? Uwierzytelniony tekst zaszyfrowany 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.
- Czy zużycie pamięci zmienia się z liczbą sejfów? Jeśli tak, analiza dysku może oszacować liczbę sejfów.
- 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?
Egzaminator, który uzyska kontener aplikacji Vaultaire, może wykryć zaszyfrowaną pamięć i zliczyć vault_index_*.bin pliki. Pliki nie ujawniają nazw skarbców ani zawartości w postaci zwykłego tekstu, ale ich liczba ujawnia liczbę lokalnych zaszyfrowanych indeksów. Dlatego obecny projekt ukrywa skarbce przed normalną nawigacją, a nie przed każdą kryminalistyczną inspekcją przechowywania.
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 inspektor ds. stanu narodowego nie może odrzucić obecnego układu pamięci Vaultaire: liczba indeksów lokalnych pozostaje widoczna, a kompromis na żywo może dotyczyć wzorców, kluczy, podglądów lub eksportów, gdy skarbiec jest otwarty. Obecna funkcja oddziela różne wzorce 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 skarbce to skarbce, które nie są widoczne w normalnym interfejsie aplikacji. Silna zaprzeczalność kryptograficzna jest osobną właściwością polegającą na tym, że ukrytych danych nie można odróżnić od nieużywanej pamięci wyściełanej. Obecnie Vaultaire udostępnia pierwszą nieruchomość. Jego format obejmujący jeden plik indeksu na skarbiec nie zapewnia drugiego dla egzaminatora 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 prywatnych plikach użytkownika CloudKit baza danych. 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 wzorce 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 skarbców, żadnych ujawniających flag konfiguracji, stabilnego dopełnienia i zaszyfrowanych rekordów, które nie ujawniają, które gniazda są prawdziwe.
Vaultaire’a używa skonfigurowanych wzorców do oddzielania zaszyfrowanych skarbców i utrzymuje nazwy skarbców oraz zawartość poza zablokowanym interfejsem. Obecny układ pamięci nadal udostępnia liczbę zaszyfrowanych indeksów podczas kontroli kontenera aplikacji. Traktuj to jako ukrycie na poziomie interfejsu poparte uwierzytelnionym szyfrowaniem, a nie jako dowód na to, że nie istnieje żaden dodatkowy skarbiec.