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