Attesto 3 Provenance
AttestoMark Audio
AttestoMark Audio bettet einen geschlüsselten Locator in 16-Bit-PCM-Audio ein und lässt die Local Vault ihn in einem verschlüsselten lokalen Register nachschlagen. Diese Seite nennt, was gemessen überlebt, was gemessen verloren geht, und was eine Erkennung nicht feststellt.
Geltungsbereich
AttestoMark Audio schreibt einen 61-Bit-Locator mittels einer Patchwork-Transformation über FFT-Bänder in 16-Bit-PCM-Audio. Dieser Locator ist nicht der Inhalt, der einen Leser interessiert: er ist ein Index in ein verschlüsseltes Register der Local Vault, und dieses Register trägt die Mark-Identität, das Keyset und die Digests des originalen und des markierten Assets.
Der Provider akzeptiert ausschließlich audio/wav. Die Umwandlung zwischen Containern ist eine Transformation um den Provider herum, nicht in ihm — deshalb trägt das Basis-Image der Local Vault Audio, während Video das Medien-Image mit Codec-Bibliotheken benötigt.
Architektur
Der Provider ist eine Class-S-Binary: er läuft in der setuid-Provider-Sandbox ohne Netzwerk, mit fester unprivilegierter Identität, Dateizugriff beschränkt auf die eigene Binary, das Asset und eine Ausgabedatei, dazu Grenzen für Prozesse, Adressraum und Ausgabegröße. Er sieht das Audio und sonst nichts.
Die Sandbox wurde angegriffen und nicht nur konfiguriert. Dreizehn Ausbruchsversuche gegen die ausgelieferte, setuid root installierte Binary schlugen sämtlich fehl; ein Kontrollarm, der jeden Versuch ohne Sandbox ausführt, zeigt, dass neun davon von der Sandbox abgewiesen werden und nicht von der Umgebung.
Embed-Lebenszyklus
Die Vault reserviert einen Registereintrag gegen den Digest des unmarkierten Assets, leitet den Locator als HMAC über Keyset-Kennung, Mark-Kennung und diesen Digest ab und lässt den Provider einbetten. Die Ausgabe wird anschließend unabhängig erneut erkannt, bevor der Eintrag abgeschlossen wird: ein Embed, das nicht zurückgelesen werden kann, wird abgelehnt und die Reservierung abgebrochen, damit ein Register nie einen Eintrag für eine Mark hält, die niemand finden kann.
Geschlüsselte Erkennung
Die Erkennung probiert jede noch verifizierungsberechtigte Keyset-Epoche, die neueste zuerst, und nur eine exakte Registerauflösung zählt. Ein Locator, der auf nichts führt, wird als not_observed gemeldet und nicht als Fehler, denn eine Datei ohne Mark ist eine normale Datei.
Eine Registrierung, die reserviert, aber nie eingebettet wurde, gibt die Erkennung bewusst nicht preis. Sonst würde sie auflösen und eine Mark für Inhalte melden, die nie markiert wurden.
Formate und Grenzen
16-Bit-PCM-WAV, bis 256 MB und 600 Sekunden. Längere oder größere Assets werden abgelehnt, nicht abgeschnitten.
Schlüssel und Register
Ein Keyset trägt einen Locator-Key, einen Lookup-Key und einen Registry-Key und existiert nur in der Local Vault. Das Register ist ruhend verschlüsselt: Mark-Kennung und Locator-Bits erscheinen nicht in der Datenbankdatei, was der Container-Canary durch Durchsuchen der Bytes prüft.
Nachweise
Das eigene Ergebnis des Providers erreicht die Capsule. Die Vault baut es nicht nach: ein neben einem Provider-Lauf zusammengesetztes Nachweisobjekt meldet einen Zustand unabhängig davon, ob der Lauf ihn erzeugt hat.
Gemessene Robustheit
Acht Assets zu zehn Sekunden, zehn Fälle je Asset, gemessen gegen den echten Provider in der echten Sandbox mit echtem ffmpeg. Jede Transformation kehrt nach WAV zurück, denn was eine verbreitete Datei durchläuft, ist eine Kodierung und später eine Dekodierung; eine Mark, die nur unberührte Samples überlebt, hat nichts überlebt.
8/8 für MP3 mit 192 und 128 kbit/s, AAC mit 128 kbit/s, Resampling auf 22050 Hz und 48000 Hz, Loudness-Normalisierung, 15% Pegelabsenkung, exakte Erkennung und die Falsch-Positiv-Prüfung mit nicht passendem Schlüssel. Das Abschneiden am Anfang erreichte 6/8: 0,35 s zu entfernen verschiebt die Analysefenster, an denen das Patchwork-Signal ausgerichtet ist, und zwei Assets verloren es.
Diese Zahlen beschreiben genau dieses Korpus, diese Transformationen, diese Providerversion und diese Release-Umgebung. Sie sind keine allgemeine Überlebensrate und müssen neu gemessen werden, sobald sich eines davon ändert.
Gemessene Entfernung
Robustheit misst das Überleben unter Transformationen, die eine ehrliche Verarbeitungskette vornimmt. Entfernung ist die andere Frage und hat ein eigenes Korpus: Transformationen, deren einziger Zweck die Zerstörung der Mark ist, jeweils angegeben mit dem, was sie einen Hörer kosten, statt in Dezibel — denn keine Dezibelzahl sagt einem Menschen etwas.
Eine Zeitdehnung um 5% und eine Tonhöhenverschiebung um 3% entfernen die Mark bei jedem Asset. Beide sind hörbar und keine ruiniert die Aufnahme, was sie deutlich billiger macht als die Neukodierung auf 8 kbit/s bei 16 kHz — der einzige weitere Angriff, der sie vollständig entfernt, und der das Audio kaum verständlich zurücklässt.
Filterergebnisse hängen von der Aufnahme ab. Über drei Läufe maß Tiefpassfilterung zwischen 25% und 100% Überleben über acht Assets, daher wird dafür keine Rate beansprucht. Beansprucht wird die Form: kein Filter und keine milde Neukodierung entfernte die Mark bei allen Assets.
Das Überleben einer Audio-Mark wird also für Codec-Konvertierung, Resampling, Normalisierung, Pegeländerung und Filterung beansprucht — und nicht für irgendetwas, das die Zeitachse verschiebt.
Betrieb
Der Provider liegt im Local-Vault-Image, root-eigen und nicht beschreibbar unter der Provider-Wurzel installiert, mit einem Manifest, das seinen Binary-Digest festschreibt. Ein Contract inspiziert das gebaute Artefakt statt der Dockerfile: jede festgeschriebene Prüfsumme wird aus der Binary neu berechnet, die sie festschreibt, und jedes Manifest wird über den eigenen Loader der Vault geladen, sodass ein Manifest, das die Vault ablehnen würde, den Build scheitern lässt statt den ersten Kunden.
Fehlerfälle
Ein Embed, das nicht unabhängig zurückgelesen werden kann, wird abgelehnt. Ein Asset über der Größen- oder Dauergrenze wird abgelehnt. Ein Provider, der seine Sandbox-Grenzen überschreitet, wird beendet, und der Lauf meldet einen Fehler statt eines Teilergebnisses. Keiner dieser Fälle erzeugt einen Mark-Eintrag.
Aussagegrenze
Eine erfolgreiche Erkennung beweist, dass diese Local Vault einen geschlüsselten Locator aufgelöst hat, der im gezeigten Audio vorhanden war, und ihn an ihren verschlüsselten Mark-Eintrag gebunden hat. Sie beweist nicht, dass das Audio das markierte Asset ist, wer es aufgenommen hat, ob es generiert wurde, ob es wahr ist oder wem es gehört. Das Fehlen einer Mark ist kein Beleg dafür, dass etwas nicht aus dieser Kette stammt. Eine Mark lässt sich durch Verschieben der Zeitachse entfernen, was oben steht — und deshalb ist eine Erkennung ein Nachweis, den man neben Receipts, Source Bindings und Policy abwägt, und kein Urteil für sich.
