Bezpečnosť a podpisy

Bezpečnosť a podpisy

Bezpečnosť a podpisy

Aspose.PDF FOSS for .NET podporuje digitálne podpisy PDF, šifrovanie založené na certifikátoch a vlastné bezpečnostné manipulátory. Použite PdfSigner pre pracovné postupy podpisovania a PdfCertificate pre správu certifikátov.


Podpisovanie dokumentu

PdfSigner aplikuje digitálny podpis na PDF pomocou PFX certifikátu.

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

Overovanie podpisov

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

Podpisovanie s vizuálnym vzhľadom

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

Správa certifikátov

PdfCertificate načítava certifikáty z PFX súborov alebo DER‑kódovaných súborov.

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

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

Šifrovanie založené na certifikáte

CertificateEncryptionOptions šifruje PDF tak, aby ho mohli otvoriť iba určení držitelia certifikátu.

var options = new CertificateEncryptionOptions(cert);

Vlastné bezpečnostné spracovatelia

Implementovať ICustomSecurityHandler pre vlastnú logiku šifrovania a dešifrovania.

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; }
}

Informácie o algoritme podpisu

SignatureAlgorithmInfo popisuje algoritmus použitý v existujúcom podpise.

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

Tipy a osvedčené postupy

  • Vždy podpisujte dokumenty ako posledný krok — akákoľvek úprava po podpise neplatí podpis.
  • Používajte súbory PFX so silnými heslami na ukladanie certifikátov.
  • Overte podpisy po načítaní dokumentu, aby ste odhalili manipuláciu.
  • Šifrovanie založené na certifikáte vyžaduje verejný kľúčový certifikát príjemcu.
  • Implementujte ICustomSecurityHandler len vtedy, keď je štandardné šifrovanie nedostatočné.

Bežné problémy

IssueCauseFix
Podpis sa zobrazuje ako neplatnýDokument bol po podpise upravenýZnovu podpíšte po dokončení všetkých úprav
Načítanie PFX zlyháNesprávne heslo alebo poškodený súborOverte heslo a integritu súboru
Šifrovanie zabraňuje otvoreniuNebolo zadané heslo vlastníkaPoužite správne heslo vlastníka alebo používateľa

Často kladené otázky

Aké podpisové algoritmy sú podporované?

RSA s SHA-256, SHA-384 a SHA-512 je bežne podporovaný. Dostupné algoritmy závisia od typu kľúča certifikátu.

Môžem pridať viacero podpisov?

Áno. Každý podpis sa aplikuje do samostatného poľa podpisu v dokumente.

Vyžaduje podpisovanie komerčný certifikát?

Nie. Samopodpísané certifikáty fungujú na testovanie. Pre produkciu použite
certifikát od dôveryhodnej CA.


Zhrnutie referencie API

Class / MethodDescription
PdfSignerPodpísať a overiť PDF dokumenty
PdfSigner.SignPoužiť digitálny podpis
PdfSigner.VerifySkontrolovať platnosť podpisu
PdfSigner.SignWithAppearancePodpísať pomocou vizuálneho poľa podpisu
PdfCertificateNačítač certifikátov pre formáty PFX a DER
PdfCertificate.FromPfxNačítať z PFX súboru s heslom
PdfCertificate.FromDerFilesNačítať z DER-kódovaných súborov
CertificateEncryptionOptionsŠifrovanie PDF založené na certifikáte
ICustomSecurityHandlerRozhranie pre vlastné šifrovanie/dešifrovanie
EncryptionParametersParametre odovzdávané vlastným bezpečnostným obslužníkom
SignatureAlgorithmInfoMetadáta o algoritme podpisu

Pozri tiež

 Slovenčina