Ce document propose un mécanisme de distribution et d'activation du certificat de révocation de la clé de signature de Tails.

Objectifs

Couverts par la proposition actuelle :

  • Éviter qu'une seule personne puisse révoquer notre clé de signature.

  • Permettre à un regroupement de personnes du conseil d'administration de révoquer notre clé de signature dans le cas où la plupart des personnes du conseil d'administration deviendraient indisponibles.

  • Permettre à un regroupement de personnes, pas nécessairement du conseil d'administration, de révoquer notre clé de signature dans le cas où tout le monde ou presque tout le conseil d'administration deviendrait indisponible.

  • Rendre difficile à un regroupement de personnes n'étant pas du conseil d'administration de révoquer notre clé de signature à moins que tout le monde ou presque tout le conseil d'administration ne devienne indisponible.

  • Les personnes n'étant pas du conseil d'administration ne doivent pas savoir comment les parts sont distribuées et qui en a.

  • Une personne en possession d'une part du certificat de révocation de la clé de signature doit avoir des instructions sur comment l'utiliser en cas de besoin.

Groupes

Nous définissons quatre groupes complémentaires de personnes de confiance :

  • Groupe A : les personnes du conseil d'administration
  • Groupe B
  • Groupe C
  • Groupe D

Toutes ces personnes doivent avoir une clé OpenPGP et comprendre ce qu'est un certificat de révocation.

Parts cryptographiques

Nous générons un certificat de révocation de la clé de signature et le découpons en un certain nombre de parts cryptographiques, par exemple en utilisant la méthode du partage de clé secrète de Shamir, implémentée par gfshare.

Les combinaisons suivantes de personnes pourraient se regrouper et réassembler leurs parts pour reconstruire un certificat de révocation complet :

  • Trois personnes du conseil d'administration : A{3}
  • Deux personnes du conseil d'administration et une autre personne n'appartenant pas au conseil d'administration : A{2}+(B|C|D)
  • Une personne du conseil d'administration et deux personnes n'appartenant pas au conseil d'administration mais de deux groupes différents : A+(B|C|D){2}
  • Trois personnes n'appartenant pas au conseil d'administration mais de trois groupes différents : (B+C+D){3}

Nous générons ces parts :

  • N parts, une pour chaque personne du conseil d'administration
  • 1 part pour les personnes du groupe B
  • 1 part pour les personnes du groupe C
  • 1 part pour les personnes du groupe D

Qui sait quoi

  • Les personnes du conseil d'administration connaissent la composition de chaque groupe
  • Trois personnes ne faisant pas partie du conseil d'administration :
    • Il leur a été expliqué dans quelles circonstances elles doivent révoquer la clé de signature
    • Elles sont invitées à écrire à certaines adresses de courrier électronique si elles décident de révoquer la clé de signature
    • On leur a indiqué que trois morceaux différents sont nécessaires pour reconstituer le certificat de révocation

Infrastructure

  • Toutes les personnes ayant une part sont inscrites à une liste de diffusion.
  • Cette liste de diffusion est hébergée sur un serveur de confiance différent de boum.org afin d'être plus résilient que nos canaux habituels de communication.
  • La personne hébergeant la liste de diffusion fait partie du groupe B, C ou D, ainsi elle peut s'assurer que la liste continue de fonctionner même si elle n'est jamais utilisée.

Changer les membres des groupes B, C, ou D

Pour ajouter une personne à un groupe donné :

  • Demander à une personne de ce groupe d'envoyer sa part à la nouvelle personne.

Pour retirer une personne d'un groupe :

  • Envoyer de nouvelles parts à tout le monde sauf à la personne qui est retirée.
  • Demander à tout le monde de supprimer leur part précédente et garder une trace de ceci. Une fois que tous les membres de 2 groupes parmi les groupes B, C ou D ont supprimé leur part, il est impossible de reconstituer le certificat avec les anciennes parts.
  • Espérons que cela n'arrive pas souvent :)

Expiration

Les certificats de révocation n'ont pas de date d'expiration. Une manière d'annuler le pouvoir de révocation est de détruire toutes les copies des parts de deux groupes parmi les groupes B, C ou D.

Courrier électronique d'invitation

Une personne qui a une relation de confiance personnelle avec la personne invitée envoi ce courrier électronique.

Sujet : distribution

Salut,

Nous voulons vous proposer de faire partie de notre mécanisme de
distribution du certificat de révocation de la clé de signature de Tails.

