Marcus Mengs Profile picture
29 Jun, 26 tweets, 57 min read
@gnirbel @markus_bublitz @cccfr @patrick_hennig @alvar_f @HonkHase @LoeweHeinz @AllenRe97883617 @BergerPhilipp @_lucaApp Ich greife die Aussagen gerne auf, weil hier (wie so oft) Fakten vermischt und in teilen falsch dargestellt werden.

Zunächst diese:
@gnirbel @markus_bublitz @cccfr @patrick_hennig @alvar_f @HonkHase @LoeweHeinz @AllenRe97883617 @BergerPhilipp @_lucaApp Die Aussagen beziehen sich auf den Fakt, dass ein Beobachter des Netzwerkverkehrs am Backend (Angreifer, Innentäter, Intermediaries mit Logging Funktionalität) die im Bild gezeigten Ableitungen treffen kann.
Verschlüsselte Daten haben hierbei keine Relevanz!
@gnirbel @markus_bublitz @cccfr @patrick_hennig @alvar_f @HonkHase @LoeweHeinz @AllenRe97883617 @BergerPhilipp @_lucaApp "hohem Aufwand": der Aufwand ist gering, es wurde lediglich Netzwerkverkehr betrachtet, also passiv (außehalb der Transportverschlüsselung, so wie dieser innerhalb der Luca-Infrastruktur auf Betreiber-Seite anfällt - ab dem terminierenden TLS Proxy)
@gnirbel @markus_bublitz @cccfr @patrick_hennig @alvar_f @HonkHase @LoeweHeinz @AllenRe97883617 @BergerPhilipp @_lucaApp "Laborbedingungen": Die Betrachtungen wurden am Produktivsystem vorgenommen (jeweils aktuellste Backend Version), unter Nutzung der jeweils aktuellsten Android App (Production Release, nicht Beta)
@gnirbel @markus_bublitz @cccfr @patrick_hennig @alvar_f @HonkHase @LoeweHeinz @AllenRe97883617 @BergerPhilipp @_lucaApp "App dauerhaft offen": Es wurde nachgewiesen, dass die App NICHT dauerhaft geöffnet sein muss, sonder Geräte-eindeutige Identifier sogar nach dem Geräteneustart wiederholt übermittelt werden und so eine durchgängige Geräte Identifizierung erlauben (selbst bei IP-Wechsel)
@gnirbel @markus_bublitz @cccfr @patrick_hennig @alvar_f @HonkHase @LoeweHeinz @AllenRe97883617 @BergerPhilipp @_lucaApp "Vollzugriff aufs System": Es genügt Einblick in die Netzwerkkommunikation an einer Stelle der Infrastruktur, ohne dass weitere Berechtigungen auf Applikationsebene benötigt werden.
@gnirbel @markus_bublitz @cccfr @patrick_hennig @alvar_f @HonkHase @LoeweHeinz @AllenRe97883617 @BergerPhilipp @_lucaApp In diesem Statement geht es um die Verschlüsselung von Nutzerdaten (Encrypted Contact Data).

Ich betone nochmals, dass diese Daten für die vorgenannten Ableitungen nicht benötigt werden, möchte aber dennoch einiges klarstellen

@gnirbel @markus_bublitz @cccfr @patrick_hennig @alvar_f @HonkHase @LoeweHeinz @AllenRe97883617 @BergerPhilipp @_lucaApp Zunächst sind diese Kontaktdaten nicht mit einem der vorgenannten Schlüssel verschlüsselt, sondern mit einem symmetrischen AES128 Schlüssel. Heißt: Sie sind nicht für eine "berechtigte Entität" verschlüsselt (wäre dann asymmetrisch, mit Public Key eines Gesundheitsamtes)
@gnirbel @markus_bublitz @cccfr @patrick_hennig @alvar_f @HonkHase @LoeweHeinz @AllenRe97883617 @BergerPhilipp @_lucaApp Wenn im Kontext Luca von "doppelter" oder "Ende-zu-Ende" Verschlüsselung gesprochen wird, meint das die "encrypted contact data reference" (meistens 😉), im wesentlichen beinhaltet diese den symmetrischen Schlüssel für die bereits gespeicherten "encrypted contact data" (AES128)..
@gnirbel @markus_bublitz @cccfr @patrick_hennig @alvar_f @HonkHase @LoeweHeinz @AllenRe97883617 @BergerPhilipp @_lucaApp ... und die assoziierte "userID", um den richtigen Kontaktdatensatz auszuwählen.

