Instruções

Internet secreta, parte 3: o que é a Freenet

  • 20 de set. de 2023, 21:28
  • 12 minutos

Internet secreta, parte 3: o que é a Freenet

Acessar a rede obscura não é possível por meio de uma simples solicitação no navegador. Em vez disso, para acessar a Darkweb é preciso configurar uma rede especial e digitar corretamente o nome do recurso, ou não será possível ver seu conteúdo.

Neste artigo, explicaremos por quais redes é possível acessar a Darkweb e quais recursos podem ser alcançados por meio delas.

Nos artigos anteriores:


  • Internet secreta, parte 1: o que é Dark Web e por que a utilizam

  • Internet secreta, parte 2: como funcionam os sites .onion

  • Internet secreta, parte 3: o que é a Freenet ← você está aqui

  • Internet secreta, parte 4: o que é o I2P e como ele funciona

  • Internet secreta, parte 5: como acessar a Darknet através do Tor, I2P e Freenet

Acessar a dark web não é possível por meio de uma simples busca no navegador. Para entrar na Darkweb, é necessário configurar uma rede especial e digitar corretamente o nome do recurso - caso contrário, você não poderá acessar o conteúdo.


O que é a Freenet

Freenet é uma rede anônima e descentralizada peer-to-peer, que opera acima da internet convencional. Nela, não há servidores convencionais e ninguém hospeda sites. Cada pessoa na rede na verdade é um servidor, onde está armazenada parte de alguma informação.

Nós falamos com mais detalhes sobre como as redes peer-to-peer são estruturadas no artigo “Internet secreta, parte 1: que é Dark Web e por que a utilizam”.

Essencialmente, Freenet — é um grande repositório de dados no qual os usuários carregam suas informações e, em seguida, essas informações se tornam acessíveis a outras pessoas com acesso à Freenet.

Diferença entre umaredetradicional, com servidores, e umarede P2P
Ao contrário de outras redes P2P, os usuários da Freenet não controlam aquilo que está armazenado em seu repositório de dados. Ao invés disso, os arquivos são salvos ou excluídos com base em sua popularidade. Isso permite que a Freenet seja resistente à censura, já que não há uma operação “excluir arquivo”.

A rede Freenet foi lançada em 2000 e foi usada para distribuir informações censuradas em todo o mundo, incluindo China e países do Oriente Próximo.


Como a Freenet funciona

Cada nós da rede é um armazenamento local de informações, de onde os usuários obtêm dados para leitura e gravação, bem como uma tabela de roteamento dinâmica. A tabela contém endereços de outros nós e chaves especiais que, supostamente, estão armazenadas neles. Falaremos mais sobre as chaves posteriormente, e agora nos focaremos no modelo de funcionamento.

De acordo com a teoria dos criadores, a maioria dos participantes do sistema deve executar seus próprios nós, a fim de proteger a si mesmos e outros usuários contra o uso acidental de um nó externo hostil, além de aumentar a capacidade de armazenamento disponível para a rede como um todo. Para isso, as pessoas devem fornecer a largura de banda de seus computadores e uma parte do disco rígido para o funcionamento do sistema e armazenamento de alguma informação.

O modelo de funcionamento pode ser descrito da seguinte forma: as solicitações de chaves são transmitidas de nó em nó através de uma cadeia de nós proxy, onde cada nó decide para qual seguinte nó enviar a solicitação.

Dependendo do tipo de chave, os caminhos serão diferentes. Além disso, eles vão mudar ao longo do tempo para cada arquivo, a fim de permitir um download mais rápido para os participantes da rede. Esse ajuste de rota é influenciado pelos algoritmos de roteamento e pelo princípio de funcionamento da rede.

O roteamento é descrito da seguinte forma: quando um usuário se conecta à rede, ele carrega os endereços de diferentes nós a partir de um nó-semente, que é basicamente um repositório de nós. Em seguida, o usuário cria uma solicitação na rede e ela é enviada para os nós em busca de informações.

