Threema – Klartext via USB und iCloud-Backup

Threema ist ein Messenger für iOS, ähnlich zum allseits beliebten Whatsapp, mit dem entscheidenden Unterschied, dass die Datenübertragung verschlüsselt geschieht und die Schlüssel in der Hand der Nutzer liegen. Der Anbieter hat also keine Möglichkeit, die Nachrichten zu entschlüsseln, und die Nutzer haben nach einem Abgleich der Key Fingerprints die Sicherheit, dass niemand auf der Leitung mithorcht.

Der Schlüssel wird in der Keychain abgelegt und augenscheinlich auch nicht mit in das iOS Backup aufgenommen.

Die entschlüsselten Nachrichten selbst allerdings liegen laut der FAQ direkt im Dateisystem und werden ins Backup mit aufgenommen.

Das Dateisystem kann unter iOS von der “Data Protection” geschützt sein, wenn das Gerät mit einem Sperrcode versehen ist. Fehlt der Passcode, fehlt auch die Sperre.

Fehlt die Sperre, lassen sich alle Nachrichten im Klartext über USB auslesen, z.B. mit iExplorer, ohne Jailbreak.

Und zu guter letzt werden die Nachrichten im Klartext auch in das iTunes-Backup aufgenommen und, wenn das aktiviert ist, auch in das iCloud-Backup hochgeladen.

threema

Das lässt sich einfach nachvollziehen:

  1. Threema einrichten und einige Nachrichten verschicken.
  2. iCloud-Backup durchführen.
  3. Gerät komplett löschen.
  4. iCloud Restore durchführen.
  5. Nachrichten im Klartext per USB auslesen.

Ich habe den Entwickler um eine Stellungnahme dazu gebeten – ich finde trotz der verschlüsselten Übertragung die Handhabung des entschlüsselte Nachrichtentexts doch relativ lax.

Update 13.8.2013: Threema-Entwickler Manuel Kasper hat sich bei mir gemeldet. Aus seiner Sicht sind die Daten durch die iOS Data Protection gut geschützt.

Die lokal gehaltenen Daten könnten durch einen weiteren Schlüssel, z.B. ein langes Passwort, verschlüsselt werden, was aber die Nutzerfreundlichkeit stark einschränken würde.

Mein Vorschlag war dann, die lokalen Daten mit dem gleichen Schlüssel zu verschlüsseln, der auch für die Übertragung über das Netzwerk genutzt wird.

Dieser Vorschlag löse zwar nicht das Grundproblem, dass der Schlüssel am selben Ort wie die Daten, also auf dem Gerät gehalten werde, Manuel Kasper hält es aber für eine grundsätzlich gute Idee, die vielleicht in einem Update als zusätzliche Option umgesetzt werden könnte.

Ein guter Hinweis zur Keychain (mehr dazu hier): Einträge können mittels des Attributs kSecAttrAccessibleWhenUnlockedThisDeviceOnly an den gerätespezifischen UID-Schlüssel gebunden werden. Backups enthalten also immer den verschlüsselten Threema-Schlüssel, können aber nur auf dem gleichen Gerät genutzt werden. Ob Apple keine Kopie dieses Schlüssels hat, sei nicht bekannt.