Anonimato em Redes P2P
Pedro Savarese
Guilherme Nóbrega
Felipe Carregosa
• Software criado em 2000 por Ian Clarke;
• Plataforma Java;
• Somente P2P até v0.5, F2F após v0.7;
• Sensação de internet livre – anonimato e sem censura;
• Servidor proxy (dificulta rastreamento) e um disco rígido
descentralizado (dificulta ataques);
• Inexistência de uma broadcast search;
Como funciona?
• As mensagens são encriptadas e repassadas por outros nós,
dificultando o rastreamento de quem e o quê está pedindo;
• Cada usuário contribui com sua banda e um pedaço do disco
(data store);
• Small World – um nó só tem consciência dos seus vizinhos e
não da rede como um todo;
• Aumenta segurança e anonimato, desde que os seus vizinhos
sejam confiáveis;
• Idéia originada de Jon Kleinberg.
Como funciona?
• Hops-to-live limit (definido pelo usuário);
• Identificador aleatório “único”; A falha ou sucesso de uma
request é reportada de volta pela corrente ao nó que a
enviou;
• Não há privilégio de um nó em relação a outro;
Modos de Operação
• Opennet (P2P): O usuário se conecta com nós aleatórios. Os
vizinhos podem conseguir informações como que tipo de
dados o usuário possui e busca.
•
Darknet (F2F): Apenas conexões com nós conhecidos a priori
são possíveis. Oferece altos níveis de segurança e anonimato,
desde que os nós sejam confiáveis.
Armazenamento
•
Armazenamento de arquivos dividido em duas partições.
•
Short-Term Storage Cache: armazena todos os arquivos que
passam pelo nó.
•
Belonging Storage Cache: armazena dados que estejam de
acordo com a identidade do nó. Usa uma política chamada
sinkstore para centralizar os dados em nós similares.
•
Ambos são liberados aleatoriamente.
Chaves
•
CHK (Content Hash Keys): usadas para arquivos fixos.
CHK@filehash,decrypkey,cryptosettings (32kB)
•
SSK (Signed Subspace Keys): usadas para arquivos com
conteúdo alterável (freesites).
SSK@pubkeyhash,decrypkey,cryptosettings (1kB)
•
KSK (Keyword Signed Keys): usadas para sites e arquivos com
nomes. Não são seguras e são vulneráveis a spam e a
colisões.
[email protected]
Busca e Inserção
• Parâmetros de busca são encriptados por uma função hash;
• O hash é enviado para o nó do próprio usuario, determinando
a chave e o HTL;
• Request é repassada pela “routing table”;
• Nós inteligentes;
Busca e Inserção
Key +
HTL
Data Holder
Requester
Busca e Inserção
• Usuário encripta o dado e manda para si mesmo,
determinando a chave e o HTL;
• Request de inserção busca o menor caminho com um hash o
mais similar possível até expirar o HTL;
• Melhor caso x Pior caso;
• Na medida em que os nós “aprendem” sobre seus vizinhos, o
melhor caso torna-se mais frequente;
Busca e Inserção
Key +
HTL
Inserter
Não colisão -> “All-clear signal”
Envio do dado para D
Most Similar
Data Holder
Swapping
• Nós trocam de lugar quando as suas novas posições se
enquadram mais com o seu identificador. Possibilita que o
roteamento ocorra em O(log n) no caso de uma small-world
network.
Otimização

Criação da rede mundo pequeno:

Modelo de Watts-Strogatz:
Otimização


Modelo de Kleinberg:
Solução Descentralizada: Metropolis-Hastings
Ataques
•
Eavesdropping na comunicação entre 2 usuários;
•
Nós conspiradores;
•
Pitch-Black Attack (swapping forçado);
Performance
• Convergência
Performance
• Escalabilidade
Performance
• Tolerância a falhas
Perguntas
1) Diferencie a Opennet da Darknet.
Perguntas
Enquanto no modo Opennet um nó inserido na
rede já é iniciado com vizinhos aleatórios, no
modo Darknet um nó só cria conexões com
vizinhos que ele conheça e confie.
Perguntas
2) O que caracteriza uma rede Small World?
Perguntas
Uma rede Small-World é caracterizada por
poucas conexões entre nós, mas ao mesmo
tempo mantendo uma baixa distância média
entre quaisquer dois nós.
Perguntas
3) Cite as 3 principais chaves de encriptação.
Perguntas
• CHK (Content Hash Keys), KSK (Keyword
Signed Keys) e SSK (Signed Subspace Keys).
• A CHK é composta por um hash e uma chave
simétrica e é utilizada para arquivos fixos.
• A KSK é composta por um hash de uma chave
pública assimétrica e uma chave simétrica. É
utilizada para freesites.
• A SSK é composta por uma string e possui uso
geral.
Perguntas
4) Explique por que o Short Term Storage Cache
faz com que os arquivos na Freenet
permaneçam de acordo com a sua
popularidade.
Perguntas
Pois toda vez que um arquivo é requisitado por
um nó, ele é armazenado no Short Term Storage
Cache de todos os nós que repassam o dado do
nó que o possui até o requisitador. Quando um
dado passa muito tempo sem ser requisitado,
ele será substituído por outros dados mais
populares e deixará de existir na rede.
Perguntas
5) Explique em que situação é usada a
mensagem Reply.Restart entre nós.
Perguntas
Quando o nó que recebe o último salto do
pedido sabe que um vizinho direto possui o
arquivo requisitado. Ele então envia o
Reply.Restart para o nó requisitador, pedindo
que ele aumente o número de saltos.
Download

Apresentação