Digitaler Corona-Impfnachweis – was ist so schwer?

Ich gebe zu, ich habe mir erst seit ein paar Stunden Gedanken darüber gemacht, aber als ich gelesen habe, wer gerade alles an der Technik zum digitalen Impfnachweis der Bundesregierung arbeitet, musste ich mir schon etwas an den Kopf greifen.

Das Bundesministerium für Gesundheit hat IBM, Ubirch, govdigital und Bechtle mit der Entwicklung einer Impfpass-App beauftragt.

Vor kurzem stand da noch mehr und genaueres, über wie viele Leute da beteiligt sind, aber mal ganz ehrlich: hätte da nicht auch ein Team von einer Hand voll Leute gereicht? Ist das nicht schon wieder Design by committee? Was ist denn überhaupt der Job?

Der digitale Impfnachweis wird in der Arztpraxis oder in einem Impfzentrum generiert. Nach Eingabe oder Übernahme der Daten wird ein 2D-Barcode erstellt, den die Nutzer direkt abscannen können oder auf einem Papierausdruck mitbekommen und später einscannen können.

Man muss also:

  • einen fälschungssicheren QR-Code machen, im dem steht, dass jemand geimpft wurde
  • viele Ärzte und Impfzentren in ganz Deutschland müssen ihn ausstellen können
  • Personen und Unternehmen sollen ihn einfach verifizieren können

Ich denk, das ist es doch schon. Ich bin wirklich kein Profi, was Crypto-Sachen angeht, aber interessiere mich schon lang dafür. Nach kurzer Recherche stellt sich heraus, dass es mit quasi fertigen, anerkannten Mitteln, zB. BLS, recht einfach ist, eine kurze Signatur für einen Text zu erzeugen (oder mit Klassikern wie PGP eine lange Signatur?). Ist man dann nicht schon fertig, wenn man die benötigten Daten und die Signatur in einen Barcode packt? Ich hab das mal in einer Grafik zusammengebastelt, wie ich mir den Ablauf vorstelle.

Konzept für den QR-Code Corona-Impfnachweis der Bundesregierung in Deutschland

Sicher, ganz so einfach ist es wahrscheinlich nicht, aber ich bin ja auch kein mehrköpfiges Team. Wenn man noch einrechnet, dass man eine kleine API zur Abfrage der Public Keys der Ärzte ganz Deutschlands braucht und vielleicht noch ein browserbasiertes Frontend basteln muss, das die Ärzte bedienen können, braucht man sicher eine Woche, bis es rund läuft. Ich bin kurz davor, das als Proof-of-concept schnell selber zu machen. Klingt doch spannend.

Wenn jemand wirklich was vom Thema versteht, freue ich mich über Kommentare. Ansonsten lehne ich mich jetzt zurück und beobachte, wie sich das Thema weiter entwickelt.

Update

Natürlich konnte ich es nicht sein lassen: Demo des Projekts auf GitHub (Source)

Anmerkungen

  • Der im Beispiel erzeugte QR-Code ist zwar groß, aber noch im Bereich des Akzeptablen IMO. Denke es klappt auch noch mit längeren Namen.
  • Die Ärzte-ID hab ich mir frei ausgedacht. Wie viele Ärzte wird es pro Bundesland geben? So maximal 400.000? Wenn man die ID als Base-36 speichert, klappt das mit einer vierstelligen Kennung.
  • Die Private Key Version hab ich mal vorgesehen, falls einer der Ärzte gehackt, oder seinen Key verliert und man einen neuen Key generieren muss. Macht Sinn, denke ich.
  • Evtl ist es noch schön, irgendein Datum noch mitzuspeichern. Erstelldatum, Impfdatum, oder sowas. Dann hat mans später leichter, mit welche Key-Version man verwendet, falls ein Arzt mehrere hat.
  • Der Impfstatus ist in meinem Beispiel aktuell nur eine Zahl, für 1 oder 2 Mal geimpft. Das könnte auch ein Status-Code sein, für welchen Impfstoff man bekommen hat. Oder man speichert noch die Nummer vom Impfstoff-Fläschchen mit ab, wie in den USA.
  • Den Beitrag der Pharmazeutischen Zeitung zum Thema fand ich noch ganz interessant. Auch wenn der Barcode im Beispiel (leider?) nur zu einem Youtube-Video über den Jägerhof in Mutterstadt führt.