Subject: [.plan] TextSecure/Signal
From: Boris Kraut <[email-masked]>
To: undisclosed-recipients: ;
Date: Thu, 19 May 2016 08:08:23 +0200

Edward Snowden wird nicht muede sich immer wieder fuer TextSecure bzw.
Signal zu bedanken. Und tatsaechlich, Moxie Marlinspike, Frederic Jacobs
und Co. haben wir wirklich einiges zu verdanken: Axolotl, die Ver-
schluesselung hinter Signal, und auch Signal selbst -- als ein Beweis,
dass sicheres und benutzerfreundliches Kommunizieren moeglich ist.

Doch ist Signal also "die Loesung"? Nein! Moxie hat mehrfach seine Ab-
neigung gegen XMPP und Standards zum Ausdruck gebracht und in der Tat
kann ein reines Fokusieren auf Standards zu einem sehr gemaechlichem
Fortschritt fuehren, Innovation ausbremsen oder zu "Over-Engineering"
fuehren: Implementationen sind das, was wichtig ist. Doch ich rede hier
explizit vom Plural. Der Standard ist dafuer da, bereits existierende
Loesungen zu verschriftlichen und zu verbessern... und auch neue
Implementationen zu ermoeglichen. Moxie geht jedoch aktiv gegen solche
Neuimplementierungen vor -- wobei beim Wire-OWS-Streit [0] nicht wirklich
klar wird, wer der Schuldige ist.

XMPP zu bashen ist leicht, das bietet sehr viel Angriffsflaeche und
ist wirklich beispielhaft fuer XML-OverEngineering, doch Moxie spricht
sich nicht nur gegen XMPP, sondern auch gegen Federation aus [1] ...

> I no longer believe that it is possible to build a competitive
> federated messenger at all.

... und [2]:

> It is unlikely that we will ever federate with any servers outside
> of our control again, it makes changes really difficult.

Das mag seine Einschaetzung der Lage sein und ggf. auch auf die
Erfahrungen mit CyanogenMod's WhisperPush [3] zurueckgehen: Einem
zu TextSecure kompatiblen (d.h. Nachrichten konnten von einem zum
anderen System gelangen) Messenger. Und ja, Federation ist verdammt
schwer, aber es ist noetig, um nicht an einen Anbieter gebunden zu
sein: So jedoch gehen alle anfallenden Daten ueber eine zentrale
Instanz. Das Argument, dass Federation beim Nutzer nicht ankommt,
weil es zu viel Aufwand ist lass ich uebrigens nicht gelten, bei
Mails hat das auch funktioniert: Es gibt verschiedene Produkte rund
um "Mail" und auch einen Platzhirsch. Wenn WhatsApp sich fuer aussen
oeffnen wuerde, wuerden die Leute weg davon wechseln? Oder wuerde das
nur ein paar Nerds wie micht betreffen?

Auch beim Thema freie Software ist Moxie nicht ganz so unkritisch:
Zwar ist der Grossteil von Signal frei verfuegbar, der Server-Code
fuer die Sprachkomponente (ehemals RedPhone) ist es nicht. Und auch
der Signal-Client kommt in der Standard-Variante nicht ohne Google's
Play-Services aus -- nicht-freie Binaries. Dabei gibt es durchaus
Alternativen, doch Moxie lehnt einen Pullrequest nach dem anderen
ab [4][5][6]. Und auch komplett freie Forks torpediert er, wo er
nur kann [2].

Was macht Moxie stattdessen? Es waere wuenschenswert, wenn Signal
wirklich besser werden wuerde, aber stattdessen baut er fuer Konkurrenz-
produkte die Verschluesselung ein, z.b. fuer WhatsApp [7] oder jetzt
neu auch fuer Google [8]... und laesst sich dafuer natuerlich fuerst-
lich bezahlen: Eine schoene Einnahmequelle neben Spenden und gross-
zuegigen "Foerdermitteln" a la $2255000 vom OpenTechFund [9].

Ich moechte das alles gar nicht negativ werten und ich lasse bewusst
auch die Streitigkeiten die Moxie/OWS mit mir/F-Droid hatte aussen vor,
darum geht es nicht. Es geht darum zu erahnen, was Moxie will und ob
diese Ziele fuer mich (oder euch) von Vorteil sind.

Grundsaetzlich gehe ich davon aus, dass Moxie keiner von den "Boesen"
ist und dass er in Sicherheit ein entsprechend kluger Kopf ist. Er
moechte Kommunikation fuer die Massen so sicher wie moeglich machen
und dazu geht er gewisse Kompromisse ein:

* Kooperation mit Google und WhatsApp, weil das die Leute nutzen.
  Ausserdem spuelt das Geld in die Kasse, das ihn in die Lage versetzt,
  mehr Sicherheit zu "produzieren".
* Freie Software ist wichtig, aber kleinere Binaries sind okay: Er
  wird nicht wertvolle Akkulaufzeit opfern. Freiheit ist den Nutzern
  egal, Akkulaufzeit nicht: Play-Services bleiben.
* Zentralisierung ist wichtig, um alles unter Kontrolle zu haben, denn
  nur er weiss wie Sicherheit geht. Ausserdem lassen sich so schnell
  Aenderungen (oder Sicherheitsupdates) vornehmen und verteilen. Diese
  Interessen haben Vorrang vor Federation.

Es ist klar, dass fuer mich Zentralisierung und nicht-freie Software ein
Dorn im Auge sind. Ich verstehe seine Motive, aber glaube, dass sie auf
lange Sicht eher schaedlich sind. Noch unbeantwortet ist die Frage nach
WhatsApp und Google: Geht es hier nur um die oben genannten Benefits? Oder
ist das schon der Ausverkauf von Signal, das verschwindet, sobald Massen-
produkte sicher genug sind? Dass Moxie keine freien Clients auf den Signal-
Servern duldet koennte fuer so etwas sprechen, aber wer weiss das schon.
Moxie ist ein klassische "benevolent dictator" -- ein Typus Mensch, der in
FLOSS-Projekten erstaunlich haeufig vorkommt. Wie "wohlwollend" Moxie im
Ende wirklich ist, wird nur die Zeit zeigen koennen. Fuer mich gilt, und
hier zitier ich mich dreisterweise selbst [2]:

> Let's just use XMPP/Conversations and be done...

... mit OMEMO und einer ganzen Reihe von neuen XEPs, ist das mehr als gut
genug fuer moderne, mobile, sichere Kommunikation. Conversations ist der
mobile Client der Wahl, andere werden nachziehen. Als Server der alles
noetige unterstuetzt empfehle ich ebenfalls conversations.im -- der kostet
aber (wie z.b. Posteo fuer Mails) auch einen Obolus. Die Frage hier ist
eigentlich nur: XMPP ist scheisse, ist es aber gut genug um zu bleiben?
Gut genug fuer die Masse? Ist es nur der Zwischenschritt fuer Peer2Peer-
Messenger?

[0] https://medium.com/@wireapp/axolotl-and-proteus-788519b186a7
[1] https://whispersystems.org/blog/the-ecosystem-is-moving/
[2] https://github.com/LibreSignal/LibreSignal/issues/37
[3] http://www.cyanogenmod.org/blog/whisperpush-secure-messaging-integration
[4] https://github.com/WhisperSystems/Signal-Android/pull/3640
[5] https://github.com/WhisperSystems/Signal-Android/pull/2994
[6] https://github.com/WhisperSystems/Signal-Android/pull/1960
[7] https://whispersystems.org/blog/whatsapp/
[8] https://whispersystems.org/blog/allo/
[9] https://www.opentech.fund/project/open-whisper-systems