Slide 1

Slide 1 text

MICHAEL SIMONS AKA @ROTNROLL666 Was steckt hinter einer App? Aspekte komplexer Softwaresysteme. Eine Gastvorlesung an der FH Aachen. CORONA-WARN-APP (CWA)

Slide 2

Slide 2 text

ALLE ILLUSTRATIONEN © CWA UNTER APACHE 2 LIZEN

Slide 3

Slide 3 text

AGENDA Was qualifiziert mich, über die App zu schreiben? Einordnung: Digitale Bildung, Verantwortung und Begehrlichkeiten Sind Open-Source-ProjektE automatisch öffentlich? Bestandteile der CORONA-WARN-APP (CWA) Und dann?

Slide 4

Slide 4 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) / @rotnroll666, FH Aachen, 15. Juni 2020 - Autor (Spring Boot 2 und Arc42 by example) - Java Champion - Open Source Entwickler bei Neo4j - Und sonst: - Gründer und aktueller Leiter der Java User Group EuregJUG - Vater, Ehemann, Cycling, Running WAS QUALIFIZIERT MICH, ÜBER DIE APP ZU SCHREIBEN? 4

Slide 5

Slide 5 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) @rotnroll666, FH Aachen, 15. Juni 2020 - Native Graphendatenbank - In großen Teilen Open Source - Viele 100% Open Source Projekte „drum herum“ - Meine primäre Tätigkeit: - Entwicklung und Pflege der Spring Integration - Treiberentwicklung NEO4J MEIN ARBEIT 5 Native Graph Platform Neo4j is an internet-scale, native graph database which executes connected workloads faster than any other database management system.

Slide 6

Slide 6 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) / @rotnroll666, FH Aachen, 15. Juni 2020 - Ausbildung Mathematisch-technischer Assistent - FH Studium „Technomathematik“ - Datenmodellierung und Produktentwicklung im Energiemarkt - Sehr Datenbankzentrisch - Client / Server - Webanwendungen - Stack - Oracle Tools - SQL - Java - Berater UND VORHER SO? 6

Slide 7

Slide 7 text

100% ENTWICKLER_IN ODER DOCH AUCH LIEBER INHALTLICHE KENNTNISSE?

Slide 8

Slide 8 text

EINORDNUNG: DIGITALE BILDUNG, VERANTWORTUNG UND BEGEHRLICHKEITEN

Slide 9

Slide 9 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) @rotnroll666, FH Aachen, 15. Juni 2020 Aus einem Antrag von B’90 / Die Grünen - Installation einer „App oder Software“ zur Kontrolle der Rechner von Schüler_Innen - Kontrolle - Überwachung - „Gutes Lernen“ APPS ZUM „GUTEN FERNLERNEN“ QUELLE: DAS INTERNET(*) 9 (*) https://twitter.com/nblr/status/1270977603072122880

Slide 10

Slide 10 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) / @rotnroll666, FH Aachen, 15. Juni 2020 BEGEHRLICHKEITEN 10 Aus: https://www.oldenburger-onlinezeitung.de/nachrichten/landkreise-fordern-namen-und-ortsdaten-aus-corona-app-40380.html „Der Deutsche Landkreistag fordert in einem Schreiben an Kanzleramtsminister Helge Braun (CDU) und Bundesgesundheitsminister Jens Spahn (ebenfalls CDU), der der "Frankfurter Allgemeinen Sonntagszeitung" vorliegt und aus dem sie zitiert, die geplante Corona-App solle auch die Kontaktdaten der Nutzer sowie deren zeitlichen und örtlichen Umstände an die zuständigen Behörden leiten.“ 27. April 2020 Aus: https://www.br.de/nachrichten/deutschland-welt/corona-apps-und-tracking-in-israel,Rw2L5uh „In Israel setzt das Gesundheitsministerium im Kampf gegen das Coronavirus auf eine App mit dem Namen "Schutzschild". Die Behörden füttern das System mit Daten von Corona-Infizierten, vor allem mit deren bekannten Bewegungsprofilen der letzten 14 Tage vor der vermuteten Ansteckung. Während die Nutzung dieser App freiwillig ist, setzt die israelische Regierung aber auch auf gezielte Überwachung. Der Inlandsgeheimdienst wurde ermächtigt, die Smartphones von Corona-Infizierten regelrecht zu hacken, Kontaktpersonen zu ermitteln und diese per Textnachricht aufs Telefon in Quarantäne zu schicken.“ 14. April 2020

