Seguretat i signatures

Seguretat i signatures

Aspose.PDF FOSS for .NET admet signatures digitals PDF, xifratge basat en certificats i gestors de seguretat personalitzats. Utilitzeu PdfSigner per a fluxos de treball de signatura i PdfCertificate per a la gestió de certificats.


Signar un document

PdfSigner aplica una signatura digital a un PDF utilitzant un certificat PFX.

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

Verificació de signatures

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

Signatura amb una aparença visual

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

Gestió de certificats

PdfCertificate carrega certificats des de fitxers PFX o fitxers codificats en DER.

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

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

Xifratge basat en certificats

CertificateEncryptionOptions xifra un PDF perquè només els titulars del certificat especificat puguin obrir‑lo.

var options = new CertificateEncryptionOptions(cert);

Gestors de seguretat personalitzats

Implementa ICustomSecurityHandler per a la lògica d’encriptació i desencriptació personalitzada.

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

Informació de l’algoritme de signatura

SignatureAlgorithmInfo descriu l’algoritme utilitzat en una signatura existent.

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

Consells i bones pràctiques

  • Sempre signa els documents com a pas final — qualsevol modificació després de signar invalida la signatura.
  • Utilitza fitxers PFX amb contrasenyes fortes per a l’emmagatzematge de certificats.
  • Verifica les signatures després de carregar un document per detectar manipulacions.
  • L’encriptació basada en certificats requereix el certificat de clau pública del destinatari.
  • Implementa ICustomSecurityHandler només quan l’encriptació estàndard sigui insuficient.

Problemes comuns

ProblemaCausaSolució
La signatura es mostra com a invàlidaDocument modificat després de signarTorna a signar després que totes les modificacions estiguin completes
La càrrega del PFX fallaContrasenya incorrecta o fitxer corrupteVerifica la contrasenya i la integritat del fitxer
Xifratge impedeix l’oberturaContrasenya del propietari no proporcionadaUtilitza la contrasenya correcta del propietari o de l’usuari

Preguntes freqüents

Quins algorismes de signatura són compatibles?

RSA amb SHA-256, SHA-384 i SHA-512 són habitualment compatibles. Els algoritmes disponibles depenen del tipus de clau del certificat.

Puc afegir diverses signatures?

Sí. Cada signatura s’aplica a un camp de signatura separat al document.

La signatura requereix un certificat comercial?

No. Els certificats autofirmats funcionen per a proves. Per a producció, utilitzeu un certificat d’una CA de confiança.


Resum de la referència de l’API

Class / MethodDescription
PdfSignerSignar i verificar documents PDF
PdfSigner.SignAplicar una signatura digital
PdfSigner.VerifyComprovar la validesa de la signatura
PdfSigner.SignWithAppearanceSignar amb un camp de signatura visual
PdfCertificateCarregador de certificats per a formats PFX i DER
PdfCertificate.FromPfxCarregar des d’un fitxer PFX amb contrasenya
PdfCertificate.FromDerFilesCarregar des de fitxers codificats en DER
CertificateEncryptionOptionsXifratge PDF basat en certificats
ICustomSecurityHandlerInterfície per a xifratge/desxifratge personalitzat
EncryptionParametersParàmetres passats als gestors de seguretat personalitzats
SignatureAlgorithmInfoMetadades sobre l’algoritme d’una signatura

Vegeu també

 Català