Diese "encrypted contact data reference" wird (in den meisten Fällen) zweifach umschlüsselt:

1) Auf Basis des jeweils gültigen public key des "daily key pairs"
@gnirbel @markus_bublitz @cccfr @patrick_hennig @alvar_f @HonkHase @LoeweHeinz @AllenRe97883617 @BergerPhilipp @_lucaApp 2) Auf Basis des sich nie ändernden public keys eines Location Operators (welcher damit ALLE seine Locations verwaltet)
@gnirbel @markus_bublitz @cccfr @patrick_hennig @alvar_f @HonkHase @LoeweHeinz @AllenRe97883617 @BergerPhilipp @_lucaApp Um diese Daten wieder zu entschlüsseln kommt KEIN Schlüsselmaterial zum Einsatz, welches nur spezifisch für ein Gesundheitsamt existiert. Jede Entität die ein "daily key pair" kennt, kann entsüprechend entschlüsseln
@gnirbel @markus_bublitz @cccfr @patrick_hennig @alvar_f @HonkHase @LoeweHeinz @AllenRe97883617 @BergerPhilipp @_lucaApp Die äußere Verschlüsselung (Location Operator), kann jede Entität lösen, welche das Keypair eines Location Operators kennengelernt hat
@gnirbel @markus_bublitz @cccfr @patrick_hennig @alvar_f @HonkHase @LoeweHeinz @AllenRe97883617 @BergerPhilipp @_lucaApp Ich unterschlage hierbei, dass die eigentliche Verschlüsselung eigentlich symmetrisch erfolgt (AES128). Die jeweils genutzten AES-Schlüssel mittels "discrete logarithm integrated encryption scheme" abgeleitet.

Hier ergibt sich ein Sicherheitsgewinn, da die AES-Schlüssel wechseln
@gnirbel @markus_bublitz @cccfr @patrick_hennig @alvar_f @HonkHase @LoeweHeinz @AllenRe97883617 @BergerPhilipp @_lucaApp ... machbar ist dies aber nur, weil erneut kein E2EE angesetzt wird und daher das DLIES Schlüsselpaar des Absenders nach belieben neu generiert werden kann ("ephemeral key pairs")
@gnirbel @markus_bublitz @cccfr @patrick_hennig @alvar_f @HonkHase @LoeweHeinz @AllenRe97883617 @BergerPhilipp @_lucaApp Es existieren auch Gesundheitsamtspezifische Schlüssel , welche allerdings nicht unmittelbar in der Nutzdatenverschlüsselung eingesetzt werden:

1) Health-Department Encryption Key Pair (HDEKP)
2) Health-Department Signing Key Pair (HDSKP)
@gnirbel @markus_bublitz @cccfr @patrick_hennig @alvar_f @HonkHase @LoeweHeinz @AllenRe97883617 @BergerPhilipp @_lucaApp Das HDEKP wird eingesetzt, wenn das "Daily Key Pair" generiert/rotiert wird. Dies erfolgt möglichst täglich durch EIN Gesundheitsamt. Um den neu generierten GEMEINSAMEN "Daily Private Key" an die anderen Gesundheitsämter bekannt zu machen, wird dieser durch das generierende...
@gnirbel @markus_bublitz @cccfr @patrick_hennig @alvar_f @HonkHase @LoeweHeinz @AllenRe97883617 @BergerPhilipp @_lucaApp mit dem Public Key der HDEKPs aller anderen Gesundheitsämter verschlüsselt, so dass diese aud den neuen Schlüssel zugreifen können.
@gnirbel @markus_bublitz @cccfr @patrick_hennig @alvar_f @HonkHase @LoeweHeinz @AllenRe97883617 @BergerPhilipp @_lucaApp Der private des HDSKP wird vom Gesundheitsamt welchen das jeweiligen "Daily Key Pair" erstell hat genutzt, um dessen public key zu signieren (mit privatem Teil seines HDSKP).

Dieses Gesundheitsamt ist nun "key issuer" und "Certification Authority"
@gnirbel @markus_bublitz @cccfr @patrick_hennig @alvar_f @HonkHase @LoeweHeinz @AllenRe97883617 @BergerPhilipp @_lucaApp Es nimmt damit die Rolle einer Entität ein, welche eigentlich durch eine unabhängige vertrauenswürdige Drittparte abgebildet werden müsste.

