У Tor, коли кілька ретрансляторів мають одного оператора(ів), вони повинні оголосити, що вони є членами «сім’ї».

У поточному дизайні Tor, щоб налаштувати ретранслятори як членів сімейства, кожен ретранслятор повинен містити список кожного іншого члена сімейства у своїй конфігурації та також публікувати цей список клієнтам. Ці списки може бути неприємним для підтримки та дорогим для завантаження.

Дизайн Happy Families — це нова функція в Tor 0.4.9.2-alpha, яка (з часом) забезпечить простіший спосіб налаштування сімей ретрансляції, а також заощадить багато трафіку, коли клієнти отримують інформацію про мережевий каталог.

(На жаль, переїзд до щасливих сімей створить додаткову роботу під час переходу. Ми вважаємо, що в довгостроковій перспективі це буде того варте.)

Ви повинні прочитати це, якщо ви оператор ретрансляції, якому потрібно налаштувати сім’ю в мережі Tor.

Основна ідея

У дизайні Happy Families кожне сімейство реле ідентифікується секретним сімейним ключем підпису, яким користуються всі члени сім’ї. Члени сім'ї використовують цей ключ, щоб підписувати сертифікати, що підтверджують їхню приналежність до сім'ї.

Тож що вам потрібно буде зробити:

  1. Згенеруйте єдиний ключ для своєї родини.
  2. Скопіюйте цей ключ до кожного реле.
  3. Налаштуйте свої реле на використання цього ключа.

Більш детально

Генерація сімейного ключа

По-перше, вам потрібно буде дочекатися, поки всі ваші ретранслятори запустять 0.4.9.2-alpha або новішу версію.

Потім, щоб створити сімейний ключ, виконайте:

tor --keygen-family MyKey

Це створить файл під назвою MyKey.secret_family_key; він також запише щось на зразок цього результату до стандартного виводу:

# Generated MyKey.secret_family_key
FamilyId wweKJrJxUDs1EdtFFHCDtvVgTKftOC/crUl1mYJv830

Збережіть цей рядок FamilyID; тобі це знадобиться! (Не використовуйте номер із цього прикладу — це не ідентифікатор вашої родини.)

Налаштування вашого реле

Скопіюйте файл MyKey.secret_family_key (або як ви його називаєте) у KeyDir кожного вашого ретранслятора. (За замовчуванням це підкаталог keys вашого DataDir.) Ім’я файлу має закінчуватися на .secret_family_key.

Потім додайте рядок FamilyId до свого torrc.

Якщо ваше реле працює, вам доведеться повідомити йому перезавантажити свою конфігурацію (зазвичай за допомогою SIGHUP)

Це спрацювало?

Якщо ви зробили це правильно, ви повинні побачити запис family-cert в дескрипторі реле, який виглядає приблизно так:

family-cert
-----BEGIN FAMILY CERT-----
AQwAB2K5AXJrxBpgTXDIvHKFShmCCD2yLnDaBf2lWaInBhR2R56HAQAgBAAjv69J
jy+7BSRh1GnGF7Zxm+AMXvJYWkUCWY+5KU8Bymkz5N4D/QNs4K6bOjLokAwD4raT
J34t8b7uxHXuFS2F2VN5Ygr3//vGsB00jideQ5Cj9aX+BLSZ2FjC6GK2XAo=
-----END FAMILY CERT-----

Після того, як достатньо повноважень каталогу запустить 0.4.9.2-alpha або пізнішу версію, вони включать відповідний запис у мікродескриптори ваших ретрансляторів, який виглядатиме приблизно так:

family-ids ed25519:wweKJrJxUDs1EdtFFHCDtvVgTKftOC/crUl1mYJv830

ПРИМІТКА. Вам все одно потрібно налаштувати MyFamily!

На жаль, вам все одно потрібно буде налаштувати опцію MyFamily, як і раніше: доки всі клієнти не підтримають Happy Families, їм потрібно буде переглядати списки застарілих сімей.

Ми спробуємо зробити цей перехідний період настільки коротким, наскільки це розумно.

Ми оголосимо, щойно більше не буде необхідності включати MyFamily.

Додаткова інформація: як перенести сімейні ключі

Якщо один із ваших ретрансляторів зламано або якщо ви випадково розкриєте сімейний ключ, вам потрібно буде змінити ключ. (Якщо ви цього не зробите, реле супротивника може фальшиво заявити, що є членом вашої родини.)

Для цього ми рекомендуємо поетапний процес.

  1. Згенеруйте новий сімейний ключ, як описано вище. Дайте йому назву файлу, відмінну від старого ключа.
  2. Скопіюйте новий сімейний ключ до кожного свого реле, не замінюючи старий сімейний ключ.
  3. Додайте новий рядок FamilyID до всіх конфігурацій реле, не видаляючи старий. На цьому етапі всі ваші ретранслятори будуть членами двох родин.
  4. Зачекайте кілька днів, щоб дати новій сімейній інформації час для поширення.
  5. Видаліть старі рядки FamilyID із конфігурацій реле. За бажанням також видаліть старі сімейні ключі.

Додаткова інформація: очікувана економія від цього переходу

Ми плануємо одночасно видалити MyFamily та застарілі ключі TAP onion. Коли ми це зробимо, за нашими оцінками, отримані мікродескриптори мережі складатимуть приблизно 10% від їх поточного розміру.

(На жаль, це може не бути постійною економією: коли ми переходимо до постквантової криптографії, нам, можливо, доведеться знову збільшити мікродескриптори. Але принаймні ця зміна звільнить простір для цього.)