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
ICustomSecurityHandlerpouze tehdy, když standardní šifrování není dostatečné.
Časté problémy
| Problém | Příčina | Oprava |
|---|---|---|
| Podpis se zobrazuje jako neplatný | Dokument byl po podepsání upraven | Znovu podepsat po dokončení všech úprav |
| Načtení PFX selže | Špatné heslo nebo poškozený soubor | Ověřte heslo a integritu souboru |
| Šifrování brání otevření | Nebyl zadán heslo vlastníka | Použ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 / Method | Description |
|---|---|
PdfSigner | Podepisovat a ověřovat PDF dokumenty |
PdfSigner.Sign | Použít digitální podpis |
PdfSigner.Verify | Zkontrolovat platnost podpisu |
PdfSigner.SignWithAppearance | Podepsat pomocí vizuálního pole podpisu |
PdfCertificate | Načítání certifikátu pro formáty PFX a DER |
PdfCertificate.FromPfx | Načíst ze souboru PFX s heslem |
PdfCertificate.FromDerFiles | Načíst z DER‑kódovaných souborů |
CertificateEncryptionOptions | Šifrování PDF založené na certifikátu |
ICustomSecurityHandler | Rozhraní pro vlastní šifrování/dešifrování |
EncryptionParameters | Parametry předávané vlastním bezpečnostním manipulátorům |
SignatureAlgorithmInfo | Metadata o algoritmu podpisu |