Attesto

Attesto 3 provenance

AttestoMark Audio

AttestoMark Audio plaatst een keyed locator in 16-bits PCM-audio en laat de Local Vault die opzoeken in een versleuteld lokaal register. Deze pagina vermeldt wat gemeten is te overleven, wat gemeten verloren gaat, en wat een detectie niet vaststelt.

Reikwijdte

AttestoMark Audio schrijft een 61-bits locator in 16-bits PCM-audio met een patchwork-transformatie over FFT-banden. Die locator is niet de inhoud waar een lezer om geeft: het is een index in een versleuteld register dat de Local Vault houdt, en dat register draagt de mark-identiteit, de keyset en de digests van het originele en het gemarkeerde asset.

De provider accepteert uitsluitend audio/wav. Converteren tussen containers is een transformatie rondom de provider, niet erin — daarom draagt de basis-image van Local Vault audio, terwijl video de media-image met codec-bibliotheken nodig heeft.

Architectuur

De provider is een Class S-binary: hij draait onder de setuid provider-sandbox zonder netwerk, met een vaste onbevoorrechte identiteit, bestandstoegang beperkt tot zijn eigen binary, het asset en één outputbestand, plus limieten op processen, adresruimte en outputgrootte. Hij ziet de audio en verder niets.

De sandbox is aangevallen en niet alleen geconfigureerd. Dertien ontsnappingspogingen tegen de uitgeleverde binary, setuid root geïnstalleerd, slaagden geen van alle; een controle-arm die elke poging zonder sandbox uitvoert laat zien dat negen ervan door de sandbox worden geweigerd en niet door de omgeving eromheen.

Embed-lifecycle

De vault reserveert een registerrecord tegen de digest van het ongemarkeerde asset, leidt de locator af als HMAC over keyset-id, mark-id en die digest, en laat de provider embedden. De output wordt daarna onafhankelijk opnieuw gedetecteerd voordat het record wordt afgerond: een embed die niet teruggelezen kan worden wordt geweigerd en de reservering afgebroken, zodat een register nooit een record houdt voor een mark die niemand kan vinden.

Keyed detection

Detectie probeert elke keyset-epoch die nog mag verifiëren, nieuwste eerst, en alleen een exacte registerresolutie telt. Een locator die nergens op uitkomt wordt gemeld als not_observed en niet als fout, want een bestand zonder mark is een gewoon bestand.

Een registratie die wel gereserveerd maar nooit geëmbed is, wordt bewust niet door detectie prijsgegeven. Anders zou ze resolveren en een mark melden voor inhoud die nooit gemarkeerd is.

Formaten en grenzen

16-bits PCM WAV, tot 256 MB en 600 seconden. Langere of grotere assets worden geweigerd, niet afgekapt.

Keys en register

Een keyset draagt een locator key, een lookup key en een registry key, en bestaat alleen in de Local Vault. Het register is versleuteld op schijf: de mark-identifier en de locator-bits komen niet in het databasebestand voor, wat de container-canary controleert door de bytes te doorzoeken.

Evidence

Het eigen resultaat van de provider bereikt de capsule. De vault bouwt het niet na: een evidence-object dat naast een provider-run in elkaar wordt gezet meldt een toestand ongeacht of de run die heeft opgeleverd.

Gemeten robuustheid

Acht assets van tien seconden, tien cases per asset, gemeten tegen de echte provider onder de echte sandbox met echte ffmpeg. Elke transformatie keert terug naar WAV, want wat een verspreid bestand ondergaat is een encode en later een decode; een mark die alleen ongemoeide samples overleeft heeft niets overleefd.

8/8 voor MP3 op 192 en 128 kbit/s, AAC op 128 kbit/s, resampling naar 22050 Hz en 48000 Hz, loudness-normalisatie, 15% volumeverlaging, exacte detectie en de false-positive-controle met een niet-passende sleutel. Kop-trimmen haalde 6/8: 0,35 s wegknippen verschuift de analysevensters waarop het patchwork-signaal is uitgelijnd, en twee assets verloren het.

Deze getallen beschrijven dat corpus, die transformaties, deze providerversie en deze release-omgeving. Ze zijn geen universeel overlevingspercentage en moeten opnieuw gemeten worden zodra een van die dingen verandert.

Gemeten verwijdering

Robuustheid meet overleving onder transformaties die een eerlijke pijplijn uitvoert. Verwijdering is de andere vraag, met een eigen corpus: transformaties die alleen bedoeld zijn om de mark te vernietigen, elk vermeld met wat ze een luisteraar kosten in plaats van in decibel, want geen decibelwaarde zegt een mens iets.

Een time-stretch van 5% en een pitch-shift van 3% verwijderen de mark bij elk asset. Beide zijn hoorbaar en geen van beide verpest de opname, wat ze wezenlijk goedkoper maakt dan hercompressie naar 8 kbit/s op 16 kHz — de enige andere aanval die hem volledig verwijdert, en die de audio nauwelijks verstaanbaar achterlaat.

Filterresultaten hangen van de opname af. Over drie runs mat lowpass-filtering tussen 25% en 100% overleving over acht assets, dus daarvoor wordt geen percentage geclaimd. Wel de vorm: geen enkel filter en geen milde hercompressie verwijderde de mark bij álle assets.

Overleving van een audio-mark wordt dus geclaimd voor codecconversie, resampling, normalisatie, versterking en filtering, en niet voor iets dat de tijdlijn verschuift.

Operatie

De provider zit in de Local Vault-image, root-eigendom en niet-schrijfbaar geïnstalleerd onder de provider-root, met een manifest dat zijn binary-digest pint. Een contract inspecteert het gebouwde artefact in plaats van de Dockerfile: elke gepinde checksum wordt herberekend uit de binary die hij pint, en elk manifest wordt geladen via de eigen loader van de vault, zodat een manifest dat de vault zou weigeren de build laat falen in plaats van de eerste klant.

Faalmodi

Een embed die niet onafhankelijk teruggelezen kan worden wordt geweigerd. Een asset boven de grootte- of duurlimiet wordt geweigerd. Een provider die zijn sandboxlimieten overschrijdt wordt gedood en de run meldt een fout in plaats van een half resultaat. Geen daarvan levert een mark-record op.

Claimgrens

Een geslaagde detectie bewijst dat deze Local Vault een keyed locator heeft opgelost die aanwezig is in de audio die hij te zien kreeg, en die aan zijn versleutelde mark-record heeft gebonden. Het bewijst niet dat de audio het gemarkeerde asset ís, wie hem opnam, of hij gegenereerd is, of hij waar is, of wie hem bezit. Afwezigheid van een mark is geen bewijs dat iets niet uit deze pijplijn komt. Een mark kan verwijderd worden door de tijdlijn te verschuiven, wat hierboven staat, en daarom is detectie bewijs dat je naast receipts, source bindings en policy weegt in plaats van een oordeel op zichzelf.