Foi publicado o lançamento da implementação de referência do protocolo Yggdrasil 0.4, que permite implantar uma rede privada descentralizada IPv6 sobre uma rede global convencional, utilizando criptografia de ponta a ponta para proteger a privacidade. Qualquer aplicativo existente que suporte IPv6 pode ser usado na rede Yggdrasil. A implementação foi escrita na linguagem Go e é distribuída sob a licença LGPLv3. Suporte para as plataformas Linux, Windows, macOS, FreeBSD, OpenBSD e Ubiquiti EdgeRouter é garantido.
Yggdrasil desenvolve um novo conceito de roteamento para criar uma rede descentralizada global, onde os nós podem se conectar tanto diretamente entre si em modo mesh (por exemplo, via Wi-Fi ou Bluetooth), quanto interagir sobre redes IPv6 ou IPv4 existentes (rede sobre rede). Uma característica distintiva do Yggdrasil é a automação do funcionamento, sem necessidade de configuração explícita de roteamento — as informações sobre as rotas são calculadas com base na localização do nó em relação a outros nós. Os dispositivos são endereçados através de um endereço IPv6 comum, que não muda quando o nó se desloca (no Yggdrasil, um intervalo não utilizado de endereços 0200::/7 é utilizado).
Toda a rede Yggdrasil é vista não como uma combinação de sub-redes desconexas, mas como uma única árvore de cobertura estruturada, que possui uma "raiz" e onde cada nó tem um único pai e um ou vários filhos. Tal estrutura em árvore permite construir um caminho até um nó de destino, em relação ao nó de origem, utilizando um mecanismo de "localizador", que define o caminho ideal para o nó a partir da raiz.
As informações sobre a árvore são distribuídas entre os nós e não são armazenadas de forma centralizada. Para a troca de dados sobre roteamento, uma tabela hash distribuída (DHT) é utilizada, com a qual um nó pode recuperar todas as informações sobre a rota para outro nó. A rede em si apenas garante criptografia de ponta a ponta (nós de trânsito não conseguem identificar o conteúdo), mas não assegura anonimato (ao se conectar através da internet, nós ponto a ponto com os quais há interação direta podem determinar o endereço IP real; portanto, para anonimato, sugere-se conectar os nós através do Tor ou I2P).
Nota-se que, apesar do projeto estar em fase alpha, ele já é bastante estável para uso diário, mas não garante compatibilidade retroativa entre as versões. Para Yggdrasil 0.4, a comunidade suporta um conjunto de serviços, incluindo uma plataforma para hospedagem de contêineres Linux para a hospedagem de seus sites, um mecanismo de busca YaCy, comunicação servidor Matrix, servidor IRC, DNS, sistema VoIP, rastreador BitTorrent, mapa de pontos de conexão, gateway para IPFS e proxy para acessar redes Tor, I2P e clearnet.
Na nova versão:
- Foi implementado um novo esquema de roteamento, incompatível com versões anteriores do Yggdrasil.
- Na configuração de conexões TLS com nós, foi utilizada a ligação de chaves públicas (key pinning). Se não houver ligação na conexão, a chave obtida será vinculada à conexão. Se a ligação for estabelecida, mas a chave não corresponder, a conexão será rejeitada. TLS com pinagem de chave é definido como o método recomendado de conexão ao pirâmide.
- O código para roteamento e gerenciamento de sessões foi completamente reescrito, o que permitiu aumentar a capacidade e a confiabilidade, especialmente para nós que frequentemente mudam de peers. Em sessões criptográficas, foi implementada uma rotação periódica de chaves. Adicionada a compatibilidade com roteamento por fonte (Source routing), que pode ser usada para redirecionar o tráfego IPv6 do usuário. A arquitetura da tabela hash distribuída (DHT) foi reformulada e o suporte a roteamento baseado em DHT foi adicionado. A implementação dos algoritmos de roteamento foi transferida para uma biblioteca separada.
- endereços IP Os endereços IPv6 agora são formados a partir das chaves públicas ed25519, e não de seu hash X25519, o que resultará na mudança de todos os IPs internos após a transição para o Yggdrasil 0.4.
- Configurações adicionais foram fornecidas para a busca de peers Multicast.
Fonte: opennet.ru
