Contexte
- J’utilise Debian.
- J’ai besoin de plusieurs instances de Signal Desktop sur mon ordinateur
- Je préfére faire fonctionner ces applications à travers flatpak pour des raisons de sécurité
- Je souhaite qu’elles utilisent toutes Tor pour se connecter à internet pour réduire le risque de donner mon adresse IP à tout le monde
J’utlise le terminal dans ce tuto.
Comme nous utilisons signal desktop, nous avons besoin d’un smartphone pour connecter Signal Desktop au compte Signal. Nous ne traiterons pas de cette partie ici.
Ne pas oublier que le lien avec le compte Signal se perd après 30 jours d’inactivité.
En résumé
Nous allons installer l’application en tant qu’application flatpak système, et créer autant d’icones de démarrage que nous voulons pour cette application, chacune avec son propre nom, dossier, et son circuit Tor unique.
Modèle de menace, protocoles de sécurité, réflexions de base
Il existe énormément de ressources sur le modèle de menace. https://ssd.eff.org, https://securityinabox.org, et beaucoup d’autres.
Un rappel rapide serait que peu importe les outils que nous choisissons, la manière dont nous les configurons, les ordinateurs ne seront jamais sécurisés". Il y aura toujours des défauts, des enjeux de sécurité, des bugs. En tant qu’activistes ou survivant.e.s utilisant la technologie pour communiquer, nous ne pouvons faire que de la réduction des risques, réfléchir à ce que nous voulons vraiment protéger, de qui, à quel prix, ce que nos ennemis peuvent faire contre nous, ce qu’ils sont prêts à payer pour cet objectif et ce qu’il arrive si nous échouons. Quand cela est clair, nous sommes capables de faire de meilleurs choix.
C’était juste un rappel :) si vous êtes là, c’est que nous savez probablement ce que vous faites.
Installer flatpak et le configurer
Entrer les commandes suivantes dans un terminal.
Ne pas entrer ces commandes dans un terminal super-utilisateur.
La prochaine commande va installer flatpak, le plugin flatpak pour Gnome
Logiciels, tor, et torsocks dans le système. Retirer tor et torsocks si
on ne compte pas utiliser Tor. Cette commande peut demander le mot de passe
d’utilisateur.
sudo apt update
sudo apt install flatpak gnome-software-plugin-flatpak tor torsocks
Le plugin flatpak pour Gnome Logiciels permet d’automatiser les mises à jour.
Sans lui, il est nécessaire de lancer flatpak update régulièrement.
Dans certains systèmes sans sudo, ces commandes échouerons avec “sudo: command not found”,
dans ce cas, utiliser en premier su:
su
apt update
apt install flatpak gnome-software-plugin-flatpak tor torsocks
exit
Notre prochaine commande va définir où flatpak peut trouver ces applications
(on utilise le dépôt officiel):
On peut ajouter torsocks au début de la commande pour que les serveurs de
flatpak n’enregistrent notre adresse IP.
*Vérifier que les commandes suivantes sont bien envoyées dans un terminal
d’utilisateur (l’invite de commande finit avec un signe $, pas avec un #)
flatpak remote-add --system --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
(Cette commande peut demander le mot de passe d’utilisateur.)
Installer signal-desktop
Cela va installer signal-desktop à travers flatpak, en tant que “flatpak
system” (ce qui signifie qu’elle est disponible pour tout les utilisateurs de
la machine, mais bien sûr sans que le contenu de l’application ne soit partagé
entre les utilisateurs):
On peut ajouter torsocks au début de la commande pour que les serveurs de
flatpak n’enregistrent notre adresse IP.
flatpak install --system org.signal.Signal
(Cette commande peut demander le mot de passe d’utilisateur.)
Cette commande demandera alors des confirmations, entrer ‘y’ pour confirmer lorsque c’est demandé.
Copier le fichier du desktop pour supplanter l’original
Les fichiers .desktop sont des icones de démarrage : lorsque nous démarrons une application depuis le menu Applications ou la vue “Activité” dans Gnome, elle suit ce qui est défini dans le Desktop File correspondant.
Il nous faut copier le fichier .desktop généré par flatpak vers un emplacement prioritaire, afin que les modifications que nous allons y apporter soient prises en compte:
cp /var/lib/flatpak/exports/share/applications/org.signal.Signal.desktop ~/.local/share/applications/
Modifier le Desktop file
Dans les étapes suivantes, le terminal n’est plus nécessaire donc on peut le fermer.
- Ouvrir “Fichier”, le gestionnaire de fichier de GNOME
- Dans le “menu Hamburger” (des trois trais horizontaux en haut à droite de la fenêtre), selectionner “Afficher les fichiers cachés”
- Dans le fichier Dossier personnel, ouvrir le fichier appelé “.local”
- Ouvrir “share”, puis “applications”
- Dans le “menu Hamburger”, désélectionner “Afficher les fichiers cachés”
- Cliquer-droit sur “org.signal.Signal.desktop” → “Ouvrir avec une autre application”
- cliquer sur “Afficher toutes les applications”
- Sélectionner “Editeur de texte”
- Cliquer sur le bouton bleu “Sélectionner”
Le fichier est maintenant ouvert sur Gedit, un éditeur de texte.
Les lignes qui nous intéressent sont celles qui commencent par :
Name=: Ici, on peut rentrer ce que l’on veut. Par exemple “Signal pour traffic d’oestrogenes” or " Signal: famille eeesh" et “j’utilise signal pour l’activisme”Exec=: Ici, c’est pour indiquer comment l’application est démarrée et là où l’on ajoute des paramètres
Ne pas renommer le fichier ‘org.signal.Signal.desktop’ file, autrement
signal apparaîtra deux fois dans la liste d’applications. Ne changer pas son
nom pour la première instance. Les champs Name= et Exec= peuvent être
changés.
La ligne Exec= configure comment Signal sera démarré. Nous devons ajouter nos
modifications à cette ligne, juste après le premier signe égal (=).
Avant nos modifications, la ligne doit ressembler à ça :
Exec=/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=signal-desktop --file-forwarding org.signal.Signal @@u %U @@
Comme dit précédemment, nous allons ajouter des éléments juste après Exec=.
Commençons par construire les blocs que l’on veut ajouter (nous les ajouterons plus tard au fichier):
- Il commence par
env(attention à l’espace de la fin) - Ensuite, nous devons spécifier où Signal stockera ses données. Dans cet
exemple, nous allons utiliser
HOME=.local/signal1. Cela signifie que le Signal démarré par ce Desktop File stoquera ses données dans un fichier appelésignal1dans le dossier.localdans le Dossier personnel.- Dis plus simplement, utliser
.local/signal1pour le premier Signal,.local/signal2pour le second, etc. - Le bloc ressemble maintenant à ça:
env HOME=.local/signal1 - Dis plus simplement, utliser
- Afin que Signal utilise Tor, ajouter au bloc cela :
HTTP_PROXY=socks://signal1:signal1@127.0.0.1:9050 HTTPS_PROXY=socks://signal1:signal1@127.0.0.1:9050- Pour le second Signal, remplacer
signal1parsignal2, etc. - Le bloc ressemble maintenant à ça:
env HOME=.local/signal1 HTTP_PROXY=socks://signal1:signal1@127.0.0.1:9050 HTTPS_PROXY=socks://signal1:signal1@127.0.0.1:9050- Attention aux espaces avant
HOME=,HTTP_PROXY=etHTTPS_PROXY=.
- Pour le second Signal, remplacer
Maintenant, on ajoute ce bloc à la ligne Exec=, juste après le signe égal.
Donc la ligne complète ressemble à cela:
Exec=env HOME=.local/signal1 HTTP_PROXY=socks://signal1:signal1@127.0.0.1:9050 HTTPS_PROXY=socks://signal1:signal1@127.0.0.1:9050 /usr/bin/flatpak run --branch=stable --arch=x86_64 --command=signal-desktop --file-forwarding org.signal.Signal @@u %U @@
Enregistrer le ficher, quitter l’éditeur de texte, d’ici quelques secondes ou minutes il devrait apparaître dans la liste d’applications !
Recommencer
Quand la première instance de Signal fonctionne, copier dans le même
dossier (~/.local/share/applications/) le fichier
org.signal.Signal.desktop et renommer la copie signal2.desktop ou
signal-canada.desktop ou n’importe tant que cela finit par .desktop et sans
charactères spéciaux. Puis modifier le nouveau fichier pour que le second
Signal utilise un homefolder et un Name= différent.
Dernière remarques
-
Nous avons vérifié que lorsque qu’il est configuré pour utiliser Tor et que Tor ne fonctionne pas, Signal n’est pas capable de communiquer avec ses serveurs
-
Nous avons vérifié que lorsqu’il est configuré pour passer par Tor avec un pare-feu bloquant les connections qui ne passe pas par Tor, Signal fonctionne correctement
-
Signal-Desktop utilise beaucoup de RAM (ici 400mb), s’il y a beaucoup d’applications ouvertes ou que la RAM est petite, cela peut ralentir l’ordinateur.
-
Dans le dossier de chacune des instances de Signal-Desktop (ie.
HOME=.local/signal-alarmphone-collective), plusieurs dossiers sont créés par flatpak et signal. Le seul qui est important (avec la configuration et les messages) est dans.var/org.signal.Signal. On peut en faire un back-up ou le copier dans une nouvelle instance flatpak de signal sans problèmes. -
Utiliser signal pour des identités différentes sur le même apareil n’est peut-être pas toujours le choix le plus sage. Quand les risques sont élevées, l’utilisation de [Tails] (https://tails.net) avec Signal-Desktop installé dessus est préférable.
Annexe pour Nheko and Element
Nheko
Nheko est un bon client Matrix pour environnement de bureau.
Pour utiliser plusieurs instance, plutôt que d’utiliser un bloc HOME=, le
flag -p doit être ajouté dans la ligne Exec=, juste avant @@u:
- La première instance Nheko devra avoir
-p default, autrement, c’est toujours la dernière instance utilisée qui se lance. - Chacunes des autres instances doit avoir un unique
-p profilename(pas de charactères spéciaux)
Element
Element est le client Matrix officiel, mais il est un peu plus lourd que Nheko.
Pour utiliser plusieurs instance Flatpak de Matrix, suivre le même tuto mais à
la place d’ajouter les blocs HTTP_PROXY= and HTTPS_PROXY= pour passer par
Tor, ajouter --proxy-server=socks5://127.0.0.1:9050 avant @@u dans la ligne
Exec=.