TextSecure – Crypto-Held oder weiterer Blindgänger? Teil1

1. Crypto-Messenger-JungleTextSecure

In letzter Zeit erscheinen vermehrt mobile Messenger, die versprechen besonders hohen Wert auf die Privatsphäre und Sicherheit ihrer Nutzer zu legen. Ausschlaggebend für diese Entwicklung ist der NSA-Skandal und die daraus resultierende Nachfrage nach sicherer Kommunikation – auch bei normalen Nutzern.

Anfangs war die Auswahl eher beschaulich, doch schon Mitte 2013 erschienen mit Threema, ChatSecure, surespot und TextSecure erste Messenger mit verschlüsselter Kommunikation. Inzwischen hat sich die Angebotspalette mit Telegram, Cryptocat, Whistle.im und ein paar Weiteren nochmals vergrößert. Als Konsequenz haben Anwender längst den Überblick im »Crypto-Messenger-Jungle« verloren.

Nach der Übernahme von WhatsApp durch Facebook schwappte eine Welle des Entsetzens durch das Internet. Nutzer befürchteten eine Verknüpfung ihrer WhatsApp-Chats mit den bereits gesammelten Facebook-Daten. Für viele Anwender ist damit eine Grenze überschritten. Begünstigt durch die laienhafte Berichterstattung vieler Medien profitieren hauptsächlich Threema und Telegram von wechselwilligen WhatsApp Nutzern. Ein Trend den es aufzuhalten gilt.

Update

11.05.2016: TextSecure heißt jetzt Signal.

Dieser Beitrag ist Teil einer Artikelserie:

2. Signal (ehemals TextSecure)

In diesem Beitrag möchten wir euch die Funktionen und Optionen der App TextSecure vorstellen. Im Kern vereint sie die wichtigsten Eigenschaften eines sicheren Messengers:

  • Die Nachrichten werden standardmäßig Ende-zu-Ende verschlüsselt, sodass selbst Internetprovider, Serverbetreiber oder Eindringlinge in die übertragende IT-Infrastruktur lediglich unverständliches Kauderwelsch sehen.
  • Die eingesetzte Verschlüsselung basiert auf geprüften und bewährten Elementen, die zu einer vertrauenswürdigen Absicherung des Kommunikationskanals kombiniert wurden.
  • Die App sendet Nachrichten zuverlässig über das Internet, auch wenn die Verbindung kurzzeitig abbricht, oder einer der Kommunikationspartner offline ist.
  • Der Quellcode ist vollständig einsehbar. Das gibt Programmierern und Kryptographie-Experten die Möglichkeit, Fehler oder mögliche Hintertüren zu entdecken.

Unterstütze den Blog mit einem Dauerauftrag!

Unabhängig. Kritisch. Informativ. Praxisnah. Verständlich.

Die Arbeit von kuketz-blog.de wird vollständig durch Spenden unserer Leserschaft finanziert. Sei Teil unserer Community und unterstütze unsere Arbeit mit einer Spende.

Mitmachen ➡

2.1 Anfänge von TextSecure

TextSecure existiert schon seit Ende 2011. Bis vor kurzem konnte es allerdings nur verschlüsselte SMS versenden. Mit der neuen Version V2 wurde der Funktionsumfang stark erweitert. Inzwischen funktionieren auch normale Chats, Dateitransfers und Gruppenchats Ende-zu-Ende verschlüsselt über das Internet.
Ähnlich wie Google Hangouts oder iMessage fällt TextSecure auf SMS zurück, um die Nachricht zu versenden, falls kurzzeitig kein Internet zur Verfügung steht. Auf Wunsch kann die Funktion in den Einstellungen auch deaktiviert, oder erst nach Bestätigung genutzt werden. An Nutzer ohne TextSecure können weiterhin unverschlüsselte SMS verschickt werden. TextSecure kann somit als Ersatz für die normale SMS-App verwendet werden, was wiederum etwas Platz auf dem Homescreen schafft.
Seit Version 10.2 von CyanogenMod ist das TextSecure-kompatible WhisperPush als Standard-Messaging im System integriert. Mit über 10 Millionen potenziellen Nutzern ist die Verbreitung damit schon deutlich höher, als die Download-Statistiken von TextSecure im Play Store vermuten lassen.

2.2 Kontinuierliche Weiterentwicklung

Auch optisch hat sich TextSecure weiterentwickelt und zeigt Nachrichten in einem an iMessage angelehnten Format an. SMS werden grün und Push-Nachrichten blau dargestellt. Die Verschlüsselung der bisher verschickten Nachrichten wird mit einem kleinen Schloßsymbol in den Nachrichtenblasen symbolisiert. TextSecure-Nutzer sind in der Kontaktliste mit einem schmalen grünen Streifen versehen.
TextSecure Interface

