OpenRadarBLOG

Evidência de vídeo que se sustenta: integridade, carimbo e verificação por terceiros

Resposta curta

Um hash criptográfico prova uma coisa só: que estes bytes são os mesmos de quando o hash foi calculado. A norma que define o SHA-256, a FIPS 180-4 do NIST, diz exatamente isso — os resumos servem para detectar se as mensagens mudaram desde que os resumos foram gerados, e qualquer alteração na mensagem produz, com altíssima probabilidade, um resumo diferente.

O que o hash não prova: que a cena aconteceu como se alega, que a hora declarada é verdadeira, nem que o arquivo não foi trocado antes do cálculo. Cada uma dessas três lacunas exige um instrumento diferente — carimbo dentro dos pixels medidos, referência de tempo externa e verificação que qualquer terceiro possa refazer sozinho.

O que um hash criptográfico realmente prova?

Um hash é uma função que transforma um arquivo de qualquer tamanho num valor de tamanho fixo. No SHA-256, esse valor tem 256 bits, escritos em geral como 64 caracteres hexadecimais.

A FIPS 180-4, publicada pelo NIST em agosto de 2015, declara os algoritmos seguros porque é computacionalmente inviável, primeiro, encontrar uma mensagem que corresponda a um resumo dado e, segundo, encontrar duas mensagens diferentes que produzam o mesmo resumo. É essa segunda propriedade que sustenta o uso probatório: ninguém consegue fabricar um segundo arquivo, com outro conteúdo, que apresente o mesmo código.

Na prática forense isso se traduz numa afirmação estreita e forte: este arquivo, aqui, agora, é bit a bit o mesmo que existia no momento em que o código foi calculado. Recortar, clarear, recomprimir, apagar um trecho ou salvar de novo em outro programa quebra a correspondência. É pouco, e é decisivo.

O que o hash não prova

A confusão mais cara em discussão de prova digital é tratar integridade como autenticidade. São coisas diferentes, e o hash resolve apenas a primeira.

Afirmações típicas sobre uma evidência de vídeo e qual instrumento sustenta cada uma. Colunas montadas a partir da FIPS 180-4 (NIST, 2015) e da RFC 3161 (IETF, 2001).
Afirmação O hash sustenta? O que sustentaria
O arquivo não foi alterado depois do cálculo Sim O próprio hash, recalculado por quem duvida.
O arquivo já existia antes de uma certa data Não Carimbo de tempo emitido por terceiro sobre o hash.
A hora impressa na imagem é a hora real Não Relógio sincronizado com fonte externa, mais o carimbo de terceiro.
A cena retrata o que se alega Não Contexto, testemunho, coerência com outros registros, perícia.
Nada foi trocado antes do cálculo do hash Não Cadeia de custódia e cálculo o mais perto possível da origem.
Quem gerou o arquivo é quem diz ser Não Assinatura digital com chave associada a uma identidade.

A última linha da tabela vale um parágrafo à parte. Hash não é assinatura. Hash é público e qualquer um pode calcular; assinatura envolve uma chave privada e amarra o resultado a um titular. Um sistema pode ter integridade perfeita e nenhuma autoria demonstrável, e isso é aceitável desde que se diga com clareza.

Por que o carimbo visual precisa estar dentro dos pixels que o hash cobre

Toda evidência de vídeo carrega informação sobre si mesma: data, hora, identificação da câmera, local, e no nosso caso a velocidade medida. A pergunta que decide se essa informação vale alguma coisa é onde ela mora.

Se ela mora fora do que foi medido — num campo de metadado editável, no nome do arquivo, numa planilha ao lado — então é possível mudar a data sem quebrar o hash. O código continua batendo, e a afirmação temporal continua sem sustentação nenhuma. Se ela está desenhada dentro dos próprios pixels, alterá-la muda a imagem, muda o hash e o conflito aparece na hora.

É um princípio geral, não um truque de implementação: o que o hash não cobre, o hash não protege. Vale para carimbo de data, para identificação de câmera e para qualquer anotação que alguém pretenda usar como afirmação de fato.

Quem garante a hora?

Ninguém, se a única fonte for o relógio de quem produziu o arquivo. Relógio de gravador de CFTV atrasa, é reconfigurado, perde a bateria e volta para uma data de fábrica. E, principalmente, é controlado por uma das partes da discussão.

A solução padrão da internet para esse problema é a autoridade de carimbo de tempo, descrita na RFC 3161. O documento é direto: essa terceira parte confiável fornece uma prova de existência de um dado num instante no tempo, e o papel dela é carimbar o dado para estabelecer evidência de que ele existia antes de determinado momento. Entre os requisitos, a autoridade precisa usar uma fonte de tempo confiável e incluir um valor de tempo confiável em cada carimbo.

Dois detalhes da mesma norma explicam por que isso funciona e onde para de funcionar. Primeiro: a autoridade deve carimbar apenas uma representação em hash do dado, nunca o dado. Segundo — e este é o ponto que quase ninguém cita — ela é obrigada a não examinar de forma alguma aquilo que está carimbando, além de conferir o comprimento do valor.

Ou seja: a testemunha externa atesta o instante, e declara desinteresse total pelo conteúdo. Isso é uma virtude, porque preserva o sigilo, e é um limite, porque nenhum carimbo de tempo do mundo diz que a imagem é verdadeira. Ele diz que ela é antiga.

Onde entramos nisso

