Heroimage

Unser Beitrag zur Bekämpfung von COVID-19

ENACT – die Google-freie Corona-Warn-App

In der Corona-Pandemie haben viele Unternehmen schnell reagiert und ihre Fähigkeiten für die Gesellschaft und gegen die Ausbreitung des Virus’ eingesetzt. Wir bei cosee haben unsere Expertise in der digitalen Produktentwicklung, App-Entwicklung und der Cloud eingebracht: Mit CoraLibre unterstützen wir ein Open-Source-Projekt, das die Corona-Warn-App (CWA) für alle zugänglich macht, die die offizielle Corona-Warn-App nicht nutzen können oder ihre Nutzung aus Datenschutzgründen ablehnen. Gefördert wurde unser Engagement durch das Förderprojekt Distr@l des Landes Hessen.

Kontaktiert uns!

Fakten & Eckdaten

Technologien
Kotlin, Android, Spring Boot, Java, PostgreSQL, Docker, Open Telekom Cloud, AWS ECS, AWS RDS, Terraform, Python, Serverless, AWS Lambda, Gitlab CI
Team-Setup
2 Mobile Engineers
3 Backend Engineers
1 Frontend Engineer
1 Designer
1 Product Owner
1 Scrum Master
Laufzeit
Juni 2020 – Dezember 2020
Corona betrifft uns alle. Um eine Überlastung des Gesundheitssystems zu verhindern und Menschenleben zu retten, müssen wir die Geschwindigkeit der Ausbreitung verlangsamen. Das geschieht insbesondere durch harte Kontaktbeschränkungen für alle, die das öffentliche Leben und die Wirtschaft massiv treffen. Einen gesellschaftlichen Beitrag zu leisten, gehört für uns bei cosee seit jeher dazu: Vor Ausbruch der Corona-Pandemie zeigte sich dieser Beitrag unter anderem in unserer umfangreichen Community-Arbeit in Form von Meetups, Barcamps und Konferenzen. Nachdem wir Mitte März alle zügig ins Homeoffice umgezogen waren, stellte sich schnell die Frage, wie wir als Firma in dieser gesellschaftlichen Krisensituation unseren Beitrag leisten und unser digitales Produktentwicklungs-Knowhow einbringen können. Eine Plattform für die Verteilung der knappen Gesichtsmasken? Geht über Facebook einfacher. Eine Suche/Biete-Lösung für Firmen und Endverbraucher? Geht über bestehende Plattformen auch sinnvoll genug. Unter den Themen des #WirVsVirus-Hackathons der Bundesregierung wurden wir schließlich fündig: Die Kontaktverfolgung mittels Smartphone-App ist erstens ein nützliches Thema und passt zweites zu unserem Knowhow mit App- und digitaler Produktentwicklung.Über einige Schritte kamen wir dann zum Open-Source-Projekt der offiziellen Corona-Warn-App der Bundesregierung. Da dieses Projekt in erster Linie von SAP und Telekom entwickelt wird, haben wir Themenbereiche identifiziert, die auch wichtig sind, aber nicht im Fokus dieser beiden Projektpartner sind oder waren. Grundlegend wollten wir die App in mehr Situationen nützlich und für mehr Menschen zugänglich machen.

Viele Wege führen zur Corona-Warn-App

Neben Kontaktbeschränkungen und den geltenden AHA+L-Regeln sind Kontaktverfolgs-Apps ein wichtiges Instrument gegen COVID-19, um Infektionsketten nachzuvollziehen und zu unterbrechen. Im April 2020 gab es verschiedene Ansätze für die Kontaktverfolgung; man erinnere sich noch an die vor allem von Datenschützern geführte Diskussion über zentrale vs. dezentraler Apps. Die ito-App war ein vielversprechendes Open-Source-Projekt, das bereits einen Prototyp für dezentrale Kontaktverfolgung mittels Bluetooth entwickelt hatte und auf der Shortlist für die offizielle niederländische Corona-Warn-App stand. Nachdem Teile unseres Teams einige Wochen an dieser App mitgearbeitet hatten, stand fest, dass der nächste sinnvolle Schritt die Produktionsreife sein müsste. Um die Aufwände dafür nicht alleine tragen zu müssen, stellten wir einen Förderantrag beim Hessischen Digitalministerium.
Twitter
Nach dem Entschluss der Bundesregierung, dass ein Konsortium aus Telekom und SAP die Entwicklung die offizielle Corona-Warn-App (CWA) entwickeln sollte, wurde das ito-Projekt eingestellt. Wir waren der festen Überzeugung, dass es auch in diesem Projekt Bedarf an unseren Fähigkeiten gibt. In den ersten Wochen bestand diese Unterstützung eher in Detailarbeit: Dokumentation der Infrastruktur sowie Verbesserung der Testbarkeit und User Experience. Im letzten Punkt zeigt sich schon unser späterer Hauptfokus: Uns war immer wichtig, die App für möglichst viele Menschen in möglichst vielen Situationen nutzbar zu machen.