3. Installation und Einrichtung

Derzeit ist TextSecure lediglich für die Android-Plattform verfügbar. Demnächst soll eine iOS Version folgen. Nachfolgend wird auf die Android-Version eingegangen.

Update

03.03.2015: WhisperSystems stellt Signal 2.0 vor, einen TextSecure kompatiblen Open Source Messenger für iOS.

Nach der Installation von TextSecure über den Google Play Store beginnt die Einrichtung. Folgende Entscheidungen sind hierbei zu treffen:

  • Zu Beginn habt ihr die Möglichkeit ein Passwort zu setzen, mit dem eure Unterhaltungen lokal auf dem Gerät verschlüsselt werden. Damit könnt ihr verhindern, dass jemand mit physischem Zugriff auf euer Mobilgerät die Nachrichten lesen kann. Die Sicherheit der Nachrichten beim Versand beeinflusst das nicht.
  • Anschließend könnt ihr alte SMS aus der Standard SMS-App von Android in TextSecure importieren. Falls ihr euch entschieden habt ein Passwort zu setzen, werden die importierten Nachrichten ebenfalls verschlüsselt gespeichert.
  • Die Eingabe der Telefonnummer ist bei Messengern schon fast obligatorisch. Auch bei TextSecure müsst ihr diese eingeben, falls ihr Nachrichten mit anderen Teilnehmern über das Internet austauschen wollt. Anschließend wird ein Code per SMS zugestellt, dessen Eingabe die Registrierung abschließt.
  • Im Zuge der Einrichtung habt ihr ebenfalls die Wahl eure bisherige SMS-App durch TextSecure zu ersetzen. Das bedeutet, dass anschließend jegliche SMS-Kommunikation über TextSecure erfolgt.

TextSecure Einstellungen
Nach diesen Schritten ist die Einrichtung im Grunde abgeschlossen. Wer allerdings nie oder lediglich nach einer Bestätigung eine SMS versenden möchte, sollte in den Einstellungen unter »Erlaube SMS-Versand an« die Option entsprechend anpassen. Über die Optionen lässt sich zudem eine erneute Passwortabfrage für die lokale Verschlüsselung der Kommunikation einstellen. Mit diesem zusätzlichen Schutz soll es Unbekannten erschwert werden, die Nachrichten im lokalen Speicher von TextSecure zu lesen.

4. Sicherheit

Vier Faktoren müssen zusammenkommen, damit eine Unterhaltung per Chat einem abhörsicheren, persönlichen Gespräch unter vier Augen entspricht:

  • Die Gesprächspartner müssen sich gegenseitig authentifizieren, also sicherstellen, dass es sich wirklich um die Person handelt, mit der man sprechen möchte.
  • Ende-zu-Ende Verschlüsselung sorgt dafür, dass niemand außer den beiden Teilnehmern die Inhalte lesen kann.
  • Perfect Forward Secrecy stellt sicher, dass auch jemand, der die verschlüsselte Kommunikation abhört und speichert, diese nicht entschlüsseln kann, wenn er später einen Schlüssel in die Hände bekommt. Future Secrecy sorgt dafür, dass ein abgefangener Schlüssel keine zukünftige Kommunikation entschlüsseln kann.
  • Abstreitbarkeit ist wichtig, damit kein Gesprächspartner beweisen kann, dass der andere etwas geschrieben hat.

Wie löst TextSecure diese vier Faktoren?

4.1 Authentizität

Um die Authentizität zu gewährleisten verwendet TextSecure das sogenannte TOFU-Prinzip (Trust On First Use). Dies soll verhindern, dass Man-In-The-Middle-Angriffe (MITM) erfolgreich sind. Bei MITM-Angriffen klinkt sich ein Angreifer in die Kommunikation zwischen Sender und Empfänger ein und ist anschließend in der Lage die Nachrichten der Teilnehmer mitzulesen.

