Verschlüsselte Kekse

on

Wahrscheinlich interessiert es die Neu-Threema-Nutzer nicht sonderlich.

Wahrscheinlich wird das hier auch ziemlich technisch und damit ein Stück weit über dem Verständnis derer, die jetzt voller Panik ihren Messenger gelöscht haben.

Ich muss an der Stelle vorausschicken, dass ich beim Thema Security aus beruflicher Sicht ein bisschen vorbelastet bin. Handling und Bedenken von sensiblen Daten ist also mein Tagesgeschäft. Ich will die Alternativen zu WhatsApp auch nicht madig machen, aber man sollte das ganze dann vielleicht mal in einem etwas größeren Kontext betrachten.

Threema also. Ein Messenger der damit wirbt, dass es eine asymmetrische Ende-zu-Ende-Verschlüsselung mittels PGP ist, die so sicher ist, dass sich sogar die NSA daran die Zähne ausbeißt.

Erstmal kann das keiner so richtig nachweisen ob dem so ist oder nicht. Immerhin wirbt auch De-Mail mit Ende-zu-Ende-Verschlüsselung, was aber in dem Fall nur heißt, dass es von Provider zu Provider verschlüsselt ist. Kommt halt drauf an, wie man das Ende definiert… Das weiß man aber offiziell auch erst, seit das jemand nachgewiesen hat.

Ganz richtig ist in diesem Zusammenhang auch der Einwand bei Threema, dass es an der Stelle schon zwei Knackpunkte gibt.

Threema nutzt auch einen Server. Wo der steht, weiß erstmal kein Mensch. Das kann in der Schweiz, in Timbuktu oder bei der NSA im Keller sein. Wer bei letzterem lacht und meint das könne nicht sein, der erinnere sich mal kurz an das Debakel mit der Update-Funktion bei der nPA-App. Und die kam von Deutschlands in der IT gefürchtetestem Laden: Dem BSI.

So ne Update- oder generelle URL ist schnell mal umgebogen, oder eben umgeleitet, wenn man da findig genug ist. Letztlich weiß ich also gar nicht, wohin die Reise meiner Nachricht, auch wenn sie verschlüsselt ist, geht.

Der zweite Punkt ist die Anwendung an sich. Da kann ja keiner reinschauen. Ich kann ja gerne wutschen und wischen und dann sagt mir ein Dialog, dass es jetzt sicher ist. Vielleicht wird es aber im Hintergrund nur Base64-kodiert oder gar nicht verschlüsselt. Nachweisen kann ich auch das als Enduser erstmal nicht. Nicht mal per Wireshark oder ähnlichem, weil sowas ja in Deutschland als „Hacker-Tool“ verboten ist.

Letztlich wäre es an der Stelle sicherer, wenn ich nur einen kurzen Dummy-Request für den Verbindungsaufbau an den Server schicke, und danach wirklich nur noch Point-To-Point kommuniziere. Ein bisschen wie Magnet-Links, die eben bei Torrent auch ohne den bösen Tracker auskommen. Dann würde es aber wahrscheinlich aus simples SSL tun.

Punkt zwei bei der Verschlüsselung ist, dass ich auch nicht nachweisen kann, dass es nur EINMAL verschlüsselt ist. Im Grunde kann ich es mit dem öffentlichen Schlüssel des Empfängers verschlüsseln und dann nochmal mit meinem eigenen. Der User bekommt davon nix mit. Selbst wenn er das mit Wireshark schauen würde, wäre da verschlüsselter Müll. In diesem Fall kann der Betreiber also auch vollkommen entspannt jeden Mist auf seinem Server entschlüsseln. Paranoia galore kann ich…

Traue also keinem Server, der nicht in deinem eigenen Keller steht und von dir selber administriert wird.

Aber mal angenommen, dass ist alles sicher und steht in sicheren Umgebungen.

Letztlich ist jede Sicherheit nur so sicher wie ihr schwächstes Glied. In diesem Falle: Das Gerät.

Ganz ehrlich, wenn ich eines aus Security- und BYOD-Schulungen gelernt habe: Der Schwachpunkt ist das mistige Ding in der Hand.

Wo man da anfangen soll, weiß ich gar nicht, weil es mehr oder weniger ein ungelöstes Problem ist. „Ich will so ein Tablet haben“ ist wohl der Albtraum eines jeden Admins, der ein sicheres System haben will.

