Saugumas ir parašai

Saugumas ir parašai

Saugumas ir parašai

Aspose.PDF FOSS for .NET palaiko PDF skaitmeninius parašus, sertifikatais pagrįstą šifravimą ir pasirinktinius saugumo tvarkytuvus. Naudokite PdfSigner parašų darbo srautams ir PdfCertificate sertifikatų valdymui.


Dokumento pasirašymas

PdfSigner prideda skaitmeninį parašą PDF dokumentui naudojant PFX sertifikatą.

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

Parašų tikrinimas

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

Pasirašymas su vizualine išvaizda

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

Sertifikatų valdymas

PdfCertificate įkelia sertifikatus iš PFX failų arba DER koduotų failų.

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

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

Sertifikatu pagrįstas šifravimas

CertificateEncryptionOptions šifruoja PDF, kad jį galėtų atidaryti tik nurodyti sertifikato turėtojai.

var options = new CertificateEncryptionOptions(cert);

Pritaikytos saugumo tvarkyklės

Įgyvendinkite ICustomSecurityHandler pritaikytai šifravimo ir dešifravimo logikai.

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

Parašo algoritmo informacija

SignatureAlgorithmInfo aprašo algoritmą, naudojamą esamo parašo.

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

Patarimai ir geriausios praktikos

  • Visada pasirašykite dokumentus kaip paskutinį žingsnį — bet koks pakeitimas po pasirašymo anuliuoja parašą.
  • Naudokite PFX failus su stipriais slaptažodžiais sertifikatų saugojimui.
  • Patikrinkite parašus įkėlus dokumentą, kad aptiktumėte manipuliavimą.
  • Sertifikatu pagrįstas šifravimas reikalauja gavėjo viešojo rakto sertifikato.
  • Įgyvendinkite ICustomSecurityHandler tik tada, kai standartinis šifravimas nepakankamas.

Dažnos problemos

IssueCauseFix
Parašas rodomas kaip neteisingasDokumentas modifikuotas po pasirašymoPasirašykite iš naujo, kai visi pakeitimai baigti
PFX įkėlimas nepavykstaNeteisingas slaptažodis arba sugadintas failasPatikrinkite slaptažodį ir failo vientisumą
Šifravimas neleidžia atidarytiNenurodytas savininko slaptažodisNaudokite teisingą savininko arba naudotojo slaptažodį

DUK

Kokie parašo algoritmai palaikomi?

RSA su SHA-256, SHA-384 ir SHA-512 dažniausiai palaikoma. Prieinami algoritmai priklauso nuo sertifikato rakto tipo.

Ar galiu pridėti kelis parašus?

Taip. Kiekvienas parašas yra pritaikytas atskiram parašo laukui dokumente.

Ar pasirašymas reikalauja komercinio sertifikato?

Ne. Savarankiškai pasirašyti sertifikatai tinka testavimui. Gamyboje naudokite sertifikatą iš patikimo CA.


API nuorodų santrauka

Class / MethodDescription
PdfSignerPasirašyti ir patikrinti PDF dokumentus
PdfSigner.SignTaikyti skaitmeninį parašą
PdfSigner.VerifyPatikrinti parašo galiojimą
PdfSigner.SignWithAppearancePasirašyti naudojant vizualų parašo lauką
PdfCertificateSertifikatų įkėlėjas PFX ir DER formatams
PdfCertificate.FromPfxĮkelti iš PFX failo su slaptažodžiu
PdfCertificate.FromDerFilesĮkelti iš DER koduotų failų
CertificateEncryptionOptionsSertifikatu pagrįstas PDF šifravimas
ICustomSecurityHandlerSąsaja pasirinktiniam šifravimui/dešifravimui
EncryptionParametersParametrai, perduodami pasirinktiniams saugumo tvarkyklėms
SignatureAlgorithmInfoMetaduomenys apie parašo algoritmą

Žr. taip pat

 Lietuvių