So sollte es aussehen wenn die Gesprächspartner direkt miteinander sprechen:
Kein MITM-AngriffSo sieht es aus, wenn ein Angreifer sich per MITM einklinkt:
MITM-AngriffBei der ersten Kontaktaufnahme zwischen Sender und Empfänger verknüpft TextSecure die Telefonnummer der Teilnehmer mit einem eindeutigen Schlüssel. Sobald einer der beiden Teilnehmer seinem Gesprächspartner eine Nachricht schickt, wird dieser Schlüssel auf Übereinstimmung geprüft. Die App überprüft also, ob sich der Schlüssel des Gegenübers nach dem ersten Gespräch ändert und warnt anschließend vor einer möglichen Kompromittierung. Folgende Angriffsszenarien sind denkbar:

  • Für ein mögliches Angriffsszenario müsste ein Angreifer die eingehende und ausgehende Kommunikation eines Gesprächspartners vom Moment der ersten Kontaktaufnahme an abfangen und umleiten – auch alle nachfolgenden Gespräche. Und das gilt sowohl für den Datenverkehr über das Internet, als auch sämtliche SMS, die über die Mobilfunknetze verschickt werden. Das macht einen Angriff kompliziert und sehr aufwendig, da der Abzuhörende unterwegs ständig die WLANs oder Funkzellen wechselt.
  • Alternativ könnte ein Angreifer einen bestehenden TextSecure-Server kompromittieren, oder einen eigenen schädlichen TextSecure-Server aufsetzen und dafür sorgen, dass der Abzuhörende sich darüber anmeldet. Anschließend würde der bösartige Server anderen Nutzern die Echtheit des Angreifer-Schlüssels bestätigen. Eine über den SMS-Service gesendete Nachricht würde allerdings weiterhin einen Alarm auslösen, da über diesen Kommunikationsweg ebenfalls eine Prüfung des Absenderschlüssels stattfindet.

Um sich auch vor solch aufwendigen und dauerhaften Angriffen zu schützen, können Gesprächspartner ihre Schlüssel bei einem persönlichen Treffen austauschen bzw. vergleichen.

4.2 Verschlüsselung

TextSecure nutzt die sehr starken und bewährten kryptografischen »Bausteine« AES-256, Curve25519 und HMAC-SHA256, um Gespräche zu verschlüsseln. Details zum Verschlüsselungsprotokoll lassen sich im Wiki von WhisperSystems nachlesen.

4.3 Perfect Forward Secrecy & Abstreitbarkeit

Off-The-Record (OTR) Nachrichten, wie sie beispielsweise in ChatSecure genutzt werden, bieten in einem gewissen Rahmen Forward Secrecy und sogar Future Secrecy. Die Kryptographie-Experten Moxie Marlinspike und Trevor Perrin haben darauf aufbauend das sogenannte Axolotl Ratchet entwickelt. Dieser implementiert drei hauptsächliche Verbesserungen gegenüber OTR:

  1. Das Axolotl Ratchet funktioniert ebenfalls bei asynchroner Kommunikation. Es müssen also nicht beide Gesprächspartner gleichzeitig online sein. Axolotl erweitert Forward Secrecy, indem jede einzelne Nachricht mit einem neuen Schlüssel versehen wird und nicht alle Nachrichten einer »Sitzung« mit dem gleichen Schlüssel ausgetauscht werden. Weiterhin wird das Nachrichtenformat vereinfacht.
  2. OTR unterstützt bereits die Abstreitbarkeit von Inhalten. Somit kann niemand beweisen, dass ein Kontakt Nachricht XY tatsächlich verfasst hat. Eine Anpassung im Axolotl-Protokoll verbessert die Abstreitbarkeit von Nachrichten bzw. Inhalten nochmals.
  3. Ähnlich zu Jabber/XMPP unterstützt TextSecure die Federation-Funktion. Jeder mit dem notwendigen Fachwissen und Kleingeld kann einen eigenen TextSecure-Server aufsetzen. Aktuell müssen diese allerdings noch manuell dem Netzwerk hinzugefügt werden und verbinden sich noch nicht automatisch. TextSecure verfügt somit über dezentrale Strukturen.

Zusammenfassend lässt sich das Sicherheitsniveau von TextSecure als hoch einstufen. Edward Snowden hat Open Whisper Systems und die Apps TextSecure und RedPhone bei seinem Auftritt auf der SXSW positiv hervorgehoben. Der Hauptentwickler Moxie Marlinspike steht überdies zusammen mit einem der Köpfe hinter dem TOR-Projekt auf einer der berühmten »Watch-Lists« der US-Regierung. Perfide Kontrollen bei Flügen und Beschlagnahmungen von elektronischem Equipment sind keine Seltenheit.

5. Klare Einschränkung

TextSecure schützt nicht vor der gezielten Überwachung, wie sie beispielsweise durch Geheimdienste erfolgt. Ein Smartphone besteht aus einer Vielzahl an individuellen Software- und Hardware-Elementen. Selbst wenn wir im Idealfall die Software unter Kontrolle haben sollten, so gilt das noch lange nicht für den Prozessor, den RAM oder andere proprietäre Hardware-Komponenten. Nicht zu vergessen hat kein Otto-Normal-Verbraucher die Kontrolle über das Baseband oder den Provider – dieser weiß nämlich immer in welchem Sendemast wir eingebucht sind.