CoraLibre – die Corona-Warn-App ohne Google Services

Das Ziel des Konsortiums aus Telekom und SAP war, möglichst schnell eine funktionsfähige App auf den Markt zu bringen. Ein aufwendiger Teil einer solchen App ist der Austausch von Schlüsseln via Bluetooth. Im Gegensatz zu ito, die diesen Austausch selbst implementiert hatten, setzte man bei der offiziellen Corona-Warn-App auf Schnittstellen von Apple und Google auf. Aus diesem Grund ist die App auch nicht auf allen Smartphones verfügbar. Anfang 2021 gibt es deshalb ein Update für ältere iOS-Geräte.

Alle Android-Telefone, die aus verschiedenen Gründen nicht auf den Google Play Store zugreifen, haben ebenfalls keinen Zugang zur CWA. Das sind beispielsweise einige chinesische Smartphone-Modelle, die nicht auf den Google Play Store zugreifen können, da die USA chinesischen Unternehmen untersagt hat, amerikanische Software auf ihren Geräten zu installieren. Aktuell sind beispielsweise 1,5 Millionen HUAWEI-Nutzer in Deutschland von der Nutzung der Corona-Warn-App ausgeschlossen. Datenschutzsensible Personen, die generell keine Google Services nutzen möchten, können die offizielle App nicht installieren. Nicht zuletzt haben Nutzer älterer Smartphones, die noch die Android-Version 5 oder älter auf ihrem Gerät haben, keine Möglichkeit, an die offizielle App zu kommen.

All diese Personen gehen aktuell verloren und können sinnvolle Nachverfolgungsketten nicht unterstützen. Genau an diesem Punkt setzt die CoraLibre-App an.
Twitter
Das Besondere an der CoraLibre Library ist, dass sie komplett ohne Google Services auskommt. Speziell die Nutzergruppe mit älteren Smartphones kann sich eines Workarounds bedienen: Mit der Installation eines alternativen Betriebssystems wie z.B. LineageOS können sie die CoraLibre-App installieren. Denn in Verbindung mit Lineage unterstützt CoraLibre auch ältere Geräte mit Bluetooth Low Energy-Support. Mit CoraLibre können also alle oben genannten Benutzergruppen, die bislang von der Nutzung der offiziellen Corona-Warn-App ausgeschlossen waren, ebenfalls am Contact Tracing teilnehmen und ihren Beitrag zur Unterbrechung der Infektionsketten leisten.

Um dieses Ziel zu erreichen, mussten wir komplett neu denken: Wie baut man eine App ohne jegliche Google Services bzw. wie baut man diese gezielt nach? Auch die Zusammenarbeit mit den anderen Entwicklern stellte uns vor neue Herausforderungen. Unsere Mobile Engineers warfen einen genauen Blick auf die Google Services: Was passiert eigentlich alles im Hintergrund? Welcher Service kommuniziert mit einem anderen Service? All diese Aspekte haben wir reverse engineered und fanden heraus, welche Teile des Codes miteinander verknüpft sind und wie sie funktionieren. Wir haben zum Beispiel die kryptografisch korrekte Generierung und Ableitung der von der App verschickten Schlüssel nach implementiert, mithilfe derer die Apps untereinander kommunizieren. Daraus ergaben sich wiederum andere Tasks, wie die sichere Verwahrung von empfangenen und eigenen Schlüsseln und der generelle Schlüsselaustausch mit anderen Geräten über Bluetooth Low Energy.