Nesse caso, a conexão entre os nós é criptografada, e a conexão de um nó para outro passa ainda por vários outros nós. Isso anonimiza o remetente da solicitação e a própria solicitação.

A interação entre os nós pode ser comparada a uma tabela hash distribuída, que é usada para procurar determinados dados do usuário.

Uma tabela hash é uma estrutura de dados especial para armazenar pares de chaves e seus valores. Essencialmente, é uma tabela. Quando você precisa obter dados dela, um valor específico é fornecido como entrada para a função, e o endereço das informações desejadas é retornado como resposta.



Existe ainda uma outra maneira de obter endereços de nós - conectando-se à rede de pessoas conhecidas. Para conectar-se a conhecidos, cada um deles deve pessoalmente informar o identificador de seu nó. Uma vez que todos trocaram identificadores e se conectaram uns aos outros, uma rede, chamada de darknet da Freenet, é formada. Na prática, essa é uma forma de basicamente criar um VPN próprio entre algumas pessoas.

Quando um usuário envia para a rede uma solicitação com uma chave, essa solicitação passa por uma cadeia de nós aleatórios até que um nó com a informação desejada seja encontrado.

A busca por informações ocorre da seguinte maneira: inicialmente, a solicitação é enviada a um nó. Se esse nó não tiver as informações necessárias, ele encaminha a solicitação para o nó mais próximo em sua tabela hash. E esse processo segue até que as informações sejam encontradas em um dos nós da rede.

Quando as informações forem encontradas, o nó as enviará ao usuário através de uma cadeia de outros nós, sendo que o nó remetente não sabe quem é o destinatário final dessas informações. Os nós de trânsito também não têm conhecimento de quantos nós estavam na cadeia antes deles, e tampouco sabem se o próximo nó é o destino final ou outro de trânsito. Esse tipo de rota ajuda a anonimizar tanto os usuários quanto as solicitações.

Uma característica da distribuição de arquivos é que quanto mais nós houver na rede e quanto mais espaço cada um deles fornecer em seu disco, mais arquivos estarão disponíveis na rede e por mais tempo serão armazenados lá. Dessa forma, com o tempo os nós desenvolvem especializações. O algoritmo Freenet funciona de tal forma que os nós entendem para qual nó é melhor ir com certas chaves. Por exemplo, se um nó não possui determinado arquivo, ele pode saber em qual nó é melhor procurar essa informação e encaminhar a solicitação diretamente para lá. Quando a resposta chegar com o arquivo, a informação passará pelo primeiro nó, que armazenará o arquivo nele mesmo. Isso significa que o nó irá reunir arquivos de um tipo específico ou, mais precisamente, de acordo com o formato da chave. Isso aumenta a probabilidade de que, no futuro, o nó seja capaz de localizar arquivos mais rapidamente com solicitações semelhantes.


Mais ou menos como funcionam as solicitação na Freenet

Para fins de representação, no esquema nós deixamos de considerar alguns parâmetros. Um deles é que, inicialmente, a solicitação é enviada a alguns nós aleatórios em busca do arquivo desejado. Esses nós, por sua vez, enviam solicitações a outros em suas tabelas hash distribuídas. Quando um nó com o arquivo necessário é encontrado, ele envia as informações ao usuário por meio de uma cadeia de nós. Vamos entender de maneira mais aprofundada.

Nós estamos no nó "Start" e precisamos de informações do nó "Data". No entanto, o nó "Start" não sabe quais nós possuem as informações necessárias e nem como chegar até eles. Portanto, o nó "Start" entra em contato com o nó mais próximo, A, e pergunta se ele possui as informações necessárias.

O nó A não possui essas informações, mas ele pode descobrir se outros nós possuem. Portanto, ele envia uma solicitação a um nó aleatório, que no nosso caso é o nó B, e basicamente pergunta ao nó B se esse possui as informações solicitadas.

O nó B responde que não possui essas informações e que também não sabe quais nós ele poderia consultar para obter os arquivos necessários. Portanto, o nó A vai para o próximo nó: C. E pergunta ao nó C se ele possui as informações solicitadas.

