Princípio da modificação do hash de um arquivo
Hashes criptográficos típicos incluem: MD5, SHA-1/256 etc. A principal característica do design das funções de hash criptográfico é o "efeito avalanche" — qualquer mudança mínima na entrada provoca uma grande alteração na saída. Isso significa que, mesmo modificando apenas um byte, todo o valor do hash será completamente diferente. Por exemplo, se você escreveu um documento de 2000 palavras e o salvou em um arquivo do Word, basta alterar um único caractere, como adicionar um espaço, para que o md5 desse arquivo mude completamente. Portanto, a essência de “alterar o hash de um arquivo” é alterar o próprio conteúdo do arquivo, e não atributos externos como o nome do arquivo. Essa característica torna relativamente fácil modificar hashes em nível de arquivo.
Diferentes sistemas e formatos tratam a “metadados” de maneiras diferentes: se os metadados estiverem incorporados nos dados do arquivo (como etiquetas dentro de JPEG/contêineres de vídeo), alterá-los mudará o hash; se os metadados estiverem armazenados em fluxos de dados externos ou atributos do sistema de arquivos, alterá-los não afetará o hash calculado com base no conteúdo do arquivo. Isso explica o fenômeno comum de “mudar o nome do arquivo não altera o hash, mas alterar metadados incorporados altera”.
Transcodificação em plataformas de vídeo e “identificar se o hash foi alterado”
Depois que o usuário envia um vídeo para uma plataforma de vídeo, a plataforma realiza:
Recebimento do arquivo original
Verificação e validação do formato
Processamento de transcodificação (conversão de formato, ajuste de resolução, compressão)
Extração de quadros-chave
Cálculo de hash em múltiplas camadas
Trata-se de um fluxo de transcodificação de “demultiplexação → decodificação → processamento → recodificação → multiplexação”, usado para gerar múltiplas versões com diferentes taxas de bits/resoluções para reprodução adaptativa. Esse processo, por si só, altera a sequência de bytes do arquivo e qualquer hash criptográfico anterior ao upload.
No nível do hash do arquivo: durante a transcodificação, a plataforma gera novamente o arquivo, e o hash do arquivo original muda naturalmente. Portanto, o hash do arquivo previamente modificado pelo usuário deixa de ter significado após a transcodificação. Por isso, a plataforma não vai identificar se esse arquivo teve o md5 ou algo semelhante modificado, pois isso não tem nenhuma utilidade!
As etapas de deduplicação/detecção de direitos autorais não dependem do hash do arquivo enviado pelo usuário; em vez disso, a própria plataforma calcula “impressões digitais de áudio e vídeo/hashes perceptivos” sobre o conteúdo decodificado e os compara com impressões digitais de referência no banco de dados. Por exemplo, o Content ID do YouTube realiza a “impressão digital” do conteúdo enviado e o compara com referências fornecidas pelos detentores de direitos.
Portanto, a plataforma não “identifica que o hash foi alterado”, mas sim “ignora o hash enviado, recalcula a impressão digital do conteúdo e faz a correspondência”. Isso faz com que simplesmente alterar os bytes do arquivo ou os metadados do contêiner para mudar MD5/SHA não consiga contornar detecções baseadas em conteúdo.