iText und digitale Unterschriften

Clone of Elektronische Unterschriften für PDF-Dokumente

Digitales Signieren Ihrer PDF-Dokumente zum Schutz der Nichtabstreitbarkeit, Integrität und Authentizität.

Einführung

Digitale Unterschriften

Digitale Unterschriften sind die Lösung, um Originalunterschriften bei der Verwendung digitaler Dokumente zu ersetzen. Dieses Konzept wurde weitgehend übernommen und ist gut in die PDF-Spezifikation integriert. Es ist vergleichbar mit dem Stempel eines öffentlichen Notars in einem Dokument, der sicherstellt, dass die Unterschriften legitim sind und das Dokument nicht verändert wurde.

Die elektronische Unterschrift erfasst im Wesentlichen die Absicht des Einzelnen, den Vertrag abzuschließen, und die digitale Unterschrift wird verwendet, um die Informationen zu verschlüsseln und die Gültigkeit des unterschriebenen Dokuments zu bestätigen.

Zu den Hauptvorteilen der Verwendung digitaler Unterschriften gehört die Automatisierung und Sicherung Ihres digitalen Dokumenten-Workflows, wodurch Sie Zeit, Geld und Kopfschmerzen sparen.

Warum iText & Digitale Unterschriften verwenden?

Stellen Sie sich ein Dokument vor, das rechtlichen Wert hat. Ein solches Dokument kann wichtige Informationen über Rechte und Pflichten enthalten; in diesem Fall müssen Sie seine Authentizität sicherstellen. Es sollte nicht vorkommen, dass die Menschen die Verpflichtungen leugnen, die sie aufgeschrieben haben.

Darüber hinaus muss dieses Dokument wahrscheinlich an verschiedene Teilnehmer verschickt, von diesen eingesehen und gespeichert werden. An verschiedenen Stellen im Workflow, zu verschiedenen Zeitpunkten, kann das Dokument verändert werden; sei es freiwillig (z. B. um eine zusätzliche Unterschrift hinzuzufügen), unfreiwillig (z. B. aufgrund eines Übertragungsfehlers) oder absichtlich, wenn jemand eine Fälschung aus dem Originaldokument erstellen will. 

Seit Jahrhunderten versuchen wir, dieses Problem zu lösen, indem wir eine so genannte „Originalunterschrift“ auf Papier bringen.

Heutzutage können wir mit digitalen Unterschriften Folgendes sicherstellen:

  • Die Integrität des Dokuments— wir wollen die Gewissheit, dass das Dokument nicht irgendwo im Workflow verändert wurde, 
  • Die Authentizität des Dokuments— wir wollen die Gewissheit, dass der Autor des Dokuments derjenige ist, für den wir ihn halten (und nicht jemand anders),
  • Nichtabstreitbarkeit— wir wollen die Gewissheit, dass der Autor seine Urheberschaft nicht abstreiten kann,
  • Der Zeitpunkt der Unterschrift – wir wollen Gewissheit über das Datum und die Uhrzeit der Unterschrift eines Dokuments,

ISO-32000-2 führt auch ein Konzept ein, das erstmals in PAdES-4 veröffentlicht wurde:

  • Langzeitvalidierung (LTV): Wir wollen die Gewissheit, dass die Integrität, Authentizität, Nichtabstreitbarkeit und der Zeitpunkt der Unterschrift noch langfristig validiert werden können.

Durch die Kombination dieser fünf Konzepte können Sie sich darauf verlassen, dass Ihre Dokumente während des gesamten Workflows sicher und korrekt sind. 

DIGITALES SIGNIEREN: PDF ist seit sehr langer Zeit explizit mit eingebetteten elektronischen Unterschriften kompatibel. Digitale Unterschriften können eine Reihe von wertvollen Funktionen bieten, vom Manipulationsschutz bis hin zur Authentifizierung und zum Widerruf. 

SCHNELLERE GENEHMIGUNGSPROZESSE UND SICHERHEIT: Fast alle Länder bewegen sich auf einen rechtlichen Rahmen zu, der digitalen Beweisen unter bestimmten Bedingungen den gleichen Wert beimisst wie Papierdokumenten. Auch wenn nicht alle Regierungen das gleiche Tempo vorlegen, wird das PDF-Format von vielen Rechtssystemen gefördert.

Digitale Unterschriften in PDF

Was sind die Konzepte der digitalen Unterschriften?

Normalerweise werden digitale Unterschriften von Einzelpersonen und Organisationen in PDF-Dokumenten verwendet, um zu zeigen, wer das Dokument an einem bestimmten Datum/Zeitpunkt geprüft hat und dass das Dokument seit der Unterschrift nicht aktualisiert wurde.

In einem einzigen PDF-Dokument können eine oder mehrere Unterschriften enthalten sein, je nach den Spezifikationen und dem mit der Unterschrift eines Vertrags verbundenen Prozess. Die eigentliche digitale Unterschrift ist ein Teil der ungesehenen, gehashten und verschlüsselten Metadaten, die mit einem Zertifikat in die Datei eingebettet sind.

Neben der eigentlichen digitalen Unterschrift kann die PDF-Datei optional auch eine sichtbare Darstellung der Unterschrift enthalten. Im sichtbaren Teil der Unterschrift kann ein Unterschriftsfoto und/oder eine Zusammenfassung des Signaturzertifikats enthalten sein.

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

Kontakt

Haben Sie noch weitere Fragen? 

Gerne beantworten wir Ihre Fragen. Kontaktieren Sie uns und wir werden uns in Kürze mit Ihnen in Verbindung setzen.

Bitte kontaktieren Sie uns
Auf dem Laufenden bleiben

Melden Sie sich mit mehr als 11.000 Abonnenten an und werden Sie ein iText PDF-Experte, indem Sie sich über unsere neuen Produkte, Updates, Tipps, technischen Lösungen und Veranstaltungen informieren.

Abonniere jetzt