Pular para o conteúdo

Validação de longo prazo

Spec: ETSI EN 319 142-1 Spec: RFC 6960 Spec: ISO 32000-2, §12.8.4 Evidence: Standard-backed

Uma assinatura que você verifica hoje depende de fatos que não duram: um certificado que expira, servidores de revogação que saem do ar e algoritmos de hash que enfraquecem. A validação de longo prazo registra as evidências no documento enquanto elas ainda podem ser obtidas. Assim, a assinatura pode ser verificada anos depois sem precisar consultar ninguém.

A propriedade perigosa de uma assinatura digital é que ela pode deixar de ser verificável silenciosamente, sem aparentar nenhuma alteração. Nada no arquivo muda. A autoridade certificadora deixa de responder a consultas sobre um certificado expirado há muito tempo. Um validador que dependia dessa resposta não consegue mais obtê-la. Um contrato que era inquestionavelmente válido no dia em que foi assinado passa a ser “impossível de determinar” uma década depois. E uma década depois é justamente quando uma disputa tende a ser mais provável e o que está em jogo costuma ser maior. Se a obrigação de retenção é medida em anos, uma assinatura sem validação de longo prazo é um risco que só aparece tarde demais.

  • A validade de uma assinatura depende de fatos externos sensíveis ao tempo: a janela de validade do certificado e o status de revogação obtido de um servidor.
  • Depois que o certificado expira, esses fatos podem se tornar impossíveis de obter — as autoridades não são obrigadas a responder para sempre.
  • A validação de longo prazo captura as evidências no momento da assinatura — certificados, respostas OCSP, CRLs — e as incorpora ao Document Security Store (DSS) do documento.
  • Um carimbo do tempo do documento então prova que a própria evidência existia e era válida naquele momento, e pode ser renovado antes que a proteção dele enfraqueça.
  • O resultado: o documento carrega a própria prova. A verificação não depende mais de um servidor ainda estar disponível.

O princípio é: “reúna a prova enquanto ainda pode e depois a sele.” Quando o NextPDF produz uma assinatura de longo prazo, ele coleta a cadeia de certificados e as respostas de revogação que provam que o certificado de assinatura estava válido no momento da assinatura. Ele grava esses dados no DSS como valores incorporados, não como links. Em seguida, adiciona um carimbo do tempo do documento sobre todo o conjunto. Os valores incorporados são o ponto central. Um link para um servidor de revogação é exatamente a dependência que a validação de longo prazo existe para eliminar.

As camadas de longo prazo são gravadas como revisões separadas do documento, anexadas sem alterar o intervalo de bytes da assinatura original. A primeira assinatura continua verificável. O material de longo prazo é adicionado ao redor dela, não dentro dela. Quando a proteção do próprio carimbo do tempo do documento envelhece, o nível de arquivamento permite sobrepor outro carimbo do tempo. O resultado é uma cadeia em que cada carimbo do tempo atesta tudo o que está abaixo dele.

  1. Sign The signature and its signed attributes are written (B-B).
  2. Capture evidence Certificate chain, OCSP responses, and CRLs proving the certificate was valid at signing time are gathered.
  3. Embed in the DSS The evidence is written into the document as embedded values, not links (B-LT).
  4. Seal with a document timestamp A timestamp proves the embedded evidence existed and was valid at that moment (B-LTA).
  5. Renew before it weakens Another timestamp is layered before the previous one’s protection ages, extending verifiability.
Como a validação de longo prazo mantém uma assinatura verificável ao longo do tempo: a assinatura é criada, as evidências são capturadas enquanto ainda podem ser obtidas, as evidências são seladas por um carimbo do tempo do documento e o selo é renovado antes que enfraqueça.

Evidence: Standard-backed A necessidade é declarada claramente em Spec: RFC 6960, §4.4.4 : o status de revogação pode sobreviver à janela de validade do certificado, e o mecanismo de corte de arquivamento dá aos validadores contexto histórico para decidir se uma assinatura era confiável no momento em que foi produzida, mesmo depois que o certificado usado na validação tenha expirado. Essa é a razão pela qual a validação de longo prazo existe. As respostas de revogação ficam disponíveis apenas por tempo limitado, por isso você deve capturá-las antes que esse tempo termine.

O mecanismo vem da ETSI. Spec: ETSI EN 319 142-2, §5.5 estabelece que o comportamento de longo prazo exige um Document Security Store que carregue os dados de validação como valores, seguido de um carimbo do tempo do documento. Spec: ISO 32000-2, §12.8.3.3 amarra tudo: PAdES é o CAdES CMS combinado com validação de longo prazo (§12.8.4) e o dicionário de carimbo do tempo do documento (§12.8.5). E Spec: ETSI EN 319 142-2, §6.3.2.2 é o motivo pelo qual o carimbo do tempo é aplicado cedo: ele deve ser aplicado imediatamente após a assinatura, para que o horário registrado fique o mais próximo possível do real.

O mecanismo do NextPDF implementa isso nos níveis B-LT e B-LTA: valores de revogação incorporados ao DSS, um carimbo do tempo do documento que os sela e o ciclo de arquivamento que renova o selo — tudo gravado como revisões anexadas que deixam intacto o intervalo de bytes da assinatura original.

