Provenienza Attesto 3
AttestoMark Audio
AttestoMark Audio inserisce un locator con chiave in audio PCM a 16 bit e lascia che il Local Vault lo cerchi in un registro locale cifrato. Questa pagina indica che cosa sopravvive secondo le misure, che cosa si perde secondo le misure e che cosa una rilevazione non stabilisce.
Ambito
AttestoMark Audio scrive un locator da 61 bit in audio PCM a 16 bit tramite una trasformazione patchwork su bande FFT. Quel locator non è il contenuto che interessa a un lettore: è un indice verso un registro cifrato custodito dal Local Vault, e quel registro porta l'identità del marchio, il set di chiavi e i digest dell'asset originale e di quello marcato.
Il provider accetta soltanto audio/wav. Convertire tra contenitori è una trasformazione attorno al provider e non al suo interno: per questo l'immagine base del Local Vault porta l'audio, mentre il video richiede l'immagine multimediale con le sue librerie di codec.
Architettura
Il provider è un binario di classe S: gira nella sandbox setuid senza rete, con un'identità fissa non privilegiata, accesso ai file limitato al proprio binario, all'asset e a un solo file di output, più limiti su processi, spazio di indirizzamento e dimensione dell'output. Vede l'audio e nient'altro.
La sandbox è stata attaccata e non solo configurata. Tredici tentativi di evasione contro il binario consegnato, installato setuid root, sono tutti falliti; un braccio di controllo che esegue ogni tentativo senza sandbox mostra che nove di essi sono respinti dalla sandbox e non dall'ambiente circostante.
Ciclo di inserimento
Il vault riserva un record di registro rispetto al digest dell'asset non marcato, deriva il locator come HMAC su identificatore del set di chiavi, identificatore del marchio e quel digest, e chiede al provider di inserirlo. L'output viene poi rilevato di nuovo in modo indipendente prima di completare il record: un inserimento che non può essere riletto viene respinto e la prenotazione annullata, così che un registro non conservi mai un record per un marchio che nessuno può trovare.
Rilevazione con chiave
La rilevazione prova ogni epoca del set di chiavi ancora abilitata a verificare, dalla più recente, e conta solo una risoluzione esatta nel registro. Un locator che non porta a nulla viene segnalato come not_observed e non come errore, perché un file senza marchio è un file normale.
Una registrazione prenotata ma mai inserita non viene deliberatamente rivelata dalla rilevazione. Altrimenti si risolverebbe e segnalerebbe un marchio per contenuti che nulla ha mai marcato.
Formati e limiti
WAV PCM a 16 bit, fino a 256 MB e 600 secondi. Gli asset più lunghi o più grandi vengono respinti, non troncati.
Chiavi e registro
Un set di chiavi porta una chiave di locator, una di lookup e una di registro, ed esiste solo nel Local Vault. Il registro è cifrato a riposo: l'identificatore del marchio e i bit del locator non compaiono nel file di database, cosa che il canarino del contenitore verifica scorrendo i byte.
Evidenze
Ciò che raggiunge la capsula è il risultato proprio del provider. Il vault non lo ricostruisce: un oggetto di evidenza assemblato accanto a un'esecuzione segnalerebbe uno stato indipendentemente dal fatto che l'esecuzione lo abbia prodotto.
Robustezza misurata
Otto asset da dieci secondi, dieci casi per asset, misurati contro il provider reale nella sandbox reale con ffmpeg reale. Ogni trasformazione torna al WAV, perché ciò che un file distribuito attraversa è una codifica e più tardi una decodifica; un marchio che sopravvive solo a campioni intatti non è sopravvissuto a nulla.
8/8 per MP3 a 192 e 128 kbit/s, AAC a 128 kbit/s, ricampionamento a 22050 Hz e 48000 Hz, normalizzazione del volume, attenuazione del 15%, rilevazione esatta e il controllo di falso positivo con chiave non corrispondente. Il taglio iniziale ha misurato 6/8: togliere 0,35 s sposta le finestre di analisi su cui è allineato il segnale patchwork, e due asset lo hanno perso.
Questi numeri descrivono quel corpus, quelle trasformazioni, questa versione del provider e questo ambiente di rilascio. Non sono un tasso di sopravvivenza universale e vanno rimisurati non appena uno di essi cambia.
Rimozione misurata
La robustezza misura la sopravvivenza a trasformazioni che una catena onesta esegue. La rimozione è l'altra domanda e ha un corpus proprio: trasformazioni il cui unico scopo è distruggere il marchio, ciascuna accompagnata da ciò che costa a un ascoltatore anziché da un valore in decibel, perché nessun valore in decibel dice qualcosa a una persona.
Un time stretch del 5% e uno spostamento di intonazione del 3% rimuovono il marchio da ogni asset. Entrambi sono udibili e nessuno dei due rovina la registrazione, il che li rende molto più economici della ricompressione a 8 kbit/s a 16 kHz, l'unico altro attacco che lo rimuove del tutto e che lascia l'audio a malapena comprensibile.
I risultati del filtraggio dipendono dalla registrazione. Su tre esecuzioni il filtro passa-basso ha misurato tra il 25% e il 100% di sopravvivenza su otto asset, quindi per esso non si rivendica alcun tasso. Si rivendica la forma: nessun filtro e nessuna ricompressione leggera ha rimosso il marchio da tutti gli asset.
La sopravvivenza di un marchio audio è quindi rivendicata per conversione di codec, ricampionamento, normalizzazione, guadagno e filtraggio, e non per nulla che sposti la linea temporale.
Esercizio
Il provider viaggia nell'immagine del Local Vault, installato sotto la radice dei provider, di proprietà di root e non scrivibile, con un manifesto che fissa il digest del suo binario. Un contratto ispeziona l'artefatto costruito anziché il Dockerfile: ogni checksum fissato viene ricalcolato dal binario che fissa e ogni manifesto viene caricato dal loader proprio del vault, così che un manifesto che il vault rifiuterebbe faccia fallire la build anziché il primo cliente.
Modalità di guasto
Un inserimento che non può essere riletto in modo indipendente viene respinto. Un asset oltre il limite di dimensione o durata viene respinto. Un provider che supera i propri limiti di sandbox viene terminato e l'esecuzione segnala un errore anziché un risultato parziale. Nessuno di questi casi produce un record di marchio.
Limite delle affermazioni
Una rilevazione riuscita dimostra che questo Local Vault ha risolto un locator con chiave presente nell'audio che gli è stato mostrato e lo ha legato al proprio record cifrato del marchio. Non dimostra che l'audio sia l'asset che è stato marcato, chi lo abbia registrato, se sia stato generato, se sia vero o di chi sia. L'assenza di un marchio non è prova che qualcosa non provenga da questa catena. Un marchio può essere rimosso spostando la linea temporale, come indicato sopra, ed è per questo che una rilevazione è un'evidenza da pesare accanto a ricevute, legami di origine e policy, e non un verdetto in sé.
