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
ICustomSecurityHandlerlen vtedy, keď je štandardné šifrovanie nedostatočné.
Bežné problémy
| Issue | Cause | Fix |
|---|---|---|
| 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úbor | Overte heslo a integritu súboru |
| Šifrovanie zabraňuje otvoreniu | Nebolo zadané heslo vlastníka | Použ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 / Method | Description |
|---|---|
PdfSigner | Podpísať a overiť PDF dokumenty |
PdfSigner.Sign | Použiť digitálny podpis |
PdfSigner.Verify | Skontrolovať platnosť podpisu |
PdfSigner.SignWithAppearance | Podpísať pomocou vizuálneho poľa podpisu |
PdfCertificate | Načítač certifikátov pre formáty PFX a DER |
PdfCertificate.FromPfx | Načítať z PFX súboru s heslom |
PdfCertificate.FromDerFiles | Načítať z DER-kódovaných súborov |
CertificateEncryptionOptions | Šifrovanie PDF založené na certifikáte |
ICustomSecurityHandler | Rozhranie pre vlastné šifrovanie/dešifrovanie |
EncryptionParameters | Parametre odovzdávané vlastným bezpečnostným obslužníkom |
SignatureAlgorithmInfo | Metadáta o algoritme podpisu |