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