Freenet: the free Network
Share, Chat, Browse. Anonymously. On the Free Network.
Alunos: Leandro Guadagnin, Felipe Renó
Freenet

Motivação

Censura vs. Liberdade de Expressão
A motivação principal para o desenvolvimento do
Freenet foi a troca de informações na Internet
garantindo o anonimato e, desta forma, realizar
uma comunicação sem censura.

Liberdade de expressão = Pirataria???
Freenet

O que é Freenet?
Freenet é um software gratuito p2p que permite a
publicação, replicação e recuperação de dados de
forma anônima de ambos os autores e leitores.
O Freenet foi baseado no artigo "A Distributed
Decentralised Information Storage and Retrieval
System" de Ian Clark. O projeto iniciou em
Junho/1999 e está em desenvolvimento até hoje.
Freenet
Freenet

Principais objetivos:



Sistema distribuído de armazenamento de
informações;
Anonimato para produtores e consumidores da
informação;
Resistência a tentativas de terceiros de negar
acesso a informação;

Descentralização de todas as funções da rede;

Privacidade e disponibilidade;

Armazenamento e roteamento de informações
eficiente.
Freenet

Arquitetura




Cada nó mantém disponível um repositório de
dados com permissão de leitura e escrita. Os nós
compartilham espaço livre em disco.
Cada nó mantém uma tabela de roteamento
dinâmica que contém endereços de outros nós e
chaves de arquivos que podem estar armazenados
nesses nós;
Os arquivos têm os seus nomes associados a
chaves, independente de sua localização;
Os nós fazem requisições de busca ou
armazenamento de arquivos.

Arquitetura


Não existem nós privilegiados, então não existe
hierarquia ou ponto central de falha.
Para um nó entrar na rede, basta conhecer algum
nó que já pertença à rede
Freenet

Requisição



Similar ao roteamento IP: as requisições de chaves
são passadas de nó a nó através de uma corrente
de requisições, onde cada nó realiza uma decisão
local sobre o próximo destino da requisição.
Os nós conhecem apenas os seus vizinhos. Para
um nó entrar na rede é necessário que conheça
pelo menos outro nó. Isto garante a privacidade da
rede.
As chaves dos arquivos são fornecidas através de
uma função hash: SHA-1/160 bits.

Requisição



Para prevenir correntes infinitas é utilizado o hopsto-live, semelhante ao TTL do IP.
Cada requisição recebe um identificador pseudoúnico aleatório, para que os nós possam evitar
loops rejeitando requisições que já foram vistas
antes.
Uma requisição é passada para frente (nó
posterior) até que seja satisfeita, ou até que HTL
esgote. O sucesso ou fracasso é enviado para trás
(nó anterior) pela corrente, até atingir o nó que a
originou.
Freenet
Exemplo
Freenet

Segurança



Como cada nó conhece apenas o seu antecessor e
o seu sucessor, é difícil determinar onde encontrar
determinado arquivo;
Os arquivos armazenados no computador do
usuário não podem ser modificados
maliciosamente porque são codificados;
Mensagens entre nós são protegidas porém é
possível realizar análise de tráfego e, desta forma,
determinar de onde origina a mensagem.

Segurança

Quando o arquivo é baixado, o software aplica o
algoritmo para gerar uma chave que é comparada
com a original para detectar se o arquivo foi
adulterado pela rede.
Freenet

Curiosidades

Não é possível saber quantos usuários estão
utilizando, mas já houve mais de milhões de
downloads.
Freenet

Referências






http://freenetproject.org
http://en.wikipedia.org/wiki/Freenet#Distributed_storage
_and_caching_of_data
I. Clark, ”Freenet: A Distributed Anonymous Information
Storage and Retrieval System”
http://www.cic.unb.br/docentes/pedro/trabs/p2p.html
www.lsd.ufcg.edu.br/~walfredo/cursos/2005/distsis2005
2-grad/Freenet.ppt
http://www.ic.unicamp.br/~bit/tmp/freenet.pdf
Download

Freenet: the free Network