]> pere.pagekite.me Git - homepage.git/blobdiff - blog/archive/2016/10/10.rss
Generated.
[homepage.git] / blog / archive / 2016 / 10 / 10.rss
index 6f61b78c103f24a7613d25abfdad2a458226b413..2ad622ede22316696bd0ca1c832752ae45d76abe 100644 (file)
@@ -6,6 +6,190 @@
                 <link>http://people.skolelinux.org/pere/blog/</link>
 
        
+       <item>
+               <title>Experience and updated recipe for Using the Signal app without a mobile phone</title>
+               <link>http://people.skolelinux.org/pere/blog/Experience_and_updated_recipe_for_Using_the_Signal_app_without_a_mobile_phone.html</link>        
+               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Experience_and_updated_recipe_for_Using_the_Signal_app_without_a_mobile_phone.html</guid>
+                <pubDate>Mon, 10 Oct 2016 11:30:00 +0200</pubDate>
+               <description>&lt;p&gt;In July
+&lt;a href=&quot;http://people.skolelinux.org/pere/blog/How_to_use_the_Signal_app_if_you_only_have_a_land_line__ie_no_mobile_phone_.html&quot;&gt;I
+wrote how to get the Signal Chrome/Chromium app working&lt;/a&gt; without
+the ability to receive SMS messages (aka without a cell phone).  It is
+time to share some experiences and provide an updated setup.&lt;/p&gt;
+
+&lt;p&gt;The Signal app have worked fine for several months now, and I use
+it regularly to chat with my loved ones.  I had a major snag at the
+end of my summer vacation, when the the app completely forgot my
+setup, identify and keys.  The reason behind this major mess was
+running out of disk space.  To avoid that ever happening again I have
+started storing everything in &lt;tt&gt;userdata/&lt;/tt&gt; in git, to be able to
+roll back to an earlier version if the files are wiped by mistake.  I
+had to use it once after introducing the git backup.  When rolling
+back to an earlier version, one need to use the &#39;reset session&#39; option
+in Signal to get going, and notify the people you talk with about the
+problem.  I assume there is some sequence number tracking in the
+protocol to detect rollback attacks.  The git repository is rather big
+(674 MiB so far), but I have not tried to figure out if some of the
+content can be added to a .gitignore file due to lack of spare
+time.&lt;/p&gt;
+
+&lt;p&gt;I&#39;ve also hit the 90 days timeout blocking, and noticed that this
+make it impossible to send messages using Signal.  I could still
+receive them, but had to patch the code with a new timestamp to send.
+I believe the timeout is added by the developers to force people to
+upgrade to the latest version of the app, even when there is no
+protocol changes, to reduce the version skew among the user base and
+thus try to keep the number of support requests down.&lt;/p&gt;
+
+&lt;p&gt;Since my original recipe, the Signal source code changed slightly,
+making the old patch fail to apply cleanly.  Below is an updated
+patch, including the shell wrapper I use to start Signal.  The
+original version required a new user to locate the JavaScript console
+and call a function from there.  I got help from a friend with more
+JavaScript knowledge than me to modify the code to provide a GUI
+button instead.  This mean that to get started you just need to run
+the wrapper and click the &#39;Register without mobile phone&#39; to get going
+now.  I&#39;ve also modified the timeout code to always set it to 90 days
+in the future, to avoid having to patch the code regularly.&lt;/p&gt;
+
+&lt;p&gt;So, the updated recipe for Debian Jessie:&lt;/p&gt;
+
+&lt;ol&gt;
+
+&lt;li&gt;First, install required packages to get the source code and the
+browser you need.  Signal only work with Chrome/Chromium, as far as I
+know, so you need to install it.
+
+&lt;pre&gt;
+apt install git tor chromium
+git clone https://github.com/WhisperSystems/Signal-Desktop.git
+&lt;/pre&gt;&lt;/li&gt;
+
+&lt;li&gt;Modify the source code using command listed in the the patch
+block below.&lt;/li&gt;
+
+&lt;li&gt;Start Signal using the run-signal-app wrapper (for example using
+&lt;tt&gt;`pwd`/run-signal-app&lt;/tt&gt;).
+
+&lt;li&gt;Click on the &#39;Register without mobile phone&#39;, will in a phone
+number you can receive calls to the next minute, receive the
+verification code and enter it into the form field and press
+&#39;Register&#39;.  Note, the phone number you use will be user Signal
+username, ie the way others can find you on Signal.&lt;/li&gt;
+
+&lt;li&gt;You can now use Signal to contact others.  Note, new contacts do
+not show up in the contact list until you restart Signal, and there is
+no way to assign names to Contacts.  There is also no way to create or
+update chat groups.  I suspect this is because the web app do not have
+a associated contact database.&lt;/li&gt;
+
+&lt;/ol&gt;
+
+&lt;p&gt;I am still a bit uneasy about using Signal, because of the way its
+main author moxie0 reject federation and accept dependencies to major
+corporations like Google (part of the code is fetched from Google) and
+Amazon (the central coordination point is owned by Amazon).  See for
+example
+&lt;a href=&quot;https://github.com/LibreSignal/LibreSignal/issues/37&quot;&gt;the
+LibreSignal issue tracker&lt;/a&gt; for a thread documenting the authors
+view on these issues.  But the network effect is strong in this case,
+and several of the people I want to communicate with already use
+Signal.  Perhaps we can all move to &lt;a href=&quot;https://ring.cx/&quot;&gt;Ring&lt;/a&gt;
+once it &lt;a href=&quot;https://bugs.debian.org/830265&quot;&gt;work on my
+laptop&lt;/a&gt;?  It already work on Windows and Android, and is included
+in &lt;a href=&quot;https://tracker.debian.org/pkg/ring&quot;&gt;Debian&lt;/a&gt; and
+&lt;a href=&quot;https://launchpad.net/ubuntu/+source/ring&quot;&gt;Ubuntu&lt;/a&gt;, but not
+working on Debian Stable.&lt;/p&gt;
+
+&lt;p&gt;Anyway, this is the patch I apply to the Signal code to get it
+working.  It switch to the production servers, disable to timeout,
+make registration easier and add the shell wrapper:&lt;/p&gt;
+
+&lt;pre&gt;
+cd Signal-Desktop; cat &amp;lt;&amp;lt;EOF | patch -p1
+diff --git a/js/background.js b/js/background.js
+index 24b4c1d..579345f 100644
+--- a/js/background.js
++++ b/js/background.js
+@@ -33,9 +33,9 @@
+         });
+     });
+-    var SERVER_URL = &#39;https://textsecure-service-staging.whispersystems.org&#39;;
++    var SERVER_URL = &#39;https://textsecure-service-ca.whispersystems.org&#39;;
+     var SERVER_PORTS = [80, 4433, 8443];
+-    var ATTACHMENT_SERVER_URL = &#39;https://whispersystems-textsecure-attachments-staging.s3.amazonaws.com&#39;;
++    var ATTACHMENT_SERVER_URL = &#39;https://whispersystems-textsecure-attachments.s3.amazonaws.com&#39;;
+     var messageReceiver;
+     window.getSocketStatus = function() {
+         if (messageReceiver) {
+diff --git a/js/expire.js b/js/expire.js
+index 639aeae..beb91c3 100644
+--- a/js/expire.js
++++ b/js/expire.js
+@@ -1,6 +1,6 @@
+ ;(function() {
+     &#39;use strict&#39;;
+-    var BUILD_EXPIRATION = 0;
++    var BUILD_EXPIRATION = Date.now() + (90 * 24 * 60 * 60 * 1000);
+     window.extension = window.extension || {};
+diff --git a/js/views/install_view.js b/js/views/install_view.js
+index 7816f4f..1d6233b 100644
+--- a/js/views/install_view.js
++++ b/js/views/install_view.js
+@@ -38,7 +38,8 @@
+             return {
+                 &#39;click .step1&#39;: this.selectStep.bind(this, 1),
+                 &#39;click .step2&#39;: this.selectStep.bind(this, 2),
+-                &#39;click .step3&#39;: this.selectStep.bind(this, 3)
++                &#39;click .step3&#39;: this.selectStep.bind(this, 3),
++                &#39;click .callreg&#39;: function() { extension.install(&#39;standalone&#39;) },
+             };
+         },
+         clearQR: function() {
+diff --git a/options.html b/options.html
+index dc0f28e..8d709f6 100644
+--- a/options.html
++++ b/options.html
+@@ -14,7 +14,10 @@
+         &amp;lt;div class=&#39;nav&#39;&gt;
+           &amp;lt;h1&gt;{{ installWelcome }}&amp;lt;/h1&gt;
+           &amp;lt;p&gt;{{ installTagline }}&amp;lt;/p&gt;
+-          &amp;lt;div&gt; &amp;lt;a class=&#39;button step2&#39;&gt;{{ installGetStartedButton }}&amp;lt;/a&gt; &amp;lt;/div&gt;
++          &amp;lt;div&gt; &amp;lt;a class=&#39;button step2&#39;&gt;{{ installGetStartedButton }}&amp;lt;/a&gt;
++          &amp;lt;br&gt; &amp;lt;a class=&quot;button callreg&quot;&gt;Register without mobile phone&amp;lt;/a&gt;
++
++        &amp;lt;/div&gt;
+           &amp;lt;span class=&#39;dot step1 selected&#39;&gt;&amp;lt;/span&gt;
+           &amp;lt;span class=&#39;dot step2&#39;&gt;&amp;lt;/span&gt;
+           &amp;lt;span class=&#39;dot step3&#39;&gt;&amp;lt;/span&gt;
+--- /dev/null   2016-10-07 09:55:13.730181472 +0200
++++ b/run-signal-app   2016-10-10 08:54:09.434172391 +0200
+@@ -0,0 +1,12 @@
++#!/bin/sh
++set -e
++cd $(dirname $0)
++mkdir -p userdata
++userdata=&quot;`pwd`/userdata&quot;
++if [ -d &quot;$userdata&quot; ] &amp;&amp; [ ! -d &quot;$userdata/.git&quot; ] ; then
++    (cd $userdata &amp;&amp; git init)
++fi
++(cd $userdata &amp;&amp; git add . &amp;&amp; git commit -m &quot;Current status.&quot; || true)
++exec chromium \
++  --proxy-server=&quot;socks://localhost:9050&quot; \
++  --user-data-dir=$userdata --load-and-launch-app=`pwd`
+EOF
+chmod a+rx run-signal-app
+&lt;/pre&gt;
+
+&lt;p&gt;As usual, if you use Bitcoin and want to show your support of my
+activities, please send Bitcoin donations to my address
+&lt;b&gt;&lt;a href=&quot;bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&amp;label=PetterReinholdtsenBlog&quot;&gt;15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
+</description>
+       </item>
+       
        <item>
                <title>NRKs kildevern når NRK-epost deles med utenlands etterretning?</title>
                <link>http://people.skolelinux.org/pere/blog/NRKs_kildevern_n_r_NRK_epost_deles_med_utenlands_etterretning_.html</link>