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
| Factory | Generazione | Validazione | Cifratura |
|---|---|---|---|
Compatibility | SHA-256 | Tutti e sei i digest supportati | AES-256 o AES-256-GCM |
Modern | SHA-384 | SHA-384, SHA-512, SHA3-384 o SHA3-512 | AES-256 o AES-256-GCM |
HighAssurance | SHA3-512 | Solo SHA3-512 | AES-256-GCM richiesto |
Custom | A scelta del chiamante | Allowlist del chiamante | A 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