An Stellen wo der public key des GEMEINSAMEN "Daily Key Pairs" verifiziert werden soll, muss also die erstellte Signatur mit dem ...
@gnirbel @markus_bublitz @cccfr @patrick_hennig @alvar_f @HonkHase @LoeweHeinz @AllenRe97883617 @BergerPhilipp @_lucaApp HDSKP des jeweiligen key issuers (das Gesundheitsamt welches das "Daily Key Pair" erzeugt hat) geprüft werden.

Da es sich hier nicht um ein Zertifikat, sondern um ein Schlüsselpaar handelt (es gibt keinen Trust Anchor), ist es entscheidend von wo dieses HDSKP ausgeliefert wird
@gnirbel @markus_bublitz @cccfr @patrick_hennig @alvar_f @HonkHase @LoeweHeinz @AllenRe97883617 @BergerPhilipp @_lucaApp Das HDSKP wird aber vom Luca-Backend abgefragt und kann von dort in beliebiger Form ausgeliefert werden. Es wäre also möglich, beliebige "Daily Key Pairs" zu etablieren, da HDSKP und "Daily KP" von der selben Entität bereitgestellt werden.
@gnirbel @markus_bublitz @cccfr @patrick_hennig @alvar_f @HonkHase @LoeweHeinz @AllenRe97883617 @BergerPhilipp @_lucaApp Das eigentliche Schlüsselmaterial (privater Teil des "Daily Key Pairs") ist in den Applikationsanteilen der Gesundheitsämter permanent im Browser geladen ("Health Department Frontend" ist einer Webapplikation).
@gnirbel @markus_bublitz @cccfr @patrick_hennig @alvar_f @HonkHase @LoeweHeinz @AllenRe97883617 @BergerPhilipp @_lucaApp Gelingt ein Angriff auf diese Browser-Session, wird der Schlüssel den ALLE Gesundheitsämter gemeinsam nutzen kompromittiert (und bisherige Daily Keys im Zugriff des Gesundheitsamtes).

Wahrscheinlichkeit der Existenz von relevanten Angriffsvektoren kann ich nicht einschätzen
@gnirbel @markus_bublitz @cccfr @patrick_hennig @alvar_f @HonkHase @LoeweHeinz @AllenRe97883617 @BergerPhilipp @_lucaApp Randbemerkung: Für Schlüsselanhänger kommt das "Daily Key Pair" nicht zum Einsatz. Was hier genutzt wird hinterlasse ich als "Leseraufgabe" (Hint: es rotiert nicht täglich)

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Marcus Mengs

Marcus Mengs Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @mame82

29 Jun
@alvar_f @HonkHase @LoeweHeinz @gnirbel @AllenRe97883617 @BergerPhilipp @patrick_hennig @_lucaApp Ah, Risk-Management und -Analysis. ... eine bessere Basis!

Du lenkst den Fokus damit auf abstrakte Risiken, wie Infiltration des Systems durch Angreifer oder Missbrauch durch Innentäter.

Das gute: auch solche Risiken müssen qunatifiziert werden ...
@alvar_f @HonkHase @LoeweHeinz @gnirbel @AllenRe97883617 @BergerPhilipp @patrick_hennig @_lucaApp ... insbesondere da der Schutzbedarf für alle Schutzziele mindestens "HOCH" sein dürfte (wir kennen ja das SiKo nicht).

Möchtest du solche Risiken bewerten, betrachtest du zunächst mal die Eintrittswahrscheinlichkeit. Die dürfte im Falle "luca" für erfolgreiche Angriffe ...
@alvar_f @HonkHase @LoeweHeinz @gnirbel @AllenRe97883617 @BergerPhilipp @patrick_hennig @_lucaApp vergleichsweise hoch sein, denn das System ist bisher permanent und kontinuierlich durch technische Mängel aufgefallen.
Gleichzeitig bietet es ein "high value target" für Angreifer und es darf angenommen werden, das Informationsgewinnung/Beschaffung eher das Ziel sind als ...
Read 8 tweets
27 Jun
@alvar_f @HonkHase @LoeweHeinz @gnirbel @AllenRe97883617 @BergerPhilipp @patrick_hennig @_lucaApp Ja wenn man ihn nicht im Kontext der Möglichkeiten betrachtet, die er hier eröffnet, mag das sogar vertretbar sein.

Es ist aber auch einer der Belege dafür, dass die vorliegenden Bewertungen der Datenschützer "irrelevant" sind, wenn man wissen möchte, ob ...
@alvar_f @HonkHase @LoeweHeinz @gnirbel @AllenRe97883617 @BergerPhilipp @patrick_hennig @_lucaApp ... das System "luca" geeignete Maßnahmen ansetzt, um die zu verarbeitenden Daten zu schützen (oder es vielleicht wenigstens schafft die wenigen selbst definierten "security objectives" zu erfüllen)!
@alvar_f @HonkHase @LoeweHeinz @gnirbel @AllenRe97883617 @BergerPhilipp @patrick_hennig @_lucaApp I know, I know ... soll sich Berlin drum kümmern.

