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
ICustomSecurityHandlernur, wenn die Standardverschlüsselung nicht ausreicht.
Häufige Probleme
| Problem | Ursache | Lösung |
|---|---|---|
| Signatur wird als ungültig angezeigt | Dokument nach der Signatur geändert | Erneut signieren, nachdem alle Änderungen abgeschlossen sind |
| PFX-Laden schlägt fehl | Falsches Passwort oder beschädigte Datei | Passwort und Dateiintegrität überprüfen |
| Verschlüsselung verhindert das Öffnen | Owner-Passwort nicht angegeben | Verwenden 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 / Method | Description |
|---|---|
PdfSigner | PDF-Dokumente signieren und verifizieren |
PdfSigner.Sign | Eine digitale Signatur anwenden |
PdfSigner.Verify | Signaturgültigkeit prüfen |
PdfSigner.SignWithAppearance | Mit einem visuellen Signaturfeld signieren |
PdfCertificate | Zertifikatslader für PFX- und DER-Formate |
PdfCertificate.FromPfx | Aus einer PFX-Datei mit Passwort laden |
PdfCertificate.FromDerFiles | Aus DER-codierten Dateien laden |
CertificateEncryptionOptions | Zertifikatsbasierte PDF-Verschlüsselung |
ICustomSecurityHandler | Schnittstelle für benutzerdefinierte Verschlüsselung/Entschlüsselung |
EncryptionParameters | Parameter, die an benutzerdefinierte Sicherheits-Handler übergeben werden |
SignatureAlgorithmInfo | Metadaten zum Algorithmus einer Signatur |