Ein deutsches Startup nutzt Ethereum und IOTA, um Corona-Testergebnisse zu validieren

Das Startup Ubirch validiert Corona-Testergebnisse mithilfe mehrerer Blockchains. Die Anwendung erlaubt, datenschutzkonform den Einlass etwa in ein Flugzeug an ein negatives Testergebnis zu binden. Sie kann zur Blaupause für die Digitalisierung im Gesundheitswesen werden.
Wer am Flughafen in Frankfurt einen Corona-Test macht, erhält ein Zertifikat. Auf diesem Zertifikat befindet sich ein QR-Code, der es erlaubt, das Testergebnis durch eine Blockchain zu verifizieren.
Nun kommen also Corona und Blockchain zusammen. Kann die Technologie helfen, besser mit der Pandemie umzugehen? Und wie genau?
Wir haben beim Startup Ubirch nachgefragt, das die Technologie hinter den Zertifikaten entwickelt. Matthias Jugel, Informatiker und Mitgründer von Ubirch, hat uns einige Fragen beantwortet. Wofür nutzt das Startup die Blockchain? Welchen Nutzen hat die Technologie? Welche Blockchain wird eingesetzt? Und gibt es noch weitere Anwendungen?
Vertrauenswürdige Daten fürs Internet der Dinge

