Freenet: A Distributed
Anonymous Information Storage
and Retrieval System
por Ian Clarke, Oskar Sandberg,
Brandon Wiley, e Theodore W. Hong
Apresentado por Walfredo Cirne
Motivação
• Computadores são hoje um meio de comunicação
• Quem controla a comunicação tem (muito) poder
• Como dividir este poder?
– Como manter comunicação democrática?
– Como garantir a liberdade de expressão?
• Leis e atuação política são a resposta clássica
para estas questões
• Mas, será que conseguimos construir um sistema
que garanta a liberdade de expressão?
Censura × Liberdade de Expressão
• Censurar é impedir alguém de comunicar
sua opinião
• Uma forma muito cruel (e efetiva) de
censura é punir o autor (ou leitor) da
opinião indesejada
• Freenet foi construido para garantir
anonimato
Objetivos do Freenet
• Anonimato para produtores e consumidores
de informação
• Negabilidade do armazenamento de
informação
• Resistência a tentativas de negar acesso a
informação
• Descentralização de toda as funções
• Armazenamento e roteamento eficiente
O Básico
• Rede Peer-to-Peer
– Você precisa conhecer o endereço de algum
peer para se juntar ao Freenet
• Peers podem publicar e consultar
informação
• Conteúdo é publicado usando um hash do
título
– Chave SHA-1 160 bit
• Conteúdo é criptografado pelo título
O Básico
• Cada peer mantém:
– conjunto de arquivos locais, i.e. (hash, conteúdo
criptografado)
– tabela de roteamento contendo (hash, peer
responsável)
• Consultas são enviadas ao peer que conhece o
hash mais próximo do hash desejado
– Consultas bem sucedidas incluem uma nova rota para
origem do conteúdo
• Consultas contém um id para evitar loops e hopsto-live para robustez
Exemplo
Detalhes sobre Consulta
• Peers intermediários fazem cache do
conteúdo que passa por eles
• Peers tem uma probabilidade de assumir a
origem do conteúdo ao roteá-lo
• Espera-se que este esquema leve a:
– Replicação de conteúdo populares
– Especialização dos peers em parte do espaço
de busca, melhorando assim o roteamento
Armazanamento
• Armazenamento começa com uma consulta
para verificar se chave já existe
• Colisão retorna erro e replica o conteúdo já
existente na rede
• Se não há colisão, o peer inseridor copia o
conteúdo para os hops-to-live peers
contactados
Gerenciando os dados
• LRU para “resolver” falta de espaço
• Assim, o Freenet não garante a
permanência eterna de conteúdo
Detalhes do protocolo
• Handshake para especificar protocolos
• Mensagens contém:
– 64-bit transaction ID
– HTL counter
– Depth counter
Pesquisa e Atualização
• Os próprios objetivos do Freenet levaram a um
design que dificulta pesquisa e atualização
• Pesquisa podia ser facilitada com arquivos
especiais de keyword, que apontariam para o
conteúdo, e que tolerariam duplicatas
• Atualização poderia ser permitida via assinatura
digital
– requer indireção e faz id do conteúdo ser chave pública
• Indices e compilações também poderiam ajudar
na pesquisa
Avaliação
• Avaliação inicial usando simulação
• 500 a 900 peers, onde cada peer:
– Armazana no máximo 40 conteúdos
– Começa com 10 conteúdos
– Tem uma tabela de roteamento com 50
endereços
• Configuração original da rede é linear
– Note que esta hipótese é pessimista
Consultas com Sucesso
Número de Hops
Segurança
• Cobertura de segurança
• DoS pode ser combatido com hash cash
Conclusões
• Freenet provê meios anonimous de
armazenar e recuperar conteúdo
• Não há como saber quantos usuários usam,
mas já houve mais de 2 milhões de
downloads
• Mais informações em
freenet.sourceforge.net
Download

Apresentação - Walfredo Cirne