Guide d'autodéfense numérique

Mises à jour : les logiciels évoluent, c'est pourquoi il est vivement conseillé d'utiliser la version la plus à jour de cet outil, qui est disponible sur le site web https://guide.boum.org/.

Durée : une heure environ.

Parfois, on souhaite être plusieurs à partager un secret, sans pour autant que chaque personne ne dispose de la totalité du secret.

Cela tombe bien, plusieurs techniques cryptographiques ont été inventées pour cela. Elles permettent toutes, mais avec des calculs mathématiques un peu différents, de découper un secret en plusieurs morceaux, que l’on pourra reconstituer en en réunissant quelques-uns1.

Partager une phrase de passe

L’usage le plus pratique est de partager comme secret la phrase de passe d’un support chiffré.

Cette étape doit idéalement être faite à partir d’un système live afin de ne pas laisser des traces du secret que l’on va partager.

Installer le paquet nécessaire

Pour réaliser le partage du secret, on utilisera le programme ssss-split. On trouve ce programme parmi ceux fournis par le système live Tails, cependant, pour en disposer sur une Debian chiffrée, il est nécessaire d’installer le paquet Debian ssss.

Les outils contenus dans le paquet ssss sont à utiliser en ligne de commande. Toutes les opérations devront donc être effectuées dans un Terminal, sans les pouvoirs d’administration.

Générer une phrase de passe aléatoire

Dans notre cas, personne ne doit pouvoir ni se souvenir ni deviner la phrase de passe qui sera utilisée pour le chiffrement. On va donc générer une phrase de passe complètement aléatoire en tapant la commande :

head -c 32 /dev/random | base64

L’ordinateur va répondre quelque chose comme :

7rZwOOu+8v1stea98OuyU1efwNzHaKX9CuZ/TK0bRWY=

Si l'on désire une phrase de passe de plus ou moins de 32 caractères, il suffira de remplacer 32 par le nombre de caractères désirés. Sélectionner cette ligne à l’aide de la souris et la copier dans le presse-papiers (via le menu Édition → Copier).

Découper le secret

Avant de découper le secret, il faut décider en combien de morceaux il sera découpé, et combien de morceaux seront nécessaires pour le reconstituer.

Ensuite, toujours à l’aide de notre terminal, il faut utiliser ssss-split de la façon suivante :

ssss-split -t NOMBRE_DE_MORCEAUX_NECESSAIRES -n NOMBRE_DE_MORCEAUX_TOTAL

Le NOMBRE_DE_MORCEAUX_NECESSAIRES est le nombre de morceaux qu'il sera nécessaire de réunir pour retrouver la phrase de passe de départ. Le NOMBRE_DE_MORCEAUX_TOTAL correspond au nombres de morceaux en lesquels la phrase de passe sera découpée. Le message WARNING: couldn't get memory lock peut être ignoré sans problème si on utilise bien un système live.

Lorsqu’il demande le secret, on peut coller le contenu du presse-papier, à l’aide du menu Édition → Coller. Appuyer ensuite sur la touche Entrée pour valider la commande.

Chaque personne partageant le secret devra conserver l’une des lignes affichées ensuite. Cela dans leur intégralité, en prenant également bien en note le premier chiffre suivi du tiret.

Voici un exemple avec la clé aléatoire générée précédemment, partagée entre 6 personnes et qui nécessitera que 3 d’entre elles se réunissent pour la retrouver :

$ ssss-split -t 3 -n 6
Generating shares using a (3,6) scheme with dynamic security level.
Enter the secret, at most 128 ASCII characters: Using a 352 bit security level.
1-b8d576a1a8091760b18f125e12bb6f2b1f2dd9d93f7072ec69b129b27bb8e 97536ea85c7f6dcee7b4399ea49
2-af83f0af05fc207e3b466caef30ec4d39c060800371feab93594350b7699a 8db9594bfc71ed9cd2bf314b738
3-4718cb58873dab22d24e526931b061a6ac331613d8fe79b2172213fa767ca a57d29a6243ec0e6cf77b6cbb64
4-143a1efcde7f4f5658415a150fcac6da04f697ebfeb9427b59dca57b50ec7 55510b0e57ccc594e6b1a1eeb04
5-fca1250b5cbec40ab14964d2cd7463af34c389f81158d1707b6a838a50097 7d957be38f83e8eefb79266e74a
6-ebf7a305f14bf3143b801a222cc1c857b7e8582119374925274f9f335d283 677f4c002f8d68bcce722ebba1f

Créer le support chiffré

On pourra ensuite créer le support chiffré. Au moment d’indiquer la phrase de passe, on pourra copier le contenu du presse-papier, comme précédemment, ou alors la retranscrire en l’ayant sous les yeux.

Reconstituer la phrase de passe

Afin de reconstituer la phrase de passe, il est nécessaire de disposer d’au moins autant de morceaux que le nombre minimal décidé lors du découpage.

Cette étape doit idéalement être faite à partir d’un système live afin de ne pas laisser de traces du secret partagé.

Installer les paquets nécessaires

Comme précédemment, si le programme n'est pas disponible sur le système on aura besoin d’avoir installé le paquet ssss et d’avoir ouvert un terminal.

Recombiner le secret

Afin de recombiner le secret, on utilisera le programme ssss-combine. Il est nécessaire de lui indiquer le nombre de morceaux qu’on a à notre disposition :

ssss-combine -t NOMBRE_DE_MORCEAUX_A_DISPOSITION

Le programme demande ensuite de saisir les morceaux à notre disposition. Il faut taper Entrée après chacun d’entre eux. Si tout se passe bien, le programme affichera ensuite la phrase de passe complète.

Pour reprendre l’exemple précédent, cela donne :

$ ssss-combine -t 3
Enter 3 shares separated by newlines:
Share [1/3]: 4-143a1efcde7f4f5658415a150fcac6da04f697ebfeb9427b 59dca57b50ec755510b0e57ccc594e6b1a1eeb04
Share [2/3]: 2-af83f0af05fc207e3b466caef30ec4d39c060800371feab9 3594350b7699a8db9594bfc71ed9cd2bf314b738
Share [3/3]: 6-ebf7a305f14bf3143b801a222cc1c857b7e8582119374925 274f9f335d283677f4c002f8d68bcce722ebba1f
Resulting secret: 7rZwOOu+8v1stea98OuyU1efwNzHaKX9CuZ/TK0bRWY=

Attention, si un des morceaux a mal été tapé, l’erreur qui s’affiche n’est pas forcément très explicite :

$ ssss-combine -t 3
Enter 3 shares separated by newlines:
Share [1/3]: 4-143a1efcde7f4f5658415a150fcac6da04f697ebfeb9427b 59dca57b50ec755510b0e57ccc594e6b1a1eeb04
Share [2/3]: 2-af83f0af05fc207e3b466caef30ec4d39c060800371feab9 3594350b7699a8db9594bfc71ed9cd2bf31ab738
Share [3/3]: 6-ebf7a305f14bf3143b801a222cc1c857b7e8582119374925 274f9f335d283677f4c002f8d68bcce722ebba1f
Resulting secret: ......L.fm.....6 _....v..w.a....[....zS.....
WARNING: binary data detected, use -x mode instead.

Ouvrir le support chiffré

Une fois la phrase de passe obtenue, on peut utiliser un copier/coller afin de déverrouiller le support chiffré, ou alors la retranscrire en l’ayant sous les yeux.


  1. Pour plus de détails, voir l’article de Wikipédia sur les secrets répartis.