Cada registro que o OpenRadar produz sai com uma assinatura SHA-256 que qualquer pessoa pode recalcular sem falar com a gente. A página de verificação é pública, roda inteira no navegador de quem confere e não envia a imagem para servidor nenhum — inclusive quando o resultado é que o arquivo não bate.

Verificar uma evidência agora

Em que momento o hash deve ser calculado?

O mais perto possível da origem. Todo intervalo entre o instante em que a imagem foi formada e o instante em que o resumo foi calculado é um período que o hash não cobre — e é exatamente nesse período que uma troca de arquivo passaria despercebida.

A consequência de arquitetura é direta: calcular o resumo no servidor central, depois de o arquivo atravessar rede, gravador e sistema de gestão, protege muito menos do que calcular na borda, junto de onde o registro nasceu. O código continua sendo o mesmo algoritmo, mas a afirmação que ele sustenta encolhe: em vez de dizer que nada mudou desde o registro, passa a dizer que nada mudou desde a chegada ao servidor.

É por isso que integridade não substitui cadeia de custódia. Ela documenta, com precisão matemática, um trecho da vida do arquivo; quem é responsável por cada trecho anterior continua sendo uma questão de organização, contrato e registro de acesso.

Verificação independente é o que dá força numa disputa

Um sistema de evidência tem duas arquiteturas possíveis. Na primeira, o fornecedor guarda a verdade e emite laudos: quem duvida precisa acreditar no fornecedor ou contratar perícia. Na segunda, o fornecedor publica o suficiente para que qualquer pessoa refaça a conferência com ferramentas comuns, e a resposta não depende de ninguém estar de boa-fé.

A diferença aparece justamente no momento em que o sistema é atacado. Numa assembleia de condomínio ou numa audiência, a pergunta não é se o fornecedor é sério — é se o outro lado consegue conferir sozinho. Verificação independente transforma uma questão de confiança em uma questão de aritmética, e aritmética não tem lado.

Isso impõe três exigências ao projeto, e as três são verificáveis por quem contrata: o algoritmo tem de ser público e padronizado; o valor de referência tem de ser publicado junto com a evidência ou em canal separado; e o procedimento de conferência tem de funcionar com ferramentas que já existem no computador de qualquer pessoa.

Como você mesmo confere a integridade de um arquivo?

Se você recebeu um arquivo e o valor SHA-256 correspondente, a conferência leva menos de um minuto e não exige instalar nada.

  1. Baixe o arquivo original, sem abrir e salvar de novo. Reencaminhar por aplicativo de mensagem que recomprime imagem já invalida a conferência — e isso não é defeito do método, é o método funcionando.
  2. Calcule o resumo. No macOS ou no Linux, no terminal: shasum -a 256 arquivo.jpg. No Windows, no Prompt de Comando: certutil -hashfile arquivo.jpg SHA256.
  3. Compare com o valor declarado. São 64 caracteres. Compare todos, não só o começo e o fim. Se bater, o arquivo é bit a bit o mesmo; se não bater, alguma coisa mudou entre a origem e a sua mão.
  4. Registre o que você fez. A data da conferência, o comando usado e o valor obtido. É o que transforma a sua checagem em algo citável por outra pessoa.

Para as evidências do OpenRadar existe o caminho mais curto: a página verificar uma evidência recalcula a assinatura da foto dentro do seu próprio navegador e mostra se ela confere, sem enviar a imagem para nenhum servidor.

E vale a advertência óbvia: um resultado positivo diz que o arquivo está íntegro, não que o registro está certo. Integridade é o piso da discussão, não o teto — e é por isso que ela precisa vir acompanhada de método declarado, como discutimos em medir velocidade por vídeo.

O que este texto não afirma

Não afirma que um hash prove quando a imagem foi feita, nem que ela retrate a realidade. Ele prova apenas que o arquivo não mudou desde o cálculo.

Não afirma que carimbo de tempo de terceiro valide conteúdo. A RFC 3161 obriga a autoridade a não examinar o que está sendo carimbado, o que é exatamente o contrário de atestar veracidade.

Não descreve o formato interno do marcador do OpenRadar, o layout do carimbo nem como a assinatura viaja junto do arquivo. Tudo o que está aqui vale para qualquer sistema que use hash padronizado.

Não é orientação jurídica sobre admissibilidade de prova. Descreve o que cada instrumento técnico sustenta; o que um juízo ou uma assembleia aceita é outra discussão.

Fontes

  1. NIST. FIPS PUB 180-4 — Secure Hash Standard (SHS), agosto de 2015. nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf Origem da definição de que os resumos servem para detectar se as mensagens mudaram desde que foram gerados, das duas propriedades de inviabilidade computacional e da afirmação de que qualquer alteração produz, com altíssima probabilidade, um resumo diferente. Consultado em 4 de setembro de 2026.
  2. Adams, C.; Cain, P.; Pinkas, D.; Zuccherato, R. RFC 3161 — Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP). IETF, agosto de 2001. rfc-editor.org/rfc/rfc3161.txt Origem da descrição da autoridade de carimbo de tempo como terceira parte confiável que fornece prova de existência de um dado num instante, do requisito de usar fonte de tempo confiável, da regra de carimbar apenas uma representação em hash e da obrigação de não examinar o valor carimbado. Consultado em 4 de setembro de 2026.
Sobre o OpenRadar

Trabalhamos sobre as câmeras que já existem e produzimos registro assinado em SHA-256, com conferência pública que não passa por nós. Preferimos um sistema que qualquer pessoa pode auditar a um sistema que só funciona enquanto acreditarem na nossa palavra.

Falar sobre evidência auditável