Sikkerhed og Signaturer

Sikkerhed og Signaturer

Sikkerhed og Signaturer

Aspose.PDF FOSS for .NET understøtter PDF digitale signaturer, certifikatbaseret kryptering og brugerdefinerede sikkerhedshåndterere. Brug PdfSigner til signeringsarbejdsgange og PdfCertificate til certifikatstyring.


Underskrift af et dokument

PdfSigner anvender en digital signatur på en PDF ved hjælp af et PFX‑certifikat.

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

Verificering af signaturer

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

Signering med en visuel fremtoning

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

Certifikatstyring

PdfCertificate indlæser certifikater fra PFX-filer eller DER‑kodede filer.

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

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

Certifikatbaseret kryptering

CertificateEncryptionOptions krypterer en PDF så kun specificerede certifikatindehavere kan åbne den.

var options = new CertificateEncryptionOptions(cert);

Tilpassede sikkerhedshåndterere

Implementér ICustomSecurityHandler for brugerdefineret krypterings- og dekrypteringslogik.

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

Information om signaturalgoritme

SignatureAlgorithmInfo beskriver algoritmen, der bruges i en eksisterende signatur.

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

Tips og bedste praksis

  • Signer altid dokumenter som det sidste trin — enhver ændring efter signering ugyldiggør signaturen.
  • Brug PFX-filer med stærke adgangskoder til certifikatlagring.
  • Verificer signaturer efter indlæsning af et dokument for at opdage manipulation.
  • Certifikatbaseret kryptering kræver modtagerens offentlige nøglecertifikat.
  • Implementer ICustomSecurityHandler kun når standardkryptering er utilstrækkelig.

Almindelige problemer

ProblemÅrsagLøsning
Signatur vises som ugyldigDokumentet ændret efter signeringUnderskriv igen, når alle ændringer er afsluttet
PFX-indlæsning mislykkesForkert adgangskode eller beskadiget filBekræft adgangskoden og filens integritet
Kryptering forhindrer åbningEjers adgangskode ikke angivetBrug den korrekte ejer- eller brugeradgangskode

Ofte stillede spørgsmål

Hvilke signaturalgoritmer understøttes?

RSA med SHA-256, SHA-384 og SHA-512 understøttes almindeligt. De tilgængelige algoritmer afhænger af certifikatets nøgletype.

Kan jeg tilføje flere signaturer?

Ja. Hver signatur anvendes på et separat signaturfelt i dokumentet.

Kræver signering et kommercielt certifikat?

Nej. Selvsignerede certifikater fungerer til test. Til produktion skal du bruge et certifikat fra en betroet CA.


API-referencens oversigt

Class / MethodDescription
PdfSignerSignér og verificér PDF-dokumenter
PdfSigner.SignAnvend en digital signatur
PdfSigner.VerifyKontrollér signaturens gyldighed
PdfSigner.SignWithAppearanceSignér med et visuelt signaturfelt
PdfCertificateCertifikatindlæser til PFX- og DER-formater
PdfCertificate.FromPfxIndlæs fra en PFX-fil med adgangskode
PdfCertificate.FromDerFilesIndlæs fra DER-kodede filer
CertificateEncryptionOptionsCertifikatbaseret PDF-kryptering
ICustomSecurityHandlerInterface til brugerdefineret kryptering/dekryptering
EncryptionParametersParametre, der videregives til brugerdefinerede sikkerhedshåndterere
SignatureAlgorithmInfoMetadata om en signaturs algoritme

Se også

 Dansk