Background Story

Die Corona-Krise betrifft uns alle. Jeder von uns hat Angehörige und Freunde, Nachbarn und Kollegen die zu Risikogruppen gehören und direkt gefährdet sind. Die einzige Möglichkeit, die derzeit besteht diese Menschen zu schützen, ist die Kurve von Neuinfektionen abzuflachen, damit unser Gesundheitssystem möglichst effizient arbeiten kann. Infektionsketten sind derzeit nicht mehr nachvollziehbar und so können Menschen, die nicht wissen, dass sie infiziert sind oder dass sie Kontakt mit Infizierten hatten als Überträger dienen.

Need

Länder wie Südkorea haben vorgemacht, wie durch das Tracking von infizierten Personen Transparenz geschaffen und Ansteckungen verlangsamt werden können. Ein freiwilliges Tracking von Infizierten macht nur dann Sinn, wenn möglichst viele Menschen daran teilnehmen. Ein großes Bedenken, was in diesem Zusammenhang geäußert wird ist Datenschutz.

Solution

Mit #BlockTheChain werden Menschen gewarnt, die Kontakt mit Infizierten hatten. Dabei ist uns Datenschutz sehr wichtig, weshalb #BlockTheChain auf personenbezogene Daten verzichtet. Aber wie?

1. Mit der Bluetoothfunktion Deines Handys wird erkannt, ob Du Dich in den letzten 21 Tagen in der Nähe von infizierten Menschen aufgehalten hast.

2. Personen, die positiv getestet wurden, können ihren Status anonym in der App auf positiv setzen.

3. Personen, die sich in der Nähe der positiv getesteten Person aufgehalten haben und auch diese App nutzen, werden per Push-Nachricht informiert.

4. Die App #BlockTheChain lässt dich mit dieser Information nicht alleine, sondern gibt dir Tipps wie du mit dieser Nachricht umgehen kannst.

As we are able to do...

Im Gegensatz zu den bisher bekannten Ansätzen, bei denen das Tracking auf der Nutzung von GPS-Daten oder dem Auslesen der MAC-Adressen der in der Nähe befindlichen Geräte beruht, setzt #BlockTheChain auf einen vollkommen anonymen Ansatz bei dem eigene eindeutige Identifikationsnummern erstellt werden. Diese App-Spezifische ID, in Form einer Service-UUID, wird über die Bluetooth-Funktion des Geräts ausgesendet. Dieses Signal können alle Bluetooth-Geräte empfangen, die sich in Reichweite befinden. Dabei erkennt die App andere Nutzer von #BlockTheChain und speichert deren UUID in einer Datenbank ab.

Sowohl die Serverkommunikation als auch die Bluetoothanwendung laufen asynchron im Hintergrund der App, für deren Funktion eine aktivierte Bluethoothfunktion und aktive Internetverbindung notwendig ist. Die App selbst muss sich in laufendem Zustand befinden, wobei Hintergrundbetrieb ausreicht. Die Frontend-Anwendung ist intuitiv und einfach aufgebaut, bietet dabei aber alle relevanten Informationen. Durch integrierte Links kann sich der Nutzer jederzeit über Verhaltensempfehlungen und die aktuelle Situation informieren. Die Applikation kann auch in Englisch genutzt werden. Die Spracheinstellungen können jederzeit in der App geändert werden.   Wird ein #BlockTheChain-Nutzer positiv auf Corona getestet, meldet er dies anonym durch Drücken des roten Infektionsbuttons auf der Hauptseite.

