Kryptografische Details

Kryptografische Details

Zertifikatsicherheit umfasst mehrere Verschlüsselungsschritte, die sich verschiedener Algorithmen und Schlüssellängen bedienen. Für die beschriebenen Schritte siehe die Abbildung unten.

Schritt 1: Public-Key-Verschlüsselung für CMS und Key-Wrap

Bei Public-Key-Verschlüsselung wird ein zufällig erzeugter Content-Chiffrierschlüssel (Content Encryption Key, CEK) erzeugt, wobei sich die Einzelheiten bei RSA- und ECC-Empfängerzertifikaten unterscheiden. Verschiedene Empfänger können eine Mischung aus RSA- und ECC-Schlüsseln sowie RSA-Schlüssellängen oder ECC-Kurven verwenden.

Wenn das Zertifikat des Empfängers einen öffentlichen Schlüssel für den RSA-Algorithmus (RFC 5652) enthält, wird dieser Schlüssel verwendet, um den CEK zu verschlüsseln. Die unterstützten RSA-Schlüssellängen sind nicht in der PDF-Referenz festgelegt, sondern hängen von der Acrobat-Version ab.

Wenn das Zertifikat des Empfängers einen öffentlichen ECC-Schlüssel (RFC 5753) enthält, werden das Schlüsselvereinbarungsschema Elliptic Curve Diffie-Hellman (ECDH) und der öffentliche Schlüssel im Empfängerzertifikat verwendet, um einen weiteren temporären Schlüssel für den Key-Chiffrierschlüssel (KEK) abzuleiten. Ein symmetrischer Verschlüsselungsalgorithmus, der so genannte Key-Wrap-Algorithmus, wird dann zur Verschlüsselung des Content-Chiffrierschlüssels (CEK) mit dem Key-Chiffrierschlüssel (Key Encryption Key, KEK) verwendet. Acrobat XI/DC verwendet als Key-Wrap-Algorithmus AES-128 oder AES-256. Die unterstützten ECC-Kurven sind nicht in der PDF-Referenz festgelegt, sondern hängen von der Acrobat-Version ab.

Schritt 2: CMS »Content«-Verschlüsselung

Der Content-Chiffrierschlüssel wird verwendet, um das PDF-Schlüsselmaterial (nicht den eigentlichen Schlüssel selbst) mit einem symmetrischen Algorithmus zu verschlüsseln, wodurch die CMS-Nutzdaten verschlüsselt werden. Bei der PDF-Zertifikatsicherheit enthält der CMS-Content keine PDF-Dokumentdaten, sondern Verschlüsselungsmaterial, aus dem der endgültige Chiffrierschlüssel für PDF-Objekte abgeleitet wird.

Für den CMS-Content kann eine Reihe von Algorithmen für die Verschlüsselung gewählt werden. Acrobat 7-X verwenden immer Triple-DES, Acrobat XI/DC verwenden AES-128. Da die Nutzdatenverschlüsselung nur einmal benötigt wird, unabhängig von der Anzahl der Empfänger, hängt die Wahl des Algorithmus nicht von den Empfängerzertifikaten ab.

Schritt 3: PDF-Verschlüsselung

Der PDF-Chiffrierschlüssel wird auf PDF-Objekte angewendet, was die Daten zur Anzeige des Dokuments liefert. Dieser Schritt wird beim Kennwortschutz identisch durchgeführt.

Der symmetrische Algorithmus und die Schlüssellänge für die Verschlüsselung von PDF-Objekten werden in der PDF-Referenz festgelegt und entsprechen einer Teilmenge der für den Kennwortschutz verwendeten (siehe Tabelle 5.1). Zur Verschlüsselung aller Objekte im PDF-Dokument wird der selbe symmetrische Algorithmus verwendet. Lediglich der Algorithmus für Schritt 3 kann in Acrobat ausgewählt werden (siehe Abbildung 6.2, unten). Bei der mit Acrobat 7 und Acrobat 9 eingeführten starken Verschlüsselung wird der PDF-Verschlüsselungsalgorithmus AES-128 bzw. AES-256 verwendet.

Die CMS-Struktur  EnvelopedData enthält chiffrierte Schlüssel für alle Empfänger mit den gleichen Berechtigungen. PDF-Dokumente enthalten nur ein oder mehrere CMS-Objekte (eines für jeden Satz von Berechtigungen).

Algorithmen und Schlüssellängen

Die Tabelle fasst Algorithmen und Schlüssellängen für diverse PDF- und Acrobat-Versionen zusammen. Die Algorithmen RC4 und AES-128 werden in PDF 2.0 als veraltet deklariert.

PDF- und CMS-Verschlüsselungsalgorithmen für Zertifikatsicherheit und Unterstützung in Acrobat
PDF- und Acrobat- version Schritt 1: Public-Key-Algorithmus für CMS

Schritt 2: CMS »Content«
-Verschlüsselung

Schritt 3: PDF- Verschlüsselung
PDF 1.4 (Acrobat 5) Acrobat 6 und höher: 2048-Bit RSA Acrobat 6-X: Triple-DES
Acrobat XI/DC: 128-Bit AES
128-Bit RC4 (in PDF 2.0 als veraltet deklariert)
PDF 1.6 (Acrobat 7) Acrobat 7 und höher: bis 4096-Bit RSA
Acrobat 8 und höher: bis 8192-Bit RSA1
Acrobat 7-X: Triple-DES
Acrobat XI/DC: 128-Bit AES
128-Bit AES (in PDF 2.0 als veraltet deklariert)
PDF 1.7ext3 (Acrobat 9)

Acrobat 9 und höher: bis 8192-Bit RSA2,3
Acrobat XI/DC: ECC mit den Kurven P-256/P-384/P-5214

Acrobat XI/DC: 256-Bit AES 256-Bit AES


1) RSA-8192-Schlüssel erfordern Acrobat X oder höher und werden von Acrobat auf macOS nicht unterstützt.
2) Bei der Entschlüsselung von Dokumenten mit einer ID im Windows-Zertifikatspeicher unterstützt Acrobat nur Schlüssel, bei denen die Länge ein Vielfaches von 8 Bit beträgt.
3) RSA mit OAEP-Padding wird in Acrobat DC und darunter nicht unterstützt.
4) Acrobat DC 2017.012.20093 Continuous track oder höher erforderlich, siehe Inkompatibilität von Acrobat beim Einsatz von ECC-Empfängerzertifikaten.