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.