iText et signatures numériques

Clone of Signatures électroniques pour les documents PDF

Signez numériquement vos documents PDF afin de garantir le non-reniement, l’intégrité et l’authenticité.

Introduction

Signatures numériques

Les signatures numériques sont la solution pour remplacer les signatures à l’encre humide lors de l’utilisation de documents numériques. Ce concept a été largement adopté et s’intègre bien dans la spécification PDF. C’est l’équivalent de l’apposition d’un cachet de notaire sur un document, qui garantit que les signatures sont légitimes et que le document n’a pas été modifié.

La signature électronique capture essentiellement l’intention de la personne de conclure le contrat, et est utilisée pour chiffrer les informations et confirmer la validité du document signé.

Les principaux avantages de l’utilisation de signatures numériques sont l’automatisation et la sécurisation de votre flux de travail de documents numériques, ce qui vous permet de gagner du temps, d’économiser de l’argent et d’éviter les maux de tête.

Pourquoi utiliser iText et les signatures numériques ?

Imaginez un document ayant une valeur juridique. Un tel document peut contenir des informations importantes sur des droits et des obligations, auquel cas vous devez vous assurer de son authenticité. Vous ne voulez pas que les gens nient les engagements qu’ils ont pris par écrit.

En outre, ce document doit probablement être envoyé à différentes parties pour qu’elles le consultent et le conservent. À différentes étapes du flux de travail et à différents moments, le document peut être modifié, que ce soit volontairement (par exemple, pour ajouter une signature supplémentaire), involontairement (par exemple, en raison d’une erreur de transmission) ou délibérément si quelqu’un souhaite falsifier le document original. 

Pendant des siècles, nous avons tenté de résoudre ce problème à l’aide d’une signature dite « à l’encre humide » sur le papier.

Aujourd’hui, nous pouvons utiliser les signatures numériques pour garantir :

  • l’intégrité du document : nous voulons être sûrs que le document n’a pas été modifié à une étape du flux de travail ;
  • l’authenticité du document : nous voulons être sûrs que l’auteur du document est bien celui que nous pensons (et non pas quelqu’un d’autre) ;
  • le non-reniement : nous voulons être sûrs que l’auteur ne peut pas nier sa qualité d’auteur ;
  • le moment de la signature : nous voulons être sûrs de la date et de l’heure auxquelles un document a été signé.

La norme ISO-32000-2 introduit également un concept publié pour la première fois dans la norme PAdES-4 :

  • la validation à long terme (long-term validation, LTV) : nous voulons être sûrs que l’intégrité, l’authenticité, le non-reniement et le moment de la signature peuvent toujours être validés à long terme.

La combinaison de ces cinq concepts vous permet d’avoir la certitude que vos documents sont sécurisés et corrects tout au long de votre flux de travail. 

SIGNATURE NUMÉRIQUE : le format PDF est clairement compatible avec les signatures électroniques intégrées depuis très longtemps. Les signatures numériques peuvent offrir une série de capacités utiles, allant de la protection contre la falsification à l’authentification en passant par la révocation. 

PROCESSUS D’APPROBATION PLUS RAPIDES ET SÉCURITÉ : presque tous les pays évoluent vers un cadre juridique qui reconnaît, dans certaines conditions, la même valeur aux preuves numériques qu’aux documents papier. Bien que les gouvernements n’avancent pas tous au même rythme, de nombreux systèmes juridiques recommandent le format PDF.

Signatures numériques dans les PDF

Quels sont les concepts des signatures numériques ?

En général, les signatures numériques sont utilisées dans les documents PDF par les personnes et les organisations pour indiquer qui a vérifié le document à une date/heure précise et pour montrer que le document n’a pas été modifié depuis sa signature.

Il peut y avoir une ou plusieurs signatures dans un document PDF en fonction des spécifications et du processus associé à la signature d’un contrat. La signature numérique proprement dite fait partie des métadonnées invisibles, hachées et chiffrées, intégrées dans le fichier avec un certificat.

En plus de la signature numérique en soi, le fichier PDF peut également comprendre une représentation visible facultative de la signature. Une photo de la signature ou un résumé du certificat de signature peuvent être inclus dans la partie visible de la signature.

Digital signatures icon
Hashing

Using a Cryptographic hash function to turn an arbitrary block of data into a fixed-size block of data.  

Digital signatures icon
Encryption

  • Central Idea
    • Transform message before sending
    • Transformed message is not readable
    • Receiver transforms message back to readable format
  • Transforms are done using mathematical functions
  • Symmetric Encryption
    • Depends on shared key
  • Asymmetric Encryption
    • Participants have a Private and a Public Key
    • Only Public Key is shared

