Attesto

Proweniencja Attesto 3

AttestoMark Audio

AttestoMark Audio osadza kluczowany locator w dźwięku PCM 16-bit i pozwala Local Vault odszukać go w zaszyfrowanym rejestrze lokalnym. Ta strona podaje, co według pomiarów przetrwa, co według pomiarów ginie i czego wykrycie nie ustala.

Zakres

AttestoMark Audio zapisuje 61-bitowy locator w dźwięku PCM 16-bit za pomocą przekształcenia patchwork na pasmach FFT. Ten locator nie jest treścią, która interesuje czytelnika: to indeks do zaszyfrowanego rejestru przechowywanego przez Local Vault, a rejestr niesie tożsamość znaku, zestaw kluczy oraz skróty zasobu oryginalnego i oznaczonego.

Dostawca przyjmuje wyłącznie audio/wav. Konwersja między kontenerami jest przekształceniem wokół dostawcy, a nie w jego wnętrzu — dlatego obraz bazowy Local Vault niesie dźwięk, podczas gdy wideo wymaga obrazu multimedialnego z bibliotekami kodeków.

Architektura

Dostawca to binarium klasy S: działa w piaskownicy setuid bez sieci, ze stałą nieuprzywilejowaną tożsamością, z dostępem do plików ograniczonym do własnego binarium, zasobu i jednego pliku wyjściowego, wraz z limitami procesów, przestrzeni adresowej i rozmiaru wyjścia. Widzi dźwięk i nic więcej.

Piaskownica została zaatakowana, a nie tylko skonfigurowana. Trzynaście prób ucieczki przeciw dostarczonemu binarium zainstalowanemu jako setuid root zakończyło się niepowodzeniem; ramię kontrolne wykonujące każdą próbę bez piaskownicy pokazuje, że dziewięć z nich odrzuca piaskownica, a nie otaczające środowisko.

Cykl osadzania

Sejf rezerwuje wpis rejestru wobec skrótu nieoznaczonego zasobu, wyprowadza locator jako HMAC z identyfikatora zestawu kluczy, identyfikatora znaku i tego skrótu, po czym prosi dostawcę o osadzenie. Wynik jest następnie niezależnie wykrywany ponownie, zanim wpis zostanie domknięty: osadzenie, którego nie da się odczytać z powrotem, jest odrzucane, a rezerwacja anulowana, aby rejestr nigdy nie przechowywał wpisu dla znaku, którego nikt nie znajdzie.

Wykrywanie kluczowane

Wykrywanie próbuje każdej epoki zestawu kluczy wciąż uprawnionej do weryfikacji, od najnowszej, i liczy się wyłącznie dokładne rozstrzygnięcie w rejestrze. Locator, który do niczego nie prowadzi, jest zgłaszany jako not_observed, a nie jako błąd, bo plik bez znaku to zwykły plik.

Rejestracja zarezerwowana, lecz nigdy nieosadzona, celowo nie jest ujawniana przez wykrywanie. W przeciwnym razie rozstrzygnęłaby się i zgłosiła znak dla treści, której nic nigdy nie oznaczyło.

Formaty i ograniczenia

WAV PCM 16-bit, do 256 MB i 600 sekund. Zasoby dłuższe lub większe są odrzucane, a nie przycinane.

Klucze i rejestr

Zestaw kluczy niesie klucz locatora, klucz wyszukiwania i klucz rejestru, a istnieje wyłącznie w Local Vault. Rejestr jest szyfrowany w spoczynku: identyfikator znaku i bity locatora nie pojawiają się w pliku bazy danych, co kanarek kontenera sprawdza, przeszukując bajty.

Dowody

Do kapsuły trafia własny wynik dostawcy. Sejf go nie odtwarza: obiekt dowodowy złożony obok uruchomienia zgłaszałby stan niezależnie od tego, czy uruchomienie go wytworzyło.

Zmierzona odporność