L'idée est de distribuer des parts cryptographiques du certificat de
révocation à des personnes en qui nous avons confiance. Ces parts
cryptographiques peuvent être mises ensemble pour réassembler le certificat
de révocation et révoquer la clé de signature de Tails. Cela peut être
nécessaire dans le cas où quelque chose de vraiment mauvais nous arriverais
et où nous ne serions pas capable de faire la révocation nous-mêmes.

Note : dans tout ce document, « nous » fait référence au conseil
d'administration.

Vous pouvez lire la description complète du mécanisme de distribution sur :

https://tails.net/doc/about/openpgp_keys/signing_key_revocation/index.fr.html.

La procédure est publique et le seul élément secret est la liste des
personnes en possession du matériel cryptographique.

Nous vous proposons cela car nous vous faisons confiance à la fois pour vos
capacités techniques à stocker votre part dans un lieu sûr et à faire les
manipulations nécessaires. Mais également car nous vous faisons confiance en
tant qu'être humain pour avoir un jugement éclairé sur quand utiliser cette
part et pour agir uniquement dans l'intérêt de Tails.

Les pires choses qui pourraient arriver si le mécanisme échoue sont :

A. La clé de signature n'est pas révoquée lorsqu'elle le devrait. Cela
pourrait rendre possible à des attaquants de distribuer des images Tails
malveillantes ou de publier des informations malveillantes en notre nom.

B. La clé de signature est révoquée alors qu'elle n'aurait pas dû. Cela
pourrait empêcher des personnes de vérifier nos images avec OpenPGP jusqu'à
ce que nous publions une nouvelle clé de signature et construisions la
confiance en elle.

Distribution des parts
======================

Chaque personne du conseil d'administration, groupe A, a une part
*différente*, A1, A2, ..., An.

En plus de ça, nous définissons trois groupes complémentaires, B, C, et D de
personnes de confiance qui sont proches de Tails mais avec des intérêts
différents et des accès différents aux informations nous concernant. Vous
faites partie d'un de ces groupes.

Tout le monde dans le groupe B a une part B *identique*.

Tout le monde dans le groupe C a une part C *identique*.

Tout le monde dans le groupe D a une part D *identique*.

Trois parts différentes sont nécessaires pour réassembler le certificat de
révocation. Par exemple, les parts A1, A2 et A3, ou les parts A1, B et C.

Comment stocker vos parts
=========================

Veillez conserver votre part dans un stockage chiffré et rendre aussi
difficile que possible à une personne non-fiable d'en faire une copie.

Vous pouvez renommer le fichier tant que vous conservez le nombre dans le
nom du fichier de votre part car il est nécessaire pour utiliser la part.

N'hésitez pas à faire une sauvegarde du fichier mais à un moment nous
pourrions vous demander de le supprimer et vous devrez pouvoir être en
mesure de savoir si vous avez encore une copie ou non. Ce n'est pas grave de
perde votre part si vous nous prévenez que vous l'avez perdu. Il est
actuellement pire de continuer à avoir une copie de votre part "quelque
part" en pensant ne pas en avoir que de l'avoir perdu par erreur.

N'hésitez pas à nous demander si vous avez besoin de clarification sur les
aspects techniques de cela.

Quand utiliser votre part
=========================

Tout le monde en possession d'une part est inscrit à une liste de diffusion.

Si une personne en possession d'une part apprenait qu'un très mauvais
événement était arrivé à un grand nombre d'entre nous et pense vraiment que
nous ne serons plus capable de révoquer la clé de signature de Tails
nous-mêmes, alors cette personne doit écrire à la liste de diffusion en
expliquant pourquoi elle pense que la clé de signature doit être révoquée.

Oui, il y a un algorithme mathématiquement prouvé pour cela et c'est ici que
votre jugement en tant qu'être humain est nécessaire. La description du très
mauvais évènement doit être vérifié ou soutenu par suffisamment de personnes
pour être plausible.

Les personnes de cette liste qui sont convaincues que la clé de signature
doit être révoquée partagent leurs parts jusqu'à avoir 3 parts
différentes. Ensuite elles peuvent assembler le certificat de révocation et
le publier pour révoquer la clé de signature.

Gardez en tête que nous pouvons toujours révoquer la clé de signature
nous-mêmes si trois d'entre nous sont capables de communiquer et d'échanger
leurs parts. Donc nous avons besoin de votre aide seulement si pas plus de
deux d'entre nous sont capables de communiquer.

À moins que n’ayez réellement besoin de commencer le processus de révocation
de la clé, n'écrivez pas à la liste de diffusion.

Communications futures
======================

