2 pontos por GN⁺ 2025-05-09 | 1 comentários | Compartilhar no WhatsApp
  • Mycoria é uma rede aberta e segura de overlay que busca conectar todos os participantes em igualdade, inspirando-se no caráter aberto e aventureiro da internet inicial
  • Não há procedimentos burocráticos para participar, e todas as conexões têm autenticação e criptografia como premissas padrão
  • Pode se conectar por cima da internet ou se expandir como uma própria rede mesh, buscando reduzir as barreiras de participação na rede
  • O design foca em uma estrutura pequena e simples, compatibilidade com infraestrutura existente como DNS, segurança padrão e privacidade
  • Oferece criptografia ponta a ponta automática, roteamento escalável, dashboard, resolução DNS .myco e descoberta de serviços; alguns recursos de privacidade e otimização automática estão em estado WIP

O modelo de conexão que a Mycoria busca

  • Mycoria é uma rede aberta e segura de overlay que conecta todos os participantes
  • Segue o espírito curioso e aventureiro da internet inicial, tendo a liberdade de conexão como valor central
  • Seus princípios centrais são os seguintes
    • Everyone is equal: é possível se conectar facilmente a qualquer pessoa
    • Everyone is welcome: é uma rede aberta da qual é possível participar sem procedimentos burocráticos
    • No spooking: todas as conexões são autenticadas
    • No surveillance: todas as conexões são criptografadas e incluem Private Addresses
    • No barriers: é possível conectar-se pela internet ou expandir a Mycoria com sua própria rede mesh

Objetivos de design e recursos atuais

  • A estrutura tem como objetivo se manter pequena e simples
  • Considera a compatibilidade com infraestrutura existente, como DNS
  • A segurança é aplicada por padrão, enquanto a privacidade padrão permanece em estado WIP
  • Os recursos atualmente oferecidos são os seguintes
    • Criptografia ponta a ponta automática
    • Criptografia moderna
    • Roteamento inteligente e escalável
    • Dashboard
    • Resolução DNS .myco
      • Requer configuração do SO
    • Descoberta simples de serviços
    • Otimização e recuperação automáticas de rede para overlay de internet
      • Está em estado WIP
    • Private addresses rotativos
      • Está em estado WIP

