Sécurité et signatures

Sécurité et signatures

Aspose.PDF FOSS for .NET supports PDF digital signatures, certificate-based cryptage, et manipulateurs de sécurité personnalisés. utilisez PdfSigner Pour signer flux de travail et PdfCertificate pour la gestion du certificat.


Signature d’un document

PdfSigner appliquer une signature numérique à un PDF en utilisant un certificat PFX.

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

Vérification des signatures

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

Signature avec une apparence visuelle

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

Certificat de gestion

PdfCertificate Carte des certificats de fichiers PFX ou des ficher codés par DER.

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

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

Crédit de certificat

CertificateEncryptionOptions Encrypter un PDF pour ne pas avoir de certificat spécifié Les propriétaires peuvent l’ouvrir.

var options = new CertificateEncryptionOptions(cert);

Travailleurs de sécurité personnalisés

Implémentation ICustomSecurityHandler Pour la logique de cryptage et de décryption personnalisée.

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

Informations algorithmiques de signature

SignatureAlgorithmInfo Il décrit l’algorithme utilisé dans une signature existante.

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

Conseils et meilleures pratiques

  • Toujours signer les documents comme la dernière étape - toute modification après la signature annule la firme.
  • Utilisez des fichiers PFX avec de fortes mots de passe pour le stockage du certificat.
  • Vérifiez les signatures après avoir chargé un document pour détecter la tampering.
  • La cryptage basée sur le certificat nécessite un certificate public clé du destinataire.
  • Implémentation ICustomSecurityHandler Seulement lorsque le cryptage standard est insuffisant.

Les problèmes communs

ProblèmeCauseFixé
La signature est invalideModification après la signatureRe-signation après que toutes les modifications sont complètes
Le chargement de PFX échouePassword incorrect ou fichier corrompuVérifier le mot de passe et l’intégrité du fichier
Le cryptage empêche l’ouverturePassword de propriétaire non fourniUtilisez le bon propriétaire ou mot de passe utilisateur

FAQ

Quels algorithmes de signature sont soutenus ?

RSA avec SHA-256, S HA-384, et SHO-512 sont généralement soutenus. les algorithmes disponibles dépendent du type clé du certificat.

Puis-je ajouter plusieurs signatures ?

Oui. Chaque signature est appliquée à un champ de signatures distinct dans le document.

La signature nécessite-t-elle un certificat commercial ?

Non. Les certificats auto-signés travaillent pour les tests. Pour la production, utilisez un certificat d’une CA confiée.


Le résumé de référence API

Classes / MéthodesDescription
PdfSignerSignature et vérification des documents PDF
PdfSigner.SignAppliquer une signature numérique
PdfSigner.VerifyVérifier la validité de la signature
PdfSigner.SignWithAppearanceSignature avec un champ de signature visuelle
PdfCertificateCarrier de certificat pour les formats PFX et DER
PdfCertificate.FromPfxTélécharger un fichier PFX avec mot de passe
PdfCertificate.FromDerFilesRéserver des fichiers codés
CertificateEncryptionOptionsCrédit de certificat PDF
ICustomSecurityHandlerInterface pour la cryptage / décryption personnalisée
EncryptionParametersParamètres passés à des opérateurs de sécurité personnalisés
SignatureAlgorithmInfoLes méta-détails sur l’algorithme d’une signature

Voir aussi

 Français