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
ICustomSecurityHandlernomés quan l’encriptació estàndard sigui insuficient.
Problemes comuns
| Problema | Causa | Solució |
|---|---|---|
| La signatura es mostra com a invàlida | Document modificat després de signar | Torna a signar després que totes les modificacions estiguin completes |
| La càrrega del PFX falla | Contrasenya incorrecta o fitxer corrupte | Verifica la contrasenya i la integritat del fitxer |
| Xifratge impedeix l’obertura | Contrasenya del propietari no proporcionada | Utilitza 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 / Method | Description |
|---|---|
PdfSigner | Signar i verificar documents PDF |
PdfSigner.Sign | Aplicar una signatura digital |
PdfSigner.Verify | Comprovar la validesa de la signatura |
PdfSigner.SignWithAppearance | Signar amb un camp de signatura visual |
PdfCertificate | Carregador de certificats per a formats PFX i DER |
PdfCertificate.FromPfx | Carregar des d’un fitxer PFX amb contrasenya |
PdfCertificate.FromDerFiles | Carregar des de fitxers codificats en DER |
CertificateEncryptionOptions | Xifratge PDF basat en certificats |
ICustomSecurityHandler | Interfície per a xifratge/desxifratge personalitzat |
EncryptionParameters | Paràmetres passats als gestors de seguretat personalitzats |
SignatureAlgorithmInfo | Metadades sobre l’algoritme d’una signatura |