Das wäre zunächst die Nummer mit den Schlüsseln. Die werden ja in irgendeinem Keystore hinterlegt. Keine Ahnung wie viel Platz so ein supersicherer öffentlicher Schlüssel braucht, aber er braucht auf jeden Fall Platz. Und das für jeden Kontakt. Ein bisschen ist es also wie Schweizer Käse: Je mehr, desto weniger. Aber der Knackpunkt ist auch nicht der öffentliche Schlüssel. Die sind im Grunde vollkommen egal. Das ist nichts anderes als ein Zahlenschloss, dass ich jedem meiner Freunde schicken kann, damit er seine Briefe in eine Box packen kann und sie an mich schicken kann. Alles was sie machen müssen ist das Schloss zudrücken.

Unangenehm wird es dann mit dem privaten Schlüssel. Mit dem kann ich, und nur ich, nämlich die Box wieder öffnen. Das Ding sollte es nur einmal geben (und einmal auf einem USB-Stick im Safe). Der liegt auch auf meinem Gerät… Merkste was?

Ich müsste also im Grunde, wenn ich wirklich wirklich sicher sein will, eigentlich zwei Dinge tun:

  1. Einen Schlüssel für meine Nachrichten erstellen, der so super sicher ist, dass ihn keiner knacken kann
  2. Einen Schlüssel für den Keystore erstellen, der so super super sicher ist, dass ihn erst Recht keiner knacken kann
  3. Den Schlüssel aber im Grunde nicht auf dem Gerät haben, weil das per se schon mal korrumpiert ist.

Der aufmerksame Leser merkt, dass es hier jetzt komisch wird.

An dieser Stelle sei also eines angemerkt: Super sicher und benutzerfreundlich ist ein Oxymoron!

Der nächste Aufschrei ist dann wohl, wie ich behaupten kann, dass das Gerät an sich schon korrumpiert ist.

Das hat mehrere Gründe: Zum einen hängt das Gerät nackig im Internet. Nicht hinter mehreren Firewalls, Appliances und Viren- und Contentscannern sondern direkt draußen im Internet. Ich bin auch keiner von diesen Internetverweigerern sondern das ist, abseist von Weltanschauung und moralischem Verständnis sicherheitstechnisch einfach mal so: Das Internet ist böse. Ein Ort der Man-in-the-Middle-Attacken und Portscans. Der Vorhof zur Hölle. Der Albtraum der IT-Security.

Folglich ist das Gerät an sich auch „verseucht“. Und von dem was auf dem Gerät drauf ist mal ganz zu schweigen.

Da wäre das Betriebssystem, dass jemand entwickelt hat ohne dass ich als Endnutzer so wirklich genau weiß, was da im Hintergrund passiert. In den meisten Android-Fällen hatte das Betriebssystem nach dem ursprünglichen Entwickler dann noch der Hardware-Hersteller in der Hand um es auf sein Gerät anzupassen. Damit ist aber noch nicht Ende der Verwertungskette, sondern in vielen Fällen landet es dann noch beim Provider, der es freigeben muss und vielleicht noch mehr Veränderungen dran vornimmt (War bei Apple z.B. anfangs mit dem Tethering ja auch so…) und noch die eine oder andere App drauf schmeißt, die den Kunden glücklich machen soll.

Im Zweifelsfalle ist das nackte Betriebssystem als durch drei mehr oder weniger Kompetente Hände gegangen bevor ich es in der Hand habe. Wenn sich an der Wursttheke erstmal drei Leute mein Fleisch unter dem Tresen zuwerfen, dann werde ich mir auch einen anderen Metzger suchen…

Danach kommt das Gerät zum Nutzer, der wiederum sein übriges dazu tut. Zugegeben, es ist nicht ganz simpel von App zu App zu kommunizieren, zumindest bei Android nicht, aber so schwer ist das auch nicht. Und auch wenn theoretisch alles in einer Sandbox läuft: Keine App ist eine Insel. Und auch hier gilt wieder, was ich vom Anfang gesagt habe: So genau weiß keiner, was die App treibt, wie sie kommuniziert und was sie da alles auf meinem Gerät hinterlässt. Ganz davon abgesehen hat wahrscheinlich niemand eine Dokumentation in DIN A0  an der Wand hängen, welche App aktuell mit welchen Berechtigungen was auf dem Handy macht. Soweit ich weiß, ist das bei iOS nicht einmal vollständig nachvollziehbar.

Um solchen Dingen zu begegnen, ist man gerade im professionellen Bereich ersten immer noch ziemlich ratlos und zweitens versucht man sensible Firmendaten nur per VPN aus einem Container heraus zu speichern. Wenn überhaupt…