Klappt bestimmt vielleicht bevor das erste Lizensierungsjahr endet. Solange kannst du weiter versuchen technische Faktenlage in "Fundamentalkritik" umzudeklarieren.
Read 6 tweets
27 Jun
@alvar_f @HonkHase @LoeweHeinz @gnirbel @AllenRe97883617 @BergerPhilipp @patrick_hennig @_lucaApp Und ich werde auch keine Kryptoanalyse schreiben ... nicht nur weil ich kein Kryptologe bin, sondern weil der Großteil der relevanten Informationen UNVERSCHLÜSSELT am Backend anfallen.
@alvar_f @HonkHase @LoeweHeinz @gnirbel @AllenRe97883617 @BergerPhilipp @patrick_hennig @_lucaApp Bekannt und korrelierbar sind Telefonnummer, Checkinhistorie, Abfragestatus Gesundheitsamt der Systemteilnehmer.

Die einzigen Informationen die das Backend nicht ohne weiteres lernen kann, sind die nicht anderweitig bekanntgewordenen Kontaktdatenanteile (Name, Adresse).
@alvar_f @HonkHase @LoeweHeinz @gnirbel @AllenRe97883617 @BergerPhilipp @patrick_hennig @_lucaApp Für die genannten verbleibenden Kontaktdatenanteile (Name, Adresse) hat wiederum das "asymnetrische Krypto-Kungfu" keine Relevanz, da sie SYMMETRISCH verschlüsselt auf dem Server abgelegt und mit einer UserID assoziiert werden.
Read 13 tweets
25 Jun
Okay, das #LucaApp Thema verfolgt mich.

Erkenntnis: Auch in Bayern versagen die Datenschützer, hab die Details unter den Thread von @kcotsneb gepackt.

... Wiederhole mich aber nur noch sinnlos. Der BayLDA ist sicher nicht blind, schaut aber in die falsche Richtung.
@HonkHase

Ich würde es so beschreiben:

Du bist Datenschützer, hast dich aber entschlossen Sicherheitsmängel im #LucaApp Quellcode zu suchen. Leider übersiehst du dabei die Datenschutzmängel (die schon belegt wurden) und kannst auch die Sicherheitsmängel nicht finden.
👍
Read 4 tweets
25 Jun
@kcotsneb Und nochmal versagt der Datenschutz an der #LucaApp

LDA Bayern findet keine Sicherheitsmängel (wurden extern gefunden und zeitgleich veröffentlicht, ist ja auch keine Kernkompetenz LDA).

Immerhin: Man untersuchte ob Betreiber Daten entschlüsseln kann ("Klardaten"). Image
@kcotsneb Das Traurige:

Die Erkenntnisse aus dem Bild unten kann der Betreiber gewinnen, OHNE AUCH NUR ZU VERSUCHEN AN "Klardaten" ZU KOMMEN ... ganz nebenbei ... Design-bedingt. Image
@kcotsneb In den "Klardaten" die der Betreiber nicht (ohne Weiteres) lesen kann, stecken dann nur noch Namen und Adressen der Nutzer (deren Plausibilität vom System übrigens nicht sichergestellt wird).
Read 4 tweets
25 Jun
@IngoPan Berechtigte Frage! Let me try:

Luca garantiert den Gesundheitsämtern "verwertbare" Kontaktdaten (wesentliches Merkmal). Die Plausibilitätsprüfung der Kontaktdaten beschränkt sich allerdings auf die Telefonnummer, welche ein Gast angibt (SMS Verifikation).

1/n
@IngoPan Diese Plausibilitätsprüfung lässt sich aber umgehen, so dass Nutzer mit beliebigen Telefonnummern (und weiteren Kontaktdaten) angelegt werden können (auch mehrfach, mit gleichen Kontaktdaten und Telefonnummer).

Damit ist zunächst die Integrität nicht mehr gewährleistet.

2/n
@IngoPan Jeder kann beliebige Nutzer anlegen (oder existierende Personen erneut anlegen). Wer einen Nutzer angelegt hat, kann diesen dann in beliebige Locations einchecken ... auch zeitgleich in mehrere.

Damit leidet die Integrität weiter, aber ...

3/n
Read 17 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!

:(