Enterprise ediçãoestabilidade: Experimental
Status de capacidade de pré-visualização da assinatura HSM pós-quântica (PQS)
Visão geral
Seção intitulada “Visão geral”Status de capacidade de pré-visualização. Opcional, desativada por padrão, falha fechada. Esta é uma pré-visualização de assinatura pós-quântica delegada a HSM. Não é disponível em caráter geral, não é compatível com AdES, não é validada por FIPS e não faz nenhuma reivindicação de certificação ou conformidade. A pré-visualização fica desativada até que você opte por ela; quando desativada, a chamada de assinatura falha fechada com uma exceção tipada.
O NextPDF Enterprise expõe uma superfície experimental de assinatura
pós-quântica (PQS) que conduz a assinatura ML-DSA (FIPS 204) e SLH-DSA
(FIPS 205) por meio de um token de hardware PKCS#11. O caminho é
Pkcs11Signer::signPqs(), restringido por trás de uma opção explícita por
assinante ($enablePostQuantum) e, separadamente, por trás de uma flag de
ambiente em nível de processo (NEXTPDF_FEATURE_PREVIEW_PQS_HSM). Ambas estão
desativadas por padrão.
Esta página é o limite honesto. Ela afirma o que a pré-visualização faz — ela delega uma operação real de assinatura pós-quântica ao token — e, com igual honestidade, o que ela não é: não é GA, não é AdES, não é validada por FIPS e não é uma reivindicação de conformidade contra FIPS, OASIS ou ETSI. As normas que tornariam uma assinatura PDF pós-quântica interoperável para arquivamento de longo prazo ainda não chegaram (consulte Limite de normas).
Disponibilidade e licenciamento
Seção intitulada “Disponibilidade e licenciamento”Esta capacidade é entregue no NextPDF Enterprise (nextpdf/enterprise) e é
ativada com um envelope de licença de nível Enterprise. Uma implantação sem esse
direito não carrega as classes da capacidade.
Compare edições e obtenha uma licença.
Ela é construída sobre o assinante de token de hardware PKCS#11 do Enterprise — consulte Assinatura HSM. O caminho de assinatura PKCS#11 clássico (RSA / ECDSA) é a capacidade Enterprise suportada e estável; o caminho pós-quântico descrito aqui é uma pré-visualização experimental sobreposta a ele. O NextPDF Enterprise inclui o conjunto de recursos do Pro.
Status de capacidade de pré-visualização
Seção intitulada “Status de capacidade de pré-visualização”A pré-visualização conduz uma operação genuína de assinatura: quando ativada,
signPqs() despacha para o mecanismo pós-quântico candidato PKCS#11 v3.1 no
token, a chave privada nunca deixa o limite do token, e os bytes retornados têm o
comprimento verificado contra o comprimento de assinatura mandado por FIPS para o
conjunto de parâmetros escolhido antes de serem aceitos.
Ela é, ao mesmo tempo, uma pré-visualização e não uma capacidade de produto disponível em caráter geral:
- Os identificadores de mecanismo pós-quântico e de conjunto de parâmetros do PKCS#11 são provisórios — o OASIS PKCS#11 v3.1 não finalizou um registro de mecanismo pós-quântico, então os valores usados são rastreados como provisórios, e os operadores de HSM devem confirmar que o firmware PQ do seu token corresponde a eles antes de ativar.
- Não existe nenhum caminho de verificação pós-quântica no NextPDF, e nenhuma suíte ETSI registra uma assinatura pós-quântica para arquivamento de longo prazo AdES, então uma assinatura produzida aqui ainda não é interoperável e a maioria dos visualizadores de PDF a rejeitará no momento da validação.
- Um descritor companheiro,
PqsCapabilityStatus, informa esses fatos de forma legível por máquina. Todo booleano de reivindicação positiva —generallyAvailable,adesCompliant,verificationAvailable,conformanceClaimed— é fixado em código comofalsee permanecefalsemesmo quando a flag de pré-visualização está ativada, e nenhuma configuração pode alterná-lo para ativado. (Ele também carrega uma flagrecognitionOnly, fixada em código comotrue, que registra que o reconhecimento de algoritmo nunca é um veredicto de conformidade; isso não significa que a superfície não possa assinar — a assinatura ocorre por meio designPqs()conforme descrito acima.)
Por que funciona assim
Seção intitulada “Por que funciona assim”O NextPDF já consegue computar uma assinatura ML-DSA ou SLH-DSA real por meio do
token. Ainda assim, todo booleano de conformidade permanece fixado em código como
false, atrás de duas portas desativadas por padrão. Uma assinatura só vale a
capacidade de verificá-la mais tarde. Para pós-quântica não há caminho de
verificação, nenhuma suíte AdES ETSI registrada e ainda nenhum round-trip de HSM
validado por FIPS. Entregar isso como disponível em caráter geral emitiria
assinaturas que nenhum visualizador consegue validar e nenhum arquivo consegue
confiar. Portanto, o design separa produzir os bytes de reivindicar que alguém
pode depender deles, e nenhuma flag de pré-visualização pode borrar essa linha.
Contexto de design: Validação de longo prazo.
Conjuntos de parâmetros de algoritmo
Seção intitulada “Conjuntos de parâmetros de algoritmo”signPqs() seleciona o algoritmo e o conjunto de parâmetros por meio da enum
Pkcs11PqsAlgorithm. Cada caso mapeia um conjunto de parâmetros NIST para um
identificador provisório de mecanismo / conjunto de parâmetros PKCS#11 e para o
comprimento de assinatura em bytes mandado por FIPS usado na verificação de
comprimento de defesa em profundidade.
ML-DSA — FIPS 204 (module-lattice). Três conjuntos de parâmetros, declarados nas categorias de força de segurança NIST mostradas:
| Conjunto de parâmetros | Categoria NIST | Comprimento da assinatura (bytes) |
|---|---|---|
ML-DSA-44 | 2 | 2420 |
ML-DSA-65 (padrão recomendado) | 3 | 3309 |
ML-DSA-87 | 5 | 4627 |
SLH-DSA — FIPS 205 (baseado em hash, sem estado). Doze conjuntos de
parâmetros, formados como SHA2 / SHAKE x 128 / 192 / 256 x pequeno (s) / rápido
(f). As variantes s minimizam o tamanho da assinatura; as variantes f
minimizam a latência de assinatura:
| Família de conjunto de parâmetros | Categoria NIST | Comprimento da assinatura (bytes) |
|---|---|---|
SLH-DSA-{SHA2,SHAKE}-128s | 1 | 7856 |
SLH-DSA-{SHA2,SHAKE}-128f | 1 | 17088 |
SLH-DSA-{SHA2,SHAKE}-192s | 3 | 16224 |
SLH-DSA-{SHA2,SHAKE}-192f | 3 | 35664 |
SLH-DSA-{SHA2,SHAKE}-256s | 5 | 29792 |
SLH-DSA-{SHA2,SHAKE}-256f | 5 | 49856 |
Ativar a pré-visualização
Seção intitulada “Ativar a pré-visualização”Duas portas independentes devem estar ambas abertas. Ambas estão desativadas por padrão.
- Porta de processo. Defina
NEXTPDF_FEATURE_PREVIEW_PQS_HSM=1antes de o processo inicializar (ou viaputenv()antes de o status ser lido). É exigida igualdade estrita com a string1; qualquer outro valor — incluindo0,true,yesou vazio — é tratado como desativado. - Opção por assinante. Passe
$enablePostQuantum: truepara o construtor dePkcs11Signer.
use NextPDF\Enterprise\Security\Signature\Hsm\Pkcs11Signer;use NextPDF\Enterprise\Security\Signature\Hsm\Pkcs11PqsAlgorithm;use NextPDF\Enterprise\Security\Signature\Hsm\PqsCapabilityStatus;use NextPDF\Enterprise\Security\Signature\Hsm\PqsPreviewFeature;
// 1. Open the process-level preview gate (default-off).putenv(PqsPreviewFeature::ENV_PREVIEW_PQS_HSM . '=1');
// 2. The capability status is honest even with the gate open:// generallyAvailable / adesCompliant / verificationAvailable stay false.$status = PqsCapabilityStatus::current();
// 3. Construct the PKCS#11 signer with the per-signer opt-in.$signer = new Pkcs11Signer( libraryPath: '/usr/lib/softhsm/libsofthsm2.so', slotId: 0, pin: '1234', certLabel: 'my-pqc-signing-cert', enablePostQuantum: true,);
// 4. Sign with a chosen parameter set. The returned bytes are length-checked// against Pkcs11PqsAlgorithm::signatureLength() before being accepted.$signature = $signer->signPqs( data: $tbsBytes, algorithm: Pkcs11PqsAlgorithm::MlDsa65,);isPostQuantumEnabled() informa se a opção por assinante foi definida, e
PqsCapabilityStatus::current() informa o estado em nível de processo mais os
booleanos honestos de reivindicação.
Limite de falha fechada
Seção intitulada “Limite de falha fechada”A superfície é de falha fechada e relata falhas por meio de exceções nomeadas e tipadas em vez de fallback silencioso:
- Opção ausente. Se
signPqs()for chamado quando$enablePostQuantumforfalse, ele lançaHsmOperationException. Nenhuma assinatura ocorre. - Contexto longo demais. Uma octet string de contexto de assinatura mais
longa do que 255 bytes lança
InvalidArgumentException(de acordo com o limite de contexto de FIPS 204 / FIPS 205) antes de qualquer chamada ao token. - Chave ausente. Se nenhuma chave privada corresponder ao rótulo configurado
no token,
signPqs()lançaHsmOperationException. - Divergência de comprimento. Se o token retornar uma assinatura cujo
comprimento em bytes não seja igual ao comprimento mandado por FIPS para o
conjunto de parâmetros,
signPqs()lançaHsmOperationException— uma assinatura malformada (truncada ou superdimensionada) é rejeitada antes que possa chegar à codificação CMS SignedData. - Erro de token. Qualquer erro PKCS#11 subjacente é encapsulado em
HsmOperationException.
A flag de ambiente em nível de processo não altera nada quanto a esse limite:
mesmo quando a flag está ativada, os booleanos de capacidade permanecem false e
o caminho de assinatura permanece verificado quanto ao comprimento e de falha
fechada.
Limite honesto
Seção intitulada “Limite honesto”As reivindicações a seguir não são feitas para esta superfície e não devem aparecer em nenhuma documentação, UI ou marketing derivado dela:
- “GA” / “generally available”.
- “AdES” / “PAdES-compliant” — nenhuma suíte ETSI registra uma assinatura pós-quântica para arquivamento de longo prazo.
- “FIPS-validated” — nenhum round-trip de HSM pós-quântica validado por FIPS-140-3 foi estabelecido para este caminho.
- “certified” ou “conformant” contra FIPS, OASIS PKCS#11 v3.1 ou ETSI.
- “production-ready”.
O que a superfície honestamente é: uma pré-visualização opcional, desativada por padrão e de falha fechada de assinatura pós-quântica delegada a HSM que conduz ML-DSA / SLH-DSA por meio de um token PKCS#11 e verifica o comprimento do resultado. O que ela não é: uma capacidade de assinatura disponível em caráter geral, compatível com AdES, validada por FIPS ou certificada.
Limite de normas
Seção intitulada “Limite de normas”As normas envolvidas são mantidas por órgãos externos, e a pré-visualização não toma nenhuma posição sobre conformidade com qualquer uma delas:
- Os conjuntos de parâmetros de algoritmo e os comprimentos de assinatura seguem FIPS 204 (ML-DSA) e FIPS 205 (SLH-DSA).
- Os identificadores de mecanismo de token seguem o OASIS PKCS#11; o registro de mecanismo pós-quântico no PKCS#11 v3.1 ainda não está finalizado, então o NextPDF usa identificadores provisórios.
- Os perfis de arquivamento de longo prazo de assinatura PDF são ETSI EN 319
142-2 (perfis estendidos PAdES, construídos sobre CMS
SignerInfo) e o catálogo de suítes criptográficas ETSI TS 119 312, que atualmente perfilam apenas RSA e ECDSA — nenhuma suíte pós-quântica está registrada para CAdES/PAdES. Uma assinatura PDF pós-quântica produzida hoje, portanto, ainda não é compatível com AdES para arquivamento.
Nenhum texto de norma é reproduzido nesta página.
Notas de segurança
Seção intitulada “Notas de segurança”Uma pré-visualização não é um controle de segurança. A presença de uma assinatura pós-quântica produzida por este caminho não estabelece validade AdES, não implica uma chave confiável e não é verificável pelo NextPDF (não existe caminho de verificação pós-quântica). Não dependa desta pré-visualização para garantia de assinatura e não a implante onde uma assinatura compatível com AdES ou validada por FIPS seja exigida. Mantenha ambas as portas desativadas em produção até que as normas cheguem.
Superfície da API
Seção intitulada “Superfície da API”| Símbolo | Função |
|---|---|
Pkcs11Signer::signPqs() | Assinatura pós-quântica delegada a HSM, opcional e de falha fechada, por meio de PKCS#11. Lança HsmOperationException quando desativada, quando a chave está ausente ou em uma divergência de comprimento de assinatura. |
Pkcs11Signer::isPostQuantumEnabled() | Se a opção por assinante $enablePostQuantum foi definida. |
Pkcs11PqsAlgorithm | Enum de conjuntos de parâmetros ML-DSA (FIPS 204) e SLH-DSA (FIPS 205); mapeia cada um para um id de mecanismo provisório e o comprimento de assinatura mandado por FIPS. |
PqsPreviewFeature | Porta de ambiente em nível de processo, desativada por padrão (NEXTPDF_FEATURE_PREVIEW_PQS_HSM). |
PqsCapabilityStatus | Status honesto e legível por máquina: todo booleano de reivindicação positiva (generally-available, AdES, verification, conformance) é fixado em código como false independentemente da flag de pré-visualização. |
HsmOperationException | A exceção tipada levantada nos caminhos de falha fechada. |
Limite de publicação
Seção intitulada “Limite de publicação”Esta página documenta apenas o comportamento observável externamente e a superfície pública de API suportada. Caminhos internos de namespace, classes auxiliares, tabelas de mecanismos, nomes de arquivos de runbook e prefixos de ticket estão fora de escopo.