Selbst wenn TextSecure die Verschlüsselung korrekt implementiert, so wird die Abhörsicherheit der darüber ausgetauschten Nachrichten, unmittelbar von allen Software- und Hardware-Elementen des mobilen Endgeräts mitbestimmt. Somit muss klar sein, dass die bloße Verwendung von TextSecure nicht automatisch bedeutet, tatsächlich »sicher« mit jemandem zu kommunizieren.

6. Fazit

TextSecure bietet die von anderen Messengern gewohnte Usability, kann bei der Sicherheit gegenüber seinen Mitbewerbern allerdings klar punkten. Der quelloffene Ansatz, bewährte Crypto-Verfahren und das Entwicklerteam rund um Moxie Marlinspike sorgen für das notwendige »Vertrauen«, was man bei anderen Messengern vergeblich sucht.

Doch auch TextSecure ist nicht frei von Kritik, es besteht an einigen Punkten weiterhin Verbesserungsbedarf. Neben dieser Thematik werden wir im zweiten Teil die weitere Ausrichtung des Projekts beleuchten und die zwei bekanntesten Mitbewerber Threema und Telegram zu einem Vergleich heranziehen.

Autoren:
Benedikt Sierck
Mike Kuketz

Bildquellen:

„TextSecure“, WhisperSystems

Über den Autor | Kuketz

Mike Kuketz

In meiner freiberuflichen Tätigkeit als Pentester / Sicherheitsforscher (Kuketz IT-Security) schlüpfe ich in die Rolle eines »Hackers« und suche nach Schwachstellen in IT-Systemen, Webanwendungen und Apps (Android, iOS). Des Weiteren bin ich Lehrbeauftragter für IT-Sicherheit an der Dualen Hochschule Karlsruhe, sensibilisiere Menschen in Workshops und Schulungen für Sicherheit und Datenschutz und bin unter anderem auch als Autor für die Computerzeitschrift c’t tätig.

Der Kuketz-Blog bzw. meine Person ist regelmäßig in den Medien (heise online, Spiegel Online, Süddeutsche Zeitung etc.) präsent.

Mehr Erfahren ➡

SpendeUnterstützen

Die Arbeit von kuketz-blog.de wird zu 100% durch Spenden unserer Leserinnen und Leser finanziert. Werde Teil dieser Community und unterstütze auch du unsere Arbeit mit deiner Spende.

Folge dem Blog

Wenn du über aktuelle Beiträge informiert werden möchtest, hast du verschiedene Möglichkeiten, dem Blog zu folgen:

Bleib aktuell ➡


Diskussion