Digital signatures icon
Certificate Authorities

  • A certificate authority (CA) is an entity maintaining and issuing security certificates and public keys that are used in a public network for protected communication. Together with the registration authority (RA), the CA is part of the public key infrastructure (PKI), which verifies the information provided by an electronic certificate requester. If the information is correct, the certificate is verified.

  • Before you use the public key of someone to verify a signature, you need proof that it truly belongs to them. The role of the CA is to issue digital certificates to individuals within a PKI program that shows that a particular public key belongs to a specific individual–so you can claim that digital certificates bind the identity of the individual to their public key. This bond is secured by the CA using the CA's own private key with a digital signature.

  • There are many CAs worldwide, and they can be either enterprise-based, industry-based, national (e.g. linked to e-ID card schemes), or publicly available online. In the case of PDF documents, a list of default CAs is distributed with PDF applications which support digital signatures. 

Universal Benefits of PDF/UA

While the biggest stakeholders for accessibility are the over 1 billion people with disabilities worldwide, PDF/UA can benefit both users with and without disabilities. Just think about how frustrating it can be to read an inaccessible PDF on your mobile phone. The structural requirements of PDF/UA allow for better machine reading capabilities, that can allow for efficient reflow of a document on diverging screen sizes, but can also improve your PDF to HTML conversion, SEO (Search Engine Optimization), and everyday text-to-speech applications. You can read more about the benefits for all users in our blog.

Image
Responsive PDF

Accessibility Regulations

Does anybody still need convincing? Well, providing accessible documents is not just a moral consideration, but one often mandated by law. One such law addressing the accessibility of all publicly available content, is the Americans with Disabilities Act (ADA). In 2020 alone, approximately 11,000 ADA lawsuits related to accessibility of private businesses were filed, of which 3,500 relate to digital accessibility. With settlements for individual plaintiffs often adding up to thousands of dollars, inaccessible documents can become a major liability for your organization, and not just in the USA (ADA and Section 508).

The EU has the EU Web Accessibility Directive and the European Accessibility Act (EAA), The UK has the Disability Discrimination Act and Canada has several such as AODA. And the list goes on, so be sure to check for your local regulations in our free ebook “PDF/UA: the inclusive document format”.

Image
pdfua regulations

Make PDF/UA compliance scalable with iText

Text offers you solutions to achieve PDF/UA compliance in a scalable way, both within the open-source iText 7 Core library and the visual designer iText DITO.

iText 7 Library/SDK