O nível que você escolhe é a decisão de longo prazo. A API deixa esse requisito explícito antes que você se comprometa.

<?php
declare(strict_types=1);
use NextPDF\Security\Signature\SignatureLevel;
// B-LT embeds validation material; B-LTA adds the renewable seal.
$level = SignatureLevel::PAdES_B_LTA;
$level->requiresDss(); // true → certificates + revocation embedded
$level->requiresDocumentTimestamp(); // true → a document timestamp seals the DSS
// The high-level seam produces the level end to end: it embeds the DSS
// dictionary and appends the DocTimeStamp revision in one call.
$document
->setSignature($cert, SignatureLevel::PAdES_B_LTA, $tsaClient)
->save();
// The engine produces this only if the deployment can supply what it needs
// (a TSA, and revocation data reachable at signing time). It fails with an
// actionable error rather than embedding nothing and reporting success.

A junção de alto nível mostrada acima — setSignature($cert, SignatureLevel::PAdES_B_LTA, $tsaClient)->save() — agora está conectada de ponta a ponta; versões anteriores expunham o enum de nível, mas não a junção que o produz. O que ela grava é a estrutura: o dicionário DSS e a revisão DocTimeStamp descrita por Spec: ISO 32000-2, §12.8 . Essa estrutura não é testada quanto à conformidade de perfil, e a junção não faz nenhuma afirmação sobre conformidade com ETSI ou validade jurídica. Os níveis B-LT e B-LTA exigem tanto o Pro quanto o Enterprise; em qualquer outro tier, a junção falha de forma fechada em vez de produzir um resultado parcial. Um documento criptografado também falha de forma fechada para B-LT e B-LTA; o DSS e o carimbo do tempo do documento não são gravados sobre conteúdo criptografado, porque isso os gravaria de forma incorreta.

A escolha não pode ser adaptada depois a baixo custo. As evidências de revogação precisam ser capturadas no momento da assinatura, enquanto as respostas ainda existem. Decidir “vamos adicionar a validação de longo prazo depois” geralmente significa decidir “não teremos as evidências quando precisarmos delas.”

O equívoco é achar que “a validação de longo prazo torna uma assinatura válida para sempre.” Ela não torna nada válido. Ela preserva a capacidade de verificar uma validade que foi estabelecida no momento da assinatura. Se o certificado já estava revogado quando o documento foi assinado, incorporar esse fato não salva a assinatura. Em vez disso, documenta a falha permanentemente. A validação de longo prazo é um mecanismo de preservação de provas, não de criação de provas. Um segundo equívoco é acreditar que o B-LTA é “configurar e esquecer.” O carimbo do tempo de arquivamento protege com algoritmos que também envelhecem. Sem renovação, um arquivo B-LTA acaba herdando a mesma fragilidade da qual deveria escapar.

O NextPDF reúne e incorpora as evidências e grava os carimbos do tempo. Ele não é responsável pela veracidade das evidências nem pelo cronograma de renovação delas. As respostas de revogação só valem tanto quanto a autoridade que as emitiu e o momento em que foram obtidas. A conectividade com essa autoridade no momento da assinatura é responsabilidade da implantação. O mecanismo não pode inventar uma resposta de revogação que não conseguiu obter. A renovação de arquivamento é um processo operacional. O mecanismo pode adicionar outro carimbo do tempo, mas não pode decidir quando a política de retenção exige isso. Se os dados incorporados serão posteriormente julgados suficientes é uma questão de validador e de política, tratada em Validar uma assinatura corretamente. Esta página não afirma admissibilidade jurídica, que depende da jurisdição, do signatário e do certificado.

Disponibilidade da validação de longo prazo por tier:

Long-term validation (DSS embedding and the archival timestamp loop) — edition availability
Edition Availability
Core Not in this edition
Pro

PAdES B-T — um carimbo do tempo confiável sobre o valor da assinatura — está disponível, mas o material de validação incorporado (DSS) não faz parte do B-T.

Enterprise

PAdES B-LT e B-LTA: valores de certificado e de revogação incorporados no DSS, o carimbo do tempo do documento que os sela e o ciclo de arquivamento renovável.

  • Validação de longo prazo (LTV) — incorporação das evidências necessárias para verificar uma assinatura, de modo que a verificação não dependa de serviços externos mais tarde.
  • Document Security Store (DSS) — a estrutura PDF que armazena certificados e dados de revogação incorporados para validação de longo prazo.
  • Resposta OCSP — uma declaração assinada do status de revogação de um certificado em um determinado momento (Online Certificate Status Protocol, RFC 6960).
  • CRL — Certificate Revocation List; uma lista assinada de certificados revogados.
  • Carimbo do tempo do documento — um carimbo do tempo RFC 3161 aplicado ao documento inteiro, provando que as evidências incorporadas existiam e eram válidas naquele momento.
  • Ciclo de arquivamento — adicionar repetidamente um novo carimbo do tempo do documento antes que a proteção do anterior enfraqueça, estendendo a verificabilidade.