Bezbednost i potpisi

Bezbednost i potpisi

Bezbednost i potpisi

Aspose.PDF FOSS za .NET podržava digitalne potpise PDF‑a, enkripciju zasnovanu na sertifikatima i prilagođene rukovaoce sigurnošću. Koristite PdfSigner za radne tokove potpisivanja i PdfCertificate za upravljanje sertifikatima.


Potpisivanje dokumenta

PdfSigner primenjuje digitalni potpis na PDF koristeći PFX sertifikat.

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

Verifikacija potpisa

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

Potpisivanje sa vizuelnim izgledom

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

Upravljanje sertifikatima

PdfCertificate učitava sertifikate iz PFX fajlova ili DER‑kodiranih fajlova.

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

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

Шифровање засновано на сертификату

CertificateEncryptionOptions šifrira PDF tako da ga mogu otvoriti samo određeni nosioci sertifikata.

var options = new CertificateEncryptionOptions(cert);

Prilagođeni rukovaoci sigurnosti

Implementirajte ICustomSecurityHandler za prilagođenu logiku enkripcije i dekripcije.

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

Informacije o algoritmu potpisa

SignatureAlgorithmInfo opisuje algoritam koji se koristi u postojećem potpisu.

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

Saveti i najbolje prakse

  • Uvek potpisujte dokumente kao poslednji korak — svaka izmena nakon potpisivanja poništava potpis.
  • Koristite PFX fajlove sa jakim lozinkama za čuvanje sertifikata.
  • Verifikujte potpise nakon učitavanja dokumenta kako biste otkrili manipulacije.
  • Šifrovanje zasnovano na sertifikatu zahteva javni ključ sertifikata primaoca.
  • Implementirajte ICustomSecurityHandler samo kada standardno šifrovanje nije dovoljno.

Česti problemi

IssueCauseFix
Potpis se prikazuje kao nevažećiDokument je izmenjen nakon potpisivanjaPonovo potpišite nakon što su sve izmene završene
Učitavanje PFX‑a ne uspevaPogrešna lozinka ili oštećena datotekaProverite lozinku i integritet datoteke
Šifrovanje sprečava otvaranjeVlasnička lozinka nije navedenaKoristite ispravnu vlasničku ili korisničku lozinku

ČPP

Koji algoritmi potpisa su podržani?

RSA sa SHA-256, SHA-384 i SHA-512 je široko podržan. Dostupni algoritmi zavise od tipa ključa sertifikata.

Могу ли да додам више потписа?

Da. Svaki potpis se primenjuje na zasebno polje za potpis u dokumentu.

Da li potpisivanje zahteva komercijalni sertifikat?

Ne. Samopotpisani sertifikati rade za testiranje. Za produkciju, koristite
sertifikat od pouzdanog CA.


Sažetak API referencije

Class / MethodDescription
PdfSignerPotpisivanje i verifikacija PDF dokumenata
PdfSigner.SignPrimena digitalnog potpisa
PdfSigner.VerifyProvera validnosti potpisa
PdfSigner.SignWithAppearancePotpisivanje vizuelnim poljem za potpis
PdfCertificateUčitavač sertifikata za PFX i DER formate
PdfCertificate.FromPfxUčitavanje iz PFX fajla sa lozinkom
PdfCertificate.FromDerFilesUčitavanje iz DER‑kodiranih fajlova
CertificateEncryptionOptionsPDF šifrovanje zasnovano na sertifikatu
ICustomSecurityHandlerInterfejs za prilagođeno šifrovanje/dešifrovanje
EncryptionParametersParametri prosleđeni prilagođenim rukovaocima sigurnosti
SignatureAlgorithmInfoMetapodaci o algoritmu potpisa

Види такође

 Српски