In Tor sollten mehrere Relays, die denselben Bediener haben, erklären, dass sie Mitglieder einer "Familie" sind.
Um Relays als Mitglieder einer Familie einzurichten, muss in Tors aktuellem Design jeder Server jedes andere Mitglied der Familie in seiner Konfiguration auflisten und diese Liste auch den Clients zur Verfügung stellen.
Die Pflege dieser Listen kann unangenehm und das Herunterladen aufwendig sein.
Das Design von Happy Families ist eine neue Funktion in Tor 0.4.9.2-alpha, die (irgendwann) einen einfacheren Weg zur Konfiguration von Relays bieten wird und außerdem eine Menge Datenverkehr einspart, wenn die Clients Netzwerkverzeichnisinformationen abrufen.
(Leider bedeutet der Umzug zu glücklichen Familien zusätzliche Arbeit während der Übergangsphase. Wir denken, dass es sich langfristig lohnen wird.)
Du solltest dies lesen, wenn du ein Relay-Betreiber bist, der eine Familie im Tor-Netzwerk konfigurieren muss.
Der Grundgedanke
Bei Happy Families wird jede Relay-Familie durch einen geheimen Familiensignaturschlüssel identifiziert, der von allen Familienmitgliedern geteilt wird.
Die Familienmitglieder verwenden diesen Schlüssel, um Zertifikate zu unterschreiben, die ihre Zugehörigkeit zur Familie belegen.
Was du also tun musst, ist:
- Erzeuge einen einzigen Schlüssel für deine Familie.
- Kopiere diesen Schlüssel auf jedes Relay.
- Konfiguriere deine Relays so, dass sie diesen Schlüssel verwenden.
Ausführlichere Informationen
Erzeugen des Familienschlüssels
Zunächst musst du warten, bis alle deine Relays mit 0.4.9.2-alpha oder höher laufen.
Dann, um einen Familienschlüssel zu erzeugen, führe Folgendes aus:
tor --keygen-family MyKey
Dadurch wird eine Datei mit dem Namen MyKey.secret_family_key
erstellt; außerdem wird in die Standardausgabe so etwas wie das hier geschrieben:
# Generated MyKey.secret_family_key
FamilyId wweKJrJxUDs1EdtFFHCDtvVgTKftOC/crUl1mYJv830
Speichere die Zeile FamilyID
; du wirst sie noch brauchen!
(Verwende nicht das aus diesem Beispiel - das ist nicht deine Familien-ID.)
Konfigurieren deines Relays
Kopiere die Datei MyKey.secret_family_key
(oder wie auch immer du sie genannt hast) in das KeyDir
eines jeden deiner Relays.
(Standardmäßig ist dies das Unterverzeichnis keys
in deinem DataDir
.)
Der Dateiname muss mit .secret_family_key
enden.
Dann füge die Zeile FamilyId
zu deiner torrc
hinzu.
Wenn dein Relay läuft, musst du ihm sagen, dass es seine Konfiguration neu laden soll (normalerweise mit einem SIGHUP
.)
Hat es funktioniert?
Wenn du das richtig gemacht hast, solltest du einen family-cert
-Eintrag im Deskriptor deines Relays sehen, der etwa so aussieht:
family-cert
-----BEGIN FAMILY CERT-----
AQwAB2K5AXJrxBpgTXDIvHKFShmCCD2yLnDaBf2lWaInBhR2R56HAQAgBAAjv69J
jy+7BSRh1GnGF7Zxm+AMXvJYWkUCWY+5KU8Bymkz5N4D/QNs4K6bOjLokAwD4raT
J34t8b7uxHXuFS2F2VN5Ygr3//vGsB00jideQ5Cj9aX+BLSZ2FjC6GK2XAo=
-----END FAMILY CERT-----
Sobald genügend Verzeichnisautoritäten 0.4.9.2-alpha oder höher verwenden, werden sie einen entsprechenden Eintrag in die Mikrodeskriptoren deiner Relays aufnehmen, der etwa aussehen wird wie:
family-ids ed25519:wweKJrJxUDs1EdtFFHCDtvVgTKftOC/crUl1mYJv830
HINWEIS: Du musst MyFamily noch konfigurieren!
Leider musst du die Option MyFamily
immer noch so konfigurieren, wie du es vorher getan hast: Bis alle Kunden Happy Families unterstützen, müssen sie auf die alten Familienlisten zurückgreifen.
Wir werden versuchen, diese Übergangszeit so kurz wie vernünftig zu halten.
Wir werden ankündigen, sobald es nicht mehr notwendig ist, MyFamily
einzubeziehen.
Zusätzliche Informationen: Wie man Familienschlüssel umstellt
Wenn eines deiner Relays kompromittiert wird oder du versehentlich einen Familienschlüssel preisgibst, musst du den Schlüssel ändern.
(Wenn du das nicht tust, könnte ein gegnerisches Relay fälschlicherweise behaupten, ein Mitglied deiner Familie zu sein.)
Hierfür empfehlen wir ein schrittweises Vorgehen.
- Erzeuge einen neuen Familienschlüssel wie oben beschrieben.
Gib ihm einen anderen Dateinamen als dem alten Schlüssel.
- Kopiere den neuen Familienschlüssel in jedes deiner Relays, ohne den alten Familienschlüssel zu ersetzen.
- Füge die neue Zeile
FamilyID
zu allen Konfigurationen deiner Relays hinzu, ohne die alte Zeile zu entfernen.
Zu diesem Zeitpunkt sind alle deine Relays Mitglieder von zwei Familien.
- Warte ein paar Tage, damit die neue Familieninformation Zeit hat, sich zu verbreiten.
- Entferne die alten
FamilyID
-Zeilen aus den Konfigurationen deiner Relays.
Optional kannst du auch die alten Familienschlüssel entfernen.
Zusätzliche Informationen: Erwartete Einsparungen durch diese Umstellung
Wir planen, MyFamily
und die alten TAP Onion-Schlüssel zur gleichen Zeit zu entfernen.
Wir schätzen, dass die Mikrodeskriptoren des entstehenden Netzes dann etwa 10 % der derzeitigen Größe betragen werden.
(Leider ist diese Speicherung vielleicht nicht von Dauer: Wenn wir zur Postquantenkryptographie übergehen, müssen wir die Mikrodeskriptoren vielleicht wieder vergrößern. Aber zumindest wird diese Änderung den Raum dafür frei machen.)