Slide 11

Slide 11 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) / @rotnroll666, FH Aachen, 15. Juni 2020 - U.a. anonymisierten Google Daten (Location Tracking, Maps etc.) - Anonymisierte Mobilfunkbewegungsdaten (Zellenwechsel) - U.a. die Telekom selber bietet diese Daten der Bundesregierung bereits an - Aber: Bereits 21. März 2020 Gesetzentwürfe zur Freigabe erweiterter, personenbezogen Daten: „Dazu sollen die zuständigen Behörden „zum Zwecke der Nachverfolgung von Kontaktpersonen technische Mittel einsetzen“ dürfen, „um Kontaktpersonen von erkrankten Personen zu ermitteln, sofern aufgrund epidemiologischer Erkenntnisse gesichert ist, dass dies zum Schutz der Bevölkerung vor einer Gefährdung durch schwerwiegende übertragbare Krankheiten erforderlich ist“, heißt es in dem Entwurf.“ BEWEGUNGSDATEN 11 Aus: https://www.handelsblatt.com/politik/deutschland/handytracking-spahn-will-zugri -auf-mobilfunkdaten-von-corona-kontaktpersonen/25669028.html

Slide 12

Slide 12 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) / @rotnroll666, FH Aachen, 15. Juni 2020 WIE SIEHT EUER SMARTPHONE SO AUS? 12

Slide 13

Slide 13 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) / @rotnroll666, FH Aachen, 15. Juni 2020 - Mit der Corona-App gegen US- Demonstranten? https://www.heise.de/tp/features/Mit- der-Corona-App-gegen-US- Demonstranten-4776223.html UND DANN? 13

Slide 14

Slide 14 text

SIND OPEN-SOURCE-PROJEKTE AUTOMATISCH ÖFFENTLICH?

Slide 15

Slide 15 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) / @rotnroll666, FH Aachen, 15. Juni 2020 - Nicht jedes Open-Source-Projekt wird in der Ö entlichkeit entwickelt - Privates Repository, (teilweise) sync in ö entliche Repositories - Einmalige „Code dumps“ - Ö entliche Repositories ohne Interaktion - Corona-Warn-App: - Open-Source-Projekt unter Apache 2 Lizenz - Ö entliche Organisation https://github.com/corona-warn-app - Ebenso die Teilprojekte, inkl. Issue Tracker - Mehrere Repositories je Komponente (Kein Monorepo) OPEN-SOURCE-PROJEKT == ÖFFENTLICHES PROJEKT? 15

Slide 16

Slide 16 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) / @rotnroll666, FH Aachen, 15. Juni 2020 - Nein. - CWA wird entwickelt durch SAP und die Deutsche Telekom - Betrieben in der Open Telekom Cloud (OTC, https://open-telekom-cloud.com/) - „Die Entwicklung der Corona-Warn-App des Bundes durch SAP und die Deutsche Telekom wird rund 20 Millionen Euro kosten.“ (https://www.heise.de/news/Corona- Warn-App-kostet-den-Bund-rund-20-Millionen-Euro-4781235.html, 11. Juni 2020) OPEN-SOURCE == KOSTENLOS? 16

Slide 17

Slide 17 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) / @rotnroll666, FH Aachen, 15. Juni 2020 - Scope des Projektes - Stories https://github.com/corona-warn-app/cwa-documentation/blob/master/ scoping_document.md - Screen-Designs - Technische Dokumentation - Architektur der Lösung (https://github.com/corona-warn-app/cwa-documentation/blob/ master/solution_architecture.md) - Beschreibung der Design Prozesse - Für alle Server Komponenten - Beinhaltet Kontexte, Definition fachlicher Entitäten, Aktoren - Architekturen der mobilen Apps - Evaluierungs- und Sicherheitskritierien PROJEKTDOKUMENTATION 17 https://github.com/corona-warn-app/cwa-documentation

