Sicherheit digitaler Unterschriften
Die Fortsetzung des Märchens "What You See Is What You Sign"

Ein Computer ist ein hochkomplexes Gerät, das aus vielen verschiedenen Komponenten besteht. Es bietet dem Nutzer ein Interface, häufig eine grafische Oberfläche, auf der der Nutzer verschiedene Aufgaben erledigen kann. Der Nutzer muss dazu nicht direkt mit den einzelnen Komponenten, der Hardware des Computers, kommunizieren. Die Hauptaufgabe eines Computers ist somit die Abstraktion.
Für digitale Unterschriften ist Abstraktion aber nicht in jeder Hinsicht erwünscht. Denn eine ganz zentrale Frage, die sich beim Umgang mit digitalen Unterschriften stellt, ist: Woher weiß der Nutzer, ob er das unterschreibt, was er sieht? Ein Computer zeigt dem Nutzer nicht seinen Speicherinhalt an und selbst wenn er das täte, könnte es der Mensch nicht richtig lesen. Der Mensch bekommt also lediglich eine Darstellung des Speichers präsentiert, in dessen Form sie für den Menschen lesbar ist. Was tatsächlich innerhalb des PCs geschieht, bleibt dem Menschen verborgen und das ist auch gut so. Denn die Abstraktion, die durch den Computer gegeben wird, nimmt dem Menschen viel Arbeit ab. Bei digitalen Unterschriften ist es sehr wichtig, dass der Mensch, der unterschreiben möchte, genau weiß, was er unterschreibt. Er muss sich also sicher sein, dass die Ansicht des Dokuments, die er auf dem Bildschirm sieht, dem entspricht, was er am Ende unterschreibt.
Dieses Konzept wird in der Literatur auch "What You See Is What You Sign" (WYSIWYS) genannt. Schon im Jahr 2001 befassten sich Langweg, Spalka und Cremers in ihrer Arbeit "The Fairytale Of ‚What You See Is What You Sign‘" mit dieser These [1]. Die Forscher zeigten, dass ein vermeintlich sicheres Programm zum digitalen Signieren nicht allein für Sicherheit sorgt. Ob eine digitale Signatur sicher ist, kommt auch darauf an, ob die Umgebung, in der sie erstellt wurde, sicher ist. Dieser Artikel wird zeigen, dass sich heute noch dieselben Hindernisse wie damals dem WYSIWYS-Konzept in den Weg stellen. Beispielsweise können Schadprogramme wie Trojaner immer noch die Kommunikation zwischen Smartcard und dem Computer stören und verändern.
Stand der Technik
Für die Erzeugung von digitalen Unterschriften wird asymmetrische Kryptographie verwendet. Die heutzutage verwendeten kryptographischen Algorithmen wie RSA gelten als sicher, obwohl sie bereits mehrere Jahrzehnte alt sind. Es erhöhen sich aber in regelmäßigen Abständen die verwendeten Schlüssellängen, um das Sicherheitsniveau hoch zu halten [2]. Heutige Smartcards und USB-Token befinden sich auf einem Stand, auf dem es nur noch sehr schwer möglich ist, die geheimen Daten durch Hardware-Manipulation zu erhalten [3]. Invasive Angriffe wie das Aufbohren oder Aufschneiden von Smartcards oder Token sind für einen Angreifer mit begrenzten finanziellen Mitteln und Wissen zu aufwändig, wodurch sich der Personenkreis der Angreifer entsprechend einschränkt und einen erfolgreichen invasiven Angriff unwahrscheinlicher macht [4].
So sicher Smartcards und USB-Token, die zum Signieren genutzt werden, auch sein mögen: "the smartcard still does not communicate directly with the signatory" [1] – Der Unterzeichner kommuniziert nicht direkt mit der Smartcard. Es wird ein Computer mit entsprechender Software benötigt, um die Erstellung der Signatur zu ermöglichen.
Grundlegende Probleme bei der Erstellung sicherer digitaler Signaturen
Viele Nutzer verwenden ihren PC zum Surfen im Internet, zum Spielen, zum täglichen Arbeiten oder zum Versand von E-Mails. Außerdem werden häufig Programme aus teils fragwürdigen Quellen installiert, um den Funktionsumfang zu erweitern. Nicht selten gelangt so Schadsoftware auf einen Rechner, die die Sicherheit des Systems erheblich beeinträchtigt, wodurch das System nicht mehr tauglich für die zuverlässige Erstellung sicherer, digitaler Signaturen ist [5]. CPU, Arbeitsspeicher, Grafikkarte und Festplatte sind Bestandteile, aus denen ein Computer gebaut werden kann. Damit diese Hardwarekomponenten zusammenarbeiten, ist ein Betriebssystem erforderlich, das die Komponenten anspricht. Maus und Tastatur – häufig nicht mal mehr das – und ein Bildschirm sind die einzigen Komponenten, die ein Computernutzer sieht und bedient, während die anderen Komponenten im Innern der Maschine ihren Dienst tun. Betriebssysteme, die auf der genannten Hardware operieren, bieten dem Menschen zusammengefasst eine Möglichkeit, seine Hardwaregeräte zu verwenden [6], wobei der Mensch aber eben nicht prüfen kann, was wirklich passiert. Beispielsweise arbeiten fast alle modernen Computer mit Bussystemen, über die die Komponenten miteinander verbunden sind, wie in Abb. 1 zu sehen ist [6].
Der Universal Serial Bus
Der wahrscheinlich bekannteste Bus ist der Universal Serial Bus (USB), über den viele verschiedene Geräte angeschlossen werden können. Ein Vorteil dieser Schnittstelle ist, dass ein sehr breites Spektrum von Geräten wie Kameras, Tastaturen, Gamepads, Druckern oder Webcams angeschlossen werden kann, ohne dass der Computer dafür neu gestartet werden muss. Hinzu kommt, dass die Geräte über ein und denselben Anschluss angeschlossen werden können und nicht wie in früheren Zeiten jedes Gerät eine eigene Schnittstelle benötigt. In der USB-Spezifikation werden zwei Arten von Gerätetypen definiert: Hubs und Devices. Devices sind Geräte wie eine Kamera, ein USB-Speicherstick oder beliebige andere Geräte. Hubs sind Geräte, die einen USB-Anschluss um bis zu 127 weitere Anschlüsse erweitern können. Sie sind dafür verantwortlich, die Nachrichten des PCs an die angeschlossenen Geräte weiterzuleiten. Dabei können die Nachrichten, die vom PC aus gesendet werden, von allen Geräten empfangen werden. Das Hub arbeitet dann bis zur Version 2.0 des USB im sog. Broadcast-Modus (s. Abb. 2). Die Nachrichten, die von den Geräten zum PC gesendet werden, werden nur an den PC übermittelt und nicht an andere Geräte [7]. Es ist sehr einfach möglich, die Kommunikation auf diesem Bus abzufangen, wenn ein Programm die dafür nötigen Rechte erhält. Genauso kann das Programm eigene Nachrichten über den USB senden, die dann an die angeschlossenen Geräte übermittelt werden. Das hat fatale Folgen für die Sicherheit der digitalen Unterschriften: Eine PIN, die über den USB an eine angeschlossene Smartcard gesendet wird, könnte durch ein Schadprogramm abgefangen werden. Das Programm könnte die PIN später erneut verwenden, wenn es ein zweites Dokument im Namen des Opfers unterschreiben will. Weiterhin kann ein – neben einer Smartcard angeschlossenes – Gerät die Daten, also die PIN, die an die Smartcard gesendet wird, abfangen. Die PIN kann dann für einen weiteren Angriff verwendet werden.
Die Grafikkarte und der Framebuffer
Viele Computer bieten ihren Nutzern ein grafisches Interface (GUI). Das GUI wird dem Nutzer über einen Bildschirm bereitgestellt. Dazu wird grafischer Output benötigt, der durch den Grafikchip erfolgt. Im Framebuffer speichert der Chip Daten zwischen, die dann an den Bildschirm gesendet werden [6]. Alles, was auf dem Bildschirm zu sehen ist, muss durch die Grafikeinheit verarbeitet werden und wird im Framebuffer zwischengespeichert. Programme, die durch den Nutzer ausgeführt werden, können den Framebuffer beliebig verändern. Wird auf dem Bildschirm ein Dokument angezeigt, ist es also möglich, die Ausgabe des eigentlichen Anzeigeprogramms zu überschreiben und einen veränderten Inhalt anzuzeigen. Für die digitalen Unterschriften bedeutet das, dass der Nutzer sich nicht sicher sein kann, dass ihm wirklich das Dokument angezeigt wird, das gespeichert ist und die Anzeige auf dem Bildschirm nicht durch andere Programme verändert wurde.
Schwachstellen in PDF-Programmen
Im Jahr 2018 entdeckte eine Gruppe von Forschern Schwachstellen in mehreren Programmen, die für die Darstellung von PDF-Dokumenten genutzt werden. Durch die Schwachstellen war es möglich, den Inhalt einer digital signierten PDF-Datei nachträglich so zu verändern, dass die Programme die Änderung nicht bemerkten und die Unterschrift fälschlicherweise als gültig darstellten. Beispielsweise wurde eine digital signierte Rückerstattung des Online-Händlers Amazon in der utopischen Höhe von einer Billion US-Dollar durch Ausnutzen der Schwachstelle als gültig angezeigt. Um den Betrug zu bemerken, hätte ein Mensch in der Lage sein müssen, die Rohdaten der Datei zu verstehen [8]. Wie bereits mehrfach erwähnt, ist es aber die Aufgabe des Computers, diese Übersetzungsarbeit für den Menschen zu leisten. Dieser Angriff zeigt, dass der Mensch nicht immer dem vertrauen kann, was der Computer leistet.
Erstellung sicherer digitaler Signaturen
In diesem Abschnitt werden einige Ansätze zur Erstellung sicherer digitaler Signaturen vorgestellt.
Verifizierung durch Bilderkennung
Hauptproblem der digitalen Unterschriften ist, dass der Nutzer nicht prüfen kann, was konkret an die Smartcard (oder den YubiKey) übertragen wurde und später signiert wird. Einzige Lösung für dieses Problem ist die Entwicklung einer "Smartcard mit Display", also eines Gerätes, das das Dokument anzeigen kann. Das chipTAN-Verfahren, welches zum Beispiel von den Sparkassen eingesetzt wird, ist eine ähnliche Lösung [9]: Eine Manipulation des chipTAN-Geräts durch Schadsoftware auf dem Computer ist dadurch ausgeschlossen. Zwar kann die Kommunikation trotzdem manipuliert werden, aber Veränderungen der IBAN und des Betrags würden sofort auffallen, da das Gerät diese Daten anzeigen kann. Es existiert ein amerikanisches Patent für ein Gerät, das eine ähnliche Funktionalität des chipTAN-Geräts für digitale Unterschriften darstellt [10]. Das im Patent beschriebene Gerät könnte in einem alltäglichen Anwendungsfall grob beschrieben folgendermaßen funktionieren:
- Ein Nutzer verbindet das Gerät mit seinem Computer und erstellt das Dokument, das unterschrieben werden soll. Anschließend wird das Dokument in diesem Format an das Gerät übertragen.
- Das Gerät generiert eine zweite digitale Form des Dokuments, die bspw. ein Bild ist und einer analogen Darstellung der Daten sehr nahe kommt.
- Das Gerät zeigt dem Nutzer eine Darstellung der Daten an, die es vom Computer empfangen hat.
- Der Nutzer indiziert seine Zustimmung oder seine Ablehnung der Darstellung der Daten, indem er bspw. auf einen Knopf drückt.
- Der Nutzer verbindet einen sicheren Speicher, bspw. eine Smartcard, mit dem Gerät. Dieses signiert die zweite digitale Darstellung, das Bild der ursprünglichen Daten, mit einem Schlüssel des Nutzers.
- Das Gerät erstellt die digitale Signatur und sendet diese an den Computer.
Während der Recherchen zu diesem Artikel konnte kein Gerät gefunden werden, das diese Funktionen umsetzt.
Eine ähnliche Lösung wurde im Jahr 2008 von Jøsang und AlFayyadh vorgestellt, die im Folgenden beschrieben wird [11]. Um sicherzustellen, dass der Nutzer das unterschreibt, was er sieht, wird ein spezielles Gerät mit einer Kamera und Optical-Character-Recognition-Software (OCR) eingesetzt, das vergleichen kann, ob eine digitale Darstellung des Dokuments dem entspricht, was der Nutzer auf einem Bildschirm sieht. Nur wenn der Bildschirminhalt dem entspricht, was digital gespeichert ist, gibt das Gerät ein Signal an den Nutzer. Das System besteht aus zwei Hauptbestandteilen: Erstens die Document Processing Platform (DPP) und zweitens die Portable Signature Platform (PSP). Zur DPP gehören die Visual Display Unit (VDU), die das Dokument in einer menschenlesbaren Form auf einem Bildschirm anzeigt und die Document Processing Unit (DPU), die die Daten so aufbereitet, dass sie von der VDU angezeigt werden können. Die VDU ist mit einem handelsüblichen Computer vergleichbar, bei dem die Bildschirmsignale analog übertragen werden. Zur PSP gehören eine Kamera, eine Optical-Character-Recognition-Software (OCR) und eine Einrichtung, die dem Nutzer signalisieren kann, ob die Darstellung auf dem Bildschirm dem entspricht, was digital gespeichert ist sowie ein Gerät, mit dem dann die Unterschrift erstellt werden kann. Die Komponenten der PSP können sich in einem einzigen Gerät befinden. Eine digitale Signatur wird folgendermaßen erstellt (s. Abb. 3):
- Die DPU übermittelt die digitalen Dokumentendaten an das DSU. Zeitgleich wird eine analoge Darstellung an den Bildschirm gesendet.
- Die analoge Darstellung wird vom Nutzer angesehen.
- Die Kamera nimmt die Darstellung auf und sendet sie an das OCR.
- Das OCR konvertiert die Bilddaten der Kamera in ein digitales Dokument und sendet sie an das DSU.
- Das DSU vergleicht die beiden digitalen Dokumente.
- Falls die Dokumente übereinstimmen, gibt das DSU ein Signal an den Nutzer und bietet dem Nutzer die Möglichkeit digital zu signieren. Falls nicht, gibt das DSU ein negatives Signal an den Nutzer und verhindert, dass er eine digitale Unterschrift erstellen kann.
- Wenn sich der Nutzer dazu entscheidet, die Unterschrift zu leisten, generiert das DSU die Unterschrift.
- Das DSU sendet die digitale Signatur an das DPU.
- Das DPU verifiziert die digitale Signatur.
Jøsang und AlFayyadh schlagen gängige Smartphones als PSP vor, da die meisten eine integrierte Kamera haben, leistungsstark sind und gute Bildschirme besitzen. Die Autoren geben zu, dass es eine Beschreibungssprache geben muss, die in der Lage ist, Dokumente so zu erfassen, dass nicht nur Text, sondern auch das Layout wiedergegeben werden kann. Wenn d das Dokument ist, V die analoge Darstellung auf einem Bildschirm und E die Konvertierung der analogen Darstellung zurück in die digitale Version, dann muss d = E(V (d)) gelten, damit das System funktioniert. Eine Kompromittierung der DPU kann die Sicherheit nicht beeinträchtigen, da Manipulationen des Dokuments auffallen würden. Sind DPU und DSU beide kompromittiert, ist die Sicherheit nicht mehr gewährleistet und es ist möglich, den Nutzer zu täuschen.
Verwendung von Kartenlesern mit Tastenfeld
Neben der Verwendung von solchen aufwändigen Apparaten ist auch die Verwendung von externen Kartenlesern, die ein eigenes Tastenfeld haben, möglich. PINs, die auf dem Lesegerät eingegeben werden, verlassen das Gerät nicht, sodass bösartige Software auf dem PC keine Chance hat, die eingegebene PIN abzufangen und sie für erneute Signaturen zu verwenden.
Write-Once-Read-Multiple
Weiterhin können sogenannte Write-Once-Read-Multiple-Speicher (WORM) verwendet werden. Spalka, Cremers und Langweg schlugen im Jahr 2001 vor, solche Speicher zu erstellen. Dokumente, die unterschrieben werden sollen, würden dann ein einziges Mal in diesen Speicherbereich geschrieben und nicht mehr verändert werden können, da nur eine einzige Schreib-Operation erlaubt wird. Damit das Dokument vom WORM-Medium zur Smartcard nicht verändert werden kann, wird es verschlüsselt zur Smartcard übertragen. Die Smartcard ist manipulationsresistent, wodurch sichergestellt ist, dass das Dokument an die Smartcard übertragen wird, welches im WORM-Medium abgelegt wurde. Kartenleser mit eingebauter Tastatur werden verwendet, damit die Eingabe der PIN nicht abgefangen werden kann, wie im vorherigen Abschnitt erläutert wurde [1].
Basissicherheit
Viele einfache Maßnahmen können schon viel zur Sicherheit eines Computersystems beitragen und dadurch auch die Sicherheit der digitalen Signatur erhöhen. Erstes und einfachstes Mittel zur Absicherung eines Computers und dessen Software sind Updates und Patches, die solche Schwachstellen wie Mladenov u. a. zeigten, schließen. Dazu gehören neben den Updates für die PDF-Programme auch Updates für Webbrowser, durch die viele Schadprogramme ihren Weg auf den PC finden. Außerdem sollte vor jeder Installation von Software geprüft werden, ob die Installation nötig ist und besonders darauf geachtet werden, ob die Software aus einer vertrauenswürdigen Quelle stammt. Weitere Maßnahmen schließen gute Passwörter, Verschlüsselung und Anti-Viren-Programme ein.
Fazit
In diesem Artikel wurde gezeigt, dass das Konzept "What You See Is What You Sign" auch heute noch nicht einwandfrei und ohne erheblichen Aufwand erfüllt werden kann. Das liegt nicht zuletzt daran, dass der Computer für viele Menschen ein Alltagsgegenstand ist und sie damit sämtliche Aufgaben erledigen. Computer werden zeitgleich für das Surfen im Internet, zum Musik hören, zum Filme schauen, für die Erstellung der Steuererklärung oder eben für das digitale Unterschreiben verwendet.
Viele Hersteller vermeintlich sicherer Software sehen den Nutzer in der Verantwortung, den PC von Schadsoftware freizuhalten. Die meisten Anwender sind dazu allerdings nicht in der Lage und nutzen ihren PC für alltägliche Aufgaben, was die Sicherheit mindert. Diesen Nutzern soll es trotzdem möglich sein, sichere digitale Signaturen zu erzeugen. In der Arbeit wurden viele verschiedene Techniken vorgestellt, die die Sicherheit der Unterschriften erhöhen können. Am vielversprechendsten ist die Erfindung von Braams kombiniert mit dem vorgeschlagenen WORM-Medium von Spalka, Cremers und Langweg. Ein solches Gerät könnte das Problem des WYSIWYS tatsächlich lösen.
Neben diesen teils aufwändigen Maßnahmen können auch einfache Maßnahmen die Sicherheit eines Computersystems und die Sicherheit der digitalen Signaturen schon deutlich erhöhen. Dazu zählen beispielsweise die Maßnahmen, die im Abschnitt Basissicherheit vorgestellt wurden. Insgesamt ist das Konzept WYSIWYS trotz dessen Relevanz noch nirgends zuverlässig und sicher implementiert worden. Besonders Trojaner stellen auch heute noch ein erhebliches Risiko dar.
- H. Langweg, A. Spalka & A. B. Cremers; 2001: The Fairy Tale of ’What You See Is What You Sign’ - Trojan Horse Attacks on Software for Digital Signatures. In: Proceedings of the IFIP WG 9.11.7, S. 75–86
- Bundesministerium für Sicherheit in der Informationstechnik; 2018: Kryptographische Verfahren: Empfehlungen und Schlussellängen: BSI TR-02102-1.
- K. Mayes & K. Markantonakis; 2017: Smart Cards, Tokens, Security and Applications. Second Edition. Cham, Schweiz: Springer International Publishing AG.: 978-3-319-50498-8.
- M. Tunstall; 2017: Smart Card Security. In: Smart Cards, Tokens, Security and Applications. Cham, Schweiz: Springer International Publishing AG, S. 217–251.
- K. Scheibelhofer; 2001: Signing XML Documents and the Concept of „What You See Is What You Sign“. Magisterarb. Graz University of Technology.
- A. S. Tanenbaum & H. Bos; 2015: Modern Operating Systems. Fourth Edition. Upper Saddle River, New Jersey, USA: Pearson Education Inc. isbn: 978-0-13-359162-0.
- USB Implementers Forum, Inc.; 2000: Universal Serial Bus 2.0 Specification
- V. Mladenov; 2019: How to break PDF Signatures
- Sparkasse: TAN-Verfahren
- H. Braams; 2018: Method and an apparatus for securely signing application data. Patent. US 9985788 B2.
- A. Jøsang & B. AlFayyadh; 2008: Robust WYSIWYS: A Method for Ensuring that What You See Is What You Sign. In: 6th Australasian Information Security Conference (AISC).
Neuen Kommentar schreiben