Dans Tor, lorsque plusieurs relais ont le ou les mêmes opérateurs, ils doivent déclarer qu’ils sont membres d’une « famille ».
Dans la conception actuelle de Tor, pour configurer des relais comme membres d’une famille, chaque relais doit lister tous les autres membres de la famille dans sa configuration, et publier également cette liste à destination des clients.
Ces listes peuvent être pénibles à maintenir et coûteuses à télécharger.
La conception Happy Families est une nouvelle fonctionnalité de Tor 0.4.9.2-alpha qui offrira (à terme) une façon plus simple de configurer les familles de relais, et qui économisera aussi beaucoup de trafic lorsque les clients récupèrent les informations d’annuaire du réseau.
Vous devriez lire ceci si vous êtes un opérateur de relais qui doit configurer une famille sur le réseau Tor.
L’idée de base
Dans la conception Happy Families, chaque famille de relais est identifiée par une clé de signature de famille secrète, partagée par tous les membres de la famille.
Les membres de la famille utilisent cette clé pour signer des certificats prouvant qu’ils appartiennent à la famille.
Voici donc ce que vous devrez faire :
- Générez une clé unique pour votre famille.
- Copiez cette clé sur chaque relais.
- Configurez vos relais pour qu’ils utilisent cette clé.
Plus en détail
Générer la clé de famille
Tout d’abord, vous devrez attendre que tous vos relais utilisent la version 0.4.9.2-alpha ou une version ultérieure.
Ensuite, pour générer une clé de famille, exécutez :
tor --keygen-family MyKey
Cela créera un fichier nommé MyKey.secret_family_key ; cela écrira aussi sur la sortie standard un résultat ressemblant à ceci :
# Generated MyKey.secret_family_key
FamilyId wweKJrJxUDs1EdtFFHCDtvVgTKftOC/crUl1mYJv830
Save that FamilyId line; you're going to need it!
(N’utilisez pas celui de cet exemple : ce n’est pas votre identifiant de famille.)
Configurer votre relais
Copy the MyKey.secret_family_key file (or whatever you called it) into the KeyDir of every one of your relays.
(Par défaut, il s’agit du sous-répertoire keys de votre DataDir.)
Le nom du fichier doit se terminer par .secret_family_key.
Ensuite, ajoutez la ligne FamilyId à votre torrc.
Si votre relais est en cours d’exécution, vous devrez lui demander de recharger sa configuration (généralement avec un SIGHUP).
Est-ce que cela a fonctionné ?
Si vous avez procédé correctement, vous devriez voir une entrée family-cert dans le descripteur de votre relais, ressemblant à ceci :
family-cert
-----BEGIN FAMILY CERT-----
AQwAB2K5AXJrxBpgTXDIvHKFShmCCD2yLnDaBf2lWaInBhR2R56HAQAgBAAjv69J
jy+7BSRh1GnGF7Zxm+AMXvJYWkUCWY+5KU8Bymkz5N4D/QNs4K6bOjLokAwD4raT
J34t8b7uxHXuFS2F2VN5Ygr3//vGsB00jideQ5Cj9aX+BLSZ2FjC6GK2XAo=
-----END FAMILY CERT-----
Une fois qu’un nombre suffisant d’autorités d’annuaire utiliseront la version 0.4.9.2-alpha ou une version ultérieure, elles incluront une entrée correspondante dans les microdescripteurs de vos relais, qui ressemblera à ceci :
family-ids ed25519:wweKJrJxUDs1EdtFFHCDtvVgTKftOC/crUl1mYJv830
Informations complémentaires : comment faire la transition des clés de famille
Si l’un de vos relais est compromis, ou si vous divulguez accidentellement une clé de famille, vous devrez changer de clé.
(Sinon, le relais d’un adversaire pourrait prétendre à tort être membre de votre famille.)
Pour cela, nous recommandons de procéder par étapes.
- Générez une nouvelle clé de famille comme indiqué ci-dessus.
Donnez-lui un nom de fichier différent de celui de l’ancienne clé.
- Copiez la nouvelle clé de famille sur chacun de vos relais, sans remplacer l’ancienne clé de famille.
- Add the new
FamilyId line to all of your relays' configurations, without removing the old one.
À ce stade, vos relais seront tous membres de deux familles.
- Attendez quelques jours, afin de laisser aux nouvelles informations de famille le temps de se propager.
- Remove the old
FamilyId lines from your relays' configurations.
Vous pouvez aussi, si vous le souhaitez, retirer les anciennes clés de famille.