Principio della modifica dell’hash di un file
Gli hash crittografici tipici includono: MD5, SHA-1/256 ecc. La caratteristica centrale nella progettazione delle funzioni di hash crittografiche è l’“effetto valanga”: qualsiasi minima variazione dell’input provoca un’enorme variazione dell’output. Ciò significa che, anche modificando un solo byte, l’intero valore hash sarà completamente diverso. Per esempio, se scrivi un documento di 2000 parole e lo salvi in un file Word, basta cambiare un solo carattere, ad esempio aggiungere uno spazio, perché l’md5 del file cambi completamente. Pertanto, l’essenza del “cambiare l’hash di un file” è modificare il contenuto stesso del file, non attributi esterni come il nome del file. Questa caratteristica rende relativamente semplice modificare l’hash a livello di file.
Sistemi e formati diversi attribuiscono i “metadati” in modi diversi: se i metadati sono incorporati nei dati del file (ad esempio tag all’interno di JPEG/contenitori video), modificarli cambia l’hash; se invece i metadati sono memorizzati in flussi di dati o attributi esterni al file system, modificarli non influisce sull’hash calcolato in base al contenuto del file. Questo spiega il fenomeno comune per cui “cambiare il nome del file non cambia l’hash, mentre modificare i metadati incorporati sì”.
Transcodifica delle piattaforme video e “riconoscere se l’hash è stato modificato”
Dopo che un utente carica un video su una piattaforma video, la piattaforma esegue su quel video:
Ricezione del file originale
Controllo e verifica del formato
Elaborazione di transcodifica (conversione del formato, regolazione della risoluzione, compressione)
Estrazione dei fotogrammi chiave
Calcolo hash multilivello
Si tratta di una pipeline di transcodifica “demultiplexing → decodifica → elaborazione → ricodifica → multiplexing”, volta a produrre più versioni per la riproduzione adattiva a bitrate/risoluzioni multiple. Questo processo di per sé modifica la sequenza di byte del file e qualsiasi hash crittografico precedente al caricamento.
A livello di hash del file: durante la transcodifica la piattaforma rigenera il file, quindi l’hash del file originale cambia naturalmente. Di conseguenza, l’hash del file modificato in anticipo dall’utente non ha più significato dopo la transcodifica. Perciò la piattaforma non va a verificare se questo file abbia avuto md5 o simili modificati, perché non avrebbe alcun senso!
Le fasi di deduplicazione/rilevamento del copyright non dipendono dall’hash del file fornito da chi carica il contenuto, ma dal calcolo, da parte della piattaforma, di proprie “impronte audio-video/hash percettivi” sul contenuto decodificato, che vengono poi confrontati con le impronte di riferimento nel database; ad esempio, il Content ID di YouTube esegue il “fingerprinting” dei contenuti caricati e li confronta con i riferimenti forniti dai titolari dei diritti.
Pertanto la piattaforma non “riconosce che l’hash è stato modificato”, ma “ignora l’hash caricato, ricalcola l’impronta del contenuto e la confronta”. Questo fa sì che modificare semplicemente i byte del file o i metadati del contenitore per cambiare MD5/SHA non consenta di aggirare i controlli basati sul contenuto.