Assinatura: PAdES B-LT / B-LTA, DSS e carimbos de tempo de documento
Visão geral
Seção intitulada “Visão geral”O NextPDF Enterprise acrescenta, sobre a assinatura Cryptographic Message Syntax (CMS) do Core, um produtor de longo prazo: um Document Security Store (DSS), informações relacionadas à validação por assinatura (VRI) e carimbos de tempo de documento. Essas estruturas elevam uma assinatura de referência PDF Advanced Electronic Signatures (PAdES) de B-B para B-LT e, em seguida, para B-LTA. Esta página descreve esse comportamento: o que o produtor grava, o que ele não decide e onde começa o limite do Pro.
Instalação
Seção intitulada “Instalação”composer require nextpdf/enterprisenextpdf/enterprise depende de nextpdf/core e nextpdf/pro. Resolva esse pacote com as credenciais de licença do NextPDF no Private Packagist.
Visão conceitual
Seção intitulada “Visão conceitual”Uma assinatura de referência PAdES tem quatro níveis. Cada nível acrescenta material ao anterior. B-B é uma assinatura CMS com atributos assinados. B-T acrescenta um carimbo de tempo RFC 3161 confiável sobre o valor da assinatura. B-LT acrescenta um DSS que contém os certificados, as respostas do Online Certificate Status Protocol (OCSP) e as listas de revogação de certificados (CRLs) de que um verificador precisa depois que o certificado de assinatura expira. B-LTA acrescenta um carimbo de tempo de documento sobre todo o estado do documento, incluindo o DSS, para que o material de validação permaneça ancorado no tempo.
O Core constrói o SignedData CMS e o armazena codificado em DER na entrada Contents do dicionário de assinatura — ISO 32000-2 §12.8.1. A validação de longo prazo usa dois tipos de dicionário: um document security store e um dicionário de carimbo de tempo de documento — ISO 32000-2 §12.8. O produtor Enterprise grava o DSS que contém o material de certificados, OCSP e CRL — ISO 32000-2 §12.8.4.3 — e, para B-LTA, o dicionário de carimbo de tempo de documento — ISO 32000-2 §12.8.5. A ETSI EN 319 142-2 descreve a mesma estrutura de longo prazo: entradas DSS mais carimbos de tempo de documento para assinaturas de longo prazo — §5.5 — com suporte do manipulador de assinatura — §6.3.3.3.
O produtor coleta material de revogação para cada certificado na cadeia. Ele consulta primeiro um respondedor OCSP; uma resposta OCSP indica good, revoked ou unknown — RFC 6960 §2.2 — e os campos thisUpdate e nextUpdate delimitam a atualidade do status — RFC 6960 §4.2. Se o OCSP estiver indisponível, ele recorre a uma CRL. O produtor percorre a cadeia do signatário em direção a uma âncora de confiança seguindo as entradas de validação de caminho — RFC 5280 §6.1.
O carimbo de tempo de documento B-LTA é uma troca RFC 3161 com uma Time-Stamping Authority (TSA). A requisição retorna um valor de Time Stamp Information (TSTInfo) — RFC 3161 §2.4.1 — cujo genTime é o instante Coordinated Universal Time (UTC) em que o token foi criado — RFC 3161 §2.4.2. O token é incorporado em um dicionário /DocTimeStamp com /SubFilter /ETSI.RFC3161 que cobre o arquivo inteiro.
O verificador decide se uma assinatura produzida é verificada com sucesso, usando suas âncoras de confiança configuradas e a política de revogação. O produtor incorpora material; ele não afirma um resultado confiável. Esse limite é reafirmado abaixo, nos pontos em que importa.
A ordem é determinante: o DSS deve ser gravado antes do carimbo de tempo de documento B-LTA, porque o carimbo de tempo deve cobrir o estado do documento que já contém o material de validação. O fluxo a seguir mostra essa sequência do produtor.
Superfície da API
Seção intitulada “Superfície da API”Você usa o produtor de longo prazo do Enterprise por meio do contrato do Core. O código de produção depende do contrato, não do tipo concreto da implementação Enterprise.
| Tipo | Categoria | Papel | Estabilidade | Desde |
|---|---|---|---|---|
SignerInterface | interface (NextPDF\Contracts) | Contrato de assinatura do Core para quem chama | stable | 1.0.0 |
SignatureLevel | enum (NextPDF\Security\Signature) | Seletor de nível PAdES: B-B, B-T, B-LT, B-LTA | stable | 1.0.0 |
LtvManagerInterface | interface (NextPDF\Contracts) | Contrato do produtor de validação de longo prazo resolvido em tempo de execução | stable | 1.0.0 |
TsaClientInterface | interface | Cliente TSA RFC 3161 que o produtor aciona para carimbos de tempo de documento | stable | 1.0.0 |
SignatureLevel::requiresDss() retorna verdadeiro para B-LT e B-LTA; SignatureLevel::requiresDocumentTimestamp() retorna verdadeiro apenas para B-LTA. O SignatureLevel::isAvailableInEnvironment() do Core retorna falso para B-LT e B-LTA quando o produtor de longo prazo do Enterprise não está instalado; o orquestrador do Core então falha de forma segura (fail-closed). As classes concretas do produtor Enterprise são internas e não fazem parte da API pública; dependa de LtvManagerInterface e do enum.
Exemplo de código — Início rápido
Seção intitulada “Exemplo de código — Início rápido”<?php
declare(strict_types=1);
require_once __DIR__ . '/../../vendor/autoload.php';
use NextPDF\Security\Signature\SignatureLevel;
/** * Select the PAdES level for a long-term signature. * * B-LT embeds a DSS. B-LTA also adds a document timestamp. * Both require the nextpdf/enterprise long-term producer at runtime. * * @return SignatureLevel The requested PAdES baseline level. */function longTermLevel(): SignatureLevel{ return SignatureLevel::PAdES_B_LTA;}A configuração de assinatura carrega o nível. O orquestrador do Core resolve o produtor de longo prazo por meio de LtvManagerInterface em tempo de execução, de modo que o código da aplicação não precise referenciar o tipo do Enterprise.
Exemplo de código — Produção
Seção intitulada “Exemplo de código — Produção”<?php
declare(strict_types=1);
require_once __DIR__ . '/../../vendor/autoload.php';
use NextPDF\Contracts\LtvManagerInterface;use NextPDF\Contracts\SignerInterface;use NextPDF\Exception\NextPdfException;use Psr\Log\LoggerInterface;
final readonly class LongTermSigner{ public function __construct( private SignerInterface $signer, private LtvManagerInterface $ltv, private LoggerInterface $logger, ) {}
/** * Sign, then embed the DSS and the B-LTA document timestamp. * * The order matters: the DSS is written first, then the document * timestamp is taken over the document state that already includes it. * * @param string $byteRange The PDF byte range to sign. * * @throws NextPdfException When revocation material is missing under the * fail-closed enforcement default, or when no TSA * is configured for B-LTA. */ public function sign(string $byteRange): string { try { $contents = $this->signer->sign($byteRange)->toHex(); // The orchestrator drives DSS collection and the document // timestamp through the resolved LtvManagerInterface; revocation // freshness and TSA reachability are operational inputs. return $contents; } catch (NextPdfException $e) { $this->logger->error('long-term signing failed', ['reason' => $e->getMessage()]); throw $e; } }}O DSS deve ser gravado antes do carimbo de tempo de documento. O carimbo de tempo B-LTA cobre o arquivo inteiro, incluindo o DSS, ancorando no tempo o próprio material de validação.
Casos extremos e armadilhas
Seção intitulada “Casos extremos e armadilhas”- A ausência de material de revogação gera falha segura por padrão. Quando nenhum modo de imposição está definido, o produtor trata a ausência de uma resposta OCSP e a ausência de uma CRL para qualquer certificado que não seja raiz como um erro, não um aviso. Isso impede que um documento que declara um nível de longo prazo seja gravado sem nenhum material de revogação no DSS. O fluxo permissivo é opcional e apenas emite avisos.
- B-LTA exige uma TSA. Um carimbo de tempo de documento é uma ida e volta RFC 3161. Sem um cliente TSA configurado, a etapa B-LTA lança um erro em vez de produzir silenciosamente B-LT.
- A ordem é determinante. Adicione o carimbo de tempo de documento somente depois que o DSS for gravado. Um carimbo de tempo obtido antes do DSS não cobre o material de validação.
- Execuções isoladas (air-gapped). Sob uma política de rede estritamente offline, o produtor não faz busca de OCSP/CRL nem requisição de TSA; ele usa apenas o material já incorporado no DSS. B-LTA, que requer um token TSA recente, não pode ser alcançado em modo estritamente offline.
- VRI é opcional. A VRI por assinatura não é gravada por padrão. Alguns validadores exibem o status de longo prazo com mais clareza quando a VRI está presente; ative-a quando um verificador de destino precisar dela.
Desempenho
Seção intitulada “Desempenho”O custo de montagem do DSS escala com o comprimento da cadeia e o número de respostas de revogação obtidas. Cada busca de OCSP ou CRL é uma ida e volta de rede; material pré-coletado ou em cache elimina essas idas e voltas. Uma execução B-LTA acrescenta uma ida e volta de TSA para o carimbo de tempo de documento. O orçamento de 1500 ms de tempo de parede cobre uma única assinatura de longo prazo com conexões OCSP/CRL e TSA aquecidas; respondedores frios ou lentos passam a dominar o tempo de parede. O perfil de reprodutibilidade é structural: os carimbos de tempo incorporam os instantes de assinatura e de carimbo, então duas execuções diferem nesses bytes, embora a estrutura do documento seja idêntica.
Notas de segurança
Seção intitulada “Notas de segurança”- A confiança é decisão do verificador. O produtor incorpora certificados, OCSP e CRLs. A validação da assinatura depende do verificador, de suas âncoras de confiança e de sua política de atualidade da revogação. O NextPDF não fornece nenhuma lista de confiança integrada.
- A atualidade da revogação é limitada no tempo. As janelas de validade de OCSP
thisUpdate/nextUpdatee CRL delimitam por quanto tempo o material incorporado permanece útil. O loop de arquivamento recarimba antes que o certificado do carimbo de tempo expire; você é responsável por operá-lo no cronograma. - Padrão fail-closed. O padrão de imposição estrita de revogação impede que uma declaração de longo prazo seja feita sem o material que a sustenta.
- Consulte a seção do modelo de ameaças do Enterprise e Arquivo: DSS, VRI, integridade do LTV.
Residência de dados e mitigações de PII
Seção intitulada “Residência de dados e mitigações de PII”A busca de OCSP e CRL contata os respondedores nomeados em cada certificado; esses endpoints e a TSA veem metadados da requisição. Em uma implantação com restrição de residência de dados, pré-colete o material de revogação e execute sob a política estritamente offline, para que nenhum respondedor ou TSA seja contatado no momento da assinatura. Os certificados carregam a identidade do titular. O produtor incorpora os certificados necessários para a validação e não adiciona identidade além da cadeia; ele não remove campos do titular de um certificado que você fornece.
Telemetria segura e limpeza de logs
Seção intitulada “Telemetria segura e limpeza de logs”Os diagnósticos do produtor relatam o nível, a posição na cadeia e a condição de material ausente. Eles não registram chaves privadas nem corpos completos de certificados. Ao conectar um logger PSR-3, mantenha os logs de diagnóstico dos fluxos de assinatura em um nível de verbosidade fora de produção e limpe as URLs dos respondedores se elas revelarem infraestrutura interna. Trate os bytes OCSP/CRL incorporados como conteúdo do documento, não como conteúdo de log.
Comportamento em modo FIPS
Seção intitulada “Comportamento em modo FIPS”O perfil de política criptográfica Federal Information Processing Standards (FIPS) 140-3 é um recurso do Enterprise documentado junto ao módulo de segurança. O produtor de longo prazo não acrescenta nenhuma primitiva criptográfica própria além do resumo SHA-256 usado para o carimbo de tempo de documento e a troca RFC 3161; a primitiva de assinatura é a do signatário do Core. Quando o perfil FIPS está ativo, as mesmas estruturas de DSS e carimbo de tempo de documento são produzidas; a restrição se aplica aos algoritmos subjacentes de assinatura e resumo, não ao layout do DSS.
Modelo de ameaças
Seção intitulada “Modelo de ameaças”| Ativo | Adversário | Risco | Mitigação |
|---|---|---|---|
| Material de revogação do DSS | Aceitação de material desatualizado | Um verificador confia em dados de revogação expirados | Os campos de atualidade de OCSP/CRL delimitam a validade; o loop de arquivamento recarimba antes da expiração |
| Carimbo de tempo de documento B-LTA | Comprometimento da TSA ou TSA inacessível | Nenhuma âncora de tempo confiável | TSA escolhida pelo chamador; B-LTA falha de forma segura quando nenhuma TSA está configurada |
| Declaração de longo prazo | Material ausente silenciosamente | Um PDF “de longo prazo” sem dados de revogação | O padrão de imposição fail-closed lança um erro em vez de um aviso |
| Verificação de assinatura | Confiança do verificador mal configurada | Validade aparente que o verificador não deveria afirmar | O produtor declara que apenas incorpora material; a decisão de confiança é do verificador |
Conformidade
Seção intitulada “Conformidade”| Declaração | Norma | Cláusula | reference_id |
|---|---|---|---|
O valor da assinatura (ou token de carimbo de tempo) é armazenado codificado em DER em /Contents. | ISO 32000-2 | §12.8.1 | |
| A validação de longo prazo usa um DSS e um dicionário de carimbo de tempo de documento. | ISO 32000-2 | §12.8 | |
| O DSS contém certificados, respostas OCSP e CRLs. | ISO 32000-2 | §12.8.4.3 | |
| O carimbo de tempo de documento usa um dicionário de carimbo de tempo de documento. | ISO 32000-2 | §12.8.5 | |
| As entradas DSS e os carimbos de tempo de documento apoiam assinaturas de longo prazo. | ETSI EN 319 142-2 | §5.5 | |
| O manipulador de assinatura apoia entradas DSS e carimbos de tempo de documento. | ETSI EN 319 142-2 | §6.3.3.3 | |
| Um token de carimbo de tempo carrega um genTime em UTC que é o instante em que foi criado. | RFC 3161 | §2.4.2 | |
| O OCSP informa good, revoked ou unknown, delimitado por thisUpdate/nextUpdate. | RFC 6960 | §2.2, §4.2 | , |
Todas as cláusulas são parafraseadas. O NextPDF não reproduz texto normativo; consulte as normas publicadas para a redação autoritativa. O NextPDF não faz nenhuma declaração de certificação PAdES. As estruturas descritas aqui estão alinhadas com os níveis B-LT e B-LTA conforme definidos na ETSI EN 319 142; nenhum resultado de teste de conformidade ou atestado de terceiros é declarado. A parte sobre níveis de referência da ETSI EN 319 142-1 está fora do conjunto de evidências citado, então esta página declara a estrutura produzida e o limite Pro/Enterprise, não um nível de conformidade certificado. A evidência ETSI citada é a EN 319 142-2; as âncoras ISO e RFC sustentam as declarações de longo prazo e de carimbo de tempo, como fazem na referência de assinatura do Core.
Restrição de edição
Seção intitulada “Restrição de edição”O NextPDF Core produz os níveis de referência PAdES B-B e B-T: o Core fornece o signatário CMS por software mais o caminho de carimbo de tempo RFC 3161, então uma assinatura B-T (com carimbo de tempo) é um recurso do Core e não requer o Enterprise. O NextPDF Pro também produz B-B e B-T: o Pro compõe a pilha RFC 3161 do Core para adicionar o atributo não assinado signature-time-stamp sobre o valor da assinatura (PadesBtTimestamper, verificado por fixture). Os níveis B-LT e B-LTA — o produtor de DSS, VRI e carimbo de tempo de documento — são um recurso do Enterprise e não são produzidos pelo Core nem pelo Pro. Isso corresponde à tabela de níveis publicada na página de segurança do Pro: B-B e B-T são produzidos pelo Core e pelo Pro, e B-LT e B-LTA apenas pelo Enterprise. O produtor B-T é estrutural: ele compõe o signature-time-stamp RFC 3161 de acordo com a evidência citada RFC 3161 / RFC 5652 / ETSI EN 319 122-1; não é uma declaração de conformidade ETSI EN 319 142-1 certificada nem qualificada eIDAS. Em uma implantação somente Pro, solicitar B-LT ou B-LTA falha de forma segura com uma mensagem que nomeia o componente Enterprise ausente, porque SignatureLevel::isAvailableInEnvironment() retorna falso quando o produtor de longo prazo do Enterprise está ausente.
| Nível PAdES | Acrescenta | Edição do produtor |
|---|---|---|
| B-B | Assinatura CMS com atributos assinados | Core, Pro, Enterprise |
| B-T | RFC 3161 signature-time-stamp sobre o valor da assinatura (estrutural; não qualificado eIDAS) | Core, Pro, Enterprise |
| B-LT | Document Security Store com material de validação | Enterprise (nextpdf/enterprise) apenas |
| B-LTA | Carimbos de tempo de documento para validade de arquivamento | Enterprise (nextpdf/enterprise) apenas |
Esta é a matriz canônica nível→edição: B-B é a referência produzida por todas as edições; B-T (com carimbo de tempo) também é produzido pelo Core e pelo Pro (o Pro compõe a pilha RFC 3161 do Core); B-LT e B-LTA são exclusivos do Enterprise. O produtor B-T é estrutural; não é uma declaração de conformidade ETSI EN 319 142-1 certificada nem qualificada eIDAS.
Sinalizador de recurso de licença
Seção intitulada “Sinalizador de recurso de licença”O produtor de longo prazo faz parte da edição Enterprise (license_feature_flag: enterprise). Ele é resolvido em tempo de execução por meio do contrato do Core; a API pública não muda quando você faz upgrade do Pro para o Enterprise.
Contrato de comportamento
Seção intitulada “Contrato de comportamento”- Tanto o Core quanto o Pro produzem B-B e B-T (B-T adiciona o signature-time-stamp RFC 3161; o Pro compõe a pilha RFC 3161 do Core). B-LT e B-LTA são um limite do Enterprise; solicitá-los sem
nextpdf/enterprisefalha de forma segura com um erro que nomeia o componente ausente. - O produtor grava um DSS (B-LT) e um carimbo de tempo de documento sobre o DSS (B-LTA). Ele incorpora material de validação; não afirma um resultado de verificação confiável.
- O padrão fail-closed de imposição de revogação lança um erro quando o material de revogação está ausente para um certificado que não seja raiz, a menos que o chamador opte pelo fluxo permissivo.
- B-LTA requer uma TSA configurada; sem nenhuma, a etapa B-LTA lança um erro em vez de rebaixar para B-LT.
Status da varredura de NDA
Seção intitulada “Status da varredura de NDA”Esta página pública descreve apenas o comportamento do produtor observável externamente. Ela não contém caminhos de namespace internos, nem nomes internos de classe ou trait, nem nomes de arquivo de runbook, nem prefixos internos de tíquete. Os tipos concretos do produtor de longo prazo do Enterprise são referenciados somente por meio do contrato público do Core (LtvManagerInterface, SignatureLevel). Os detalhes internos de montagem do DSS e do loop de arquivamento estão na referência aprofundada restrita, sob um acordo de confidencialidade (NDA).
Alternativa do Core
Seção intitulada “Alternativa do Core”Em uma implantação somente Core, o signatário por software produz PAdES B-B e B-T com uma chave local ou uma chave fornecida por meio do contrato de estratégia de assinatura do Core. O Core fornece o caminho de carimbo de tempo RFC 3161, então B-T fica disponível sem nenhum pacote premium. O Core não tem produtor de DSS, VRI ou carimbo de tempo de documento; solicitar B-LT ou B-LTA falha de forma segura com um erro que nomeia o componente ausente. Consulte Segurança / Assinatura (Core).
Alternativa do Pro
Seção intitulada “Alternativa do Pro”Em uma implantação somente Pro, o caminho de assinatura compatível é a referência B-B do Pro e o nível B-T do Pro (o Pro compõe a pilha RFC 3161 do Core para adicionar o atributo não assinado signature-time-stamp), mais suas estratégias de assinatura remotas e de key management service (KMS) na nuvem. O Pro não produz nenhum DSS, VRI ou carimbo de tempo de documento. Uma configuração que solicita B-LT ou B-LTA em uma implantação somente Pro falha de forma segura com uma mensagem que nomeia o componente Enterprise ausente. Consulte Segurança do Pro para a superfície de assinatura do Pro.
Nota sobre o limite do Enterprise
Seção intitulada “Nota sobre o limite do Enterprise”O produtor de DSS, VRI e carimbo de tempo de documento é descrito apenas no nível de comportamento. A lógica interna de ordenação da montagem do DSS, os detalhes internos de chaveamento da VRI por assinatura e os detalhes internos de agendamento do loop de arquivamento estão fora do escopo da superfície pública e não são reproduzidos nesta página.
Limite de implantação
Seção intitulada “Limite de implantação”O NextPDF Enterprise incorpora material de validação; ele se integra a respondedores OCSP/CRL fornecidos pelo chamador e a uma TSA RFC 3161. O próprio NextPDF Enterprise não opera, hospeda nem garante a disponibilidade desses respondedores ou da TSA. A validade de longo prazo depende dos respondedores, da TSA, do cronograma do loop de arquivamento e do operador — não do NextPDF Enterprise sozinho. O operador é responsável pela seleção e pela acessibilidade da TSA, pelo acesso ao respondedor de revogação ou ao material pré-coletado, pela política de rede e por executar o loop de arquivamento antes que cada certificado de carimbo de tempo expire.
Limite de conformidade legal
Seção intitulada “Limite de conformidade legal”Esta página está marcada como export_control_class: legal-review-required. Ela trata de assinatura criptográfica e validação de longo prazo. A aprovação jurídica é obrigatória antes que o sinalizador publish seja definido. O alinhamento com as estruturas B-LT e B-LTA definidas na ETSI EN 319 142 é uma afirmação estrutural, não uma opinião jurídica nem uma certificação. O NextPDF não faz nenhuma declaração de certificação PAdES. Consulte sua assessoria de conformidade e jurídica para conhecer suas obrigações regulatórias.
Consulte também
Seção intitulada “Consulte também”- Segurança / Assinatura (Core) — CMS, RFC 3161, validação de caminho RFC 5280, OCSP/CRL.
- Segurança do Pro — referência B-B e o limite do Enterprise.
- Arquivo: DSS, VRI, integridade do LTV — arquivamento de longo prazo e integridade do LTV.
- Verificação de assinatura — o lado da verificação: verificação criptográfica de CMS / carimbo de tempo, TSA-at-genTime e validação da cadeia de arquivamento.
- Mapeamento de referência PAdES — B-B, B-T, B-LT, B-LTA entre as edições.
- PAdES · DSS · VRI · LTV — termos do glossário.