Um Missbrauch und daraus resultierenden Risiken vorzubeugen könnte das Melden einer Infektion durch einen 6-stelligen Code, der dem positiven Testergebnis beiliegt, verifiziert werden. Auch an dieser Stelle würde es sich um einen zufällig generierten, einmalig verwendbaren und nicht auf den Nutzer zurückzuführenden Code handeln. Auf gleiche Weise könnte bei vollständiger attestierter Genesung diese der App gemeldet werden. Bei einer Infektionsmeldung werden über die Datenbank alle Geräte ermittelt, die sich in einem definierten Zeitraum (21 Tage) in der Nähe des Infizierten befanden. Durch eine Push-Notification und das Aufrufen der Warnungsseite beim Wiederöffnen der App, wird der Betroffene über einen möglichen Kontakt mit einem Infizierten informiert. Dabei wird keinerlei Information über die infizierte Person preisgegeben! Auf die gleiche Art wird der Nutzer darüber informiert, falls die Inkubationszeit ohne eine Infektionsmeldung seinerseits und ohne neue Infektionswarnungen vergangen ist. Sein Status wird dann wieder auf „gesund“ gesetzt. Der große Vorteil dieses Ansatzes ist es, dass durch die Verwendung App-spezifischer Identifikationsnummern und den bewusst anonymen Umgang mit sensiblen Informationen keinerlei nutzer-bezogene Daten verwendet oder weitergegeben werden!

Implementation

Nach Auswahl der Herausforderung fingen wir an unser spezifisches Können zu bündeln. Ein großer Vorteil war, dass wir uns und unsere Fähigkeiten vorher kannten und so die geborene Idee effizient umsetzen konnten.

Für einen plattformübergreifenden Ansatz setzen wir auf die uns bereits bekannte Umgebung Xamarin und C#, welche serverseitig mit einem Python-Flask Server kommuniziert. Dabei werden auf dem Smartphone die umliegenden Bluetoothgeräte gescannt und diese Kontakte serverseitig abgespeichert. Meldet eines der Geräte eine Infektion, so werden alle Kontakte der vergangenen 21 Tage benachrichtigt.

How to continue

Damit #BlockTheChain seinen Nutzen optimal entfalten kann müssen möglichst viele der 57 Mio. Smartphonenutzer in Deutschland die App nutzen. Um eine Verfügbarkeit und eine reibungslose Funktion für alle gewährleisten zu können sind folgende Schritte notwendig:

1. Anpassen der App hinsichtlich Sicherheit und Effizienz.

2. Portieren der App auf iOS (geringer Aufwand, da die Programmierung einen plattformübergreifenden Ansatz verfolgt).

3. Web Backend: Sicherheitsfunktionen implementieren, dass nur die App Anfragen an den Server schicken kann.

4. Umzug vom privaten auf einen AWS/AZURE/GOOGLE Server. (Um Skalierbarkeit zu gewährleisten)

5. Verifizierung der Infektionsmeldungen durch offizielle Behörde oder sonstiger Mechanismus (z.B. bei Infektionsmeldung durch Behörde vergebener Code erforderlich)

Nach unseren Schätzungen wäre ein Betrieb der App in unter einer Woche umzusetzen. Dazu wären insgesamt 6 erfahrene Developer (2 Web Backend, 2 Android, 2 iOS) notwendig.

Skalierbarkeit: Cloudplattformen wie AWS (und auch alle anderen) sind beliebig skalierbar je nach zahl der Anfragen kann hier aufgestockt werden.

Challenges and Learnings

Gleich bei der Ideenfindung ist uns klar geworden, wie schwer die Kommunikation, Diskussion und Verständigung ohne direkten räumlichen Kontakt sein kann. Mit wenigen Ressourcen, als kleines Team unter hohem Zeitdruck eine effiziente Lösung zu entwickeln, hat uns viel abverlangt. Trotz der Hürden, haben wir es geschafft einen Prototypen zu entwickeln. All das ohne viel Vorerfahrung in der App Entwicklung. Sowohl fachlich als auch persönlich haben wir in den 2 Tagen WirvsVirus Hackathon viel mitnehmen können. Es war inspirierend zu sehen wie in so kurzer Zeit so viele Menschen auf ein gemeinsames Ziel hinarbeiten.

Share this project:

Updates