]> pere.pagekite.me Git - homepage.git/blobdiff - blog/index.rss
Generated.
[homepage.git] / blog / index.rss
index 5bd94c6de632a5912e5c8e6aa7590417a2be22d3..e702204c1898722360771fc6cb7538703d5c015b 100644 (file)
@@ -6,6 +6,190 @@
                 <link>http://people.skolelinux.org/pere/blog/</link>
                 <atom:link href="http://people.skolelinux.org/pere/blog/index.rss" rel="self" type="application/rss+xml" />
        
+       <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>
@@ -678,90 +862,5 @@ Frikanalen and NUUG.  Check it out. :)&lt;/p&gt;
 </description>
        </item>
        
-       <item>
-               <title>Unlocking HTC Desire HD on Linux using unruu and fastboot</title>
-               <link>http://people.skolelinux.org/pere/blog/Unlocking_HTC_Desire_HD_on_Linux_using_unruu_and_fastboot.html</link>
-               <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Unlocking_HTC_Desire_HD_on_Linux_using_unruu_and_fastboot.html</guid>
-                <pubDate>Thu, 7 Jul 2016 11:30:00 +0200</pubDate>
-               <description>&lt;p&gt;Yesterday, I tried to unlock a HTC Desire HD phone, and it proved
-to be a slight challenge.  Here is the recipe if I ever need to do it
-again.  It all started by me wanting to try the recipe to set up
-&lt;a href=&quot;https://blog.torproject.org/blog/mission-impossible-hardening-android-security-and-privacy&quot;&gt;an
-hardened Android installation&lt;/a&gt; from the Tor project blog on a
-device I had access to.  It is a old mobile phone with a broken
-microphone The initial idea had been to just
-&lt;a href=&quot;http://wiki.cyanogenmod.org/w/Install_CM_for_ace&quot;&gt;install
-CyanogenMod on it&lt;/a&gt;, but did not quite find time to start on it
-until a few days ago.&lt;/p&gt;
-
-&lt;p&gt;The unlock process is supposed to be simple: (1) Boot into the boot
-loader (press volume down and power at the same time), (2) select
-&#39;fastboot&#39; before (3) connecting the device via USB to a Linux
-machine, (4) request the device identifier token by running &#39;fastboot
-oem get_identifier_token&#39;, (5) request the device unlocking key using
-the &lt;a href=&quot;http://www.htcdev.com/bootloader/&quot;&gt;HTC developer web
-site&lt;/a&gt; and unlock the phone using the key file emailed to you.&lt;/p&gt;
-
-&lt;p&gt;Unfortunately, this only work fi you have hboot version 2.00.0029
-or newer, and the device I was working on had 2.00.0027.  This
-apparently can be easily fixed by downloading a Windows program and
-running it on your Windows machine, if you accept the terms Microsoft
-require you to accept to use Windows - which I do not.  So I had to
-come up with a different approach.  I got a lot of help from AndyCap
-on #nuug, and would not have been able to get this working without
-him.&lt;/p&gt;
-
-&lt;p&gt;First I needed to extract the hboot firmware from
-&lt;a href=&quot;http://www.htcdev.com/ruu/PD9810000_Ace_Sense30_S_hboot_2.00.0029.exe&quot;&gt;the
-windows binary for HTC Desire HD&lt;/a&gt; downloaded as &#39;the RUU&#39; from HTC.
-For this there is is &lt;a href=&quot;https://github.com/kmdm/unruu/&quot;&gt;a github
-project named unruu&lt;/a&gt; using libunshield.  The unshield tool did not
-recognise the file format, but unruu worked and extracted rom.zip,
-containing the new hboot firmware and a text file describing which
-devices it would work for.&lt;/p&gt;
-
-&lt;p&gt;Next, I needed to get the new firmware into the device.  For this I
-followed some instructions
-&lt;a href=&quot;http://www.htc1guru.com/2013/09/new-ruu-zips-posted/&quot;&gt;available
-from HTC1Guru.com&lt;/a&gt;, and ran these commands as root on a Linux
-machine with Debian testing:&lt;/p&gt;
-
-&lt;p&gt;&lt;pre&gt;
-adb reboot-bootloader
-fastboot oem rebootRUU
-fastboot flash zip rom.zip
-fastboot flash zip rom.zip
-fastboot reboot
-&lt;/pre&gt;&lt;/p&gt;
-
-&lt;p&gt;The flash command apparently need to be done twice to take effect,
-as the first is just preparations and the second one do the flashing.
-The adb command is just to get to the boot loader menu, so turning the
-device on while holding volume down and the power button should work
-too.&lt;/p&gt;
-
-&lt;p&gt;With the new hboot version in place I could start following the
-instructions on the HTC developer web site.  I got the device token
-like this:&lt;/p&gt;
-
-&lt;p&gt;&lt;pre&gt;
-fastboot oem get_identifier_token 2&gt;&amp;1 | sed &#39;s/(bootloader) //&#39;
-&lt;/pre&gt;
-
-&lt;p&gt;And once I got the unlock code via email, I could use it like
-this:&lt;/p&gt;
-
-&lt;p&gt;&lt;pre&gt;
-fastboot flash unlocktoken Unlock_code.bin
-&lt;/pre&gt;&lt;/p&gt;
-
-&lt;p&gt;And with that final step in place, the phone was unlocked and I
-could start stuffing the software of my own choosing into the device.
-So far I only inserted a replacement recovery image to wipe the phone
-before I start.  We will see what happen next.  Perhaps I should
-install &lt;a href=&quot;https://www.debian.org/&quot;&gt;Debian&lt;/a&gt; on it. :)&lt;/p&gt;
-</description>
-       </item>
-       
         </channel>
 </rss>