Cruz Vermelha Brasileira — Rio de Janeiro

Verificação de documentos

Confira se um documento é autêntico

Digite o código impresso no documento, no certificado ou na publicação, ou escolha o arquivo que você recebeu. A consulta mostra se ele foi registrado pela Cruz Vermelha Brasileira Rio de Janeiro e se continua valendo.

O código de 26 caracteres (ex.: NH1YB0F84MAHSKZ060MJATTG28), o de 32 caracteres de um ofício ou o XXXX-XXXX de um certificado. Maiúsculas, espaços e hífens não fazem diferença. Também vale a impressão digital SHA-256, de 64 caracteres.

O arquivo não sai do seu aparelho: o navegador calcula a impressão digital dele (SHA-256) e só essa sequência de 64 caracteres vai para a consulta.

Sobre a verificação

O que é esta página

Esta página confere documentos e publicações que a Cruz Vermelha Brasileira Rio de Janeiro registrou numa trilha pública de auditoria: ofícios, certificados de curso, comunicados à imprensa, matérias do site, documentos do portal de transparência, parcerias e a página de canais oficiais.

Cada registro guarda a impressão digital (SHA-256) do conteúdo e entra num registro encadeado por hash: cada item carrega a impressão digital do anterior, então alterar ou apagar qualquer um quebra a sequência. Uma vez por dia, os registros do dia fecham um lote, que recebe um carimbo de tempo RFC 3161 de uma autoridade independente, é ancorado no Bitcoin pelo OpenTimestamps e entra num manifesto assinado pela filial.

A consulta mostra que aquele conteúdo, exatamente como está, foi registrado pela filial naquela data, e qual é a situação dele hoje: vigente, substituído, revogado ou retirado do ar. Ela prova registro e integridade; não substitui a assinatura de quem emitiu o documento nem lhe acrescenta validade jurídica.

Esta página não usa ferramentas de análise nem carrega nada de terceiros. O código digitado vai só para o servidor de registro da filial, e o arquivo escolhido não sai do seu aparelho.

Conferência independente

Como conferir sem depender da Cruz Vermelha

Tudo o que a consulta mostra pode ser refeito com programas livres, sem confiar no servidor da filial. Os arquivos de cada dia ficam em lotes/AAAA-MM-DD/, a lista dos dias está em lotes/indice.json, e os links de cada registro aparecem no resultado da consulta.

1. O arquivo é o mesmo que foi registrado

A impressão digital SHA-256 muda por inteiro se um único bit do arquivo mudar; por isso reimprimir, escanear, comprimir ou converter o arquivo gera outra. Calcule a do arquivo que você recebeu e compare com a que aparece no resultado da consulta:

sha256sum arquivo

No Mac: shasum -a 256 arquivo. No Windows (PowerShell): Get-FileHash arquivo -Algorithm SHA256.

2. O registro já existia naquela data (Bitcoin)

A prova do OpenTimestamps (arquivo .ots) mostra que aquela impressão digital já existia quando um bloco do Bitcoin foi gravado, e qualquer pessoa confere isso contra o próprio Bitcoin. Baixe a prova no resultado da consulta e rode o programa ots (opentimestamps-client) na pasta em que estão a prova e o que ela cobre:

  • Matérias, comunicados, documentos e parcerias do portal, canais oficiais: a prova cobre o texto registrado, que se baixa no mesmo resultado (CODIGO.json). No portal de transparência, esse texto traz a impressão digital do PDF, que se confere pelo passo 1.
  • Ofícios: a prova cobre o manifesto de assinaturas, que se baixa na página do próprio ofício.
  • Certificados: a prova cobre a impressão digital do registro, mostrada no resultado da consulta.
ots verify CODIGO.json.ots
ots verify -f manifesto-do-oficio.json CODIGO.ots
ots verify -d IMPRESSAO-DIGITAL CODIGO.ots

Sem instalar nada, dá para soltar o arquivo e a prova em opentimestamps.org. Nas primeiras horas a prova fica pendente, até a transação entrar num bloco; depois disso, a conferência mostra o bloco e a data.

3. O manifesto do dia recebeu o carimbo de tempo (RFC 3161)

O manifesto (manifesto.json) resume o dia: a raiz dos registros, as cabeças da cadeia e o compromisso, preso ao do dia anterior. Ele não lista registro nenhum. O carimbo de tempo (manifesto.json.tsr) foi emitido pela FreeTSA, uma autoridade de carimbo de tempo independente, e prova que o manifesto já existia naquele horário. Baixe os certificados da FreeTSA (cacert.pem e tsa.crt) em freetsa.org e rode:

openssl ts -verify -data manifesto.json -in manifesto.json.tsr -CAfile cacert.pem -untrusted tsa.crt

A resposta esperada é Verification: OK.

4. O manifesto foi assinado pela filial

A assinatura (manifesto.json.sig) é Ed25519 e se confere com a chave pública da filial, publicada em chave-publica.pem. Precisa do OpenSSL 3 ou mais novo:

openssl pkeyutl -verify -pubin -inkey chave-publica.pem -rawin -in manifesto.json -sigfile manifesto.json.sig

A resposta esperada é Signature Verified Successfully.

5. O compromisso do lote bate com o manifesto

O compromisso.bin junta, em 96 bytes, a raiz dos registros do dia, as cabeças da cadeia e o compromisso do dia anterior: é o que prende cada dia ao anterior. A impressão digital dele tem de ser igual ao campo compromisso do manifesto e ao compromisso mostrado no resultado da consulta:

sha256sum compromisso.bin

É esse arquivo que vai para o Bitcoin. A prova dele confere do mesmo jeito do passo 2, com o compromisso.bin na mesma pasta: ots verify compromisso.bin.ots.