Matthias Jugel von Ubirch.
Jugel kommt eigentlich aus dem Big Data Umfeld, beschäftigt sich bei Ubirch aber mit dem Internet of Things (Internet der Dinge, IoT). Anstatt mit 64 Gigabyte arbeitet er mit 180 Kilobyte; aus Big Data wurde Small Data, was auf seine Art ebenso eine Herausforderung ist.
Ubirch beschäftigt sich vor allem mit der Sicherheit der Daten. Man darf dies nicht damit verwechseln, erklärt Jugel, die Geräte oder die Infrastruktur zu sichern. „Es geht darum, ob die Daten, die Geräte verarbeiten, auch korrekt und authentisch sind.“
Für das Internet der Dinge ist das extrem wichtig. In einer Produktionskette vernetzen sich verschiedene Akteure und Maschinen, und vieles wird durch Daten gesteuert, die Maschinen und Sensoren erheben und versenden. Wenn diese Daten manipuliert sind – sei es absichtlich oder durch einen Bug – kann ein enormer Schaden entstehen. „Ein Beispiel wäre ein intelligentes Stromnetz,“ erklärt Jugel, „ein manipuliertes Datum kann ausreichen, um die Stromversorgung für einen Produzenten oder Ort zu kappen.“
Das Internet der Dinge macht es extrem wichtig, dass Daten vertrauenswürdig sind. Dieses Vertrauen kann, meint Jugel, nicht durch herkömmliche Technologien erreicht werden. Damit wären wir – ihr ahnt es – bei der Blockchain.
Wie eine Blockchain hilft, Daten zu validieren
Vor etwa zwei Jahren hat Ubirch begonnen, mit der Blockchain zu arbeiten. Die Technologie soll helfen, Daten – auch große Mengen davon – auf eine Weise zu validieren, die nicht nur sicher ist, sondern auch datenschutzkonform.
Der eigentliche Plan war, eine Anwendung für Versicherungen zu bilden: Spezielle Sensoren, etwa an Gebäuden oder Fahrzeugen, melden, wenn es zu einem Schaden kommt, und weil die Versicherung den Sensoren vertraut, kann sie den Schaden automatisch regulieren. Das würde die Kosten für das Gutachten sparen.
„Versicherungen experimentieren bereits massiv mit solchen Modellen der automatisieren Schadensregulierung. Die Authentizität der Daten ist dabei natürlich ein extrem heikles Thema,“ erklärt Jugel.
Ubirch hilft dabei, indem es Sensoren zu „Oracles“ macht – zu Quellen, die Blockchains mit Daten füttern. „Der Sensor hat einen kleinen Client, der autonom auf deren Microchip läuft. Der Client erzeugt ein Schlüsselpaar und registriert den öffentlichen Schlüssel auf einer Blockchain. Danach signiert er alle Daten, die vom Sensor kommen, mit dem privaten Schlüssel.“ So ist schon mal bewiesen, dass die Daten tatsächlich vom Sensor stammen.
Die Daten selbst landen allerdings nicht auf der Blockchain. Dies ist Jugel wichtig: „Der Client hasht die Daten, beispielsweise Temperatur und Uhrzeit, signiert den Hash und sendet sie an unseren Server. Wir bekommen die Daten niemals zu Gesicht.“ Der Server bei Ubirch verankert den Hash der Daten dann in einer Blockchain. So kann jeder unabhängig prüfen, ob die Daten authentisch sind.
Skalieren mit Hashbäumen
Zunächst hat Ubirch mit Bitcoin gearbeitet, dann mit Ethereum. Bei der einen wie der anderen Blockchain musste Jugel schnell feststellen, dass es ziemlich schnell ziemlich teuer wird, wenn man sie direkt nutzt.
Also haben Jugel und sein Team eine Methode entwickelt, um die Anwendung zu skalieren. „Wir bilden quasi eine Sidechain, indem wir die Sensordaten in einem Hashbaum aggregieren. Die Wurzel des Hashbaums legen wir dann in gewissen Zeitabständen auf einer Blockchain ab.“ Das Konzept erinnert stark an die Rollups, wie sie bei Ethereum derzeit angewendet werden.
Dafür verwendet das Startup mehrere Blockchains. In geringer Frequenz legen sie die Root auf der Ethereum-Blockchain ab, in höheren auf der Tangle von IOTA und der Chain von Ethereum-Classic. Dazu testen sie die Govchain, eine private, Ethereum-basierte Blockchain aus Deutschland, wie auch die Zertifizierungschain „Bloxberg.“ „Wir benutzen mehrere Connectoren. Das sind für uns Werkzeuge, um Informationen zu verankern, und je mehr Redundanz wir erzeugen, desto besser.“
Corona-Tests als eine der ersten breiten Anwendungen
Die vertrauenswürdigen Sensoren für Versicherungen sind weiterhin in einer experimentellen Phase. Dagegen wurden die Corona-Tests eher zufällig zur ersten aktiven Anwendung der Technologie von Ubirch. „Wir erhielten aus dem Umfeld unserer Investoren die Anfrage, ob wir die Ergebnisse der PCR-Tests validieren können, um Menschen wieder einfacher in die Lage zu bringen, zu arbeiten und zu reisen.“
Ein Beispiel: Jemand hat sich testen lassen, das Ergebnis war negativ, und er möchte nun fliegen. Wie kann er beim Einlass ins Flugzeug und bei der Einreise in ein anderes Land klipp und klar beweisen, dass der Test negativ war?
Es ist extrem wichtig, dass die Daten authentisch sind. Ein einziger Infizierter, der das Testergebnis fälscht, kann in einem Flugzeug einen großen Schaden anrichten, und er kann, wenn er in einem anderen Land das Virus streut, zahlreiche Menschenleben gefährden. Zur gleichen Zeit ist aber der Datenschutz wichtiger denn je. Gerade wegen der Corona-Pandemie, die Maßnahmen erfordert, welche den Datenschutz komplett aushebeln könnten, wenn man nicht aufpasst.
Wie aber bringt man beides unter einen Hut? Datensicherheit und Datenschutz?
Labore als Orakel
Mit der Technologie von Ubirch passiert das folgende, wenn sich jemand beispielsweise am Frankfurter Flughafen testen lässt:
Jemand macht den Test und gibt seine Daten ein, etwa Namen und Geburtsdatum. Das Labor prüft das Sample und gibt das Ergebnis sowie die Daten in den Client von Ubirch ein. Dieser verbindet die Daten – Name, Geburtsdatum, Testergebnis – und fügt die kryptographische Identität des Labors sowie ein Secret hinzu. Das ganze wird dann gehasht und zu Ubirchs Server gesendet. Der fügt den Hash in einen Hashbaum ein und legt dessen Wurzel in einer Blockchain ab.
Falls Sie die technischen Details nicht verstanden haben, macht das nichts. Das Ergebnis ist, dass der Getestete auf seinem Zertifikat auf Papier seinen Namen und das Ergebnis in Reinform hat, und jemand anderes – etwa am Einlass am Flughafengate oder einem Fußballstadium – mithilfe einer App prüfen kann, ob das Testergebnis valide ist. Und all das, ohne dass irgendwelche privaten Daten ins Netz gehen oder auch nur ausgetauscht werden.
Natürlich würde es auch ohne Blockchain gehen, etwa durch eine Signatur durch das Labor. Aber durch die Blockchain, meint Jugel, kann man es sehr viel effizienter machen und besser automatisieren. Dadurch könnte man auch tausende von Leuten in ein Stadion einlassen und dabei sicherstellen, dass alle ein gültiges negatives Testergebnis haben.
Nur der Anfang?
Jugel sieht „starke Indizien, dass Nachweise von Testergebnissen zunehmend gefordert werden“, etwa bei Flughäfen, aber auch bei Veranstaltungen wie Fußballspielen oder Messen. „Mit unserer Lösung können wir valide Testergebnisse an den Punkt bringen, wo sie auch international tragfähig sind.“
Das Konzept lässt sich auch auf andere medizinische Anwendungen übertragen. Ein Thema, das derzeit natürlich groß ist, sind digitale Impfpässe, so dass man den Impfstatus auf Papier oder auf dem Smartphone mit sich herumtragen kann, ohne dass sensible Daten im Netz landen. Vermutlich wird so etwas im Lauf des Jahres kommen.
Andere Möglichkeiten sind digitale Rezepte. „Man kann es an ganz vielen Stellen weiterdenken, je nachdem, wo Bedarf und Akzeptanz da sind. Wir kommen nicht aus der Health Care Ecke, aber ich habe das Gefühl, dass wir hier einen guten Beitrag leisten können, um die Digitalisierung voran zu bringen.“
Die Corona-Pandemie könnte hier einen Prozess beschleunigen, der schon anlief. Die Digitalisierung gesundheitsrelevanter Daten ist vermutlich nicht aufzuhalten. Umso wichtiger ist es, wachsam zu bleiben, dass dabei der Datenschutz nicht auf der Strecke bleibt.
Praktikabel aber nicht fäschungssicher. Bin ich im besitz eines validen QR Codes, habe ich einen Freifahrtschein.
Ich und meine Freundin machen einen Test. Meiner ist leider negativ, der meiner Freundin positiv. Ich drucke ihren QR aus und tausche die persönlichen Daten mit den meinen. Dann spazier ich munter in den Flieger zur Sonne. Der Prüfer hat keine Chance die Manipulation zu erkennen, oder habe ich etwas falsch verstanden?
Mal von möglichen Angriffen an Oracles (Signatur des Labors)
Dann war das wohl nicht ganz klar beschrieben in dem Artikel. Das Labor hasht (Testergebnis + Name etc.), Ubirch hash (vom Labor gesandte Hash), dein Zettel enthält QR-Code (Testergebnis + Name etc.), die App beim Einlasspersonal hasht (Hash (QR-Code) ) und prüft das auf einer Blockchain (oder so — mal den ganzen Merkletree beiseitegelassen). Dementsprechend kannst du die persönlichen Daten nicht tauschen.
Womit du aber recht hast: Wenn das Personal nicht jedesmal die Identitätsdaten prüft, könnte man den Wisch einfach in den Kopierer geben und dann in einer Legion durchmarschieren. Sofern die App nicht irgendwie Alarm schlägt, wenn derselbe QR-Code mehrfach aufläuft.
Naja, Perso und Pass (Deine IDentität) werden am Flughafen routinemäßig geprüft. Wenn Du also in einem Schritt ein Testergebnis mit demselben Namen und Geburtsdatum als Teil des Hashes mit Deinem (maschinenlesbaren) Pass vorzeigst, könnte das System sogar automatisch, Flughafenmitarbeiter darauf hinweisen, dass Deine Identität mit dem Testergebnis übereinstimmt (oder abweicht).
Somit wäre der Prozess dann, sogar dann sicher, wenn der Flughafenmitarbeitern etwas faul wäre. Ins Gesicht schauen, müsste er Dir dann natürlich noch. Allerdings ist das Nutzen eines falschen Passes schon mit hohen Strafen belegt. Das eines falschen Testergebisses vermutlic auch.
Leider habe ich das immer noch nicht verstanden: der Prüfer sieht doch nicht meinen Namen oder das Testergebnis? Er kann lediglich prüfen ob der QR gültig ist in der BC, erst recht bei Merkle Tree.
Er müsste also zusätzlich einen Hash aus meinem Namensausweisdokument und dem QR erstellen und diesen prüfen. Sollte da aber eine kleine Abweichung in der Schreibweise (Zusatzname) bestehen, scheitert die Prüfung und es gibt massiven Streit vor dem abflugbereiten Sonnenflieger.
Soweit ich es verstanden habe, enthält der QR-Code Namen und Testergebnis im Plain Text. Er muss aber eben nicht durchs Netz gehen, weil die App aus ihm den Hash berechnen kann, durch den sie über Blockhain die Validität prüfen kann.
Ich nehme an, die App kann den Namen anzeigen, so dass es prüfbar ist.
“Natürlich würde es auch ohne Blockchain gehen, etwa durch eine Signatur durch das Labor. Aber durch die Blockchain, meint Jugel, kann man es sehr viel effizienter machen und besser automatisieren.”
Hat Jugel dies noch weiter ausgeführt?
Letzten Endes muss man auch darauf vertrauen können, als Mitarbeiter der die Codes verifizieren soll, dass die Software (also die Smartphone App) authentisch ist, sonst kann sich ein Angreifer natürlich immer problemlos durchmogeln. Gehen wir also mal davon aus, dass dies sichergestellt ist.
Das einfachste System wäre dann aber nicht das im Artikel vorgestellte. Für jeden Check muss hier übers Netz eine Abfrage auf eine Blockchain gemacht werden, was ein unnötiger Overhead ist. Bereits das liefert einen Angriffsvektor. Ich könnte z.B. mit einem Störsender diese Abfrage verhindern. Um den Betrieb nicht aufzuhalten entscheidet sich die Security ob des Netzausfalls dann vermutlich für den pragmatischen Weg, nur noch eine Sichtkontrolle des Plain Textes, der ja auch auf dem Ausdruck steht, vorzunehmen und winkt mich dann mit meinem gefälschten Ergebnis durch.
Besser wäre es doch folgendermaßen: die App holt sich automatisch vom Betreiber der App (zur Erinnerung: wir gehen davon aus, dass der Verteilprozess der App nicht kompromittiert ist und daher auch dieser Nachrichtenaustausch aufgrund der in der App enthaltenen Schlüssel und Verschlüsselungsverfahren sicher ist) direkt einmal pro Tag eine Liste aller akkreditierten Labore inkl. deren öffentlichen Schlüsseln (ja richtig, wir brauchen dafür keine Blockchain). Damit ist es ein Leichtes für die App, eine digitale Signatur vom Labor selbst zu prüfen (die sowohl im Plain Text als auch im QR Code auf meinem Testergebnisausdruck enthalten sein kann). Das Verfahren hat den weiteren Vorteil, dass die Labore von Ubirch selbst keine App nutzen müssen, sondern frei darin sind, wie sie die Nachricht (also das Testergebnis) darstellen. Das kann standardisiert sein, muss es aber nicht (es wäre auch denkbar, dass die App auf dem Smartphone des Flughafen-Mitarbeiters während der Verwendung „dazu lernt“ und gleichartig verfasste Meldungen desselben Labors irgendwann automatisch interpretieren kann). Der einzige Berührungspunkt zwischen Ubirch und den Laboren wäre auf den Eintrag in Ubirchs zentrales Register der akkreditierten Labore und das Hinterlegen des öffentlichen Schlüssels beschränkt. Dazu müssten noch nicht einmal die Labore aktiv werden. Ubirch könnte vom Gesundheitsministerium mit dieser Liste versorgt werden. Der Vorteil liegt auf der Hand: es braucht nur noch eine App und nicht zwei von Ubirch. Die Labore müssen nur einmalig eine App beschaffen, die es ihnen erlaubt, ihre Nachrichten digital zu signieren.
Fazit: Die Idee mit der digitalen Überprüfung des Testergebnisses ist super, aber es ist für mich keine BC Anwendung.
Ich frage mich, wie verhindert wird, dass ich den ganzen Prozess des Hashens und Ablegen auf der Blockchain nicht „einfach selbst“ erledige und damit mein Wunschtestergebnis fälschen kann? Damit dieser Prozess „sicher“ wäre, müsste die Verteilung dieser „Signage“ App an die Labore sicher sein bzw. die Nachrichten der Labore an die Ubirch Server müssten digital von den Laboren signiert sein. Es läuft darauf hinaus, dass eine zentrale Instanz, in diesem Fall Ubirch eine Liste aller akkreditierten Labore (und ihrer öffentlichen Schlüssel) führen und pflegen muss. Das System steht und fällt mit der Sicherheit dieser zentralen Datenbank bei Ubirch. Wie seht ihr das, habe ich vielleicht einen Denkfehler?
Technisch gesehen alles wunderbar… das Hashen ist eine tolle Idee. Allerdings die Blockchain hat hier echt keinen Mehrwert. Ist empfinde das als reines Marketing oder eine Scheininnovation.
Jede kontrollierte Person muss immer noch ihren Pass oder Personalausweis vorzeigen. Das ganze andere Prozedere gilt sonst nämlich nicht während einer Kontrolle (steht so in den FAQ von Ubirch).
Einerseits schreiben sie wie schnell alles damit ginge, und keine personenbezogenen Daten angeschaut würden. Und andererseits schreiben sie, dass die Kontrolleure jede Passnummer/Name/Vorname zwischen decodiertem Hash und Ausweis abgleichen müssen, und zwar mit dem menschlichen Auge oder einer lokalen Maschine, welche dann wiederum sehr sensible persönliche Daten lesen täte. Der praktische Gewinn zum klassischen Kontrollieren einens klassischen, gelben Papier-Impfpasses wird damit eher (sehr) klein.
Ich buche das unter die Rubrik “Hauptsache was mit Digital, ey, weil sonst denken alle wir machen kein Digital”.
Das Erstellen, Speichern und Abgleichen der HAshes ginge übrigens auch mit klassischer, zentraler Infrastruktur (Datenbanken, Server, etc.), denn das ganze drumherum ist erstens staatlich kontrolliert und zweitens an den Physisch/Blockchhain-Schnittstellen technisch zetralisiert durch den Anbieter. Saatlich erzwungene Datenverarbeitung lässt sich auch mit einer Blockchain nicht auf Blockchain-Nievau heben, weil es weiterhin keine Satoshi-Nanakomto-Prinzipien erreichen kann, darf und will.