Validar assinatura digital ICP-Brasil: o carimbo visual não é a assinatura

GuiaUNIFOKAL7 min de leituraProduto e integração
Ver em Markdown

O que o DOC-ICP-15.01 exige que o verificador tenha em mãos, por que a tarja azul no PDF não acrescenta segurança e o que o validador oficial do ITI responde e não responde.

Num fluxo de verificação de empresa chega um PDF com uma tarja no rodapé: nome em caixa alta, a frase "assinado digitalmente", um número de série e um cadeado desenhado ao lado. O analista lê a tarja, confere o nome contra o quadro societário e segue. O documento foi aceito com base em um desenho.

Validar assinatura digital ICP-Brasil é outra coisa, e a norma brasileira que rege o assunto diz isso com todas as letras. A Infraestrutura de Chaves Públicas Brasileira, a ICP-Brasil, foi instituída pela Medida Provisória 2.200-2, de 24 de agosto de 2001, e o Comitê Gestor da ICP-Brasil publica os documentos que descrevem como uma assinatura é gerada e verificada. Dois deles importam aqui: o DOC-ICP-15, aprovado na versão 4.0 pela Resolução CG ICP-Brasil nº 182, de 18 de fevereiro de 2021, e o DOC-ICP-15.01, aprovado na versão 4.0 pela Instrução Normativa ITI nº 01, de 12 de fevereiro de 2021.

Este artigo percorre a mecânica da conferência. As três classes de assinatura eletrônica e quando cada uma basta já estão em assinatura eletrônica no onboarding; aqui a pergunta é operacional: dado um arquivo assinado, o que precisa ser feito para dizer que a assinatura vale.

A norma diz que a representação visual não acrescenta segurança

O item 6.4.4.10 do DOC-ICP-15 trata do PAdES, o formato de assinatura avançada construído sobre o PDF. Ele diz que o padrão permite que as assinaturas fiquem visíveis a quem está lendo o documento assinado, e continua: essa visualização não substitui a validação da assinatura nem acrescenta segurança ao processo, e nessa representação visual podem ser inclusas imagens sem vínculo com o assinante.

Não é interpretação de mercado, é o texto do documento normativo. A tarja é conteúdo de página, do mesmo tipo de qualquer desenho que um gerador de PDF saiba produzir. Quem entende a estrutura interna de um PDF reconhece o padrão: aparência e estrutura são camadas distintas, e olhar a primeira nunca responde pela segunda.

O DOC-ICP-15.01 acrescenta um detalhe pouco conhecido, no item 2.2.1.4: o PDF suporta scripts, e esses scripts podem alterar o conteúdo visualizado pelo usuário de forma transparente, sem que ele perceba. Por isso a norma manda alertar o usuário sobre a presença de scripts tanto no momento em que ele assina quanto no momento em que verifica.

O que a assinatura digital ICP-Brasil é, por definição

O item 4.1 do DOC-ICP-15 define assinatura digital ICP-Brasil como a assinatura eletrônica que cumpre quatro condições ao mesmo tempo: estar associada inequivocamente a um par de chaves criptográficas que permita identificar o signatário; ser produzida por dispositivo seguro de criação de assinatura; estar vinculada ao documento eletrônico a que diz respeito, de tal modo que qualquer alteração subsequente neste seja plenamente detectável; e estar baseada em um certificado ICP-Brasil válido à época da sua aposição.

A quarta condição é a que mais derruba conferência apressada. O item 2.2.2.3 do DOC-ICP-15.01 é explícito: a assinatura aposta após a expiração ou revogação do certificado em que está baseada, ou que não respeite as restrições nele indicadas, equivale à ausência de assinatura. Não é assinatura fraca, é assinatura inexistente para efeito de conferência.

Vale lembrar de onde vem o peso jurídico disso. O parágrafo único do artigo 6º da MP 2.200-2 diz que o par de chaves é sempre gerado pelo próprio titular e que a chave privada de assinatura fica sob seu exclusivo controle, uso e conhecimento. O parágrafo 1º do artigo 10 dá aos documentos produzidos com processo de certificação disponibilizado pela ICP-Brasil presunção de veracidade das declarações em relação aos signatários.

Os seis insumos que o verificador precisa ter

O item 2.2.3.1 do DOC-ICP-15.01 lista o que é necessário para verificar a validade de uma assinatura digital ICP-Brasil:

  • o documento eletrônico para o qual a assinatura foi criada;
  • a assinatura digital desse documento;
  • o certificado digital do signatário e sua correspondente cadeia de certificação;
  • os status de revogação referentes aos certificados dos caminhos de certificação do usuário e, quando houver carimbo do tempo, da Autoridade de Carimbo do Tempo;
  • a política de assinatura, cujo identificador está dentro da própria assinatura;
  • um dos algoritmos definidos no DOC-ICP-01.01.

