{"id":578,"date":"2015-08-08T12:46:39","date_gmt":"2015-08-08T10:46:39","guid":{"rendered":"https:\/\/s3lf.de\/blog\/?p=578"},"modified":"2015-11-07T13:45:26","modified_gmt":"2015-11-07T11:45:26","slug":"finally-cross-platform-secure-chat-textsecure-on-the-desktop","status":"publish","type":"post","link":"https:\/\/s3lf.de\/blog\/2015\/finally-cross-platform-secure-chat-textsecure-on-the-desktop\/","title":{"rendered":"Finally: Cross Platform Secure Chat &#8211; Signal (was TextSecure) on the Desktop HowTo"},"content":{"rendered":"<p><strong>*Updated 07.11.2015*<\/strong><\/p>\n<h2>TL;DR<\/h2>\n<p>TextSecure already works pretty well on phone and desktop in a synced manner. But\u00a0only with the developer builds.<\/p>\n<h3>Quick\u00a0Guide<\/h3>\n<p>If you trust me, just install the pre-compiled\u00a0latest\u00a0<a href=\"https:\/\/s3lf.de\/blog\/wp-content\/uploads\/2015\/08\/TextSecure-dev.apk\">TextSecure Android App<\/a>\u00a0in your phone and\u00a0<a href=\"https:\/\/s3lf.de\/blog\/wp-content\/uploads\/2015\/08\/textsecure-dist.crx\">TextSecure Browser Chrome Plugin<\/a>\u00a0in your browser. Both are not signed, so you have to allow insecure sources and so on. Then start the mobile app,\u00a0register (which will generate a key). Run the browser plugin and scan the OR code to pair with the phone.<\/p>\n<h2>Intro<\/h2>\n<p>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.<\/p>\n<p>My hope was that a Jabber client for the smart phone finally gets message archiving\u00a0working with OTR or another encryption. OTR will probably never work, because it does (additonally) not have offline capabilities. There were\u00a0<a href=\"http:\/\/xmpp.org\/extensions\/xep-0187.html\" target=\"_blank\">standardization efforts<\/a>, but those timed out.<\/p>\n<h2>TextSecure<\/h2>\n<p>A <a href=\"https:\/\/pinetik.blogspot.com\">friend<\/a> pointed me to <a href=\"https:\/\/whispersystems.org\/\" target=\"_blank\">TextSecure by WhisperSystems<\/a>. 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.<\/p>\n<h2>Diving into the developer grounds<\/h2>\n<p>But: There is a quite active development going on for the Google Chrome Plugin <a href=\"https:\/\/github.com\/WhisperSystems\/TextSecure-Browser\" target=\"_blank\">TextSecure in the Browser<\/a>. In the readme they say you should not install it, but I did anyways \ud83d\ude09 Anyway it needs some steps<\/p>\n<h2>Install Guide<\/h2>\n<p>Basically you need the cutting edge App (not the one from the app store) and point the browser plugin to the production server.<br \/>\n<span style=\"text-decoration: line-through;\"><br \/>\n<\/span><\/p>\n<h3><del>\u00a0HEAD of the APP<\/del><\/h3>\n<ol>\n<li><del>Get android studio<\/del><\/li>\n<li><del>Clone the GIT\u00a0https:\/\/github.com\/WhisperSystems\/TextSecure in Android Studio<\/del><\/li>\n<li><del>Choose build variant dev<\/del><\/li>\n<li><del>Uninstall the\u00a0stable TextSecure from your phone<\/del><\/li>\n<li><del>Enable Android Debugging<\/del><\/li>\n<li><del>Connect your phone to the computer<\/del><\/li>\n<li><del>Run the app from Android Studio on your phone (which will also install it)<\/del><\/li>\n<\/ol>\n<p>No necessary anymore, the google play version is fine.<\/p>\n<h3>Get The TextSecure Browser Plugin<\/h3>\n<ol>\n<li>Clone the GIT\u00a0https:\/\/github.com\/WhisperSystems\/TextSecure-Browser<\/li>\n<li><del>Change the server addresses to the live system (with the text editor or SED)<\/del><br \/>\n<del> <code>sed -i s\/textsecure-service-staging\/textsecure-service\/ Gruntfile.js<br \/>\nsed -i s\/textsecure-service-staging\/textsecure-service\/ js\/background.js<br \/>\nsed -i s\/textsecure-service-staging\/textsecure-service\/ js\/libtextsecure.js<br \/>\nsed -i s\/textsecure-service-staging\/textsecure-service\/ libtextsecure\/api.js<\/code><\/del><\/li>\n<li>Install grunt and call <strong>grunt copy<\/strong><\/li>\n<li>Install in the browser as described in the <a href=\"https:\/\/github.com\/WhisperSystems\/TextSecure-Browser\/blob\/master\/CONTRIBUTING.md\" target=\"_blank\">CONTRIBUTION Readme<\/a>.<br \/>\nThe important steps follow:<\/p>\n<ol>\n<li>Go to chrome:\/\/extensions\/<\/li>\n<li>Enable developer mode (checkbox on the top right)<\/li>\n<li>Click &#8222;Load unpacked extension&#8230;&#8220;<\/li>\n<li>Point to the dist subfolder of the repo directory<\/li>\n<\/ol>\n<\/li>\n<li>Run the plugin<\/li>\n<li>You should see a QR code which your have to scan using a QR app on your phone to pair (if you don&#8217;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. &#8222;Barcode scanner&#8220; works. Also the scanning function in the Signal app does not work for this.<\/li>\n<\/ol>\n<p>That&#8217;s it!<\/p>\n<h2>My tests<\/h2>\n<ol>\n<li>Write something on the phone: appears on desktop<\/li>\n<li>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<\/li>\n<\/ol>\n<p><strong>Happy secure chatting!<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>*Updated 07.11.2015* TL;DR TextSecure already works pretty well on phone and desktop in a synced manner. But\u00a0only with the developer builds. Quick\u00a0Guide If you trust me, just install the pre-compiled\u00a0latest\u00a0TextSecure Android App\u00a0in your phone and\u00a0TextSecure Browser Chrome Plugin\u00a0in your browser. Both are not signed, so you have to allow insecure sources and so on. Then [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-578","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/s3lf.de\/blog\/wp-json\/wp\/v2\/posts\/578","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/s3lf.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/s3lf.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/s3lf.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/s3lf.de\/blog\/wp-json\/wp\/v2\/comments?post=578"}],"version-history":[{"count":7,"href":"https:\/\/s3lf.de\/blog\/wp-json\/wp\/v2\/posts\/578\/revisions"}],"predecessor-version":[{"id":617,"href":"https:\/\/s3lf.de\/blog\/wp-json\/wp\/v2\/posts\/578\/revisions\/617"}],"wp:attachment":[{"href":"https:\/\/s3lf.de\/blog\/wp-json\/wp\/v2\/media?parent=578"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/s3lf.de\/blog\/wp-json\/wp\/v2\/categories?post=578"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/s3lf.de\/blog\/wp-json\/wp\/v2\/tags?post=578"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}