iText 7 Core provides developers with the necessary tools to automate the creation of accessible PDFs in both Java and .NET (C#). With just a few lines of code you can meet the following PDF/UA requirements in your workflows:

  • Create and manipulate Tagged PDF
  • Add a language specifier
  • Set the title of the document to display in the title bar
  • Embed fonts
  • Set alt text

Code example for creating a PDF/UA compliant document

package com.itextpdf.samples.sandbox.pdfua; import com.itextpdf.io.font.PdfEncodings; import com.itextpdf.io.image.ImageDataFactory; import com.itextpdf.kernel.font.PdfFont; import com.itextpdf.kernel.font.PdfFontFactory; import com.itextpdf.kernel.font.PdfFontFactory.EmbeddingStrategy; import com.itextpdf.kernel.geom.PageSize; import com.itextpdf.kernel.pdf.PdfDocument; import com.itextpdf.kernel.pdf.PdfDocumentInfo; import com.itextpdf.kernel.pdf.PdfString; import com.itextpdf.kernel.pdf.PdfVersion; import com.itextpdf.kernel.pdf.PdfViewerPreferences; import com.itextpdf.kernel.pdf.PdfWriter; import com.itextpdf.kernel.pdf.WriterProperties; import com.itextpdf.kernel.xmp.XMPException; import com.itextpdf.layout.Document; import com.itextpdf.layout.element.Image; import com.itextpdf.layout.element.List; import com.itextpdf.layout.element.ListItem; import com.itextpdf.layout.element.Paragraph; import java.io.File; import java.io.FileInputStream; import java.io.IOException; public class PdfUA { public static final String DEST = "./target/sandbox/pdfua/pdf_ua.pdf"; public static final String DOG = "./src/main/resources/img/dog.bmp"; public static final String FONT = "./src/main/resources/font/FreeSans.ttf"; public static final String FOX = "./src/main/resources/img/fox.bmp"; public static void main(String[] args) throws Exception { File file = new File(DEST); file.getParentFile().mkdirs(); new PdfUA().manipulatePdf(DEST); } public void manipulatePdf(String dest) throws IOException { PdfDocument pdfDoc = new PdfDocument(new PdfWriter(dest, new WriterProperties().addUAXmpMetadata().setPdfVersion(PdfVersion.PDF_1_7))); Document document = new Document(pdfDoc, PageSize.A4.rotate()); //TAGGED PDF //Make document tagged pdfDoc.setTagged(); //PDF/UA //Set document metadata pdfDoc.getCatalog().setViewerPreferences(new PdfViewerPreferences().setDisplayDocTitle(true)); pdfDoc.getCatalog().setLang(new PdfString("en-US")); PdfDocumentInfo info = pdfDoc.getDocumentInfo(); info.setTitle("English pangram"); Paragraph p = new Paragraph(); //PDF/UA //Embed font PdfFont font = PdfFontFactory.createFont(FONT, PdfEncodings.WINANSI, EmbeddingStrategy.PREFER_EMBEDDED); p.setFont(font); p.add("The quick brown "); Image img = new Image(ImageDataFactory.create(FOX)); //PDF/UA //Set alt text img.getAccessibilityProperties().setAlternateDescription("Fox"); p.add(img); p.add(" jumps over the lazy "); img = new Image(ImageDataFactory.create(DOG)); //PDF/UA //Set alt text img.getAccessibilityProperties().setAlternateDescription("Dog"); p.add(img); document.add(p); p = new Paragraph("\n\n\n\n\n\n\n\n\n\n\n\n").setFont(font).setFontSize(20); document.add(p); List list = new List().setFont(font).setFontSize(20); list.add(new ListItem("quick")); list.add(new ListItem("brown")); list.add(new ListItem("fox")); list.add(new ListItem("jumps")); list.add(new ListItem("over")); list.add(new ListItem("the")); list.add(new ListItem("lazy")); list.add(new ListItem("dog")); document.add(list); document.close(); } }
using System; using System.IO; using iText.IO.Font; using iText.IO.Image; using iText.Kernel.Font; using iText.Kernel.Geom; using iText.Kernel.Pdf; using iText.Layout; using iText.Layout.Element; namespace iText.Samples.Sandbox.Pdfua { public class PdfUA { public static readonly string DEST = "results/sandbox/pdfua/pdf_ua.pdf"; public static readonly String DOG = "../../../resources/img/dog.bmp"; public static readonly String FONT = "../../../resources/font/FreeSans.ttf"; public static readonly String FOX = "../../../resources/img/fox.bmp"; public static void Main(String[] args) { FileInfo file = new FileInfo(DEST); file.Directory.Create(); new PdfUA().ManipulatePdf(DEST); } private void ManipulatePdf(String dest) { PdfDocument pdfDoc = new PdfDocument(new PdfWriter(dest, new WriterProperties().AddUAXmpMetadata().SetPdfVersion (PdfVersion.PDF_1_7))); Document document = new Document(pdfDoc, PageSize.A4.Rotate()); //TAGGED PDF //Make document tagged pdfDoc.SetTagged(); //PDF/UA //Set document metadata pdfDoc.GetCatalog().SetViewerPreferences(new PdfViewerPreferences().SetDisplayDocTitle(true)); pdfDoc.GetCatalog().SetLang(new PdfString("en-US")); PdfDocumentInfo info = pdfDoc.GetDocumentInfo(); info.SetTitle("English pangram"); Paragraph p = new Paragraph(); //PDF/UA //Embed font PdfFont font = PdfFontFactory.CreateFont(FONT, PdfEncodings.WINANSI, PdfFontFactory.EmbeddingStrategy.PREFER_EMBEDDED); p.SetFont(font); p.Add("The quick brown "); Image img = new Image(ImageDataFactory.Create(FOX)); //PDF/UA //Set alt text img.GetAccessibilityProperties().SetAlternateDescription("Fox"); p.Add(img); p.Add(" jumps over the lazy "); img = new Image(ImageDataFactory.Create(DOG)); //PDF/UA //Set alt text img.GetAccessibilityProperties().SetAlternateDescription("Dog"); p.Add(img); document.Add(p); p = new Paragraph("\n\n\n\n\n\n\n\n\n\n\n\n").SetFont(font).SetFontSize(20); document.Add(p); List list = new List().SetFont(font).SetFontSize(20); list.Add(new ListItem("quick")); list.Add(new ListItem("brown")); list.Add(new ListItem("fox")); list.Add(new ListItem("jumps")); list.Add(new ListItem("over")); list.Add(new ListItem("the")); list.Add(new ListItem("lazy")); list.Add(new ListItem("dog")); document.Add(list); document.Close(); } } }

iText DITO

With iText DITO you can visually design PDF templates and bind them with your data to simplify the process of creating and maintaining your documents. iText DITO will automatically validate your template against PDF/UA requirements where possible and suggest actions to make your template suitable for generating compliant documents.

itext dito pdfua wizard

Contact

Vous avez d'autres questions ?

Nous y répondrons avec plaisir. Contactez-nous et nous reviendrons vers vous sous peu.

Contactez-nous
Restez à jour

Rejoignez plus de 11 000 abonnés et devenez un expert iText PDF en vous tenant au courant de nos nouveaux produits, mises à jour, conseils, solutions techniques et événements.

Abonnez-vous