Slide 18

Slide 18 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) / @rotnroll666, FH Aachen, 15. Juni 2020 INTERAKTION: ISSUES 18

Slide 19

Slide 19 text

BESTANDTEILE DER CORONA-WARN-APP

Slide 20

Slide 20 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) / @rotnroll666, FH Aachen, 15. Juni 2020 20

Slide 21

Slide 21 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) @rotnroll666, FH Aachen, 15. Juni 2020 - Framework für dezentrale Kontaktnachverfolgung - Basisimplementierung durch Googles/Apples Exposure Notification Framework (ENF) DECENTRALIZED PRIVACY- PRESERVING PROXIMITY TRACING DIE GRUNDLAGE: DP3T 21

Slide 22

Slide 22 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) / @rotnroll666, FH Aachen, 15. Juni 2020 ENF IM EINSATZ (SENDEN) 22

Slide 23

Slide 23 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) / @rotnroll666, FH Aachen, 15. Juni 2020 RISIKOBESTIMMUNG 23

Slide 24

Slide 24 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) / @rotnroll666, FH Aachen, 15. Juni 2020 ENF IM EINSATZ (EMPFANG) 24

Slide 25

Slide 25 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) / @rotnroll666, FH Aachen, 15. Juni 2020 MIND THE GAP 25 https://twitter.com/nipafx/status/1272140089410359296 https://arxiv.org/abs/2006.05914

Slide 26

Slide 26 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) / @rotnroll666, FH Aachen, 15. Juni 2020 26 DIE MOBILE APP Review: http://winkenschuerfel.de/die-corona-warn-app-ein-code-review/

Slide 27

Slide 27 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) / @rotnroll666, FH Aachen, 15. Juni 2020 BACKEND UND PROZESS 27

Slide 28

Slide 28 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) / @rotnroll666, FH Aachen, 15. Juni 2020 BEISPIEL DATENFLUSS VERIFIKATIONSSERVER 28

Slide 29

Slide 29 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) / @rotnroll666, FH Aachen, 15. Juni 2020 - Ersetzt die generierte GUID - Muss manuell eingegeben werden ALTERNATIVE LÖSUNG MIT „TELETAN“ 29

Slide 30

Slide 30 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) / @rotnroll666, FH Aachen, 15. Juni 2020 GÜLTIGES UPLOAD ZEITFENSTER 30

Slide 31

Slide 31 text

BETRACHTETE BACKEND-KOMPONENTEN

Slide 32

Slide 32 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) / @rotnroll666, FH Aachen, 15. Juni 2020 - https://github.com/corona-warn-app/cwa-server - Multi-Module-Projekt - Java - Verwendete Frameworks: Spring, Spring Boot, JPA (Hibernate) - PostgreSQL Datenbank - Zielplattform: Kubernetes / Openshift in der Open Telekom cloud CORONA-WARN-APP-SERVER 32

Slide 33

Slide 33 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) / @rotnroll666, FH Aachen, 15. Juni 2020 CORONA-WARN-APP-SERVER 33 > cwa-server git:(master) ./mvnw clean verify [INFO] Reactor Summary for server 0.5.3-SNAPSHOT: [INFO] [INFO] server ............................................. SUCCESS [ 1.301 s] [INFO] common ............................................. SUCCESS [ 0.066 s] [INFO] protocols .......................................... SUCCESS [ 4.354 s] [INFO] persistence ........................................ SUCCESS [ 11.746 s] [INFO] services ........................................... SUCCESS [ 0.326 s] [INFO] distribution ....................................... SUCCESS [ 14.035 s] [INFO] submission ......................................... SUCCESS [ 13.675 s] [INFO] ------------------------------------------------------------------------

Slide 34

Slide 34 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) / @rotnroll666, FH Aachen, 15. Juni 2020 CORONA-WARN-APP-SERVER: DATENMODEL 34 CREATE TABLE diagnosis_key ( id bigserial PRIMARY KEY, key_data bytea, rolling_period bigint NOT NULL, rolling_start_number bigint NOT NULL, submission_timestamp bigint NOT NULL, transmission_risk_level integer NOT NULL ); A Data Model