O nó C informa que não possui as informações, mas que ele conhece dois nós que podem ter as informações, e encaminha a solicitação para eles.

A primeira solicitação vai para o nó D, mas ele não possui os arquivos necessários e encaminha a solicitação para o outro nó que poderia ter as informações. No exemplo do esquema, o nó D envia a solicitação de volta ao nó A, que é quem inicialmente pediu ajuda na busca das informações. O nó A então responde ao nó D que ele mesmo está procurando essas informações.

Justamente para evitar que ocorra um ciclo de nós A → C → D, cada nó armazena uma lista de outros nós aos quais ele fez solicitações de busca antes. Quando um nó deseja enviar uma solicitação para outro, ele verifica primeiro em sua lista se já houve uma solicitação para aquele nó específico anteriormente.

O nó D responde ao nó C que não possui mais nós conhecidos e que já não tem onde buscar a informação. Então, o nó C envia a solicitação a outro nó que ele conhece: o "Data". O nó "Data" fornece as informações necessárias ao nó C, que as retorna ao nó A, e o nó A, por sua vez, ao nó "Start". Como resultado, o arquivo desejado foi encontrado e enviado para o nó solicitante ao longo do caminho inverso.

Em caso de solicitações bem-sucedidas, o nó retorna as informações para o nó anterior e armazena o arquivo em seu próprio armazenamento de dados. Além disso, ele cria um novo registro em sua tabela de roteamento, associando a fonte real dos dados à chave solicitada. Graças a essa tabela de roteamento, futuramente o nó poderá encaminhar solicitações semelhantes a outros nós, nos quais provavelmente as informações necessárias serão armazenadas.

Como os arquivos são distribuídos na rede Freenet

Durante o processo de upload, os arquivos são divididos em fragmentos e são armazenados e criptografados em vários outros computadores na rede. Além disso, cada bloco do arquivo fragmentado é copiado para vários computadores.

Portanto, se um dos computadores com algum fragmento cair ou desaparecer da rede, o usuário poderá obtê-lo desde outro computador.

Dessa forma os arquivos são distribuídos narede: cadanóarmazena um fragmento de alguma informação



Quando outra pessoa deseja baixar o arquivo, suas partes são detectadas e reunidas novamente. Isso é semelhante ao Torrent: a rede se conecta a pessoas aleatórias que possuem partes do arquivo desejado e faz o download. No entanto, há uma diferença: na Freenet , vários nós ajudam a encontrar o arquivo desejado simultaneamente. É formada uma cadeia, desde o nó solicitante → nó de trânsito → nós com as informações. Quando as informações necessárias são encontradas, elas são devolvidas pela mesma cadeia e armazenadas nos nós pelos quais elas passam. Quanto mais popular for o arquivo e mais pessoas tiverem fragmentos dele em seus computadores, mais rápido ele será baixado. Por outro lado, se o arquivo não despertar interesse em ninguém, com o tempo ele desaparecerá dos nós, que o substituirão por informações mais atuais. Já um arquivo oculto não será visto por ninguém até que alguém o carregue inteiro na rede outra vez.

Quais chaves são usadas na Freenet

Na rede Freenet, em vez dos URLs aos quais estamos acostumados, são usadas chaves criptográficas. Essencialmente, para carregar um site ou outra informação, é necessário fornecer a própria chave na solicitação. O papel dessa chave é desempenhado pelo código hash do arquivo ou pela chave DSA.

Hash é uma função que realiza uma operação matemática ou lógica nos dados. Como resultado, um grande conjunto de informações é transformado em uma linha de caracteres relativamente curta e serve como um identificador dos dados. Por exemplo, se duas imagens diferirem em pelo menos um pixel, seus hashes serão diferentes.

Já DSA é um algoritmo criptográfico que usa chaves privadas e públicas para criar uma assinatura digital e confirmar a autoria de um documento eletrônico. Nesse caso, a tarefa da chave privada é criar a assinatura, enquanto a chave pública é usada para verificar a assinatura recebida.

