Beveiliging en Handtekeningen
Beveiliging en handtekeningen
Aspose.PDF FOSS for .NET ondersteunt PDF digitale handtekeningen, certificaatgebaseerde encryptie en aangepaste beveiligingshandlers. Gebruik PdfSigner voor ondertekeningsworkflows en PdfCertificate voor certificaatbeheer.
Een document ondertekenen
PdfSigner past een digitale handtekening toe op een PDF met een PFX‑certificaat.
var cert = PdfCertificate.FromPfx("certificate.pfx", "password");
var signer = new PdfSigner();
signer.Sign(doc, cert);
doc.Save("signed.pdf");Handtekeningen verifiëren
var signer = new PdfSigner();
bool valid = signer.Verify(doc);
Console.WriteLine($"Signature valid: {valid}");Ondertekenen met een visueel uiterlijk
signer.SignWithAppearance(doc, cert, signatureField, appearance);Certificaatbeheer
PdfCertificate laadt certificaten uit PFX‑bestanden of DER‑gecodeerde bestanden.
// From PFX
var cert = PdfCertificate.FromPfx("cert.pfx", "password");
// From DER files (certificate + key)
var cert2 = PdfCertificate.FromDerFiles("cert.der", "key.der");Certificaatgebaseerde encryptie
CertificateEncryptionOptions versleutelt een PDF zodat alleen opgegeven certificaathouders deze kunnen openen.
var options = new CertificateEncryptionOptions(cert);Aangepaste beveiligingshandlers
Implementeer ICustomSecurityHandler voor aangepaste encryptie- en decryptielogica.
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; }
}Informatie over handtekeningalgoritme
SignatureAlgorithmInfo beschrijft het algoritme dat wordt gebruikt in een bestaande handtekening.
var info = new SignatureAlgorithmInfo("SHA256withRSA");
Console.WriteLine(info.ToString());Tips en best practices
- Onderteken documenten altijd als laatste stap — elke wijziging na ondertekening maakt de handtekening ongeldig.
- Gebruik PFX‑bestanden met sterke wachtwoorden voor certificaatopslag.
- Verifieer handtekeningen na het laden van een document om manipulatie te detecteren.
- Certificaatgebaseerde versleuteling vereist het openbare sleutelcertificaat van de ontvanger.
- Implementeer
ICustomSecurityHandleralleen wanneer standaardversleuteling onvoldoende is.
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
| Handtekening wordt als ongeldig weergegeven | Document gewijzigd na ondertekening | Onderteken opnieuw nadat alle wijzigingen zijn voltooid |
| PFX laden mislukt | Verkeerd wachtwoord of beschadigd bestand | Controleer het wachtwoord en de bestandsintegriteit |
| Versleuteling verhindert openen | Eigenaarwachtwoord niet opgegeven | Gebruik het juiste eigenaar- of gebruikerswachtwoord |
FAQ
Welke ondertekeningsalgoritmen worden ondersteund?
RSA met SHA-256, SHA-384 en SHA-512 wordt algemeen ondersteund. De beschikbare algoritmen hangen af van het sleuteltype van het certificaat.
Kan ik meerdere handtekeningen toevoegen?
Ja. Elke handtekening wordt toegepast op een apart handtekeningveld in het document.
Vereist ondertekening een commercieel certificaat?
Nee. Zelfondertekende certificaten werken voor testen. Voor productie, gebruik een
certificaat van een vertrouwde CA.
API-referentieoverzicht
| Class / Method | Description |
|---|---|
PdfSigner | PDF-documenten ondertekenen en verifiëren |
PdfSigner.Sign | Een digitale handtekening toepassen |
PdfSigner.Verify | Handtekeninggeldigheid controleren |
PdfSigner.SignWithAppearance | Ondertekenen met een visueel handtekeningsveld |
PdfCertificate | Certificaatlader voor PFX- en DER-formaten |
PdfCertificate.FromPfx | Laden vanuit een PFX-bestand met wachtwoord |
PdfCertificate.FromDerFiles | Laden vanuit DER-gecodeerde bestanden |
CertificateEncryptionOptions | Certificaatgebaseerde PDF-versleuteling |
ICustomSecurityHandler | Interface voor aangepaste versleuteling/ontsleuteling |
EncryptionParameters | Parameters die worden doorgegeven aan aangepaste beveiligingshandlers |
SignatureAlgorithmInfo | Metadata over het algoritme van een handtekening |