Denn letztlich kann die Nachricht auf dem Transportweg so toll verschlüsselt sein wie sie will: Dann suche ich mir halt einen anderen Schwachpunkt. Und der ist eben meistens das Gerät. Sei es nun als getarnte Werbung, als infizierte App oder indem ich einfach mal den Speicher des Handys abziehe und in Ruhe auf dem Rechner entschlüssle ohne dass der Nutzer was davon mitbekommt. Wenn er bei Apple vor lauter Sicherheitsfreude noch ein verschlüsseltes Backup gemacht hat, umso besser. Da sind nämlich im Gegensatz zum unverschlüsselten alle Zertifikate und Passwörter dabei.

Sowas ist auch nicht sonderlich aufwändig. Knacken eines Systemabbilds bei iOS mit dem „einfachen“ Passcode: 30 Minuten. Maximal. Habe ich schon live gesehen. Jedes Mal ein sechs bis zehnstelliges Passwort eingeben um die Sperre auszuschalten hat nicht jeder Lust drauf. Siehe oben, das Oxymoron. Bei Android sieht es übrigens nicht besser aus…

Lange Rede, kurzer Sinn:

Jetzt von WhatsApp auf Threema umzusteigen ist mehr oder weniger so als würde man einen Schneeball in die Hölle werfen.

Man sollte sich an der Stelle  dann vielleicht globaler Gedanken darum machen, welche Daten man wie verschickt und was man da eigentlich tut. Wer vorher sensible Daten per Instant Messenger verschickt hat, dem war auch so nicht zu helfen. Das macht Threema jetzt nicht besser.

Vielleicht denkt der eine oder andere mal mehr drüber nach, wenn er sich diesen Text zu Gemüte geführt hat. Denn wie sehr sich manche mit dem Thema beschäftigen, zeigt ein Kommentar den ich gestern gelesen habe

Ich wechsel von WhatsApp weg, weil ich will nicht dass Facebook meine Handynummer hat…

Glückwunsch, du hast das Prinzip von WhatsApp verstanden.

Oder wie der Entwickler in der Doku so schön schreibt:

Magic happens here!

5 Kommentare

  1. Ralf sagt:

    Jetzt verstehen es alle! 😉

    1. hazamel sagt:

      Wenn es einfach wäre, würde es ja jeder können 😉 Habe kurz über erklärende Links nachgedacht, aber das wäre ziemlich ausgeufert.

      Ich erkläre das aber gerne persönlich. 😉

  2. Peter sagt:

    Kurzer Beitrag zur End-to-End Verschlüsselung bei Threema:

    Die haben eine Protokoll-Funktion aktivierbar eingebaut, welche per NaCl (http://nacl.cr.yp.to/) die verschlüsselten Daten dechiffrierbar und validierbar macht (https://threema.ch/validation/).

    Ich hab‘ den Quelltext von NaCl noch nicht durch, aber ich habe bei DJB als einem der Autoren keine große Hoffnung, relevante Backdoors zu finden.

    Und das heißt, dass Threema entweder nur für’s Protokoll separat verschlüsselt, in Wirklichkeit aber ganz anders – und vielleicht auch mit zusätzlichem Betreiber-PubKey arbeitet. Oder, dass die Verschlüsselung ziemlich brauchbar implementiert ist. Ich denke, zwei mal verschlüsselt fliegt früher oder später über auffälliges Timingverhalten der Anwendungsprozesse auf. Ob die sich diesem Risiko aussetzen, dann aber mal richtig doof dazustehen?

    Bleibt also als größeres Risiko „nur noch“ die Gerätesicherheit 😉

    1. hazamel sagt:

      Das war auch eher der Paranoia-Teil 😉
      Wenn überhaupt ist wirklich das Gerät das einfachere Ziel.

      Wie schnell sowas geht ohne dass man Hacken muss, sieht man ja im Moment bei Apple:
      http://www.spiegel.de/netzwelt/web/goto-fail-apples-furchtbarer-fehler-a-955154.html

  3. Madse sagt:

    Hab ichs mir doch gedacht: trust no one! Ich wechsle aus Bequemlichkeit nicht den Messenger, sondern achte weiter hauptsächlich darauf, was ich an Daten ins Internet werfe. Sind die erstmal da, kommt jeder dran, der mehr kann an als nen Rechner anschalten und eine Worddatei speichern.

Kommentare sind geschlossen.