Securitate și semnături

Securitate și semnături

Securitate și semnături

Aspose.PDF FOSS pentru .NET acceptă semnături digitale PDF, criptare bazată pe certificate și manipulatoare de securitate personalizate. Utilizați PdfSigner pentru fluxurile de lucru de semnare și PdfCertificate pentru gestionarea certificatelor.


Semnarea unui document

PdfSigner aplică o semnătură digitală unui PDF utilizând un certificat PFX.

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

Verificarea semnăturilor

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

Semnare cu o aparență vizuală

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

Gestionarea certificatelor

PdfCertificate încarcă certificate din fișiere PFX sau fișiere codificate DER.

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

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

Criptare bazată pe certificat

CertificateEncryptionOptions criptează un PDF astfel încât doar deținătorii de certificat specificați să îl poată deschide.

var options = new CertificateEncryptionOptions(cert);

Manipulatoare de securitate personalizate

Implementați ICustomSecurityHandler pentru logica de criptare și decriptare personalizată.

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

Informații despre algoritmul de semnătură

SignatureAlgorithmInfo descrie algoritmul utilizat într-o semnătură existentă.

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

Sfaturi și bune practici

  • Semnați întotdeauna documentele ca ultim pas — orice modificare după semnare invalidează semnătura.
  • Utilizați fișiere PFX cu parole puternice pentru stocarea certificatelor.
  • Verificați semnăturile după încărcarea unui document pentru a detecta manipularea.
  • Criptarea bazată pe certificat necesită certificatul cheii publice al destinatarului.
  • Implementați ICustomSecurityHandler numai când criptarea standard este insuficientă.

Probleme comune

IssueCauseFix
Semnătura apare ca invalidăDocument modificat după semnareSemnați din nou după ce toate modificările sunt finalizate
Încărcarea PFX eșueazăParolă greșită sau fișier coruptVerificați parola și integritatea fișierului
Criptarea împiedică deschidereaParola de proprietar nu a fost furnizatăUtilizați parola corectă de proprietar sau de utilizator

Întrebări frecvente

Ce algoritmi de semnătură sunt acceptaţi?

RSA cu SHA-256, SHA-384 și SHA-512 sunt susținute în mod obișnuit. Algoritmii disponibili depind de tipul cheii certificatului.

Pot adăuga mai multe semnături?

Da. Fiecare semnătură este aplicată unui câmp de semnătură separat în document.

Semnarea necesită un certificat comercial?

Nu. Certificatele auto-semnat funcționează pentru testare. Pentru producție, folosiți un certificat de la o autoritate de certificare de încredere.


Sumar al referinței API

Class / MethodDescription
PdfSignerSemnați și verificați documente PDF
PdfSigner.SignAplicați o semnătură digitală
PdfSigner.VerifyVerificați valabilitatea semnăturii
PdfSigner.SignWithAppearanceSemnați cu un câmp de semnătură vizuală
PdfCertificateÎncărcător de certificate pentru formatele PFX și DER
PdfCertificate.FromPfxÎncărcați dintr-un fișier PFX cu parolă
PdfCertificate.FromDerFilesÎncărcați din fișiere codificate DER
CertificateEncryptionOptionsCriptare PDF bazată pe certificat
ICustomSecurityHandlerInterfață pentru criptare/decriptare personalizată
EncryptionParametersParametri transmiși către manipulatoare de securitate personalizate
SignatureAlgorithmInfoMetadate despre algoritmul unei semnături

Vezi și

 Română