Les documents PDF sont utilisés pour partager toutes sortes d’informations, y compris celles de nature confidentielle ou ayant une valeur juridique, comme un contrat. Afin de s’assurer qu’un document n’a pas été modifié par quelqu’un d’autre que son auteur, et de vérifier que l’auteur est bien celui que l’on attend et pas quelqu’un d’autre, les signatures numériques sont nécessaires.
Vue d’ensemble
Une signature numérique dans un PDF est l’équivalent d’une signature à l’encre sur un document papier, mais elle est beaucoup plus sécurisée. Cette information est placée à l’intérieur d’un document, et elle permet aux lecteurs de PDF de vérifier deux choses importantes :
Que le document n’a pas été modifié par une personne inconnue.
Que la personne qui prétend être l’auteur du document est bien celle qui l’a créé.
Comment l’intégrité d’un document PDF est vérifiée
Imaginez que quelqu’un intercepte un document PDF contenant un accord contractuel important et tente de le modifier pour faire apparaître des termes différents. Les signatures numériques dans les documents PDF utilisent le concept de hachage pour empêcher un tel scénario. Un hachage est une fonction mathématique qui convertit un bloc de données arbitraire en une chaîne de taille fixe. Le résultat de cette fonction de hachage est toujours identique, à condition que le bloc de données n’ait pas été modifié.
Lorsque vous signez un document PDF, cette fonction de hachage est appliquée à presque tout le contenu du document, puis stockée à l’intérieur de celui-ci. Cependant, cela ne résout pas complètement le problème de l’intégrité du document. Que se passe-t-il si une personne malveillante devine la fonction de hachage utilisée, modifie le document PDF, puis y stocke le nouveau hachage ? Pour résoudre ce deuxième problème, nous avons besoin d’un chiffrement asymétrique.
Chiffrement asymétrique
Si vous voulez envoyer un message à une autre personne et que vous ne voulez pas qu’il tombe entre de mauvaises mains, vous pourriez utiliser un algorithme pour le chiffrer et dire à l’autre personne d’utiliser le même algorithme pour le déchiffrer. Mais cela nécessite que les deux parties soient capables de communiquer au préalable, de manière sûre et secrète, la clé de chiffrement qu’elles vont utiliser.
Au contraire, vous pouvez utiliser un chiffrement asymétrique, ce qui signifie que l’expéditeur et le destinataire utilisent des clés différentes. L’expéditeur chiffre le message à l’aide d’une clé censée être privée (la « clé privée ») et partage l’autre clé (la « clé publique ») avec le récepteur.
Dès lors, deux choses doivent se produire. Premièrement, le récepteur doit être en mesure de déchiffrer le message à l’aide de cette clé publique. Deuxièmement, personne ne doit avoir accès à la clé privée, sauf l’expéditeur. Si ces choses sont vraies, alors les deux parties peuvent être sûres que le message a été créé par l’expéditeur et non par quelqu’un d’autre.
Comment valider un document signé numériquement avec PSPDFKit
Valider un PDF signé avec PSPDFKit en utilisant un ensemble de certificats de confiance est facile. Créez une instance d’un PSPDFSignatureValidator et initialisez-la avec le PSPDFSignatureFormElement que vous souhaitez valider. Appelez ensuite la méthode verifySignatureWithTrustedCertificates.
La variable signatureStatus contiendra des informations sur la signature numérique, comme sa validité ou non, ou sa date de création.
Comment signer un document
Signer un document PDF est également facile.
D’abord, vous devez créer une instance d’un keystore PKCS#12 (PSPDFPKCS12) qui contient votre clé privée et votre certificat. Après cela, initialisez une instance d’un PSPDFPKCS12Signer avec ce keystore.
Enregistrez ce signataire avec le PSPDFSignatureManager global et signez le document.
Vous pouvez intégrer le signedDocument à l’intérieur d’un PSPDFViewController pour l’afficher comme bon vous semble.
Fusionner PDF
Découvrez comment fusionner vos fichiers PDF en un rien de temps en cliquant sur par ici pour fusionner un pdf