Osiem zasobów po dziesięć sekund, dziesięć przypadków na zasób, zmierzone wobec prawdziwego dostawcy w prawdziwej piaskownicy z prawdziwym ffmpeg. Każde przekształcenie wraca do WAV, bo tym, co przechodzi rozpowszechniany plik, jest kodowanie i późniejsze dekodowanie; znak, który przetrwa jedynie nietknięte próbki, nie przetrwał niczego.

8/8 dla MP3 przy 192 i 128 kbit/s, AAC przy 128 kbit/s, resamplingu do 22050 Hz i 48000 Hz, normalizacji głośności, obniżenia poziomu o 15%, dokładnego wykrycia oraz kontroli fałszywie dodatniej z niepasującym kluczem. Przycięcie początku dało 6/8: usunięcie 0,35 s przesuwa okna analizy, do których wyrównany jest sygnał patchwork, i dwa zasoby go utraciły.

Te liczby opisują ten korpus, te przekształcenia, tę wersję dostawcy i to środowisko wydania. Nie są uniwersalnym wskaźnikiem przetrwania i muszą zostać zmierzone ponownie, gdy zmieni się którykolwiek z nich.

Zmierzone usuwanie

Odporność mierzy przetrwanie pod przekształceniami, które wykonuje uczciwy łańcuch przetwarzania. Usuwanie to inne pytanie i ma własny korpus: przekształcenia, których jedynym celem jest zniszczenie znaku, każde opisane tym, ile kosztuje słuchacza, a nie w decybelach — żadna wartość w decybelach nic człowiekowi nie mówi.

Rozciągnięcie czasu o 5% i przesunięcie wysokości o 3% usuwają znak z każdego zasobu. Oba są słyszalne i żadne nie niszczy nagrania, co czyni je znacznie tańszymi niż rekompresja do 8 kbit/s przy 16 kHz — jedyny inny atak, który usuwa go całkowicie, a który pozostawia dźwięk ledwie zrozumiały.

Wyniki filtrowania zależą od nagrania. W trzech przebiegach filtr dolnoprzepustowy dał od 25% do 100% przetrwania na ośmiu zasobach, więc nie twierdzi się dla niego żadnego wskaźnika. Twierdzi się kształt: żaden filtr ani łagodna rekompresja nie usunęły znaku ze wszystkich zasobów.

Przetrwanie znaku audio jest zatem twierdzone dla konwersji kodeka, resamplingu, normalizacji, zmiany poziomu i filtrowania — a nie dla czegokolwiek, co przesuwa oś czasu.

Eksploatacja

Dostawca jest dostarczany w obrazie Local Vault, zainstalowany pod katalogiem dostawców, należący do roota i niezapisywalny, z manifestem przypinającym skrót jego binarium. Kontrakt bada zbudowany artefakt zamiast pliku Dockerfile: każda przypięta suma kontrolna jest przeliczana z binarium, które przypina, a każdy manifest jest ładowany własnym loaderem sejfu, więc manifest, który sejf by odrzucił, powoduje niepowodzenie budowy, a nie pierwszego klienta.

Tryby awarii

Osadzenie, którego nie da się niezależnie odczytać z powrotem, jest odrzucane. Zasób powyżej limitu rozmiaru lub czasu trwania jest odrzucany. Dostawca przekraczający limity piaskownicy jest zabijany, a uruchomienie zgłasza błąd zamiast częściowego wyniku. Żaden z tych przypadków nie tworzy wpisu znaku.

Granica twierdzeń

Udane wykrycie dowodzi, że ten Local Vault rozstrzygnął kluczowany locator obecny w dźwięku, który mu pokazano, i powiązał go ze swoim zaszyfrowanym wpisem znaku. Nie dowodzi, że dźwięk jest zasobem, który oznaczono, kto go nagrał, czy został wygenerowany, czy jest prawdziwy ani do kogo należy. Brak znaku nie jest dowodem, że coś nie pochodzi z tego łańcucha. Znak można usunąć, przesuwając oś czasu, co podano powyżej — i dlatego wykrycie jest dowodem, który waży się obok pokwitowań, powiązań źródłowych i polityki, a nie werdyktem samym w sobie.