Sicherheit und Signaturen

Sicherheit und Signaturen

Sicherheit und Signaturen

Aspose.PDF FOSS for .NET unterstützt PDF‑digitale Signaturen, zertifikatsbasierte Verschlüsselung und benutzerdefinierte Sicherheits‑Handler. Verwenden Sie PdfSigner für Signatur‑Workflows und PdfCertificate für Zertifikatsmanagement.


Ein Dokument unterschreiben

PdfSigner wendet eine digitale Signatur auf ein PDF unter Verwendung eines PFX‑Zertifikats an.

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

Signaturen überprüfen

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

Signieren mit einer visuellen Darstellung

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

Zertifikatsverwaltung

PdfCertificate lädt Zertifikate aus PFX-Dateien oder DER‑kodierten Dateien.

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

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

Zertifikatsbasierte Verschlüsselung

CertificateEncryptionOptions verschlüsselt ein PDF, sodass nur bestimmte Zertifikatsinhaber es öffnen können.

var options = new CertificateEncryptionOptions(cert);

Benutzerdefinierte Sicherheits‑Handler

Implementieren Sie ICustomSecurityHandler für benutzerdefinierte Verschlüsselungs‑ und Entschlüsselungslogik.

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

Informationen zum Signaturalgorithmus

SignatureAlgorithmInfo beschreibt den Algorithmus, der in einer bestehenden Signatur verwendet wird.

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

Tipps und bewährte Verfahren

  • Dokumente immer als letzten Schritt signieren — jede Änderung nach der Signatur macht die Signatur ungültig.
  • Verwenden Sie PFX-Dateien mit starken Passwörtern zur Zertifikatspeicherung.
  • Überprüfen Sie Signaturen nach dem Laden eines Dokuments, um Manipulationen zu erkennen.
  • Zertifikatbasierte Verschlüsselung erfordert das öffentliche Schlüsselzertifikat des Empfängers.
  • Implementieren Sie ICustomSecurityHandler nur, wenn die Standardverschlüsselung nicht ausreicht.

Häufige Probleme

ProblemUrsacheLösung
Signatur wird als ungültig angezeigtDokument nach der Signatur geändertErneut signieren, nachdem alle Änderungen abgeschlossen sind
PFX-Laden schlägt fehlFalsches Passwort oder beschädigte DateiPasswort und Dateiintegrität überprüfen
Verschlüsselung verhindert das ÖffnenOwner-Passwort nicht angegebenVerwenden Sie das korrekte Owner- oder User-Passwort

FAQ

Welche Signaturalgorithmen werden unterstützt?

RSA mit SHA-256, SHA-384 und SHA-512 werden allgemein unterstützt. Die verfügbaren Algorithmen hängen vom Schlüsseltyp des Zertifikats ab.

Kann ich mehrere Signaturen hinzufügen?

Ja. Jede Signatur wird auf ein separates Signaturfeld im Dokument angewendet.

Erfordert das Signieren ein kommerzielles Zertifikat?

Nein. Selbstsignierte Zertifikate funktionieren für Tests. Für die Produktion verwenden Sie ein Zertifikat von einer vertrauenswürdigen CA.


API-Referenzübersicht

Class / MethodDescription
PdfSignerPDF-Dokumente signieren und verifizieren
PdfSigner.SignEine digitale Signatur anwenden
PdfSigner.VerifySignaturgültigkeit prüfen
PdfSigner.SignWithAppearanceMit einem visuellen Signaturfeld signieren
PdfCertificateZertifikatslader für PFX- und DER-Formate
PdfCertificate.FromPfxAus einer PFX-Datei mit Passwort laden
PdfCertificate.FromDerFilesAus DER-codierten Dateien laden
CertificateEncryptionOptionsZertifikatsbasierte PDF-Verschlüsselung
ICustomSecurityHandlerSchnittstelle für benutzerdefinierte Verschlüsselung/Entschlüsselung
EncryptionParametersParameter, die an benutzerdefinierte Sicherheits-Handler übergeben werden
SignatureAlgorithmInfoMetadaten zum Algorithmus einer Signatur

Siehe auch

 Deutsch