Fragen? Antworten! Siehe auch: Alternativlos
https://verification.dev.ubirch.com/v/gd-vcc/#f=Musterfrau;g=Erika;i=Altötting;r=BioNTech %2F Pfizer Corminaty®;b=19640812;d=20210114,20210121;t=vaccination;p=T22000129;s=1p7v3g6whqwWenn wir nochmal kurz gucken, was die dem ehemaligen Nachrichtenmagazin erzählt hatten:
Der QR-Code ist ein anonymer Fingerabdruck, der aus personenbezogenen Daten wie dem Namen sowie den Angaben zum Impfdatum und dem verwendeten Impfstoff generiert wird. Er wird kryptografisch signiert und in insgesamt fünf Blockchains hinterlegt.Inzwischen haben sie das wie folgt korrigiert:
Der QR-Code setzt sich zusammen aus personenbezogenen Daten wie dem Namen, den Angaben zum Impfdatum, dem verwendeten Impfstoff sowie einer Zufallszahl. Aus diesen Daten wird ein nach Angaben von Ubirch anonymer Fingerabdruck generiert, der nicht erratbar ist. Er wird kryptografisch signiert und – aus Gründen der Redundanz – in insgesamt fünf Blockchains hinterlegt.Ich vermute mal, dass sie beim Copy+Paste danebengeklickt haben. Journalismus ist schwierig, let's go shopping.
Jedenfalls beinhaltet diese URL offensichtlich persönliche Daten und ist daher kein anonymer Fingerabdruck.
Auf der anderen Seite sagt Ubirch an anderer Stelle, das sei ein Sicherheitsmerkmal ihrer Architektur, dass der Geimpfte selbst entscheidet, wem er den QR-Code zeigt. Das würde man nicht sagen, wenn der QR-Code tatsächlich anonym wäre.
Was mich jetzt an dieser URL noch stört: Ich sehe da keine Signatur. Ihr? Das ist doch völlig absurd, einen QR-Code mit unsignierten Daten zu verbreiten, oder übersehe ich da was?
Immerhin, als Kontext: Wenn man sein Impfbuch vorzeigt, steht da auch der Name dran.
So ist dieser QR-Code jedenfalls erstmal wertlos.
Mal aus Sicht eines Technikers: Es gibt hier zwei Probleme. Erstens willst du etwas haben, das du vorzeigst, und dann weiß die Gegenseite, dass du reisen darfst. Das sieht aus wie ein herkömmliches Authentisierungsproblem, aber ist es streng genommen nicht, denn bei herkömmlicher Authentisierung hat der Accountinhaber ein Interesse daran, seine Berechtigung nicht weiterzugeben. Hier musst du geradezu davon ausgehen, dass die Leute ihren negativen Impfbescheid an die Familie weitergeben oder auf Ebay verhökern.
Zweitens: Du willst möglichst wenige persönliche Daten auf dem Token haben.
Beide Probleme sind an sich gelöst. Du könntest ein signiertes Token rausgeben, die Signatur könnte von jedem offline geprüft werden, und fertig wäre die Laube. Aber das wäre dann halt weitergebbar.
Oder du könntest ein Token machen, wo der Name dransteht. Dann muss beim Prüfen auch der Name geprüft werden. Das ist ein ungelöstes Problem. Klar, man kann sich den Personalausweis zeigen lassen, aber damit verletzt man ja die 2. Anforderung, möglichst wenig Daten herauszugeben.
Ich sehe daher keinen Weg, wie man beide Anforderungen gleichzeitig erfüllen kann. Jedenfalls nicht, solange das Vorzeigen können eines Impfnachweises geldwerte Vorteile verschafft, wie z.B. dass man reisen darf oder ins Theater oder ins Restaurant oder was da gerade alles diskutiert wird.
Ich würde daher hier gerne noch ein anderes Fass aufmachen: Wenn ich eh meinen Namen verraten muss, damit die Gegenseite den digitalen Impfnachweis prüfen kann, wieso machen wir dann überhaupt das ganze Digital-Voodoozeugs hier? Wieso machen wir dann nicht einfach wie bisher ein analoges Impfbuch? Oder halt einen Zettel, wo der Name draufsteht, und eine Unterschrift vom Amt?
Update: Einige Leser haben mal nach der Signatur gesucht und den "s=1p7v3g6whqw"-Parameter gefunden. Den hatte ich direkt verworfen, weil der für eine Signatur viel zu kurz ist. Eine Signatur wäre sowas wie 2048 Bit lang, in Base64 (wie hier das s) wären das über 300 Zeichen. Aber es stellt sich raus: Wenn du den s-Wert änderst, dann "validiert" der das nicht mehr. Es könnte also sein, dass die das tatsächlich meinten, als sie von Signatur sprachen. Das wäre echt bemerkenswert schlecht. Selbst für jemanden, der Iota und Ethereum einsetzt.