Afin de disposer d'un moyen un peu sûr de discuter en groupe, on a mis en place des listes e-mails chiffrées grâce à Schleuder. Ce logiciel permet de mettre en place des listes chiffrées avec GnuPG.
Le principe est simple : chaque liste dispose d'une paire de clés. La clé privée de la liste reste sur le serveur et permet de déchiffrer les messages à destination de la liste. La liste dispose également d'un trousseau avec les clés publiques de chacun·e des inscrit·e·s et va donc relayer les messages en créant un nouveau message chiffré pour chacun·e.
Schleuder permet aussi d'envoyer des messages vers l'extérieur de la liste. C'est pratique pour avoir une communication de groupe. Les messages envoyés vers l'extérieur sont également chiffrés de façon opportuniste si l'adresse e-mail existe dans le trousseau de clés de la liste.
Attention : la sécurité des échanges dépend de la sécurité de la clé privée de la liste et des pratiques de sécurité des personnes qui y sont abonnées.
Machines
Schleuder est installé sur bulbe.nos-oignons.net.
bulbe
est une machine virtuelle dont le disque dur n'est pas chiffré.
Installer Schleuder dessus permet très exactement l'attaque décrite dans le papier Cross-VM Side Channels and Their Use to Extract Private Keys : une autre machine virtuelle située sur la même machine physique peut forcer l'utilisation de la clé de chiffrement par Schleuder afin de récupérer la clé…
Le fait que le disque dur ne soit pas chiffré permet également que la clé soit copiée lors d'une saisie sans que nous nous en rendions compte, comme cela est arrivé à A/I par le passé.
Procédures
Attention à bien vérifier la version de Schleuder via schleuder --version
sur
bulbe, les commandes changeant de versions en versions.
Pour papoter avec schleuder, il faut écrire à l'adresse
LIST-request@nos-oignons.net
, avec LIST
étant à remplacer par le nom de la
liste. Attention à bien CHIFFRER ET SIGNER le message, sinon ça ne
fonctionnera pas.
Les opérations d'administration qu'il est possible de faire par e-mail sont documentées dans la documentation de schleuder.
Interface en ligne de commande
Schleuder 3 s'est doté d'une interface en ligne de commande, schleuder-cli
,
que nicoo a installée et configurée. Le fichier de configuration
schleuder-cli.yml
ressemble à ça :
host: localhost
port: 4443
tls_fingerprint: 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
api_key: 6e7520656c636665762061726d696e6520747274a8c3207365737263aac36574000a
Vu que ce n'est pas super pratique d'extraire l'empreinte du certificat
qu'utilise schleuder-api-daemon, ajouter une clef dans schleuder.yml
, et
redémarrer le démon, on fournit une configuration partagée pour les admins :
$ ls -Ald /etc/schleuder
drwxr-xr-x 3 schleuder schleuder 4096 Dec 2 18:45 /etc/schleuder
$ ls -Al /etc/schleuder
total 36
-rwxr-x--- 1 schleuder schleuder 5697 Mar 28 2015 default-list.conf
-rwxr-x--- 1 schleuder schleuder 4096 Jul 13 2017 list-defaults.yml
drwxr-x--- 2 schleuder schleuder 4096 May 22 2013 plugins
-rwxr-x--- 1 schleuder schleuder 1265 Jul 28 2017 schleuder-certificate.pem
-rw-r----- 1 root sudo 183 Dec 2 18:45 schleuder-cli.yml
-rwxr-x--- 1 schleuder schleuder 1868 Oct 18 2015 schleuder.conf
-rwxr-x--- 1 schleuder schleuder 1679 Jul 28 2017 schleuder-private-key.pem
-rw-r----- 1 root schleuder 2186 Dec 2 18:42 schleuder.yml
On a modifié les permissions pour que tout le monde puisse accéder au répertoire
/etc/schleuder
, dont les fichiers avaient déjà une configuration adéquate, à
part schleuder.yml
qui a été ajusté.
Pour que schleuder-cli
utilise la configuration partagée, on se dote d'un
petit script profile.d
:
# /etc/profile.d/schleuder-cli.sh
# Script pour autoconfigurer schleuder-cli pour les admins
SCHLEUDER_CLI_CONFIG="/etc/schleuder/schleuder-cli.yml"
if [ -r "${SCHLEUDER_CLI_CONFIG}" ]; then
export SCHLEUDER_CLI_CONFIG
fi
De plus, zsh
n'exécute pas /etc/profile
par défaut, donc on corrige ça :
# /etc/zsh/zprofile: system-wide .zprofile file for zsh(1).
emulate sh -c 'source /etc/profile'
Autres opérations d'administration
NOTE : certaines opérations sur les clefs, notamment leur mise à jour
automatique, ne sont pas implémentées par Schleuder. Trois fichiers ont
donc été ajoutés sur bulbe
(le 29 mars 2015) :
/usr/local/bin/schleuder-refresh-keys
- Script principal, dont chaque instance met à jour une seule clef prise aléatoirement dans l'ensemble des trousseaux.
/etc/cron.d/schleuder-refresh-keys
- Exécute le script précédent plusieurs fois par jour.
/etc/ssl/certs/sks-keyservers.netCA.pem
- Certificat SSL du serveur de clefs hkps://hkps.pool.sks-keyservers.net