Säkerhet och signaturer

Säkerhet och signaturer

Säkerhet och signaturer

Aspose.PDF FOSS för .NET stöder PDF‑digitala signaturer, certifikatbaserad kryptering och anpassade säkerhetshanterare. Använd PdfSigner för signeringsarbetsflöden och PdfCertificate för certifikathantering.


Signera ett dokument

PdfSigner tillämpar en digital signatur på en PDF med ett PFX‑certifikat.

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

Verifiera signaturer

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

Signering med ett visuellt utseende

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

Certifikathantering

PdfCertificate laddar certifikat från PFX-filer eller DER‑kodade filer.

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

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

Certifikatbaserad kryptering

CertificateEncryptionOptions krypterar en PDF så att endast angivna certifikatinnehavare kan öppna den.

var options = new CertificateEncryptionOptions(cert);

Anpassade säkerhetshanterare

Implementera ICustomSecurityHandler för anpassad krypterings- och 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 signaturalgoritm

SignatureAlgorithmInfo beskriver algoritmen som används i en befintlig signatur.

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

Tips och bästa praxis

  • Signera alltid dokument som sista steg — alla ändringar efter signering ogiltigförklarar signaturen.
  • Använd PFX-filer med starka lösenord för certifikatlagring.
  • Verifiera signaturer efter att ett dokument har laddats för att upptäcka manipulation.
  • Certifikatbaserad kryptering kräver mottagarens offentliga nyckelcertifikat.
  • Implementera ICustomSecurityHandler endast när standardkryptering är otillräcklig.

Vanliga problem

ProblemOrsakÅtgärd
Signaturen visas som ogiltigDokumentet har ändrats efter signeringSignera igen när alla ändringar är slutförda
PFX-inläsning misslyckasFel lösenord eller skadad filVerifiera lösenordet och filens integritet
Kryptering hindrar öppningÄgarlösenord ej angivetAnvänd rätt ägarlösenord eller användarlösenord

Vanliga frågor

Vilka signaturalgoritmer stöds?

RSA med SHA-256, SHA-384 och SHA-512 stöds vanligtvis. De tillgängliga algoritmerna beror på certifikatets nyckeltyp.

Kan jag lägga till flera signaturer?

Ja. Varje signatur tillämpas på ett separat signaturfält i dokumentet.

Kräver signering ett kommersiellt certifikat?

Nej. Självsignerade certifikat fungerar för testning. För produktion, använd ett certifikat från en betrodd CA.


API-referenssammanfattning

Class / MethodDescription
PdfSignerSignera och verifiera PDF-dokument
PdfSigner.SignApplicera en digital signatur
PdfSigner.VerifyKontrollera signaturens giltighet
PdfSigner.SignWithAppearanceSignera med ett visuellt signaturfält
PdfCertificateCertifikatladdare för PFX- och DER-format
PdfCertificate.FromPfxLäs in från en PFX-fil med lösenord
PdfCertificate.FromDerFilesLäs in från DER-kodade filer
CertificateEncryptionOptionsCertifikatbaserad PDF-kryptering
ICustomSecurityHandlerGränssnitt för anpassad kryptering/dekryptering
EncryptionParametersParametrar som skickas till anpassade säkerhetshanterare
SignatureAlgorithmInfoMetadata om signaturens algoritm

Se även

 Svenska