Sikkerhet og signaturer

Sikkerhet og signaturer

Sikkerhet og signaturer

Aspose.PDF FOSS for .NET støtter PDF digitale signaturer, sertifikatbasert kryptering og tilpassede sikkerhetshåndterere. Bruk PdfSigner for signeringsarbeidsflyter og PdfCertificate for sertifikatadministrasjon.


Signering av et dokument

PdfSigner påfører en digital signatur på en PDF ved bruk av et PFX-sertifikat.

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

Verifisere signaturer

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

Signering med et visuelt utseende

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

Sertifikatadministrasjon

PdfCertificate laster inn sertifikater 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");

Kryptering basert på sertifikat

CertificateEncryptionOptions krypterer en PDF slik at kun angitte sertifikatinhavere kan åpne den.

var options = new CertificateEncryptionOptions(cert);

Tilpassede sikkerhetshåndterere

Implementer ICustomSecurityHandler for egendefinert krypterings- og dekrypteringslogikk.

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

Informasjon om signaturalgoritme

SignatureAlgorithmInfo beskriver algoritmen som brukes i en eksisterende signatur.

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

Tips og beste praksis

  • Signer alltid dokumenter som siste steg — enhver endring etter signering ugyldiggjør signaturen.
  • Bruk PFX-filer med sterke passord for sertifikatlagring.
  • Verifiser signaturer etter lasting av et dokument for å oppdage manipulering.
  • Sertifikatbasert kryptering krever mottakerens offentlige nøkkelsertifikat.
  • Implementer ICustomSecurityHandler kun når standardkryptering er utilstrekkelig.

Vanlige problemer

ProblemÅrsakLøsning
Signatur vises som ugyldigDokumentet er endret etter signeringSigner på nytt etter at alle endringer er fullført
PFX-lastingen mislykkesFeil passord eller korrupte filBekreft passordet og filintegriteten
Kryptering hindrer åpningEierpassord ikke oppgittBruk riktig eier- eller brukerpassord

Ofte stilte spørsmål

Hvilke signaturalgoritmer støttes?

RSA med SHA-256, SHA-384 og SHA-512 støttes vanligvis. De tilgjengelige algoritmene avhenger av sertifikatets nøkkeltype.

Kan jeg legge til flere signaturer?

Ja. Hver signatur blir brukt på et eget signaturfelt i dokumentet.

Krever signering et kommersielt sertifikat?

Nei. Selvsignerte sertifikater fungerer for testing. For produksjon, bruk et sertifikat fra en pålitelig CA.


API-referansesammendrag

Class / MethodDescription
PdfSignerSignere og verifisere PDF-dokumenter
PdfSigner.SignPåføre en digital signatur
PdfSigner.VerifyKontrollere signaturens gyldighet
PdfSigner.SignWithAppearanceSignere med et visuelt signaturfelt
PdfCertificateSertifikatlaster for PFX- og DER-formater
PdfCertificate.FromPfxLaste fra en PFX-fil med passord
PdfCertificate.FromDerFilesLaste fra DER-kodede filer
CertificateEncryptionOptionsSertifikatbasert PDF-kryptering
ICustomSecurityHandlerGrensesnitt for egendefinert kryptering/dekryptering
EncryptionParametersParametere som sendes til egendefinerte sikkerhetshåndterere
SignatureAlgorithmInfoMetadata om en signaturs algoritme

Se også

 Norsk