Beveiliging en Handtekeningen

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 ICustomSecurityHandler alleen wanneer standaardversleuteling onvoldoende is.

Veelvoorkomende problemen

ProbleemOorzaakOplossing
Handtekening wordt als ongeldig weergegevenDocument gewijzigd na ondertekeningOnderteken opnieuw nadat alle wijzigingen zijn voltooid
PFX laden misluktVerkeerd wachtwoord of beschadigd bestandControleer het wachtwoord en de bestandsintegriteit
Versleuteling verhindert openenEigenaarwachtwoord niet opgegevenGebruik 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 / MethodDescription
PdfSignerPDF-documenten ondertekenen en verifiëren
PdfSigner.SignEen digitale handtekening toepassen
PdfSigner.VerifyHandtekeninggeldigheid controleren
PdfSigner.SignWithAppearanceOndertekenen met een visueel handtekeningsveld
PdfCertificateCertificaatlader voor PFX- en DER-formaten
PdfCertificate.FromPfxLaden vanuit een PFX-bestand met wachtwoord
PdfCertificate.FromDerFilesLaden vanuit DER-gecodeerde bestanden
CertificateEncryptionOptionsCertificaatgebaseerde PDF-versleuteling
ICustomSecurityHandlerInterface voor aangepaste versleuteling/ontsleuteling
EncryptionParametersParameters die worden doorgegeven aan aangepaste beveiligingshandlers
SignatureAlgorithmInfoMetadata over het algoritme van een handtekening

Zie ook

 Nederlands