Stefan Zörner
10.08.2023
Der Austausch von Nachrichten zählt heute zu den meistgenutzten Smartphone-Funktionen. WhatsApp beispielsweise konnte die Anzahl seiner regelmäßigen Nutzerinnen und Nutzer im Zeitraum 2016 bis 2020 weltweit von einer auf zwei Milliarden verdoppeln. In diesem Architektur-Porträt schauen wir uns mit Threema einen anderen prominenten Messenger an. Ein erster Unterschied zum populären Platzhirsch aus dem Hause Facebook/Meta zeigt sich bereits im App Store: Die Threema-App kostet Geld, das Geschäftsmodell basiert nicht auf der Weitergabe von (Meta-)daten. Wie adressiert Threema generell das Thema Datenschutz, und welche Ziele und Lösungsansätze sind darüber hinaus für die Schweizer Messaging-Software relevant?
Steckbrief: Instant-Messenger Threema
Name: Threema
Software-Gattung: Mobiler Instant-Messenger
Veröffentlicht: 2012 (für iOS), 2013 (für Android)
Herkunft/Ursprung: Threema GmbH (bis 2014 Kasper Systems GmbH, beide Schweiz)
Zielplattform: Mobile Apps (iOS, Android), daneben Desktop- und Browser-Clients. Backend auf Unix (Linux, FreeBSD)
Programmiersprache(n): Clients in Swift/Objective-C (iOS), Kotlin/Java (Android) und TypeScript, Backend polyglott, u.a. Rust, JavaScript, Python, C
Homepage: threema.ch
Der preußische Geheime Postrat Heinrich Stephan, später Begründer des Weltpostvereins, schlug 1865 in einer Denkschrift die Einführung eines sogenannten „Postblattes“ vor. Sein Ziel war es, dadurch den Schriftverkehr für kurze Nachrichten signifikant zu vereinfachen. Ideen dieser Art gab es auch schon früher. Und die Postkarte, wie wir sie heute nennen, wurde zu einem großen, weltumspannenden Erfolg – etwa für Urlaubsgrüße auf Ansichtskarten. Der Vorstoß Stephans stieß zunächst auf Widerstand. Zeitgenossen fanden es anstößig, dass alle Beteiligten auf dem Zustellweg die Korrespondenz mitlesen könnten. Postkarten sind nicht Ende-zu-Ende verschlüsselt. Und verglichen mit modernen Kommunikationsformen gelangen sie auch nicht sonderlich schnell zum Ziel.
Beim Instant Messaging erwarten wir die Zustellung einer Nachricht unverzüglich (englisch instant: sofortig). Idealerweise auch unabhängig vom Ort, wo die Zielperson sich befindet. Zu den ersten Lösungen dieser Art zählten sogenannte Pager (deutsch: Funkmeldeempfänger). Sie dienten in den Vereinigten Staaten bereits ab den 50er-Jahren vor allem zur Alarmierung von Einsatzkräften, zum Beispiel in Krankenhäusern. In der privaten Kommunikation fanden dann in den späten 90ern durch den Aufschwung der Mobiltelefone SMS große Verbreitung. Abbildung 1 zeigt einen Ausschnitt der Geschichte des (Mobile) Instant Messagings mit einzelnen Meilensteinen. Den Schwerpunkt bilden heute gebräuchliche Messenger Apps. Zum Vergleich ist im Hintergrund die Anzahl versendeter SMS in Deutschland pro Jahr visualisiert (Quelle der Zahlen: Bundesnetzagentur [BNA2022]).
WhatsApp hat den Markt 2021 durch Änderung seiner Nutzungsbedingungen rund um die Weitergabe von (Meta-)Daten belebt. Von der Diskussion in der Presse profitierten die Marktbegleiter und erhöhten ihre Verbreitung.
Neben technischen Details unterscheiden sich die aktuellen Instant Messenger vor allem durch ihr Geschäftsmodell und den Umgang mit Datenschutz und Sicherheit. Von den heute relevanten Lösungen in Abbildung 1 kostet lediglich Threema Geld (einmalig beim Kauf der App). WhatsApp war bis 2016 kostenpflichtig, Signal hingegen lebt von Spenden.
Threema ist eine Mobile-App aus der Schweiz und erschien zunächst 2012 für iOS, 2013 dann auch für Android. Der Name steht für End-to-End-Encrypting Messaging Application, kurz EEEMA, wobei die drei E zum Englischen Three zusammengefasst sind. Dass die Ende-zu-Ende-Verschlüsselung im Namen steckt, passt gut zum wichtigsten Ziel der Lösung: Dem unbedingten Schutz der Nutzerdaten und allem, was dazu gehört. Von personenbezogenen Daten über gesendete Nachrichten und Bilder bis hin zu Daten über die Nutzung der App. Tabelle 1 listet zentrale Architekturziele von Threema auf, die Reihenfolge gibt eine grobe Orientierung bezüglich ihrer Wichtigkeit – mit Datenschutz an erster Stelle.
Ziel | Beschreibung (und zugehörige(s) Software-Qualitätsmerkmal(e)) |
Kommunikations- und Nutzerdaten sind geschützt | Privatsphäre und Datensparsamkeit stehen ganz oben. Personenbezogene Daten und andere vertrauliche Informationen sind unter allen Umständen sicher vor Ausspähung und anderen fremden Zugriffen. Threema ermöglicht es Nutzerinnen und Nutzern die Identität eines Kommunikationspartner zweifelsfrei festzustellen. (Sicherheit) |
Einfach zu verwenden | Der Austausch von Informationen im täglichen Gebrauch und Kontaktaufnahmen erfolgen flink und intuitiv. Auch Threema-Neulinge finden sich mühelos zurecht.(Benutzbarkeit) |
Zuverlässig und effizient im Betrieb | Eine Kommunikation zwischen den Anwenderinnen und Anwendern ist jederzeit möglich, Daten gehen nicht verloren. Auch Lastschwankungen oder Teilausfälle einzelner Komponenten beeinträchtigen das nicht. Der Betrieb erfolgt ressourcensparsam.(Zuverlässigkeit) |
Interoperabel über alle Plattformen hinweg | Benutzer tauschen Nachrichten auch dann zuverlässig miteinander aus, wenn sie unterschiedliche Smartphone-Hersteller, Software-Versionen oder ähnliches verwenden. Auch der Wechsel auf ein neues Endgerät erfolgt problemlos.(Kompatibilität) |
Leicht erweiterbar und anpassbar | Neue Features lassen sich durch das Threema-Entwicklungsteam einfach in die bestehende Lösung, inklusive aller Clients, einbauen. Das gilt für Funktionen für Anwenderinnen und Anwender ebenso wie Technisches „unter der Haube“. Auch Anbindungen durch Dritte sind möglich.(Wartbarkeit) |
Wie erreicht die Software die hochgesteckten Ziele, insbesondere bei Datenschutz und Sicherheit? Schauen wir uns zunächst das Grundprinzip an!
Wenn eine Person (z.B. Anita) Threema auf ihrem Smartphone in Betrieb nimmt, erzeugt die App ein asymmetrisches Schlüsselpaar (via Random Generator und Elliptischer Kurve Curve25519, Details siehe [WHT2022]). Der private Schlüssel wird sicher im Gerät verwahrt. Den öffentlichen Schlüssel registriert die App bei einem zentralen Server bei Threema (dem sogenannten Directory-Server), der eine eindeutige Threema-ID dafür vergibt. Diese ist 8-stellig und besteht aus Ziffern und Buchstaben. Der Directory-Server verwaltet Paare aus ID und Schlüssel und erlaubt Abfragen. Kennt z.B. Peter die Threema-ID von Anita, kann er ihren Public Key beim Directory Server abrufen, Nachrichten damit verschlüsseln und diese an den Chat-Server bei Threema übertragen. Falls Anita online ist, ruft sie diese direkt ab, ihre App wird via Push Notification benachrichtigt. Nur Anita kann die Nachricht mit ihrem Private Key entschlüsseln, der Betreiber ist dazu nicht in der Lage (Ende-zu-Ende-Verschlüsselung). Nach erfolgreicher Auslieferung löscht der Chat-Server unverzüglich die Nachricht (oder spätestens nach 14 Tagen, falls Anita sie nicht abruft).
Die gesamte Kommunikation zwischen den Apps und den Servern bei Threema erfolgt verschlüsselt. Im Falle der Nachrichten sogar auf zwei Ebenen. Die Apps verschlüsseln und entschlüsseln Nachrichten (und auch Medien) auf Clientseite, die Kommunikation mit den Servern erfolgt über zusätzlich gesicherte Leitungen (HTTPS oder ein Threema-spezifisches TCP/IP-basiertes Protokoll). Das soll das Abgreifen von Meta-Daten verhindern (z.B. welche IDs mit welchen anderen IDs zu welcher Zeit Nachrichten austauschen). Details zu den von Threema verwendeten kryptographischen Verfahren und Protokollen sind detailliert in einem Whitepaper beschrieben [WHT2022].
Eine Besonderheit bei Threema ist, dass Anita keinerlei personenbezogene Daten angeben musste, um Threema zu nutzen. Andere Messenger erfordern in der Regel eine E-Mail-Adresse oder Rufnummer. Anita kann sich aber entscheiden diese Angaben zu machen. Threema verifiziert diese und speichert sie als Hash (also Einweg-verschlüsselt, genauer: HMAC-SHA256, Details siehe [WHT2022]) in ihrem Eintrag im Directory-Server. Falls Peter die E-Mail-Adresse oder Rufnummer von Anita im Kontaktbuch seines Mobilgerätes hat, kann seine Threema-App danach im Directory-Server suchen und so auch die Threema-ID von Anita ermitteln. Dieser Abgleich mit dem Kontaktbuch ist optional. Bei den Aufrufen von App Richtung Server gehen lediglich die Hash-Werte der Rufnummern und E-Mail-Adressen über den Draht. Threema verwirft sie nach dem Aufruf.
Wenn Peter nach diesem Abgleich mit der Threema-ID von Anita kommuniziert, kann er relativ sicher sein, dass tatsächlich sie die Kommunikationspartnerin ist. Immerhin hat Threema eine E-Mail-Adresse und/oder eine Telefonnummer von Anita verifiziert, die Peter bekannt ist. Die App zeigt Peter diesen Schutz-Level mit einem Punktesystem an, siehe Abbildung 2. Bei einem Punkt (rot) ist keinerlei Verifizierung erfolgt. Bei zwei Punkten (gelb) geschah eine Verifikation über E-Mail-Adresse oder Rufnummer. Drei Punkte (grün) zeigt die Threema-App an, wenn sich Anita und Peter persönlich getroffen haben, Peter mit seiner App einen QR-Code gescannt hat, den Anita mit Ihrer App vorzeigt, und den Public Key auf diese Weise verifiziert hat. Dieser höchste Level ist ohne Abgleich mit personenbezogenen Daten möglich. Die drei grünen Punkte schmücken auch das Logo der App.
Neben den beschriebenen Mechanismen tragen weitere Lösungsansätze von Threema zu Datenschutz und Sicherheit bei. Für kryptographische Algorithmen nutzt Threema die renommierten NaCL-Bibliotheken [NaCL]. Gruppenzugehörigkeiten verwaltet die Lösung ausschließlich dezentral, also in den Apps der zugehörigen Mitglieder. Eine Nachricht an die Gruppe wird an jedes einzelne Mitglied separat versandt, verschlüsselt mit dem jeweiligen Public Key. So bleibt die Ende-zu-Ende-Verschlüsselung auch bei Gruppen-Chats gewahrt. Die Apps von Threema und einzelne Server-Komponenten sind seit 2020 als Open Source veröffentlicht [GitHub] und für jeden einsehbar. Die Server-Infrastruktur bei Threema läuft in der Schweiz, deren Gesetze den Schutz personenbezogener Daten DSGVO-konform gewährleisten („sicheres Drittland“). Für Unternehmen bietet Threema für die volle Datenhoheit zusätzlich die Möglichkeit das Backend im eigenen Rechenzentrum zu hosten („Threema OnPrem“). Der Anbieter empfiehlt diesen Ansatz nur unter bestimmten Voraussetzungen (vor allem Fähigkeiten des Betriebs) und ab ca. 500 Mitarbeitenden.
Wegen der asynchronen Kommunikation und dem Zwischenspeichern von Nachrichten ist die Lösung sehr robust gegenüber Störungen. Die Serveranteile von Threema laufen in redundanten Rechenzentren. Um die Threema-ID und weitere essenzielle Daten zu sichern, bietet Threema eine serverseitige Backup-Lösung an („Threema Safe“), ebenso lokale Daten-Backups und die Übertragung auf ein neues Gerät.
Threema kann neben Text-Nachrichten auch Mediendateien (z.B. Bilder, Dokumente) versenden. Um komfortabel vom Desktop aus zu kommunizieren, bietet Threema einen Web Client für den Browser und eine Desktop App (Windows, MacOS, Linux) an. Letztere bettet den Web Client in eine Electron-Anwendung ein, technisch sind die beiden gleich. Zur Kommunikation ist das Smartphone mit installierter Threema-App erforderlich. Schlussendlich ist der Web Client eine „verlängerte Oberfläche“, die App macht die eigentliche Arbeit. Insbesondere verlässt der private Schlüssel das Smartphone nicht.
Bei den beiden Apps handelt es sich um native iOS- bzw. Android-Anwendungen. Sie sind in Swift/Objective-C bzw. Kotlin/Java realisiert, der Quelltext steht Open Source zur Verfügung. Als Erweiterungspunkt für Entwicklungen von Außenstehenden stellt Threema ein Gateway mit HTTP-basierter API und SDKs für verschiedene Programmiersprachen (u.a. Java, Python, .Net) bereit. Es erlaubt die Implementierung von Softwarelösungen zum Versand und Empfang von Nachrichten mit separater Threema-ID. Auf diese Weise lässt sich Threema in Abläufe integrieren; es kann automatisiert und zugleich sicher Informationen teilen. Die Lösung ist mit SMS-Gateways vergleichbar, der Versand von Nachrichten kostenpflichtig.
Seit 2016 bietet Threema seine Software unter dem Namen „Threema Work“ auch Geschäftskunden für die sichere Kommunikation innerhalb ihres Unternehmens an. Den Server-Anteil kann dabei Threema betreiben (Software-as-a-Service) oder die Kundenorganisation „On Premises“. Threema Work bietet u.a. eine zentrale App-Konfiguration mit Unterstützung von Mobile-Device-Management-Systemen (MDM), die Integration in die Geschäftsprozesse (aufbauend auf dem Threema Gateway) und die Möglichkeit Broadcasts an die Mitarbeitenden zu versenden. Weitere Details zum Funktionsumfang von Threema Work finden sich auf der Webseite [WORK].
Die wirtschaftliche Bedeutung der Unternehmenslösung ist für Threema nicht unerheblich. Unter den Stand Mai 2023 über 7.500 zahlenden Kunden finden sich große Konzerne wie Daimler oder Edeka, Kommunen wie die Städte Bern oder Frankfurt am Main und Organisationen wie das Schweizer Militär.
In den Medien liest man mitunter vom „Privacy Paradox“. Das Konzept beschreibt den Widerspruch, dass Menschen einerseits angeben, dass ihnen Privatsphäre sehr wichtig ist und sie sich darum sorgen. Andererseits teilen sie aber persönliche Informationen freigiebig im Internet, etwa in sozialen Netzwerken [Rös2022]. Threema bietet ausgezeichnete Möglichkeiten, um Vertraulichkeit in der Kommunikation sicherzustellen. Das Unternehmen vermeldete 2021 zwar 10 Millionen Nutzer, verglichen etwa mit WhatsApp ist die Verbreitung im privaten Umfeld gering.
Neben der Sorge vor dem sogenannten „Überwachungskapitalismus“ in Form großer IT-Unternehmen wächst die vor einem „Überwachungsstaat“. Die EU-Kommission legte 2022 einen Vorschlag für eine „Verordnung des Europäischen Parlamentes und des Rates zur Festlegung von Vorschriften zur Prävention und Bekämpfung des sexuellen Missbrauchs von Kindern“ vor. In den Medien wird er unter dem Schlagwort “Chat-Kontrolle” diskutiert. Elina Eickstädt vom Chaos Computer Club (CCC) sieht den Vorschlag in einer Stellungnahme [Eick2023] sehr kritisch, da er unter anderem durch Client-Side-Scanning die Ende-zu-Ende-Verschlüsselung in der privaten Kommunikation aushebeln würde. Es bleibt zu hoffen, dass Lösungen, die Privatsphäre so überzeugend wahren wie z.B. Threema, in naher Zukunft nicht kriminalisiert werden.
[BNA2022] Bundesnetzagentur: „Jahresbericht zur Marktentwicklung Telekommunikation“, 2022
[Eick2023] Elina Eickstädt: „Stellungnahme an den Ausschuss für Digitales zur CSA-Verordnung (“Chatkontrolle”)“, Deutscher Bundestag, Ausschussdrucksache 20(23)134, 2023
[GitHub] Threema bei GitHub, https://github.com/threema-ch
[NaCL] Networking and Cryptography Library, https://nacl.cr.yp.to
[Rös2022] Beate Rössler: „Der Überwachung entgegenkommen. Paradoxien der Privatheit im Internet“, im Band „Normative Paradoxien“, Frankfurter Beiträge zur Soziologie und Sozialphilosophie, Institut für Sozialforschung 2022
[WHT2022] Threema: „Cryptography Whitepaper“, Stand Dezember 2022
[WORK] Threema Work, https://threema.ch/de/work
Dieses Porträt ist ursprünglich in der IT Spektrum, Ausgabe 4 | 2023 als siebter Teil einer Reihe über Architektur-Ikonen der Softwareentwicklung erschienen. Rückmeldungen aller Art gerne an mich per E-Mail. Insbesondere auch Wünsche für weitere Porträts.
Die Inhalte dieses Beitrags haben wir ergänzt und in einen Flyer gegossen – 2 Seiten DIN A3, Treppenfalz. Hier gibt es ihn als PDF auch zum Download:
Die Inhalte haben wir auch in einem Foliensatz zusammengestellt. So könnte ein Architekturüberblick für eine kurze Präsentation aussehen. Umfang: ca. 20 Folien (ohne Titelfolien, Abschnittsfolien etc.)
Weitere solche Flyer und Foliensätze gibt es bei unseren Architekturüberblicken zu entdecken.
Architektur-Porträt: Der statische Website-Generator Hugo
Architektur-Porträt: Die Graphdatenbank Neo4j
Architekturikonen in Software Überblick über alle Porträts