Tempo confiável: como um carimbo de tempo prova quando
Spec: RFC 3161RFC 3161Spec: RFC 5816RFC 5816Spec: ISO 32000-2, §12.8.5ISO 32000-2 §12.8.5
Visão geral
Seção intitulada “Visão geral”Um carimbo de tempo responde a uma pergunta única e surpreendentemente escorregadia: estes dados já existiam? Não quem os fez, não se estão corretos — apenas que, em algum instante nomeado, exatamente estes bytes já estavam no mundo. Esta página constrói a ideia desde o zero: o que uma Autoridade de Carimbo de Tempo faz, o que um token realmente contém e por que um número em um relógio se torna evidência.
É o companheiro a partir dos primeiros princípios da página Carimbos de tempo e tempo confiável, focada no motor. Leia esta primeiro se “tempo confiável” soa como jargão.
Por que isso importa
Seção intitulada “Por que isso importa”O relógio do seu computador é uma confissão, não uma prova. Você pode defini-lo com qualquer valor que quiser, e qualquer outra pessoa também pode. No momento em que uma data importa para uma segunda parte — um contrato que tinha de ser assinado antes de um prazo, um registro que tinha de existir antes de uma disputa — o seu próprio relógio não vale nada como evidência, porque você o controla. Todo o problema do tempo confiável é encontrar um relógio que você não consegue mover.
Essa não é uma preocupação de nicho. Todo PDF assinado de vida longa se apoia nela. Um certificado de assinatura acaba expirando; anos depois, um verificador precisa saber se a assinatura foi feita enquanto o certificado ainda era válido. Sem um registro independente do “quando”, essa pergunta não tem resposta honesta. O tempo confiável é a fundação silenciosa sobre a qual repousa todo o edifício das assinaturas duráveis.
A versão curta
Seção intitulada “A versão curta”- Um carimbo de tempo prova que um item de dados existia antes de um instante declarado. Isso é um limite superior de idade, nada mais.
- Ele é produzido por um terceiro, a Autoridade de Carimbo de Tempo (TSA), em cujo relógio você confia precisamente porque ele não é seu.
- A TSA nunca vê os seus dados. Ela assina um hash deles, vinculado a um valor de tempo, e retorna um pequeno token assinado.
- O token prova três coisas em conjunto: os dados são os dados (o hash corresponde), o tempo é o tempo da TSA (a assinatura dela) e a resposta corresponde à requisição que você enviou (o nonce que ela ecoa de volta, protegendo contra uma resposta antiga repetida).
- Ele não prova quem escreveu os dados, que os dados são verdadeiros, nem o momento exato de criação. Apenas: não mais tarde do que este.
- A confiança flui para a TSA. Uma TSA publicamente confiável é boa o suficiente para a maioria dos registros; uma TSA qualificada pelo eIDAS carrega uma presunção jurídica na UE.
Como o NextPDF aborda isso
Seção intitulada “Como o NextPDF aborda isso”Comece com o truque no centro de tudo. Você quer que um estranho ateste quando os seus dados existiram, mas não pode mostrar os dados a ele — eles podem ser confidenciais e, de qualquer forma, podem ser enormes. Então você não os mostra. Você computa um hash: uma impressão digital curta e de comprimento fixo que muda por completo se até mesmo um byte do original mudar, e a partir da qual o original não pode ser recuperado. Você envia a impressão digital, não o arquivo.
A TSA pega essa impressão digital, anexa seu próprio horário atual, assina o par com sua chave privada e devolve um token de carimbo de tempo (Spec: RFC 3161, §2.1RFC 3161 §2.1). O token é o vínculo tornado permanente: esta impressão digital, neste horário, atestada por mim. Como o token é assinado, ninguém — nem mesmo a TSA depois — pode alterar o horário sem quebrar a assinatura. Como ele carrega a sua impressão digital, ele é inútil para qualquer outro arquivo. E como a requisição inclui um nonce aleatório e novo que a TSA ecoa de volta inalterado, você pode dizer que a resposta corresponde a esta requisição específica e não é uma repetição de uma resposta mais antiga — o nonce atesta o frescor, não quem perguntou (Spec: RFC 3161, §2.4.2RFC 3161 §2.4.2).
Pense em um selo de cera pressionado sobre uma carta dobrada. O selo não lê a carta; ele apenas prova que a carta estava inteira e presente quando o selo foi aplicado. Um carimbo de tempo é um selo aplicado por um relógio que você não possui, sobre uma impressão digital dos seus dados.
- Tirar a impressão digital dos dadosCompute um hash unidirecional do arquivo ou do valor da assinatura. Os dados em si nunca saem das suas mãos.
- Pedir à autoridadeEnvie o hash e um nonce aleatório novo à Autoridade de Carimbo de Tempo.
- A TSA sela um horárioEla assina o hash vinculado ao seu próprio relógio e ecoa o seu nonce, produzindo um pequeno token assinado.
- Armazenar o tokenPara um PDF, o token é colocado dentro do arquivo para que a prova viaje com o documento.
- Verificar depoisQualquer um que confie na TSA pode conferir o token: sua assinatura contra o certificado da TSA, o hash correspondente, o nonce ecoado e o horário — e então conclui um limite superior de idade.
Em um PDF, esse mesmo mecanismo veste dois chapéus. Um carimbo de tempo de assinatura sela quando uma assinatura foi aplicada, carimbando o valor da assinatura. Um carimbo de tempo de documento sela quando o arquivo inteiro existiu, fazendo o hash do PDF inteiro (excluindo o placeholder que o token vai ocupar) e armazenando o token retornado de volta nesse placeholder (Spec: ISO 32000-2, §12.8.5ISO 32000-2 §12.8.5). O segundo tipo é o que uma assinatura de arquivamento de vida longa renova ao longo dos anos para manter sua confiança fresca.
Um detalhe moderno que vale conhecer: um formato de carimbo de tempo mais antigo fixava-se a um único algoritmo de hash para nomear o próprio certificado da TSA. O perfil atualizado permite que um token nomeie seu certificado com um digest atual em vez disso (Spec: RFC 5816, §2.1RFC 5816 §2.1), de modo que o tempo confiável não herde silenciosamente a criptografia de ontem.
Exemplo prático
Seção intitulada “Exemplo prático”Você não monta um token à mão, e não deveria querer fazê-lo. O que vale a pena entender é o ponto de integração da confiança: em qual relógio você está escolhendo acreditar. No NextPDF, pedir um nível de assinatura que precisa de tempo confiável torna essa escolha explícita em vez de implícita.
<?php
declare(strict_types=1);
use NextPDF\Security\Signature\SignatureLevel;
// A baseline signature trusts only the signer's own clock.$baseline = SignatureLevel::PAdES_B_B;$baseline->requiresTimestamp(); // false → no third party vouches for "when"
// Stepping up to B-T means a Time-Stamp Authority must be supplied:// from here on, "when" is attested by a clock you do not control.$timestamped = SignatureLevel::PAdES_B_T;$timestamped->requiresTimestamp(); // true → a TSA is now part of your trust model
// The decision is now visible at the call site, not buried in a default.// Choosing the TSA is choosing whose time becomes your evidence.O ponto do exemplo não é a API. É que “eu tenho tempo confiável?” é um fato de sim ou não sobre o seu documento, decidido por se uma TSA esteve no circuito — e o motor se recusa a deixar esse fato ser ambíguo.
Equívoco comum
Seção intitulada “Equívoco comum”A armadilha é ler um carimbo de tempo como “isso foi criado às 14:32.” Ele não diz nada disso. Ele diz “isso existia no máximo até as 14:32.” A diferença é o ponto inteiro. Um carimbo de tempo é um limite superior, nunca um limite inferior e nunca um momento exato. Os seus dados poderiam ter existido por anos antes de você finalmente carimbar o tempo deles; o token é silencioso quanto a isso. Ele traça uma única linha e diz: não depois daqui.
Um segundo equívoco, mais caro: que um carimbo de tempo prova que o seu documento é genuíno ou correto. Ele não faz nenhum dos dois. Ele é indiferente ao significado. Uma mentira perfeitamente carimbada ainda é uma mentira — agora comprovadamente antiga. A autenticidade vem da assinatura que diz quem; a verdade vem do mundo. O carimbo de tempo sempre fala apenas sobre quando.
Limites e fronteiras
Seção intitulada “Limites e fronteiras”O alcance de um carimbo de tempo para exatamente onde o seu modelo de confiança para. Ele prova um limite superior de idade, e apenas isso, e apenas se você confiar na autoridade que o selou.
Há dois níveis de autoridade que vale distinguir. Uma TSA publicamente confiável encadeia até um certificado que o seu software já aceita; seus tokens são amplamente verificáveis e adequados para a maioria dos registros. Uma TSA qualificada pelo eIDAS é um provedor supervisionado em uma lista confiável da UE, e um carimbo de tempo eletrônico qualificado carrega uma presunção jurídica da exatidão de sua data e da integridade dos dados — uma presunção que um carimbo de tempo comum não tem (Spec: eIDAS, Art. 41eIDAS Art. 41). Escolher entre eles é uma pergunta sobre o peso probatório de que você precisa, não sobre como os bytes funcionam; a criptografia é a mesma.
Um carimbo de tempo também herda a vida útil de suas próprias âncoras de confiança. O certificado da TSA pode expirar ou ser revogado, e o algoritmo de hash que ela usou pode envelhecer. É precisamente por isso que documentos de vida longa não carimbam o tempo uma vez e vão embora — eles renovam, sobrepondo um novo carimbo de tempo de documento sobre a evidência antiga antes que a evidência antiga enfraqueça. Esse laço de renovação é um assunto próprio; veja Validação de longo prazo.
| Edition | Availability |
|---|---|
| Core | Suporta PAdES B-B e B-T. B-B é a assinatura baseline sem carimbo de tempo; B-T solicita e incorpora um carimbo de tempo de assinatura RFC 3161 verificado contra uma TSA fornecida pela implantação, cujo relógio você escolhe. |
| Pro | Adiciona os dados de validação de longo prazo incorporados (certificados, OCSP, CRLs) de que B-LT precisa para manter uma assinatura verificável após seus certificados expirarem. |
| Enterprise | Adiciona o laço de renovação B-LTA, selando os dados de validação sob um novo carimbo de tempo de documento e recarimbando-os antes que a proteção enfraqueça. |
Documentos relacionados
Seção intitulada “Documentos relacionados”- Carimbos de tempo e tempo confiável — o mesmo mecanismo no nível do motor e do PAdES, com as regras de verificação detalhadas.
- Validação de longo prazo — como renovar carimbos de tempo de documento mantém uma assinatura verificável por anos.
- Como uma assinatura prova quem assinou — a metade do “quem” da história que esta página deixa de lado.
- Assinaturas qualificadas, explicadas — o que “qualificada” significa, e por que uma TSA qualificada carrega peso jurídico.
Glossário
Seção intitulada “Glossário”- Autoridade de Carimbo de Tempo (TSA) — um serviço independente que emite tokens de carimbo de tempo assinados. Você confia no relógio dela precisamente porque ele não é seu.
- Token de carimbo de tempo — o pequeno objeto assinado que uma TSA retorna, vinculando um hash dos seus dados a um valor de tempo (Spec: RFC 3161, §2.1RFC 3161 §2.1).
- Hash (impressão de mensagem) — uma impressão digital curta e unidirecional dos dados. A TSA assina isto, nunca os dados em si, então o seu conteúdo permanece privado.
- Nonce — um número aleatório novo enviado com a requisição e ecoado inalterado na resposta, mostrando que o token corresponde a aquela requisição específica e não é uma resposta antiga repetida (ele atesta o frescor, não a identidade de quem requisitou).
- Limite superior — o que um carimbo de tempo estabelece: os dados existiam no máximo até o instante declarado. Nunca um momento exato de criação.
- Carimbo de tempo qualificado pelo eIDAS — um carimbo de tempo de um provedor supervisionado da UE que carrega uma presunção jurídica da exatidão da data e da integridade dos dados.
- Carimbo de tempo de documento — um carimbo de tempo sobre um arquivo PDF inteiro, usado para ancorar e renovar a evidência de validação de longo prazo (Spec: ISO 32000-2, §12.8.5ISO 32000-2 §12.8.5).