Veridian Electoral

Procedência e custódia · escrito para advogados

O que o hash prova, e o que não prova.

Esta página é para quem tem de apresentar uma prova em um tribunal. Declara os campos que registramos, o procedimento que a parte receptora executa sem nós e os limites do que um hash pode estabelecer.

O que é um hash

Um parágrafo, em linguagem simples

Um hash é um valor curto e de comprimento fixo calculado a partir de um arquivo. Mude um pixel da imagem de um boletim de urna e o valor muda por completo; deixe o arquivo intacto e o valor se recalcula idêntico em qualquer máquina, em qualquer ano, sem contato conosco. Um hash estabelece, portanto, que um arquivo é o mesmo arquivo que foi hasheado. Não estabelece quem criou o arquivo, quando o criou, nem que aquilo que o arquivo mostra é verdadeiro: isso vem do livro de custódia, da certificação e do registro subjacente.

Hasheado na captura

O que é hasheado no momento da captura

  • Os bytes da imagem do boletim de urna, exatamente como capturados, antes de qualquer processamento.
  • O registro de metadados de captura: chave de unidade agregada, papel que capturou, classe de dispositivo e marca temporal de captura em UTC.
  • Os dois hashes em conjunto, para que a imagem e as suas circunstâncias não possam ser separadas depois.
  • Nenhuma identidade individual é hasheada, porque nenhuma é coletada. O registro nomeia um papel, não uma pessoa.

Cadeia até uma raiz

Como os registros se encadeiam a uma raiz

Cada registro de verificação carrega dois hashes: o do artefato que verifica e o do registro imediatamente anterior. Os registros formam assim uma cadeia ordenada, e um único valor — a raiz de cadeia — é calculado sobre os hashes ordenados das partes e escrito no manifesto.

  • Altere um registro e o seu próprio hash muda, de modo que o registro seguinte já não corresponde.
  • Remova ou reordene um registro e a raiz de cadeia muda.
  • A raiz é, portanto, um único valor que o advogado pode lançar no processo, e qualquer alteração posterior o contradiz.

O manifesto

O que o manifesto lista

Norma
A norma e versão do pacote, erm_evidence/1, para que o índice seja fixo e testável.
Partes
Todas as partes do pacote, em ordem, cada uma com o seu SHA-256. Uma parte que não pôde ser produzida é listada com o motivo da ausência.
Raiz de cadeia
O único valor calculado sobre os hashes ordenados das partes.
Certificador
Uma referência hasheada do gerador. A integridade é verificada pelo hash de entrega — um SHA-256 sobre items, chain_root e bundle_id — registrado no registro de custódia.
Gerado em
A marca temporal de geração, em UTC, com o fuso declarado e não implícito.

Livro de custódia

As colunas que uma certificação exige

Estes são os campos em que assenta uma certificação ao abrigo da FRE 902(13) ou 902(14), e os campos que a SWGDE recomenda para o tratamento de prova digital. O livro é entregue como parte 08 do pacote. A linha abaixo é uma amostra identificada de um fixture de CI.

Amostra · fixture de CI · não ao vivo

Id do itemCedenteReceptorData / hora UTCFinalidadeHash de aquisiçãoHash de verificaçãoCertificador
ITEM-0412-APapel de captura de campo 04Papel de verificação 0224 jun 2026 08:12 UTCConfirmação humanasha256:7b31…sha256:2d90…Papel certificador 01

Linha de amostra de um fixture de CI. Não corresponde a qualquer eleição, seção ou pessoa.

Verificação offline · 5 passos

Como a parte receptora verifica, sem nós

  1. Recalcular o hash de entrega (SHA-256 sobre items, chain_root, bundle_id) e compará-lo com o registro de custódia.
  2. Recalcular o SHA-256 de cada parte e comparar cada um com o manifesto.
  3. Recalcular a raiz de cadeia a partir dos hashes das partes e compará-la com a raiz do manifesto.
  4. Voltar a obter a URL do instantâneo do registro oficial e comparar o seu hash de conteúdo.
  5. Reproduzir o relatório de reconciliação contra o conjunto de captura e o registro de N/A.

Cada passo usa ferramentas padrão sobre os arquivos entregues. Em nenhum momento é necessário um serviço da Veridian, uma conta ou uma chamada de rede para nós.

Passo 02, executado aqui Amostra · fixture de CI · não ao vivo

Comparar um valor com a entrada de manifesto da parte 01

Este painel compara o texto que você colar com uma entrada de manifesto de um fixture sintético de CI. Não hasheia nada, não lê qualquer arquivo e não corresponde a qualquer engajamento. Existe para que o procedimento desta página possa ser visto uma vez antes de importar.

Valor de manifesto, parte 01 (amostra · fixture de CI · não ao vivo)

sha256:9f2c04ae7b312d90e417aa0631f86c2b5d418ac37e90b214cf05d6a1938be47c

Como se vê a manipulação

Três casos, e o passo que detecta cada um

Caso 01 · passo 02

Uma página foi alterada

A imagem de um boletim de urna é editada após a captura. O seu SHA-256 recalculado já não corresponde à entrada do manifesto, e a parte é identificada pelo nome.

Caso 02 · passo 03

Uma entrada foi removida ou reordenada

Uma entrada de captura é apagada ou movida. Cada hash de parte continua a corresponder, mas a raiz de cadeia recalculada não corresponde à raiz do manifesto.

Caso 03 · passo 04

O instantâneo oficial foi substituído

O instantâneo do registro oficial é trocado por outro documento. O hash de conteúdo reobtido não corresponde ao hash registrado no momento da obtenção.

Estes três casos são construídos e detectados em cada execução de CI contra um pacote sintético. Não se afirma detecção além destes três casos.

Diligência devida

Como isto se sustentaria?

Solicitar um engajamento

Indique-nos a eleição, a data e o artefato de que precisa. Respondemos com âmbito, condições de recusa e um preço contra o piso publicado.

Solicitar um engajamento

← O pacote de prova

[email protected]