Dans le cas où nous aurions besoin à l'avenir de communiquer avec vous à
propos de ce mécanisme de révocation, nous le ferons toujours par la liste
de diffusion tails@boum.org. Nous pourrions faire ça pour par exemple :

  - Vous demander d'envoyer votre part à un nouveau membre de votre groupe.

  - Vous demander de supprimer votre part. Cela peut-être nécessaire pour
    annuler le fonctionnement de la part d'une autre personne : dès que
    suffisamment d'entre vous avez supprimé votre part, les quelques
    personnes ne l'ayant pas supprimé se retrouvent avec des parts
    inutilisables.

La liste de diffusion tails@boum.org a sa propre clé OpenPGP, qui est signée
par la clé de signature de Tails elle-même :

    https://tails.net/tails-email.key

Donc, pouvons-nous compter sur vous ?

Si vous répondez positivement, nous allons vous envoyer votre part et vous
inscrire à la liste de diffusion.

Merci et que la force soit avec vous !

Garder les membres des groupes B, C et D à jour

Au moins tous les 2 ans, nous nous assurons que le mécanisme fonctionne toujours :

  1. Nous vérifions en interne la liste des membres de chaque groupe et décidons de possibles ajouts ou retraits de chaque groupe.

  2. Nous écrivons individuellement à chaque membre de chaque groupe pour demander de vérifier si il a toujours sa part et le numéro dans le nom du fichier.

  3. Nous nous connectons à l'interface d'administration de la liste de diffusion pour s'assurer qu'elle existe toujours et qu'elle est configurée correctement.

Courrier électronique de mise à jour

Nous envoyons ces courriers électroniques depuis tails@boum.org pour éviter d'avoir besoin d'une relation de confiance personnelle entre la personne envoyant le courrier et celle le recevant. Nous n'envoyons pas les parts des groupes B, C ou D avec tails@boum.org de cette façon.

Sujet : mise à jour

Salut,

Il y a plusieurs années, vous avez accepté de faire partie de notre
mécanisme de distribution du certificat de révocation de la clé de signature
de Tails et nous vous avions envoyé une part cryptographique du certificat
de révocation.

Aujourd’hui, nous vous demandons de :

1. Vérifier l'authenticité de ce courrier électronique, au choix en
   vérifiant qu'il soit signé par tails@boum.org ou en discutant directement
   avec une personne du conseil d'administration.

   La liste de diffusion tails@boum.org a sa propre clé OpenPGP, qui est
   signée par la clé de signature de Tails elle-même :

   https://tails.net/tails-email.key

2. Confirmer que vous avez toujours en votre possession :

   - Votre part du certificat de révocation.

   - Le numéro NNN dans le nom de fichier de votre part.

     Le fichier est nommé tails-signing-key-revocation-cert.asc.NNN, où
     NNN est un numéro à 3 chiffres.

Pour votre information, l’adresse de la liste de diffusion où vous devez
écrire dans le cas où vous voulez assembler le certificat de révocation est
:

    adresse@exemple.org

N'écrivez pas à cette liste de diffusion à moins que n’ayez réellement
besoin de commencer le processus de révocation de la clé.

Nous avons également copié ci-dessous le résumé du mécanisme.

XXX : Copier le courrier électronique d'invitation :
XXX : - Inclure "Vous pouvez lire la description complète du mécanisme de distribution sur :"
XXX : - Arrêter avant "Donc, pouvons-nous compter sur vous ?"

Ajouter une nouvelle personne

  1. Envoyer le courrier électronique d'invitation à la nouvelle personne.

  2. Si elle est d'accord, demander à une autre personne du même groupe de lui envoyer sa part de la clé.

    Malheureusement, cela révèle certaines informations à ces deux personnes.

  3. Demander à la nouvelle personne de confirmer la réception de sa part.

Courrier électronique de partage

Nous envoyons ces courriers électroniques depuis tails@boum.org pour éviter d'avoir besoin d'une relation de confiance personnelle entre la personne envoyant le courrier et celle le recevant. Nous n'envoyons pas les parts des groupes B, C ou D avec tails@boum.org de cette façon.

Sujet : partage

Salut,

Nous avons demandé à une autre personne de votre groupe de vous envoyer une
copie de votre part.

Veuillez nous prévenir quand vous l'aurez reçu.

L’adresse de la liste de diffusion où vous devez écrire dans le cas où vous
voulez assembler le certificat de révocation est :

    adresse@exemple.org

N'écrivez pas à cette liste de diffusion à moins que n’ayez réellement
besoin de commencer le processus de révocation de la clé.

Merci et que la force soit avec vous !