O item seguinte, 2.2.3.3, fecha a porta: a validade não deve ser verificada se o verificador não dispuser desses dados. Sem cadeia e sem status de revogação, o correto é dizer que não foi possível verificar, e não que a assinatura está boa.

Cadeia de certificação, na definição do item 4.4 do DOC-ICP-15, é a série hierárquica de certificados assinados por sucessivas Autoridades Certificadoras, do certificado da entidade final até o certificado de confiança, conforme descrito na RFC 5280. É essa RFC, do IETF, que descreve no capítulo 6 o algoritmo de validação de caminho de certificação e, no item 6.3, os passos para determinar se um certificado foi revogado quando o mecanismo de revogação é a lista de certificados revogados.

O que a validação precisa assegurar

O item 2.2.3.2 do DOC-ICP-15.01 divide a conferência em duas frentes. A primeira é o estado criptográfico: autoria, pela decifração da assinatura usando a chave pública contida no certificado do signatário, e integridade, por comparação de resumos criptográficos, mostrando que o conteúdo não foi alterado desde a assinatura. A segunda é o caminho de certificação, que precisa ser válido na referência temporal adotada, incluindo a validade da assinatura da entidade que emitiu o certificado do signatário.

A referência temporal é o ponto que mais gera discussão em documento antigo. O carimbo do tempo, definido no item 4.5 do DOC-ICP-15, é documento eletrônico emitido por uma parte confiável que serve como evidência de que uma informação digital existia em determinada data e hora. Quando existe carimbo, o item 2.2.3.4 manda validar o carimbo e depois validar a assinatura adotando a data e hora dele como referência.

Há ainda um resultado que costuma ser ignorado por quem só quer um selo verde. O item 2.2.3.10 determina que o processo de validação mostre o estado de cada assinatura em termos de aprovado, reprovado ou indeterminado, identificando os signatários, e gere alerta ao verificador descrevendo qualquer não conformidade encontrada no certificado. São três estados, não dois. Indeterminado é uma resposta legítima, e tratá-la como aprovação é o erro que nenhuma norma cobre.

Onde o validador oficial para, e o que sobra para você

O ITI, Instituto Nacional de Tecnologia da Informação, que a MP 2.200-2 define no artigo 13 como Autoridade Certificadora Raiz da ICP-Brasil, mantém um validador público de assinaturas. A própria página do serviço é honesta sobre o alcance: os resultados da validação limitam-se a identificar o titular do certificado digital utilizado e confirmar se o documento assinado não sofreu adulteração após a assinatura.

Leia essa frase como um limite de escopo. Ela responde "quem assinou e o arquivo mudou depois?". Ela não responde se essa pessoa tinha poderes para assinar aquele ato, se o documento é o vigente, nem se o conteúdo confere com o registro público. Esse é outro trabalho, o de conferir poderes de representação e de ler o que o documento societário diz, e é a parte que a verificação de empresas precisa organizar em torno do arquivo.

Uma última nota sobre política de assinatura, porque ela decide quem aceita o quê. O item 6.6.1 do DOC-ICP-15 define política de assinatura como o conjunto de regras que formaliza a criação e a verificação e define as bases para que a assinatura seja considerada válida. O item 6.6.3 coloca a decisão no colo de quem recebe: a parte que recebe os documentos assinados determina quais políticas podem ser aceitas no seu processo de negócios. Escrever essa lista é decisão de produto.

Fontes citadas

  • Medida Provisória 2.200-2, de 24 de agosto de 2001, artigos 1º, 6º, 10 e 13, no portal do Planalto: planalto.gov.br
  • DOC-ICP-15, Visão Geral sobre Assinaturas Digitais na ICP-Brasil, versão 4.0, itens 4.1, 4.4, 4.5, 6.4.4.10, 6.6.1 e 6.6.3, aprovado pela Resolução CG ICP-Brasil nº 182, de 18 de fevereiro de 2021: gov.br
  • DOC-ICP-15.01, Requisitos para Geração e Verificação de Assinaturas Digitais na ICP-Brasil, versão 4.0, itens 2.2.1.4, 2.2.2.3, 2.2.3.1, 2.2.3.2, 2.2.3.3, 2.2.3.4 e 2.2.3.10, aprovado pela Instrução Normativa ITI nº 01, de 12 de fevereiro de 2021: gov.br
  • RFC 5280, do IETF, perfil de certificado e de lista de certificados revogados, capítulo 6 (validação de caminho de certificação) e item 6.3: rfc-editor.org
  • ITI, Validador de Assinaturas, serviço oficial de validação, com a descrição do alcance do resultado: validar.iti.gov.br