Hinweis: Falls du mit den Begriffen "privater und öffentlicher Schlüssel" nichts anfangen kannst, lies dir zunächst diesen Teil der FAQ durch. Sonst wirst du den folgenden Beitrag wahrscheinlich nicht verstehen.
In einem Thread über die Deinstallation/Neuinstallation von Threema sind wir, dank des Hinweises von Dr.Evil, darauf gekommen, wie die Daten von Threema bei der iOS-Version behandelt werden.
- Nach oben verlinkter Aussage vom Threema-Support wird die Threema-ID und der private Schlüssel im iCloud-Backup gesichert. Davor wird er durch eine eindeutige, nicht-auslesbare Geräte-ID (den sog. UID-Key) verschlüsselt. Deshalb kann dieser Schlüssel, wie alle anderen Schlüssel, die mit dem gleichem Attribut* im iOS-Schlüsselbund gespeichert werden, nur auf dem gleichen Gerät ausgelesen werden.
- Nach einem Artikel eines Podcasters passiert das gleiche mit den Nachrichten. Allerdings werden die Nachrichten zusätzlich (durch die von Apple genannte Funktion "Data Protection") bei der Speicherung auf dem Gerät verschlüsselt, allerdings nur wenn ein Sperrcode gesetzt ist. Deswegen sollte unbedingt ein Sperrcode gesetzt werden! Sonst werden die Nachrichten nämlich ebenfalls, mit dem UID-Key verschlüsselt, ins iCloud-Backup hochgeladen (abgesehen davon, dass sie von dem Gerät physisch ausgelesen werden können).
Dadurch ergibt sich auch, dass der private Schlüssel auf dem gleichen Gerät wiederhergestellt werden kann, allerdings nicht auf einem anderen Gerät.
Hier eine Visualisierung des Managements und der Sicherung des privaten Schlüssels (oben ist dies der Punkt 1):
* Das Attribut ist "kSecAttrAccessibleWhenUnlockedThisDeviceOnly" und bestimmt die Verschlüsselung.
Edit: In dem Cryptography Whitepaper werden diese Aussagen ebenfalls bestätigt. Threema geht jedoch davon aus, dass der UID-Key nicht direkt gelesen werden kann und Apple diesen nicht kennt. Es wird zu dem iOS Security Whitepaper verlinkt (ab Seite 9).
Edit2: Grafik hinzugefügt.