Mapeamento de baseline PAdES
Visão geral
Seção intitulada “Visão geral”PDF Advanced Electronic Signatures (PAdES) é a família de perfis padronizada pela ETSI EN 319 142. Ela define quatro níveis baseline de conformidade — B-B, B-T, B-LT e B-LTA — nos quais cada nível superior acrescenta material ao nível anterior. Esta página mapeia esses níveis para aquilo que o NextPDF produz e separa a superfície do Core das edições Pro e Enterprise. O mapeamento é comportamental: descreve o que o motor emite, não suas classes internas.
Em resumo: o NextPDF Core produz estruturas de assinatura alinhadas a B-B e B-T. O caminho de produção para B-LT e B-LTA está nas edições Pro e Enterprise. Se uma assinatura produzida é aceita como conforme em determinado nível depende do verificador e das âncoras de confiança configuradas nele. Um produtor não pode afirmar a conformidade em nome do verificador.
Instalação
Seção intitulada “Instalação”composer require nextpdf/core:^3Visão geral conceitual
Seção intitulada “Visão geral conceitual”Uma assinatura digital de PDF é uma estrutura SignedData do Cryptographic Message Syntax (CMS) armazenada na entrada Contents do dicionário de assinatura. O array ByteRange indica os intervalos de bytes cobertos pelo digest — ISO 32000-2 §12.8.1. O SignerInfo do CMS carrega os atributos assinados, incluindo os atributos content-type e message-digest — RFC 5652 §5.3. O message digest desses atributos é calculado pelo processo da §5.4. O PAdES usa, dentro do dicionário de assinatura do PDF, o modelo de atributos do CMS Advanced Electronic Signatures (CAdES).
Os quatro níveis de baseline são aditivos:
- B-B contém a assinatura base com os atributos assinados obrigatórios.
- B-T acrescenta um atributo de carimbo de tempo de assinatura calculado sobre o valor da assinatura. Esse atributo comprova que a assinatura existia no instante carimbado — ETSI PAdES §5.4.3. Uma Time-Stamping Authority RFC 3161 produz o token — RFC 3161 §2.4.1.
- B-LT acrescenta material de validação de longo prazo — dados de certificado, Online Certificate Status Protocol (OCSP) e certificate revocation list (CRL) — colocado no Document Security Store — ETSI PAdES §6.2.2, ISO 32000-2 §12.8.4.3 e a colocação de dados de validação descrita na ETSI EN 319 142-2 §6.3.
- B-LTA acrescenta um archive document time-stamp para manter a validade por longos períodos — ETSI PAdES §6.2.2.
Os quatro níveis são estritamente aditivos — cada nível superior mantém tudo o que o nível anterior carregava e acrescenta exatamente uma nova camada de material. Os rótulos de transição mostram a edição produtora que disponibiliza cada etapa.
Superfície da API
Seção intitulada “Superfície da API”Use o enum SignatureLevel para selecionar um nível. Ele define os casos PAdES_B_B, PAdES_B_T, PAdES_B_LT e PAdES_B_LTA. Seus métodos requiresTimestamp(), requiresDss(), requiresDocumentTimestamp() e isAvailableInEnvironment() informam os requisitos de cada nível e se o runtime atual consegue atendê-los. Na distribuição Core, isAvailableInEnvironment() retorna true para B-B e B-T e false para B-LT e B-LTA. Ele retorna false para B-LT e B-LTA porque o produtor de validação de longo prazo é resolvido em runtime e não faz parte do pacote open source. O código de produção deve consumir o contrato SignerInterface em vez desses tipos internos.
Matriz de suporte de níveis
Seção intitulada “Matriz de suporte de níveis”| Nível | O que ele acrescenta | Core (nextpdf/core) | Pro / Enterprise |
|---|---|---|---|
| B-B | Assinatura base com atributos assinados obrigatórios | Produz estrutura alinhada; testado contra baselines golden sintéticos | Mesma superfície |
| B-T | Carimbo de tempo de assinatura sobre o valor da assinatura | Produz estrutura alinhada quando um serviço de carimbo de tempo RFC 3161 é fornecido | Mesma superfície |
| B-LT | Dados de validação no Document Security Store | Produtor não disponibilizado no Core; selecionar B-LT sem o pacote Enterprise falha de forma fechada | Produtor disponibilizado |
| B-LTA | Archive document time-stamp | Produtor não disponibilizado no Core; falha de forma fechada como acima | Produtor disponibilizado |
“Produz estrutura alinhada” significa que o NextPDF emite uma assinatura cuja estrutura segue as cláusulas citadas. Os artefatos tests/Corpus/pades/ e tests/Golden/baselines/ do projeto exercitam essa estrutura. Isso não significa que um validador externo certifique a saída nesse nível. Consulte a seção de conformidade.
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\Contracts\SignerInterface;
/** * Sign a byte range with any SignerInterface implementation. * * @param SignerInterface $signer A Core or Premium signer. * @param string $byteRange The PDF byte range to sign. * * @return string Hex-encoded CMS SignedData for the PDF /Contents field. */function signByteRange(SignerInterface $signer, string $byteRange): string{ return $signer->sign($byteRange)->toHex();}A função depende do contrato SignerInterface, não de uma classe concreta. Tanto um signer de software do Core (B-B ou B-T) quanto um signer Premium de hardware security module (HSM) satisfazem esse contrato. O código chamador não muda quando a edição muda.
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\Security\Signature\SignatureLevel;
/** * Resolve the highest baseline level the current runtime can produce. * * B-B and B-T are produced by the Core distribution. B-LT and B-LTA * require the Enterprise long-term-validation package; without it the * level reports unavailable so callers fail closed rather than emit a * structure that does not carry the validation material the level names. * * @return SignatureLevel The highest level available in this runtime. */function highestAvailableLevel(): SignatureLevel{ foreach ([ SignatureLevel::PAdES_B_LTA, SignatureLevel::PAdES_B_LT, SignatureLevel::PAdES_B_T, SignatureLevel::PAdES_B_B, ] as $level) { if ($level->isAvailableInEnvironment()) { return $level; } }
return SignatureLevel::PAdES_B_B;}isAvailableInEnvironment() retorna true para B-B e B-T sem um pacote extra. Ele retorna true para B-LT e B-LTA somente quando o pacote de validação de longo prazo Enterprise está instalado. Se você selecionar um nível indisponível sem optar pela degradação, o NextPDF lança uma exceção tipada de nível inalcançável cuja mensagem informa o pacote ausente. Uma implantação mal configurada, portanto, falha de forma fechada em vez de emitir silenciosamente um nível mais baixo do que o solicitado pelo chamador.
Casos extremos & armadilhas
Seção intitulada “Casos extremos & armadilhas”- Uma assinatura estruturalmente B-T não é o mesmo que uma assinatura validada como B-T. A validação ocorre no verificador, com as âncoras de confiança e a atualidade dos dados de revogação desse verificador. O produtor não pode afirmar o resultado.
- PAdES B-LT e B-LTA exigem o pacote NextPDF Enterprise (
nextpdf/enterprise). Se ele não estiver instalado, o signer falha de forma fechada e B-LT/B-LTA ficam indisponíveis. O Core fornece B-B/B-T por meio da interface públicaNextPDF\Contracts\SignerInterface; a validação de longo prazo permanece por trás deLtvManagerInterface. Selecionar um nível indisponível no Core falha de forma fechada por padrão. A exceção tipada informa o pacote público ausente, não um tipo interno. A degradação graciosa para um nível mais baixo é opt-in, nunca o padrão. - O digest do byte-range deve excluir o valor da assinatura. Se o digest também cobrir os octetos de
Contents, a verificação nunca será bem-sucedida — ISO 32000-2 §12.8.1. - Em B-T, o carimbo de tempo de assinatura é calculado sobre o valor da assinatura, não sobre os bytes do documento. Em B-LTA, o carimbo de tempo de arquivamento é um document time-stamp separado. Eles não são intercambiáveis — ETSI PAdES §5.4.3 e §6.2.2.
- A ETSI EN 319 142-1 (a parte de níveis de baseline) não está no corpus de evidências deste projeto. As alegações sobre a estrutura de níveis aqui são ancoradas na ETSI EN 319 142-2, no documento de perfil
pades, na ISO 32000-2 §12.8 e em RFC 5652 / RFC 3161. Os nomes de nível e a estrutura aditiva são declarados como implementados em v3.x. Esta página não alega nenhum resultado de teste de conformidade ou atestação de terceiros.
Desempenho
Seção intitulada “Desempenho”O custo cresce com o nível. B-B é uma única operação de assinatura e leva milissegundos de um único dígito para uma chave de software. B-T acrescenta uma viagem de ida e volta de rede à Time-Stamping Authority. B-LT acrescenta uma busca de revogação por certificado na cadeia. B-LTA acrescenta um document time-stamp adicional. O orçamento de wall de 1500 ms cobre uma única assinatura B-T com uma Time-Stamping Authority (TSA) remota em uma conexão já aquecida. B-LT ou B-LTA contra um endpoint de revogação lento ultrapassa esse orçamento e deve ficar fora do caminho da requisição. O perfil de reprodutibilidade é structural, não bitwise. Um carimbo de tempo embute o instante de assinatura, então duas execuções diferem nos bytes do carimbo de tempo enquanto a estrutura do documento permanece idêntica.
Notas de segurança
Seção intitulada “Notas de segurança”O nível que uma assinatura alega e o nível em que ela é validada são fatos diferentes. Esta página descreve apenas a superfície do produtor. A validação de longo prazo depende dos dados de validação coletados no momento da assinatura e de o verificador confiar nas mesmas âncoras posteriormente. O produtor não pode garantir nenhum dos dois fatos. A confiança no carimbo de tempo se reduz à confiança na Time-Stamping Authority, que a implantação define por meio de um provedor injetável. Esta página está marcada como export_control_class: legal-review-required porque diz respeito a perfis de assinatura criptográfica. Todas as fontes normativas são parafraseadas, e nenhuma é reproduzida, conforme as práticas de higiene de citação.
Conformidade
Seção intitulada “Conformidade”| Alegação | Norma | Cláusula | Evidência |
|---|---|---|---|
O valor da assinatura é armazenado codificado em DER como SignedData de CMS ou um TimeStampToken na entrada Contents do dicionário de assinatura. | ISO 32000-2 | §12.8.1 | |
O digest é calculado sobre os intervalos de ByteRange e exclui o valor da assinatura. | ISO 32000-2 | §12.8.1 | |
| O atributo de carimbo de tempo de assinatura é calculado sobre o valor da assinatura (B-T). | ETSI PAdES (EN 319 142) | §5.4.3 | |
| O material de validação de longo prazo é carregado no Document Security Store (B-LT). | ETSI PAdES (EN 319 142) / ISO 32000-2 | §6.2.2 / §12.8.4.3 | , |
| Os dados de validação são colocados nos dicionários DSS e VRI. | ETSI EN 319 142-2 | §6.3 | , |
| Um archive document time-stamp mantém a validade por longos períodos (B-LTA). | ETSI PAdES (EN 319 142) | §6.2.2 | |
| O SignerInfo carrega os atributos assinados content-type e message-digest. | RFC 5652 | §5.3 | |
| O message digest é calculado sobre os atributos assinados codificados em DER (processo da §5.4). | RFC 5652 | §5.4 | |
| O carimbo de tempo é solicitado de uma TSA RFC 3161 e retorna uma estrutura TSTInfo. | RFC 3161 | §2.4.1 |
Todas as cláusulas são parafraseadas. O NextPDF não reproduz texto normativo. Consulte as normas publicadas para a redação autoritativa. A ETSI EN 319 142-1 não está no corpus de evidências. As alegações estruturais sobre os níveis de baseline são ancoradas nas fontes acima e declaradas como implementadas em v3.x.
Contexto comercial
Seção intitulada “Contexto comercial”O Core produz estruturas de assinatura B-B e B-T. O caminho de produção para B-LT e B-LTA, a custódia de chaves HSM e PKCS#11 e o perfil de política de cripto FIPS 140-3 vêm nas edições Pro e Enterprise. O Core resolve o produtor de validação de longo prazo em runtime, então o motor open source não carrega nenhuma dependência comercial. A API SignerInterface não muda na atualização.
Veja também
Seção intitulada “Veja também”- Segurança / Assinatura — a superfície de implementação para CMS, carimbo de tempo, validação de longo prazo (LTV), cadeia de confiança e revogação.
- Contratos / Assinatura — a service provider interface (SPI)
SignerInterfacee os níveis de estabilidade. - Segurança — superfície de implementação de criptografia e assinatura.
- Conformidade — aplicação de PDF/A e de perfis associada ao arquivamento assinado.
- PAdES · PAdES B-T · DSS · CAdES — termos do glossário.