No Tor, quando vários relés têm o(s) mesmo(s) operador(es), eles devem declarar que são membros de uma "família".

No design atual do Tor, para configurar relés como membros de uma família, cada relé precisa listar todos os outros membros da família em sua configuração e publicar essa lista também para os clientes. Essas listas podem ser difíceis de manter e caras para baixar.

O design Happy Families é um novo recurso no Tor 0.4.9.2-alpha que (eventualmente) fornecerá uma maneira mais simples de configurar famílias de retransmissão e também economizará muito tráfego quando os clientes estiverem buscando informações de diretório de rede.

(Infelizmente, mudar para famílias felizes criará trabalho adicional enquanto a transição estiver em andamento. Acreditamos que valerá a pena no longo prazo.)

Você deve ler isto se for um operador de retransmissão que precisa configurar uma família na rede Tor.

A ideia básica

No design Happy Families, cada família de revezamento é identificada por uma chave secreta de assinatura familiar compartilhada por todos os membros da família. Os membros da família usam essa chave para assinar certificados que comprovam que pertencem à família.

Então o que você precisa fazer é:

  1. Gere uma única chave para sua família.
  2. Copie essa chave para cada relé.
  3. Configure seus relés para usar essa chave.

Em mais detalhes

Gerando a chave da família

Primeiro, você precisará esperar até que todos os seus relés estejam executando a versão 0.4.9.2-alpha ou posterior.

Então, para gerar uma chave de família, execute:

tor --keygen-family MyKey

Isso criará um arquivo chamado MyKey.secret_family_key; ele também gravará algo como este resultado na saída padrão:

# Generated MyKey.secret_family_key
FamilyId wweKJrJxUDs1EdtFFHCDtvVgTKftOC/crUl1mYJv830

Guarde a linha FamilyID; você vai precisar dela! (Não use o deste exemplo — esse não é seu documento de identidade familiar.)

Configurando seu relé

Copie o arquivo MyKey.secret_family_key (ou qualquer nome que você tenha dado a ele) para o KeyDir de cada um dos seus relays. (Por padrão, este é o subdiretório keys do seu DataDir.) O nome do arquivo precisa terminar com .secret_family_key.

Em seguida, adicione a linha FamilyId ao seu torrc.

Se o seu relé estiver em execução, você terá que dizer para ele recarregar sua configuração (normalmente com um SIGHUP).

Funcionou?

Se você fez isso corretamente, deverá ver uma entrada family-cert no descritor do seu relé, parecida com esta:

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

Quando um número suficiente de autoridades de diretório estiver executando a versão 0.4.9.2-alpha ou posterior, elas incluirão uma entrada correspondente nos microdescritores dos seus relés, que será algo parecido com:

family-ids ed25519:wweKJrJxUDs1EdtFFHCDtvVgTKftOC/crUl1mYJv830

NOTA: Você ainda precisa configurar o MyFamily!

Infelizmente, você ainda precisará configurar a opção MyFamily como fez antes: até que todos os clientes suportem o Happy Family, eles precisarão consultar as listas de famílias legadas.

Tentaremos manter esse período de transição o mais curto possível.

Anunciaremos quando não for mais necessário incluir MyFamily.

Informações adicionais: Como fazer a transição das chaves da família

Se um dos seus relés for comprometido ou se você acidentalmente vazar uma chave da família, será necessário trocar a chave. (Se você não fizer isso, o retransmissor de um adversário poderá alegar falsamente ser um membro da sua família.)

Para fazer isso, recomendamos um processo passo a passo.

  1. Gere uma nova chave de família como acima. Dê a ele um nome de arquivo diferente da chave antiga.
  2. Copie a nova chave de família para cada um dos seus relés, sem substituir a chave de família antiga.
  3. Adicione a nova linha FamilyID às configurações de todos os seus relés, sem remover a antiga. Neste ponto, todos os seus revezamentos serão membros de duas famílias.
  4. Aguarde alguns dias para que as novas informações da família tenham tempo de se propagar.
  5. Remova as linhas antigas FamilyID das configurações dos seus relés. Opcionalmente, remova também as chaves antigas da família.

Informações adicionais: Economia esperada com esta transição

Planejamos remover MyFamily e as chaves onion legadas do TAP ao mesmo tempo. Quando o fizermos, estimamos que os microdescritores da rede resultante terão algo em torno de 10% do seu tamanho atual.

(Infelizmente, isso pode não ser uma economia permanente: quando fizermos a transição para a criptografia pós-quântica, talvez tenhamos que tornar os microdescritores maiores novamente. Mas pelo menos essa mudança abrirá espaço para isso.)