Die Entwicklungen an der Smartphone App sind nur die halbe Miete. Um die App sinnvoll testen zu können, brauchten wir eine Testumgebung. Diese Umgebungen müssen sich genau wie die der offiziellen CWA verhalten – was nicht ganz einfach war, weil dieser Teil des Projekts von Telekom und SAP nicht dokumentiert wurde. Mit unserer Cloud-Expertise haben wir verschiedener solcher Systeme (unter anderem in der Open Telekom Cloud) aufgesetzt:
CWA-Verification- und Testresult-Server
CWA-Verification-IAM
CWA-Verification Portal
CoraLibre Website Above The FoldCoraLibre Website Unterstützung
Ganz nebenbei entstanden dabei auch noch eine Reihe von Unit- und Integrationstests, die wir in das Open-Source-Projekt der offizielle CWA zurückspielen konnten. Wer schon einmal an einem Open-Source-Projekt gearbeitet hat, weiß, dass neben der Software-Entwicklung auch die Außenkommunikation wichtig ist. Zu diesem Zweck hat unsere Designerin ein Corporate Design und eine Homepage für das Projekt entworfen. Auf dieser Homepage (www.coralibre.de) sind Informationen über das Projekt und auch zur Mitarbeit im Projekt zu finden.
Enact Backend-Architektur positiver Corona-TestEnact Backend-Architektur positiven Nutzer getroffen

Internationalisierung mit einem anderen Blickwinkel

Unser erklärtes Ziel mit diesem Projekt war, die Corona-Warn-App mehr Menschen zugänglich zu machen und um weitere Funktionen zu erweitern, die in unseren Augen die CWA optimal ergänzt. Für die CoraLibre-App haben wir uns des Schwerpunktes “Internationalisierung” angenommen, der gerade in der Anfangszeit nach dem Rollout der App in aller Munde war.

Internationalisierung bedeutet nicht nur, dass die einzelnen Apps miteinander Schlüssel austauschen und somit die Nutzer davor warnen, dass sie gegebenenfalls Kontakt mit einer infizierten Person hatten. Internationalisierung bedeutet auch, schon im Vorfeld einer Reise Maßnahmen treffen zu können, um eventuell die geplante Reise erst gar nicht anzutreten. Um dies zu ermöglichen, bauten wir eine eigene Infrastruktur auf, die die aktuellen sowie die vergangenen Corona-Statistiken aus Deutschland und den umliegenden Ländern abruft. Wir bereiten diese Daten auf und stellen sie als Schnittstelle zur Verfügung. Die CoraLibre-App nutzt diese Schnittstellen und erstellt so Statistiken. Die Nutzer können also vor der Reise abwägen, ob diese sinnvoll und ungefährlich ist oder nicht. Mit diesem Feature trägt die App nicht allein zur Kontaktnachverfolgung, sondern auch zur umsichtigen Reisegestaltung bei.

Wie geht es weiter?

In einer tiefen Krise hat sich gezeigt, dass viele Menschen Gemeinschaftssinn beweisen und ihr Wissen in den Dienst der Gesellschaft stellen. Auch wir haben unsere Fähigkeiten und Erfahrungen eingesetzt, um die Corona-Warn-App einem breiteren Publikum zugänglich zu machen.
CoraLibre-App interaktiver ScreenCoraLibre-App Screen Coronavirus Infektionszahlen SucheCoraLibre-App Screen Coronavirus Infektionszahlen Ergebnis
Derzeit planen wir ein Beta-Release, die CoraLibre-App wird bald als APK auf der Webseite zum Download verfügbar sein. Da unser Förderprojekt ausläuft, arbeiten wir zukünftig nicht mehr so offensiv an der Weiterentwicklung wie bisher, sondern eher im Open-Source-Charakter. Die Weiterentwicklung hängt nun zum einen von einer breiten Tester-Basis ab, die Unstimmigkeiten und Bugs findet und meldet. Zum anderen bauen wir auf die Mithilfe der Open-Source-Community. Daher bitten wir alle Open-Source-Entwickler: Nehmt euch die Zeit, dieses wichtige Projekt, das uns so sehr ans Herz gewachsen ist, weiter zu tragen und leistet so euren Beitrag zur Bekämpfung dieser Pandemie! Wir sind sehr stolz auf das, was wir in diesem Projekt gelernt und erreicht haben. Schließlich kann wirklich nicht jedes Unternehmen von sich behaupten, Commits zur offiziellen Corona-Warn-App beigesteuert zu haben.
Funktionsumfang
Nachbau der CWA-Infrastruktur (u.a. in der Open Telekom Cloud)
Nachbau der Google Services
Kryptografisch korrekte Generierung von Schlüsseln
Sicherstellung des dauerhaften Betriebs im Hintergrund
Persönliche Risikoermittlung basierend auf Konfigurationsparametern
Erstellung eines Corporate Designs
Webseite für Nutzer und Entwickler des Open-Source-Projekts
Aufbau und Verwalten von Corona-Statistiken
light mode button