Behördlich signierte Dokumente mit glaubwürdiger Abstreitbarkeit
Oder: Warum es für signierte Zeugnisse keine Blockchain braucht.
Folgende fiktives Szenario:
- Ich habe ein digitales Dokument, z.B. eine Zeugnis-PDF
- Meine Schule kann für die Echtheit dieses Dokuments bürgen
- Ich möchte einem potenziellen Arbeitgeber beweisen, dass dieses Dokument echt ist
- Sollte das Dokument später anderen Menschen in die Hände fallen, sollen sie nicht wissen können, ob das Dokument echt ist oder nicht. Ich soll es glaubwürdig abstreiten können. Sonst schreibt Lilith wieder wütende Tweets.
Beim Herumlungern in der WG-Küche sind wir dafür auf folgende Idee gekommen:
Die Schule ist Teil einer Public Key Infrastructure (PKI) und hat daher ein irgendwie trustworthy Keypair, das von der Bundesdruckerrei (D-Trust) signiert wurde. Wahrscheinlich ausgelagert an T-Systems.
Sie erstellt mir mein Zeugnis-PDF. Diese wird dann mit einer oder mehreren Hash-Methoden gehasht. Diesen Hash signiert sie dann und speichert diese Hash-Signatur in einer weiteren Datei.
Zum Schul-Abschluss erhalte ich nun ein PDF und eine Signatur-Datei des PDF-Hashes. Die Echtheitsprüfung der Signatur ist über die üblichen PKI-CA-Strukturen möglich.
Jetzt will ich mich bewerben und dabei mein Zeugnis verifizierbar einreichen. Dafür schicke ich einer behördlichen Stelle (wie z.B. der Bundesdruckerei) meine Hash-Signatur-Datei vom Zeugnis (nicht das Zeugnis-PDF). Die Bundesdruckerei kann prüfen, dass die Signatur von einer von ihr dazu autorisierten Stelle stammte. Da nur der Hash des PDFs signiert wurde, kann die Bundesdruckerei aber nicht feststellen, was genau signiert wurde.
Nach der Prüfung unterschreibt die Bundesdruckerei den Hash neu mit einem eigenen Keypair, welches wieder über die CA-PKI-Mechanismen in der üblichen Chain of Trust hängt. Dieses Keypair, das sie dazu verwendet, wird für etwa eine Stunde lang für alle Signatur-Anfragen an die Bundesdruckerei verwendet. Nach Ablauf der Stunde wird ein neues Key-Pair verwendet.
Ich bekomme nun von der Bundesdruckerei ein neues Zertifikat für mein Zeugnis-PDF-Hash zurück. Dieses kann ich jetzt schnell bei meinem potenziellen Arbeitgeber einreichen. Dieser kann prüfen, dass das Zertifikat von der vertrauenswürdigen CA der Bundesdruckerei unterschrieben wurde.
Die Bundesdruckerei wiederum veröffentlicht stündlich das Keypair, das vor 72 Stunden zur Signatur verwendet wurde, in einem öffentlichem Log, ähnlich den Certificate Transparency Logs der großen Web-CAs.
Wird jetzt mein Arbeitgeber eine Woche später gehackt und meine Daten veröffentlicht, kann ich glaubhaft sagen: Das Zeugnis-PDF von mir ist nicht echt, schau mal, das KeyPair mit dem das signiert wurde, ist hier bei der Bundesdruckerei im Internet öffentlich verfügbar, das hätte ja jeder beliebige Mensch nehmen können und damit etwas signieren können.
Die Vorteile dieses Systems:
- Wir benötigen keine neuen Technologien: PKIs existieren schon und sind gut abgehangen. Hashes ebenfalls.
- Die ausstellende Stelle muss nicht alle Dokumente auf ewig behalten, sondern sie nur einmal signieren.
- Die Bundesdruckerei bekommt weder Einblick in den Inhalt des Dokumentes, noch weiß sie, welcher Stelle gegenüber ich das Dokument vorlegen möchte.
- Wer ein Dokument von mir bekommt, kann es kurz verifizieren. Die Echtheit des Dokuments wird aber nach kurzer Zeit (durch die Veröffentlichung des privaten Schlüssels der Bundesdruckerei) nicht mehr sicher nachweisbar.
Die Nachteile dieses Systems:
- Ich muss auf meine Datein gut aufpassen. Durchaus Schwierig.
- Wenn ich meine Original-Signatur-Datei aus der Hand gebe, kann mit der wiederum bis in alle Ewigkeit die Echtheit des dazugehörigen Dokuments nachgewiesen werden.
- Die Bundesdruckerei könnte die gesehenen Hashes voratsdatenspeichern und einem Geheimdienst für spätere Dokument-Abgleiche zur Verfügung stellen.
Diese Idee entstand in unter einer Stunde von zwei Informatik-Studenten ohne Crypto-Erfahrung und ohne Hochschulabschluss. Sie mag nicht perfekt sein. Wir halten sie dennoch für allemal praktikabler und sinnvoller als eine Zeugnis-Blockchain.