Agilità Algoritmica del PDF MAC e Profili di Politica

HotPDF può produrre e validare valori PDF MAC ISO/TS 32004 standalone e allegati alla firma con sei algoritmi di digest del documento e un'applicazione della politica fail-closed

Digest del documento supportati

THPDFPDFMACDigestAlgorithm fornisce pmdaSHA256, pmdaSHA384, pmdaSHA512, pmdaSHA3_256, pmdaSHA3_384 e pmdaSHA3_512

Il digest selezionato protegge l'intero ByteRange del PDF, le informazioni di integrità incapsulate, l'algoritmo di digest CMS e l'attributo CMSAlgorithmProtection

L'autenticazione HMAC-SHA-256, la derivazione di chiavi HKDF-SHA-256 e il key wrap AES-256 restano fissi dal formato del PDF MAC e non vengono cambiati dalla selezione del digest del documento

Profili incorporati

I requisiti dei profili incorporati sono fissi e non possono essere indeboliti modificando i campi dei record; usare pmppCustom quando un'applicazione serve di un algoritmo di generazione, un allowlist o un requisito di cifratura diversi

FactoryGenerazioneValidazioneCifratura
CompatibilitySHA-256Tutti e sei i digest supportatiAES-256 o AES-256-GCM
ModernSHA-384SHA-384, SHA-512, SHA3-384 o SHA3-512AES-256 o AES-256-GCM
HighAssuranceSHA3-512Solo SHA3-512AES-256-GCM richiesto
CustomA scelta del chiamanteAllowlist del chiamanteA scelta del chiamante

Esempio Delphi

uses HPDFDoc, HPDFPDFMAC;

var
  Options: THPDFPDFMACOptions;
  Info: THPDFPDFMACValidationInfo;
begin
  Options := THPDFPDFMACOptions.HighAssurance;
  if not PDF.AddStandalonePDFMAC('encrypted.pdf', 'authenticated.pdf',
    'user-password', Options) then
    raise Exception.Create('PDF MAC creation failed');

  if not PDF.ValidatePDFMAC('authenticated.pdf', 'user-password',
    Options, Info) then
    raise Exception.Create(Info.Message);
end;

Decisioni di validazione

La validazione scopre il digest codificato prima di trasmettere in streaming gli intervalli protetti, rifiuta gli algoritmi fuori da AllowedDigestAlgorithms e fa rispettare RequireAESGCM dopo il recupero autenticato della file key

THPDFPDFMACValidationInfo riporta DigestAlgorithm, PolicyProfile, PolicyAccepted e UsedAESGCM; pmsPolicyRejected è distinto da un input malformato o da un tag di autenticazione fallito

Per /AttachedToSig, il digest selezionato protegge anche il valore raw della firma CMS attraverso PdfMacIntegrityInfo.signatureDigest, mentre ValidatePDFMAC verifica l'AuthCode diretto attivo, il SigObjRef indiretto, il binding del campo di firma e la revisione firmata completa

ValidatePDFMACChain applica la politica selezionata a ogni revisione incrementale protetta, rifiuta il downgrade di forza del digest, richiede un KDFSalt stabile dopo il primo MAC e riporta la revisione e l'offset xref esatti del fallimento

Vedere SignPDFWithPFXAndAttachedPDFMAC per il workflow atomico di firma con PFX