13 Ergänzungen zu “TextSecure – Crypto-Held oder weiterer Blindgänger? Teil1”

  1. Comment Avatar sero sagt:

    Hallo Mike
    Wie immer ein super Beitrag. Jetzt bin ich aber ein Fan von Android ohne Google…textsecure /whisperpush funktionierten aber ohne Google play store nicht. Die Frage ist warum und gibt es eine Möglichkeit es ohne zu nutzen…?

    • Comment Avatar Mike Kuketz sagt:

      Wird in Teil2 des Artikels beantwortet.
      Benedikt und ich sind uns der Problematik wohl bewusst. Das wird ein deutlicher Kritikpunkt sein. Aber es wird auch einen Lichtblick geben. ;)

    • Comment Avatar Bene sagt:

      Hallo Sero, wie Mike schon gesagt hat, kommen wir darauf im zweiten Teil ausführlicher zu sprechen.
      Falls du nicht so lange warten kannst, kannst du dich hier schonmal einlesen:
      https://github.com/signalapp/Signal-Android/issues/127

      Davon, dass Moxie Marlinspike auch nicht gerade ein großer Freund von Google ist, kannst du dich bei Bedenken übrigens hier überzeugen:
      https://www.youtube.com/watch?v=5qzldtKV1PY

    • Comment Avatar andre sagt:

      Seit kurzem kann man Textsecure auch ohne Google Cloudmessaging auf komplett Google freien Diensten nutzen:
      https://github.com/JavaJens/TextSecure/
      Funktioniert soweit sehr gut.

      • Comment Avatar Bene sagt:

        Dies ist allerdings eine Testversion, die meines Wissens nach noch inkompatibel zu den offiziell über den PlayStore verteilten Versionen ist, weil die Server nicht mit einander reden. Außerdem ändert sich das Websocket-Protokoll immer mal wieder, was die Implementierung von JavaJens kurzzeitig inkompatibel macht.

        Deutlich interessanter ist für mich, dass im offiziellen Android-Client jetzt schon Code steckt um mehrere Clients (insbesondere Websocket-basierte Browserclients) zu verwalten. Das kommt also langsam aber sicher voran ;-)

  2. Comment Avatar Bill Gates sagt:

    Super Beitrag, bin schon gespannt auf den nächsten Teil.

    Ich hoffe ihr schreibt auch etwas zu dem Finanzierungskonzept von Textsecure, denn das hat sich mir persönlich noch nicht erschlossen ;)

  3. Comment Avatar Heiner sagt:

    Danke für den Beitrag! Direkt installiert… Jetzt mal schauen, wie viele Mitstreiter (die meisten nicht gerade technikaffin) ich in meinem Umkreis bewegen kann umzuziehen…

    • Comment Avatar Bene sagt:

      Hallo Heiner,

      vielleicht hilft dir dieser schöne Artikel ja weiter:
      (Leider nicht mehr verfügbar!)

      Der ist deutlich weniger techniklastig als unserer, bringt die Botschaft aber sowohl witzig als auch kurz und knapp auf den Punkt.

  4. Comment Avatar Bene sagt:

    Moxie und seine Projekte wurden übrigens auch von Jacob Applebaum auf dem 30C3 gelobt und für sicher befunden (~Minute 39):
    https://media.ccc.de/v/30C3_-_5713_-_en_-_saal_2_-_201312301130_-_to_protect_and_infect_part_2_-_jacob

  5. Comment Avatar Parsek sagt:

    Hallo Benedikt & Mike,
    ich schreibe äußerst selten Kommentare unter Artikel oder andere Medien. Ich „like“ nicht. Beschäftige mich schon seit 3 Jahren ausführlich mit Verschlüsselungstechniken in jedwedem Anwendungsbereich, sowie sicheren Betriebssystemen.

    „Es lebe die GPL und AGPL !!!“ „Die Unantastbarkeit der Würde des Menschen (Art.1 Abs.1 GG) schließt unser aller Privatsphäre mit ein.“ … öhm, nur mal so propagiert. :-)

    Warum ich das hier schreibe: Euer Artikel ist außerordentlich gut! Ihr versteht die Vielschichtigkeit wirklich sicherer IM Kommunikation und könnt dies auch dem Laien noch sehr verständlich nahebringen. Das sieht man nicht oft im Netz. Weiter so! … und ein fettes, statistisch nicht verwertbares LIKE von mir! ;-)

  6. Comment Avatar med sagt:

    Man beachte die neuen „User-Permissions“. Kalenderzugriff, Browserhistory-Zugriff, Mikrofon-Zugriff…
    Irgend etwas läuft da gerade deutlich daneben.

    • Comment Avatar Bene sagt:

      Nein, das sind alles Berechtigungen, die benötigt werden um neue Funktionen einzuführen. Einige, weil RedPhone jetzt auch auf Android bald mit TextSecure gebündelt wird und einige für andere geplante Funktionen. Da es beim Thema Sicherheit unter anderem darauf ankommt, dass möglichst alle Nutzer so bald wie möglich auf die neueste Version updaten, wurden einige erst für zukünftige Features benötigte Permissions mit denen für Telefonie gebündelt. Denn der Play Store führt keine automatischen Updates bei Apps durch, die neue Berechtigungen anfordern. Da viele Nutzer nicht regelmäßig Updates installieren, ist es besser so viele wie möglich gleichzeitig abnicken zu lassen.

      Die Details, was wofür benötigt wird, finden sich mit der Info, weshalb so viele auf einmal dazugekommen sind hier:
      https://support.signal.org/hc/en-us/articles/360007062172

      Also bitte erstmal informieren bevor man etwas schlechtredet ;-)

HilfeWenn du konkrete Fragen hast oder Hilfe benötigst, sind das offizielle Forum oder der Chat geeignete Anlaufstellen, um dein Anliegen zu diskutieren. Per E-Mail beantworte ich grundsätzlich keine (Support-)Anfragen – dazu fehlt mir einfach die Zeit. Kuketz-Forum

Abschließender Hinweis

Blog-Beiträge erheben nicht den Anspruch auf ständige Aktualität und Richtigkeit wie Lexikoneinträge (z.B. Wikipedia), sondern beziehen sich wie Zeitungsartikel auf den Informationsstand zum Zeitpunkt des Redaktionsschlusses.

Kritik, Anregungen oder Korrekturvorschläge zu den Beiträgen nehme ich gerne per E-Mail entgegen.