Zabezpečení a podpisy

Zabezpečení a podpisy

Aspose.PDF FOSS pro .NET podporuje digitální podpisy PDF, šifrování založené na certifikátech a vlastní bezpečnostní obslužné programy. Použijte PdfSigner pro workflow podepisování a PdfCertificate pro správu certifikátů.


Podepisování dokumentu

PdfSigner aplikuje digitální podpis na PDF pomocí PFX certifikátu.

var cert = PdfCertificate.FromPfx("certificate.pfx", "password");
var signer = new PdfSigner();
signer.Sign(doc, cert);
doc.Save("signed.pdf");

Ověřování podpisů

var signer = new PdfSigner();
bool valid = signer.Verify(doc);
Console.WriteLine($"Signature valid: {valid}");

Podepisování s vizuálním vzhledem

signer.SignWithAppearance(doc, cert, signatureField, appearance);

Správa certifikátů

PdfCertificate načítá certifikáty z PFX souborů nebo DER‑kódovaných souborů.

// From PFX
var cert = PdfCertificate.FromPfx("cert.pfx", "password");

// From DER files (certificate + key)
var cert2 = PdfCertificate.FromDerFiles("cert.der", "key.der");

Šifrování založené na certifikátu

CertificateEncryptionOptions šifruje PDF tak, aby jej mohli otevřít pouze určení držitelé certifikátu.

var options = new CertificateEncryptionOptions(cert);

Vlastní bezpečnostní manipulátory

Implementujte ICustomSecurityHandler pro vlastní šifrovací a dešifrovací logiku.

public class MyHandler : ICustomSecurityHandler
{
    public void Initialize(EncryptionParameters parameters) { }
    public byte[] CalculateEncryptionKey() { /* ... */ return Array.Empty<byte>(); }
    public byte[] GetUserKey() { /* ... */ return Array.Empty<byte>(); }
    public byte[] GetOwnerKey() { /* ... */ return Array.Empty<byte>(); }
    public bool IsOwnerPassword(string password) { /* ... */ return false; }
    public bool IsUserPassword(string password) { /* ... */ return false; }
}

Informace o algoritmu podpisu

SignatureAlgorithmInfo popisuje algoritmus použitý v existujícím podpisu.

var info = new SignatureAlgorithmInfo("SHA256withRSA");
Console.WriteLine(info.ToString());

Tipy a osvědčené postupy

  • Vždy podepisujte dokumenty jako poslední krok — jakákoli úprava po podpisu zneplatní podpis.
  • Používejte soubory PFX se silnými hesly pro ukládání certifikátů.
  • Ověřte podpisy po načtení dokumentu, abyste zjistili manipulaci.
  • Šifrování založené na certifikátech vyžaduje veřejný klíčový certifikát příjemce.
  • Implementujte ICustomSecurityHandler pouze tehdy, když standardní šifrování není dostatečné.

Časté problémy

ProblémPříčinaOprava
Podpis se zobrazuje jako neplatnýDokument byl po podepsání upravenZnovu podepsat po dokončení všech úprav
Načtení PFX selžeŠpatné heslo nebo poškozený souborOvěřte heslo a integritu souboru
Šifrování brání otevřeníNebyl zadán heslo vlastníkaPoužijte správné heslo vlastníka nebo uživatele

Často kladené otázky

Jaké algoritmy podpisu jsou podporovány?

RSA s SHA-256, SHA-384 a SHA-512 je běžně podporováno. Dostupné algoritmy závisí na typu klíče certifikátu.

Mohu přidat více podpisů?

Ano. Každý podpis je aplikován na samostatné pole podpisu v dokumentu.

Vyžaduje podepisování komerční certifikát?

Ne. Samo-podepsané certifikáty fungují pro testování. Pro produkci použijte certifikát od důvěryhodné CA.


Souhrn referenčního API

Class / MethodDescription
PdfSignerPodepisovat a ověřovat PDF dokumenty
PdfSigner.SignPoužít digitální podpis
PdfSigner.VerifyZkontrolovat platnost podpisu
PdfSigner.SignWithAppearancePodepsat pomocí vizuálního pole podpisu
PdfCertificateNačítání certifikátu pro formáty PFX a DER
PdfCertificate.FromPfxNačíst ze souboru PFX s heslem
PdfCertificate.FromDerFilesNačíst z DER‑kódovaných souborů
CertificateEncryptionOptionsŠifrování PDF založené na certifikátu
ICustomSecurityHandlerRozhraní pro vlastní šifrování/dešifrování
EncryptionParametersParametry předávané vlastním bezpečnostním manipulátorům
SignatureAlgorithmInfoMetadata o algoritmu podpisu

Viz také

 Čeština