Por exemplo, na Freenet, as chaves DSA associam o criador do site ao próprio recurso. Portanto, sem essas chaves DSA, ninguém mais poderá fazer alterações na estrutura do site.

Neste artigo, não abordaremos o funcionamento das chaves DSA, por se tratar de um tópico longo e complexo.

Além disso, sem as chaves, não é possível modificar ou excluir arquivos. Na Freenet existem ao todo quatro tipos de chaves:

  • CHK — chaves hash de conteúdo;

  • SSK — chaves assinadas;

  • USK — chaves atualizáveis;

  • KSK — chaves assinadas por palavra-chave.

CHK são chaves destinadas a arquivos com conteúdo estático, como arquivos .mp3 ou documentos em PDF. Elas são hashes do conteúdo do arquivo.

CHK — ключи, которые предназначены для файлов со статическим содержимым, например, .mp3 или PDF-документов. Они представляют собой хэши содержимого файла.

Uma chave CHK típica se parece com algo mais ou menos assim:

CHK@SVbD9~[..]X5Brs,bA7qLN[..]Si6bbNQ,AAEA--8

SSK são chaves destinadas a sites que mudam ao longo do tempo, como por exemplo, um site de notícias onde notas da imprensa são publicadas. Elas funcionam de tal forma a garantir que ninguém mais consiga fazer alterações em seu site sem as chaves SSK.

Uma chave SSK típica se parece com:

SSK@GB3wuHmt[..]o-eHK35w,c63EzO7u[..]3YDduXDs,AQABAAE/mysite-4


USK é usada para ocultar versões anteriores do site e exibir apenas a versão mais recente. Funciona assim: quando você acessa o site, a chave USK verifica a lista de versões desse site e busca a mais recente, para então carregá-la.

Exemplo de USK:

USK@GB3wuHmt[..]o-eHK35w,c63EzO7u[..]3YDduXDs,AQABAAE/mysite/5/


KSK ajudam a preservar páginas na rede Freenet. Um endereço KSK se parece com:

KSK@myFile.txt

Segurança na rede Freenet

A segurança na rede Freenet é garantida por diversos métodos:

  1. Fragmentando o arquivo em várias partes e criptografando-os nos nós. Graças a isso ninguém pode remover totalmente o arquivo da rede, já que ele é armazenado em vários nós simultaneamente.

  2. Ocultando dos nós o caminho da solicitação. Cada nó conhece apenas o nó anterior e o próximo, ao qual deve repassar as informações.

  3. Usando tabelas hash e chaves privadas, sem as quais não é possível enviar uma solicitação e obter uma resposta. Portanto, hackers não podem direcionar o tráfego para si mesmos, fingindo que seu nó contém as informações desejadas. Um nó falso simplesmente não passará na verificação com a chave privada e tabela hash.

  4. Ocultando a verdadeira fonte do arquivo. Às vezes, um nó aleatório com alguma informação se autodenomina sua fonte verdadeira, o que torna difícil definir exatamente em qual dos nós da rede o arquivo foi inicialmente carregado.

A segurança da Freenet possui uma vulnerabilidade: nós-semente falsos. Afinal, nunca se pode ter certeza de que os nós aos quais um usuário se conecta não são maliciosos, e não há maneira de verificar a confiabilidade dos nós. Além disso, é praticamente impossível visualizar o conteúdo armazenado na Freenet, pois cada arquivo está oculto e pode estar fragmentado em várias partes por diferentes computadores.

Outro problema é a perda do anonimato. O problema é que os nós que frequentemente processam as mesmas solicitações podem ser armazenados na tabela hash de um usuário específico. Isso significa que, no caso de uma solicitação seguida, ela será processada de maneira mais rápida e o computador do usuário rapidamente armazenará as informações necessárias.

Portanto, se o governo ou hackers obtiverem acesso ao seu computador, fizerem uma solicitação e as informações forem rapidamente armazenadas, eles entenderão que você acessou o arquivo baixado várias vezes.

Fontes que nos ajudaram a falar sobre a Freenet