Slide 35

Slide 35 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) / @rotnroll666, FH Aachen, 15. Juni 2020 - https://github.com/corona-warn-app/cwa-verification-server - Single-Module - Java - Verwendete Frameworks: Spring, Spring Boot, JPA (Hibernate) - PostgreSQL Datenbank - Mehr Abhängigkeiten - Stack zur Interaktion von REST-Webservices - Andere Datenbankmigrationstools - Ebenfalls Datensparsam - Dokumentation und Stories finden sich im Code wieder https://github.com/corona-warn-app/cwa-verification-server/blob/master/docs/architecture- overview.md VERIFIKATION-SERVER 35

Slide 36

Slide 36 text

OFFENE FRAGEN UND FAZIT

Slide 37

Slide 37 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) / @rotnroll666, FH Aachen, 15. Juni 2020 - Konfiguration und Orchestrierung der Produktionsumgebung - Buildsetup für die in Produktion gehenden Artefakte - Es bestünde theoretisch die Möglichkeit, über Spring Boot Mechanismen dynamisch zusätzliche Komponenten in den Build zu laden - Datenbankverschlüsselung und Schutz der Object-Stores - Automatisch anfallende Daten: - Serverlogs - IP-Adressen OFFENE FRAGEN 37

Slide 38

Slide 38 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) / @rotnroll666, FH Aachen, 15. Juni 2020 - Hervorragend dokumentiert (SAP hätte eventuell unser arc42 nutzen können !) - Kein „Clean-Code“ oder DDD-Leuchtturm-Projekt - Muss es auch nicht sein. Es muss sicher, Datensparsam und funktionell sein - DP3T umgesetzt - Ho entlich nicht verbrannt aufgrund der „Datenspende App“ des Robert-Koch-Instituts im April FAZIT 38

Slide 39

Slide 39 text

UND DANN?

Slide 40

Slide 40 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) / @rotnroll666, FH Aachen, 15. Juni 2020 - Positiver Test: Quarantäne wird so oder so angeordnet (Im Zweifelsfall eh Krankenhaus) - Kontakt mit positiv getesteten Menschen: Verpflichten Quarantäne oder dringliche Empfehlung? - App als „Eintrittskarte“ zu Dingen? - „Not being infected“ das Maß der Dinge? Wer ist in der Beweisspflicht? - Empfehlenswert: „The long tail of contract tracing“ https://github.com/DP-3T/ documents/issues/118 IM FALLE EINER INFEKTION 40

Slide 41

Slide 41 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) / @rotnroll666, FH Aachen, 15. Juni 2020 - Entlastung für Ämter: Quarano https://www.quarano.de - Ein Ergebnis des „WirVsVirus“ Hackathons - Ebenfalls Open Source (EUPL-1.2) - „Langweilig“: - Erfassung von Kontaktketten in Gesundheitsämtern - Quarantäne Tagebücher - Symptomtagebücher ‣Digitalisierung im Wortsinne ALTERNATIVEN UND ERGÄNZUNGEN 41

Slide 42

Slide 42 text

Aspekte komplexer Softwaresysteme am Beispiel der Corona-Warn-App (CWA) / @rotnroll666, FH Aachen, 15. Juni 2020 - https://www.coronawarn.app - https://github.com/corona-warn-app - https://github.com/DP-3T/documents - https://www.google.com/covid19/exposurenotifications/ - https://info.michael-simons.eu/2020/05/31/die-deutsche-corona-warn-app-cwa/ - https://www.heise.de/hintergrund/Corona-Tracking-Wie-Contact-Tracing-Apps- funktionieren-was-davon-zu-halten-ist-4709903.html - https://www.verbraucherzentrale.nrw/wissen/digitale-welt/apps-und-software/ coronawarnung-per-app-fragen-und-antworten-zur-geplanten-tracingapp-47466 - https://ukw.fm/ukw029-corona-weekly-neuer-fall-nur-gestern/ - https://twitter.com/nipafx/status/1270640694705692672 RESSOURCEN 42