Finally: Cross Platform Secure Chat – Signal (was TextSecure) on the Desktop HowTo

*Updated 07.11.2015*

TL;DR

TextSecure already works pretty well on phone and desktop in a synced manner. But only with the developer builds.

Quick Guide

If you trust me, just install the pre-compiled latest TextSecure Android App in your phone and TextSecure Browser Chrome Plugin in your browser. Both are not signed, so you have to allow insecure sources and so on. Then start the mobile app, register (which will generate a key). Run the browser plugin and scan the OR code to pair with the phone.

Intro

Since quite a while I was searching for an encrypted chat solution for my smart phone and desktop. It should be easy to use. Well encrypted. And history should be synced between the devices.

My hope was that a Jabber client for the smart phone finally gets message archiving working with OTR or another encryption. OTR will probably never work, because it does (additonally) not have offline capabilities. There were standardization efforts, but those timed out.

TextSecure

A friend pointed me to TextSecure by WhisperSystems. It is Free and Open Source. Works pretty well on the smartphone (both Android and iOS) in the same way like WhatsApp: It uses your phone number for identification, so it is easy to find your contacts. The only problem remaining: There is no finished desktop app for it.

Diving into the developer grounds

But: There is a quite active development going on for the Google Chrome Plugin TextSecure in the Browser. In the readme they say you should not install it, but I did anyways 😉 Anyway it needs some steps

Install Guide

Basically you need the cutting edge App (not the one from the app store) and point the browser plugin to the production server.

 HEAD of the APP

  1. Get android studio
  2. Clone the GIT https://github.com/WhisperSystems/TextSecure in Android Studio
  3. Choose build variant dev
  4. Uninstall the stable TextSecure from your phone
  5. Enable Android Debugging
  6. Connect your phone to the computer
  7. Run the app from Android Studio on your phone (which will also install it)

No necessary anymore, the google play version is fine.

Get The TextSecure Browser Plugin

  1. Clone the GIT https://github.com/WhisperSystems/TextSecure-Browser
  2. Change the server addresses to the live system (with the text editor or SED)
    sed -i s/textsecure-service-staging/textsecure-service/ Gruntfile.js
    sed -i s/textsecure-service-staging/textsecure-service/ js/background.js
    sed -i s/textsecure-service-staging/textsecure-service/ js/libtextsecure.js
    sed -i s/textsecure-service-staging/textsecure-service/ libtextsecure/api.js
  3. Install grunt and call grunt copy
  4. Install in the browser as described in the CONTRIBUTION Readme.
    The important steps follow:

    1. Go to chrome://extensions/
    2. Enable developer mode (checkbox on the top right)
    3. Click „Load unpacked extension…“
    4. Point to the dist subfolder of the repo directory
  5. Run the plugin
  6. You should see a QR code which your have to scan using a QR app on your phone to pair (if you don’t see the QR code, probably something with the SSL certificate went wrong). Remark: The QR app has to open the tsdevice:/ link from the QR code as a link. QR droid does not work. „Barcode scanner“ works. Also the scanning function in the Signal app does not work for this.

That’s it!

My tests

  1. Write something on the phone: appears on desktop
  2. Go offline (airplane mode on the phone) as well on the desktop (disable plugin). Write something on the phone. Go online: appears on the desktop

Happy secure chatting!

3 Gedanken zu „Finally: Cross Platform Secure Chat – Signal (was TextSecure) on the Desktop HowTo

  1. Greg

    Why does the second step for Textsecure browser has striketrough? How to the change from staging to real server then?

    Thanks for your guide

    Antworten
  2. Pingback: New TextSecure-Browser Build | selfblog

Schreibe einen Kommentar zu self Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht.