Informação assinada de revogação em Windows

A operação de assinatura de Windows pode autenticar evidência de CRLs e de OCSP, incluí-la no atributo assinado Adobe RevocationInfoArchival e publicar o PDF apenas depois de validar o CMS realmente gerado e a evidência incorporada

Opções de assinatura

{"schemaVersion":1,"type":"sign","incremental":true,
 "existingField":true,"fieldName":"ApprovalOne",
 "pfxFile":"C:/keys/signer.pfx","pfxPassword":"password",
 "cades":true,"digestMethod":"SHA384",
 "revocationInfo":{"enabled":true,
   "trustedCAFile":"C:/trust/signing-roots.pem",
   "certificatesBase64":[],"ocspResponsesBase64":[],
   "crlsBase64":["BASE64_DER_CRL"],
   "requireTimestamp":false,"clockSkewSeconds":300,
   "maxOCSPAgeSeconds":86400}}

revocationInfo é opcional; enabled tem por defeito true quando o objeto é fornecido, e evidência desativada não pode conter certificados, respostas OCSP nem CRLs

trustedCAFile identifica explicitamente raízes de confiança PEM e permanece aberto com partilha de escrita negada ao longo da assinatura; a validação não confia silenciosamente num certificado apenas porque o PFX ou a evidência o contém

Arrays de evidência contêm strings Base64 canónicas codificando certificados DER completos, CRLs ou valores OCSPResponse; pelo menos uma CRL ou resposta OCSP é exigida quando enabled

O atributo assinado standard contém valores DER de CRLs e de BasicOCSPResponse; entradas completas de OCSPResponse são normalizadas antes do embedding, e certificados fornecem material adicional de cadeias de validação

HPDFNormalizeHeadlessOCSPResponse em HPDFHeadlessRevocationInfo expõe a conversão delimitada de respostas bem-sucedidas para quem chama a partir de Pascal; ele valida o enquadramento DER e extrai o BasicOCSPResponse, enquanto a validação criptográfica e de estados permanece responsabilidade do verificador de assinaturas ou de LTV

Evidência autenticada

A validação autentica a assinatura CMS real, o binding de certificados de assinatura, a confiança explícita em certificados, a validade de certificados, as assinaturas e intervalos de validade de CRLs, e as assinaturas OCSP, a autorização de respondedores, identificadores de emissores, status de respostas e tempos de atualização

A evidência tem de cobrir a cadeia completa de assinatura não raiz; evidência revogada, desconhecida, expirada, incompleta, não autorizada, não fidedigna ou malformada não pode publicar um PDF

requireTimestamp exige um timestamp real de assinaturas e autentica evidência também para a cadeia TSA dele; use o transport da aplicação e as definições separadas de confiança TSA descritas nos timestamps de assinatura em Windows

clockSkewSeconds aceita 0 a 86400, enquanto maxOCSPAgeSeconds tem de ser positivo; ambos configuram a validação de tempos de evidência em vez de alterar a confiança em certificados

Valores de seeds e publicação

Uma restrição exigida de SV AddRevInfo true exige este workflow validado de evidência assinada; um valor exigido false exige a omissão do atributo

O workflow suporta campos de assinaturas existentes e recém-criados, primeiras assinaturas de certificação, assinaturas de aprovações subsequentes permitidas, fontes encriptadas suportadas e assinatura de documentos não assinados

O ficheiro de confiança e a evidência descodificada partilham um teto de bytes de um oitavo de memoryBytes; contagens de objetos de evidência são limitadas ao menor entre objectCount e 4096 antes da alocação

Base64 canónico, enquadramento DER, orçamentos, cancelamento, integridade CMS e validade de evidência são verificados antes da publicação binária; evidência rejeitada preserva o handle original do documento e não publica bytes PDF nenhum, enquanto callbacks de publicação mantêm a semântica existente deles de falhas de callbacks

Um resultado bem-sucedido reporta revocationInfo: true apenas depois de autenticar o atributo realmente assinado; evidência desativada ou omitida reporta false

Veja HPDFNormalizeHeadlessOCSPResponse para a conversão nativa delimitada de um OCSPResponse completo para BasicOCSPResponse DER

Veja a assinatura PFX incremental para snapshots de fontes, permissões de encriptação, políticas de assinaturas anteriores, orçamentos de saídas e semântica de publicação por callbacks