Elektronische Siegel Urkunden: Difference between revisions
Abertoglia (talk | contribs) |
Abertoglia (talk | contribs) |
||
Line 261: | Line 261: | ||
== Forward Secure Seals & Signatures == |
== Forward Secure Seals & Signatures == |
||
Lorem Ipsum |
|||
[[File:FSS01.png]] |
|||
Lorem Ipsum |
|||
[[File:FSS02.png]] |
|||
== Keyless Digital Seals & Signatures == |
== Keyless Digital Seals & Signatures == |
Revision as of 18:06, 2 December 2023
Aufbau eines PDFs
Um elektronische Signaturen und auch Siegel zu verstehen, sind zu aller erst Grundlagen notwendig wie überhaupt ein PDF (Portable Document Format) aufgebaut ist und wie es gelesen wird. Um dies zu verstehen wird ein PDF im Texteditor geöffnet.
Als Beispiel haben wir das PDF "Hallo Welt":
%PDF-1.7
1 0 obj
<< /Title (Hallo Welt) >>
endobj
2 0 obj
<< /Type /Catalog
/Pages 3 0 R
>>
endobj
3 0 obj
<< /Type /Pages
/MediaBox [0 0 595 842]
/Resources
<< /Font << /F1 4 0 R >>
/ProcSet [/PDF /Text]
>>
/Kids [5 0 R]
/Count 1
>>
endobj
4 0 obj
<< /Type /Font
/Subtype /Type1
/BaseFont /Helvetica
/Encoding /WinAnsiEncoding
>>
endobj
5 0 obj
<< /Type /Page
/Parent 3 0 R
/Contents 6 0 R
>>
endobj
6 0 obj
<< /Length 41
>>
stream
/F1 48 Tf
BT
72 746 Td
(Hallo Welt) Tj
ET
endstream
endobj
xref
0 7
0000000000 65535 f
0000000009 00000 n
0000000050 00000 n
0000000102 00000 n
0000000268 00000 n
0000000374 00000 n
0000000443 00000 n
trailer
<< /Size 7
/Root 2 0 R
>>
startxref
534
%%EOF
Dabei lesen wir ein PDF von unten nach oben beginnend mit dem Trailer
trailer
<< /Size 7
/Root 2 0 R
>>
startxref
534
%%EOF
Dabei erkennt der PDF-Reader unter Root, dass 2 0 das erste bearbeitete Objekt ist und unter startxref, dass er die xref-Tabelle beim Byte 534 findet.
Von dort aus greift das Programm dann auf die xref-Tabelle zu:
xref
0 7
0000000000 65535 f
0000000009 00000 n
0000000050 00000 n
0000000102 00000 n
0000000268 00000 n
0000000374 00000 n
0000000443 00000 n
Hier sieht man zuerst die Anzahl der Objekte im Dokument und anschließend das Byteoffset. Das f am Ende der Zeile steht dafür, dass es nicht angezeigt wird und das n, dass das Objekt sichtbar ist.
2 0 obj
<< /Type /Catalog
/Pages 3 0 R
>>
endobj
Die Objekte bestehen aus den tatsächlichen Inhalten des PDFs und referenzieren auf spätere Objekte.
Allgemeines zu elektronische Siegel und Signaturen
Versiegelung durch QR-Code
Als Beispiel sehen wir uns die Studienbescheinigung der HU Berlin an. Dort gibt es eine Möglichkeit per QR-Code auf die Verifizierungsseite zu kommen. Die Verifizierungsseite wird dabei auf dem Dokument selbst angegeben.
Die Vorteile davon sind die einfache Einführung des Systems und die vielfältige Einsetzbarkeit. Allerdings ist es auch anfällig für:
- Sybil-Angriffe
- Verifizierungsprozess ist umständlich und erfordert externe Ressourcen
- Verifizierung erfolgt online
Versiegelung durch elektronische Signatur
Angriffe
QR-Code Hijacking
Wir führen eine Sybil-Attacke, indem wir ein fiktives Dokument im Namen der Humboldt Universität erstellen die uns unwahre Leistungen akkreditiert. Dafür erstellen wir zuerst ein Dokument, das einer Bescheinigung der Humboldt Universität entspricht, mit einen QR-Code die zu unserer Webseite hinführt. Unsere Webseite ähnelt dem Aussehen der Humboldt Verifizierungsseite und ist durch ausgeklügelte URL-Gestaltung schwer von einer echte Webseite der Humboldt zu unterscheiden. Zum Ausprobieren dürfen Sie gerne folgende PDF öffnen:
File:StudienbescheinigungDruck.pdf
Incremental Saving Angriff
PDFs haben eine Funktion des Inkrementellen Updates, wobei die PDF am Ende der Datei ein Body Update, eine neue XRef Tabelle und einen neuen Trailer erhält. Leider haben wir es nicht geschafft, ein solches Update nachzubauen. Dennoch teilen wir hier unseren Versuch:
%PDF-1.7
1 0 obj
<< /Title (Hallo Welt) >>
endobj
2 0 obj
<< /Type /Catalog
/Pages 3 0 R
>>
endobj
3 0 obj
<< /Type /Pages
/MediaBox [0 0 595 842]
/Resources
<< /Font << /F1 4 0 R >>
/ProcSet [/PDF /Text]
>>
/Kids [5 0 R]
/Count 1
>>
endobj
4 0 obj
<< /Type /Font
/Subtype /Type1
/BaseFont /Helvetica
/Encoding /WinAnsiEncoding
>>
endobj
5 0 obj
<< /Type /Page
/Parent 3 0 R
/Contents 6 0 R
>>
endobj
6 0 obj
<< /Length 41
>>
stream
/F1 48 Tf
BT
72 746 Td
(Hallo Welt) Tj
ET
endstream
endobj
xref
0 7
0000000000 65535 f
0000000009 00000 n
0000000050 00000 n
0000000102 00000 n
0000000268 00000 n
0000000374 00000 n
0000000443 00000 n
trailer
<< /Size 7
/Info 1 0 R
/Root 2 0 R
>>
startxref
534
%%EOF
8 0 obj
<<
/Length 41
>>
stream
/F1 48 Tf
BT
72 746 Td
(Hello World) Tj
ET
endstream
endobj
xref
0 8
0000000000 65535 f
0000000009 00000 n
0000000050 00000 n
0000000102 00000 n
0000000268 00000 n
0000000374 00000 n
0000000443 00000 n
0000000535 00000 n
trailer
<< /Size 9
/Info 8 0 R
/Root 2 0 R
>>
startxref
923
%%EOF
Diese Funktion ermöglicht es, das Dokument zu ändern. Es gibt PDF-Reader die nicht erkennen, dass nicht das ganze Dokument signiert ist.
Signature Wrapping Angriff
Durch diese Funktion ist es möglich ein signiertes PDF zu verändern, ohne die Signatur zu zerstören.
Hier wird zuerst die Byte-Range c geändert. Danach wird eine neue xref-Tabelle mit den neuen Objekten erstellt. Dabei wichtig ist, dass die Tabelle das gleiche ByteOffset behält. Am Ende fügt man die bösartigen Objekte am Ende der Datei ein.
Universal Signature Forging
Direkter Angriff auf der Signatur, sein Inhalt und seine Byte Range. Dabei werden Werte geändert oder wegelassen.
Langzeit Archivierung von elektronische Siegel und Signaturen
Forward Secure Seals & Signatures
Keyless Digital Seals & Signatures
Wünsche für einen digitalen Siegel
Wir hätten gerne eine automatische Verifizierung, Schutz vor Sybil Angriffen und eine unabhängige Verifizierung wie TLS/SSL Zertifikate.
Wir haben uns dabei ein Siegel ausgedacht: Unser Siegel besteht aus einer Datenbank, in welcher die Namen der Institutionen mit deren Verifikationswebseiten verknüpft sind, und einer elektronischen Signatur, welche den Namen der Institution, des Empfängers, der Dokumentart und einen Verfikationscode beinhaltet.
META-Daten: - Empfänger - Institution - Dokumentenart
Ein Beispiel: