Signal kombiniert Messenger TextSecure und RedPhone
Bereits im Juli 2014 hieß es, dass der Messenger TextSecure mit Fokus auf Privatsphäre unter Android mit der App RedPhone verschmelzen solle. Nun ist der Schritt getan: RedPhone lässt sich über den Play Store bereits nicht mehr herunterladen. Stattdessen prangt in den Release Notes der Verweis, dass die Funktionalität der App nun in Signal enthalten sei. RedPhone hatte eine End-to-End-Verschlüsselung für Voice-Over-IP-Telefonie angeboten. Dieses Feature bleibt erhalten, aber eben innerhalb von Signal.
Im Play Store nennt sich die App zwar bei Aufruf der App-Unterseite immer noch TextSecure, der alte Name sollte aber wohl bald dem neuen weichen. TextSecure hatte zuvor als separate App einen Messenger auf Open-Source-Basis angeboten – wie bei RedPhone mit End-to-End-Verschlüsselung, nur eben für Textnachrichten. Da beide Anwendungen vom Entwickler Open Whisper Systems stammen, hat es natürlich nahe gelegen, die Funktionen irgendwann in einem Programm zu kombinieren. Für iOS gibt es Signal mit dieser Funktionalität ebenfalls.
Wer TextSecure bereits installiert hat, erhält innerhalb der nächsten Tage ein Update, welches die Neutaufe mit sich bringen wird. Alle Funktionen von TextSecure bleiben erhalten – und die Features von RedPhone kommen eben dazu. Wer dagegen noch RedPhone verwende, werde einen Hinweis auf die neue Signal-App erhalten. Anwender, die beide Apps separat installiert haben, können RedPhone dann guten Gewissens löschen.
Signal verzichtet auf separate Logins, Benutzernamen, Passwörter oder PINs und setzt stattdessen auf das vorhandene Adressbuch bzw. die Telefonnummer. Die Betreiber haben keinen Einblick in Nutzerdaten bzw. Nachrichten, da alles von Ende-zu-Ende verschlüsselt wird. Wer Lust hat, sich mit dem offenen Quellcode zu beschäftigen, findet ihn übrigens hier bei GitHub. Ansonsten wünsche ich viel Spaß mit TextSecure Signal, das nun verschlüsselte Textnachrichten und VoIP-Telefonie unter einem Dach vereint.
Wie realisiert man das eigentlich mit der Telefonnummer und den Nummern der Kontakte? Werden die in irgendwelche Hash Werte umgewandelt und hoch geladen oder wie? Gebe ja ungern meine Nummer irgendwo an und nutze deshalb auch im Moment nur Threema.
tplk: Bei Signal werden Hash Werte (SHA1 in dem Fall) von den Nummern übertragen, da hast du recht. Ist jetzt nicht sonderlich privat da relative einfach umkehrbar (Nummernraum ziemlich klein und vorhersehbar, alles E164 Nummern).
Auf dem Server bleiben die Nummern nicht, die Clients schickt bei jedem Update wieder ihre komplette Liste mit. Dort wird verglichen, du bekommst die Tokens(Hashes) zurück die sich mit den registrierten Nummern überschneiden und dein Client der sich Token+Nummer Kombination gemerkt hat sucht dann die passende Nummer zu dem zurück gekommen Tokens raus und markiert diese als Signal Nutzer.
tplk: Habe ganz vergessen zu sagen, dass zumindest die eigene Rufnummer immer angegeben werden muss. Verifizierung via SMS ist Pflicht. Das erlaubt aber auch automatisch die Verbindung von Schlüsseln mit der Nummer/der App/dem Kontakt. Damit entfällt das manuelle vergleichen wie bei Threema. Sollte sich jemand erneut mit der Nummer registrieren ändert sich der Schlüssel und das wird direkt bei dir angezeigt dass die Schlüssel nicht mehr passen.
Was das nicht verhindert, ist dass ein Akteur der SMS für bestimmte Nummern (z.B. jemand in deinem Adressbuch) empfangen kann sich als Signal User registriert, du fäschlicherweise davon ausgehst das er Signal installiert hat und ihm schreibst. Dagegen hilft wirklich nur das manuelle verifizieren der Schlüssel wie bei Threema möglich.
@kers Danke für die Antwort. Mich stört es ja das ich Leuten mit denen ich in Kontakt treten will meine Nummer geben soll. Wenn man sich eine persönliche Id einrichten könnte zB. wäre es meiner Meinung nach noch etwas „sicherer“ bzw Anonymer.
text secure aka wisperpush ist ja schon in cyanogenmod eingebaut, die sprachversion wäre noch cool, falls sich bei der sprachqualität inzwischen was geändert hat.
Die sollen mal TextSecure ohne Google Play Dienste ermöglichen. Threema und Whatsapp bekommen das ja auch ohne GCM hin.
@tplk dann wäre auch telegram eine Option für dich. Eigentlich die gleiche Funktion, jedoch optional kann man sich ein pseudonym geben lassen. Damit man eben nicht immer die Nummer rausrücken muss. Die bleibt bei Chats über das pseudonym geheim.
Ende zu Ende verschlüsselt muss Du dort aber explizit anwählen. „Geheimen Chat starten“
@tplk Ja das mit der ID macht ja Threema, wurde aber afaik in Signal absichtlich weggelassen. Signal hat ja das Ziel ein Messenger zu sein, der sich nebenbei durch „Sicherheit“ auszeichnet. In erster Linie soll es für Leute eine out of the box Lösungen sein. Heißt natürlich auch die optionalen Dinge bleiben liegen.
Ich kann damit gut leben, ich will unterwegs nicht von Menschen gestört werden, denen ich nicht mal meine Handy Nummer anvertraue.
@Churks Wie wäre das mit Android 6 mit „Doze“ Feature, eigentlich sollten dann alle Apps schlafen und nur vom GCM getriggert werden und nicht die ganze Zeit eine Verbindung offen haben oder im Minutentakt pollen?
@kers:
Bei jeder asynchron verschlüsselnden Kommunikation muss man den öffentlichen Schlüssel des anderen über einen sicheren Kanal (am besten persönlich) verifizieren, um sich gegen MITM-Attacken zu schützen, nicht nur bei Threema. Auch bei gpg, otr, Signal…
@2cent: Das kommt drauf was du verifizieren willst. Bei Signal verifizierst du nicht den Schlüssel sondern die Nummer an die der Schlüssel gebunden ist. Der Signal Server ist dann sozusagen der Keyserver (analog zu PGP), nur dass dort nur Keys stehen die an eine Telefonnummer gebunden sind (nicht wie bei PGP). Macht Threema ja teilweise auch, der Indicator wird von rot zu orange wenn eine verifizierte Nummer vorliegt (war zumindest mal so, benutze es gerade nicht mehr). Signal sieht das aber als einzige Möglichkeit vor. Und die SMS Verifizierung ist nun mal ein einfacher, für die meisten Fälle sicherer, Kanal. Ich habe ja beschrieben in welchem Fall die Nummernverfizierung nicht funktioniert.
Siehst du ne Möglichkeit in den Clients einem öffentlichen Schlüssel zu vertrauen oder ihn abzulehnen? Also ich meine mehr als ihn nur anzuschauen.
Der Vorteil an Signal ist ja gerade dass man davon ausgehen kann, dass der Nummer, der man schreibt, der entsprechende Kontakt zugeordnet ist (ausser siehe Fall oben).
@kers: Ehrlich gesagt verstehe ich nicht, wo dein Missverständnis liegt, wo du doch nicht ganz ignorant zu sein scheinst, was das Thema angeht.
Die Threema-Stati sind ein gutes Beispiel. Ohne direkte, am besten persönliche Verfikation bleibst du bei zwei gelben Punkten. Du willst aber drei grüne! Andernfalls kann sich Eve zwischen Bob und Alice stellen, mit einem Key, der für Bob echt aussieht (MITM). Die Nummernbindung ist da total egal, weil der Komunikationsweg potentiell unsicher ist. Für End-zu-End-Sicherheit musst du den Fingerprint des anderen Endes verifizieren.
Du kannst auch keinem PGP-Key auf einem Keyserver trauen, wenn du den Fingerprint nicht persönlich überprüfst oder das Vertrauen ins „web of trust“ auslagerst.
@2cent: Mein Standpunkt ist, dass Vertrauen an die Nummernbindung auszulagern ist ein Trade-off der für die meisten eine „Sicherheit“ bietet die hoch genug ist, für den Komfort den sie bietet. Gepaart mit TOFU am Client!
10 meiner Signal Nutzer wissen nichtmal das eine Verschlüsselung dahinter steckt. Das ist gut so und ja auch gewünscht von den Machern.
Sollte der MITM nicht bei der Registrierung stattgefunden haben, kann zwischendrin keiner begonnen werden da sonst ja der Key falsch wäre worüber die UI dann Aufschluss gibt. Oder liege ich da falsch?
@kers: Ohne Schlüsselabgleich kannst du nicht sicher sein, dass dein Gesprächspartner wirklich der ist, der du denkst, bzw. die Verschlüsselung durchgängig ist. Wenn du dein Vertrauen an den Registrierungsprozess auslagern willst und Vertrauen willst, dass der Schlüssel, den du vom Server bekommst, schon der richtige ist, ist das weniger sicher und du bist anfällig. Zwei gelbe Punkte vs. drei Grüne im Threema-Sprech.
Und MITM heißt ja nicht, dass ich mich des Schlüssels bemächtige. Der Angreifer klemmt sich wie ein Proxy dazwischen, ohne dass du es merkst, weil du nicht weißt, was der richtige Fingerprint ist. (Ja, ich weiß, du willst auf die Daten der Registrierung vertrauen, zwei gelbe Punkte)
Ich finde auch gut, wenn Verschlüsselung anwenderfreundlicher wird. Aber das ist immer ein Trade-off. Wenn man bestimmte Dinge vereinfacht, werden sie unsicherer.
@2cent: Wo willst du dich dazwischen klemmen?
Was willst du ohne einen Schlüssel aber mit MITM machen?
Habe gerade noch nachgelesen, das Bestreben nach manueller Verifikation ist im Issuetracker unter https://github.com/WhisperSystems/Signal-Android/issues/910 , hat aber niedrige Priorität.
@kers: Warum willst du dann End-zu-End-Verschlüsselung und nicht nur Transportverschlüsselung oder gar keine Verschlüsselung, wenn man sich deiner Meinung nach nicht dazwischenklemmen kann?
MITM basiert darauf, dass du nicht weißt, dass dein Gesprächspartner wirklich dein Gesprächspartner ist. Du (Bob) willst mit Alice reden und denkst das tust du auch, weil du nicht verifiziert hast. In Wahrheit sprichst du aber mit Eve. Das ganze läuft auch verschlüsselt ab, nur eben mit dem Schlüssel von Eve, sie entschlüsselt, liest, verschlüsselt es für Alice und leitet es weiter. Gleiches in die andere Richtung.
Dein Argument ist jetzt, dass du ja nach der Nummer bei Signal sucht. Das hat aber nichts mehr mit End-zu-End-Sicherheit zu tun und ist ein Risiko. Da kann man sich verschiedene Sachen überlegen, wie man dich bescheißt. Die Verifikation hat schon ihre Berechtigung.
@2cent
in irgendeiner c´t ausgabe wurde das ganze mit textsecure/redphone ganz gut beschreiben. das problem haben die macher irgendwie gelöst.
außerdem müsste doch Eve die SMS von Alice abfangen damit sie sich als Alice verificzieren kann.
@Gast:
Das würde mich interessieren, wie sie das gelöst haben wollen. Ich würde so spontan behaupten, dass sich das nicht anders (als durch „ausgelagertes Vertrauen“) lösen lässt.
Ihr vertraut alle darauf, dass bei der Registrierung alles richtig und sauber läuft und die Daten, die ihr übers Netz bekommt, nicht manipuliert sind. Für eine richtige End-zu-End-Verifizierung muss das von Ende und sicher kommen, auf einem zweiten, sicheren, unabhängigen Kanal.
Was mich viel mehr stört ist, dass Signal es scheinbar nicht mitbekommt ob dein gegenüber online ist, oder nicht. Somit kommt eine Nachricht irgendwann mal an.
Eine imessage Alternative ist es damit wohl nicht. Zumindest hat es in meinem versuchen nicht geklappt.
Außerdem werden wohl sms nicht verschlüsselt, was das Konzept meiner Meinung nach etwas auseinander reißt.