1 comentários

 
GN⁺ 2025-05-09
Opiniões no Hacker News
  • Sou o autor. Na Safing, como cofundador/CTO, passei os últimos 8 anos criando tecnologias de privacidade, e nossa maior conquista técnica foi a SPN (antes Port17/Gate17)
    A SPN era uma rede de privacidade no espaço entre VPN e Tor, ou seja, um proxy de camada 5; era impossível configurá-la errado, tinha velocidade razoável e oferecia privacidade muito melhor que uma VPN por meio de criptografia onion e separação de autenticação/autorização
    Curiosamente, esse método de autenticação separada depois também foi implementado no Apple Private Relay e no Google One VPN
    A SPN funcionava bem em geral, mas era difícil de escalar; como a fizemos como um proxy de camada 5 para reduzir metadados e aumentar a privacidade, também tivemos de reimplementar controle de tráfego e controle de congestionamento, o que não foi fácil e ainda causa problemas
    Enquanto isso, lendo e acompanhando cjdns e Yggdrasil, fiquei interessado em ideias de networking e, por volta de novembro de 2023, fiquei curioso para saber até onde eu conseguiria levar, com a experiência e o conhecimento acumulados, uma rede mesh escalável de camada 3 que preservasse parte da privacidade e segurança completa
    Passei a maior parte das noites durante alguns meses construindo isso, e o progresso foi melhor do que eu esperava, mas, depois de chegar a um MVP decente e ganhar um amigo que a usou pela primeira vez em produção em pequena escala, fiquei sem tempo para continuar trabalhando nela
    Agora estou começando um novo projeto e pretendo aproveitar bem isso nele, então o desenvolvimento deve avançar bastante nos próximos anos. Por enquanto, a Mycoria funciona, ao menos em pequena escala, mas em geral está mais para um MVP

    • A Mycoria parece promissora e me lembra os primeiros sistemas peer-to-peer da época do Napster e do Gnutella
      Fico curioso se há algum motivo específico para não usar roteamento por segmentos baseado em padrões que poderia ser adotado na camada 3 para suporte a source routing, e em vez disso criar um transporte customizado de camada 4
      Também queria saber se, na análise de segurança, foram usados a lógica BAN e a ferramenta de verificação ProVerif
      https://en.wikipedia.org/wiki/Gnutella
      https://en.wikipedia.org/wiki/Segment_routing
      https://en.wikipedia.org/wiki/Burrows%E2%80%93Abadi%E2%80%93...
      https://en.wikipedia.org/wiki/ProVerif
    • Eu sugeriria um termo como peer em vez de friend. Não é picuinha: no espaço de agentes de usuário, é melhor não usar na camada de infraestrutura semânticas de relacionamento que não sejam fechadas
      O servidor do meu notebook também é meu agente de usuário, e a instância rodando no meu celular também, então os dois são peers
      As aplicações criadas sobre essa base em geral vão lidar com as relações sociais dos usuários, e expressões como friend serão úteis nessa camada
    • Soluções parecidas parecem ignorar, em comum, o aspecto comercial. Não sei se a ideia é adoção em massa, mas presumo que as propriedades de privacidade e anonimato melhorem quanto mais pessoas usarem
      Se for esse o caso, queria saber se foram considerados incentivos de participação, financeiros ou não. O principal desafio nessa área parece estar em resolver pagamentos anônimos padronizados para provedores de serviços de infraestrutura da rede
    • Não ficou claro só pela documentação: se o endereço semelhante a IPv6 do roteador é a impressão digital da chave pública, ele também codifica prefixo geográfico e distância?
      Em tese parece possível, então, se essa for a abordagem, gostaria de saber como ela funciona. Ou será que os endereços dos roteadores não contêm metadados e só os endereços dos usuários finais são codificados desse jeito?
    • Na época em que eu usava Windows, Portmaster e SPN eram excelentes. Gostaria que houvesse algo assim no macOS
      Existe o Private Relay, mas ele só funciona em alguns apps da Apple, como o Safari; também é difícil saber se está ativo, e não dá para forçar que o tráfego passe obrigatoriamente por ele
  • Tecnicamente, coisas assim são muito legais. Também me fazem imaginar um futuro distante em que nerds e geeks incríveis, enfrentando todo tipo de adversidade, montam suas próprias redes comunitárias usando apenas infraestrutura básica
    Mas, no fim, participar desse tipo de iniciativa descentralizada em geral é inconveniente e me deixa relutante. Porque parece que eu acabaria ajudando no compartilhamento e na distribuição de material de exploração sexual infantil
    O Tailscale ao menos permanece no âmbito privado, mas isto dá a sensação de virar parte de uma rede mais ampla. Fico me perguntando se meu nó acabaria sendo usado para rotear esse tipo de tráfego

    • Na prática, o risco mais grave e realista é a tirania. Tiranos geralmente também são abusadores
    • Isso leva à conclusão de que deveríamos eliminar toda privacidade da internet, mas ainda assim não impediríamos material de exploração sexual infantil
      Boa sorte, Sr. Big Brother
    • Qualquer coisa que você crie acabará sendo usada para coisas ilegais
      Então a internet também não deveria ter sido inventada? O mesmo valeria para cartas, Facebook, carros, armas, facas e agricultura
  • Dá para ver claramente onde foram aplicadas as lições aprendidas com cjdns e Yggdrasil, e o projeto é muito legal.
    Ainda assim, por parecer promissor e o novo projeto ser interessante, quero apontar um detalhe pequeno. Segundo o FAQ, há uma estrutura nos IPs dos roteadores e, exceto pelos prefixos de finalidade especial, a maior parte fica dentro de prefixos com indicação geográfica. Cada país e cada estado dos EUA tem seu próprio prefixo dentro da Mycoria; roteadores do mesmo país compartilham o mesmo prefixo em nível global, e países próximos tendem a ter prefixos parecidos.
    Dentro de um prefixo de país, a Mycoria usa roteamento por distância de endereço, enviando pacotes para o roteador conhecido cujo endereço seja o mais próximo. Não é o roteamento mais eficiente, mas funciona razoavelmente bem, especialmente quando limitado a uma área geográfica menor como na Mycoria, junto com algumas medidas adicionais.
    Uma das lições infelizes aprendidas com a Internet IPv4, com a forma como os IPs da IANA foram administrados por cada RIR e com a associação de informações geográficas a blocos IPv4, é que formuladores de políticas adoram empilhar políticas sobre tags geográficas. Por exemplo, se a MaxMind disser que um endereço está no Paquistão e, segundo a lei paquistanesa, o conteúdo oferecido por outro endereço for proibido, ele acaba sendo bloqueado.
    Quando a consciência geográfica é embutida nos prefixos de rede, isso pode ser explorado de formas que os usuários não desejam. Claro, pode ser um compromisso aceitável, e é fácil imaginar cenários em que os usuários obtenham benefícios suficientes dos prefixos com consciência geográfica para aceitar as desvantagens.
    Se for o primeiro caso, talvez valha considerar migrar de prefixos com consciência geográfica — isto é, “a até X milhas de outras pessoas nesta jurisdição” — para prefixos com consciência de latência, ou seja, “a até X ms de outras pessoas neste prefixo”.
    Dito isso, refutando minha própria recomendação, quem quiser implementar políticas de camada 8 sobre prefixos com consciência geográfica pode deliberadamente interpretar prefixos com consciência de latência como algo próximo o suficiente, e aí muito esforço pode acabar sendo em vão.

    • Obrigado por dedicar tempo a esse feedback. Queremos resolver esse problema com endereços privados.
      Endereços privados não têm indicação geográfica e não são roteados. Por exemplo, são gerados aleatoriamente e não podem ser facilmente atribuídos a uma localização geográfica.
  • A documentação é boa e parece interessante. Preciso testar pessoalmente, mas a primeira pergunta que me vem à mente é se a Mycoria expõe o nó inteiro dentro da rede, exigindo um firewall para restringir acesso a portas etc.
    Pergunto porque isso é necessário no Yggdrasil: https://yggdrasil-network.github.io/faq.html#will-my-machine...

    • A Mycoria é segura por padrão e quase não exige configuração.
      Por padrão, ninguém consegue acessar seu dispositivo. Você precisa permitir isso ativamente na seção services da configuração.
  • Fico curioso para saber como ela se compara ao Veilid(https://veilid.com/).

  • Você chegou a ver o Reticulum[0]? Também gostaria de saber o quanto ele se sobrepõe à camada de rede da Mycoria.
    [0]: https://github.com/markqvist/Reticulum

  • Posso ter deixado passar algo completamente, mas a Mycoria tenta impedir que participantes da rede descubram o endereço IP público na Internet correspondente a um ID de roteador Mycoria?
    O campo iana na configuração faz parecer que esse não é o objetivo; nesse caso, o sistema parece mais próximo do Tailscale com IPv6 e um namespace global. Se for assim, como praticamente todos os hosts da Internet conseguem alcançar uns aos outros diretamente usando técnicas de travessia de NAT, como no BitTorrent, não entendo muito bem por que há tanta ênfase em “roteamento”.
    Se a intenção for esconder o endereço IP público na Internet, como nos serviços ocultos do Tor, o esquema de roteamento também não faz muito sentido para mim. Provavelmente você não iria querer escolher rotas com uma estratégia determinística ou dependente de latência, porque isso vazaria informação.

    • A Mycoria foi feita para resiliência e não depende de o backbone atual da Internet funcionar perfeitamente.
      Mesmo quando a Internet atual funciona “normalmente”, muitos usuários de redes parecidas relataram obter melhor conectividade com roteamento de rede overlay. O roteamento da Internet IANA é bastante afetado.
      Se você deixar a Mycoria gerar a configuração, ela incluirá as interfaces públicas atuais do dispositivo, então isso só é verdade para servidores. A Mycoria não depende de endereços IANA, mas os usa para melhorar automaticamente a estrutura da rede — isto é, para encontrar rotas melhores entre roteadores pela Internet IANA.
  • Talvez fosse mais útil contribuir para redes já existentes, como i2p.

    • Não só o i2p: já existem projetos existentes quase idênticos e consolidados.
      A maioria deles fracassou em alcançar adoção suficiente, em grande parte por não reconhecer que mais de 90% do mercado de computadores desktop não usa Linux nem BSD.
      Alguns oferecem suporte precário a clientes Windows, e quase nenhum dá suporte ao macOS, que representa algo como 20% a 30% do mercado de desktops.
  • Fico curioso para saber como ela se compara ao zrok(https://zrok.io/). Quero testar por conta própria, mas fico um pouco preocupado porque parece não ser privada por padrão.

    • Para os casos de uso que o Zrok apresenta, a Mycoria é muito parecida.
      Por padrão, nada consegue acessar seu dispositivo. Você precisa definir serviços e adicionar friends, isto é, seus outros dispositivos, para permitir o acesso.