1. Segurança em Sistemas de Computação
Redes Peer-to-Peer (P2P)
Jean Pimentel
Rafael Lima
2. Introdução
● O que é P2P?
● Sistemas Distribuídos.
● Descentralização.
3. Contexto
● Estimativas para Dezembro/2010
● População mundial: 6,76 bilhões
● Usuários: 1,802 bilhões
– Fonte: internetworldstats.com
● Servidores centralizados podem ser gargalos.
● P2P é fundamental para acompanhar o ritmo.
4. Princípios
● Auto-organização
● Compartilhamento de recursos
● Nós participantes:
● possuem o mesmo nível de importância
● diretamente conectados uns aos outros
● atuam como cliente e servidor.
5. História
● O conceito é antigo.
● USENETS
– UUCP: Unix-to-Unix Protocol
● (RFC 976, 1986 – RFC 1137, 1989)
– NNTP: Network News Transfer Protocol
● (RFC 997, 1986 – RFC 3977, 2006)
● DNS
– (RFC 920, 1984 – ....)
6. Arquiteturas
● Até que surgiu o NAPSTER:
● Compartilhamento de Arquivos
● Junho de 1999
● Tornou o termo P2P conhecido.
● Nó se conecta a rede e envia para um servidor central (Farm)
o seu índice de MP3s.
● Nós requisitam ao Farm determinado arquivo.
● Farm retorna uma lista de nós que o possuem.
● Nó requisitante se conecta diretamente para transferência.
7. Arquiteturas
● NAPSTER
● Ponto Forte:
– Busca rápida e eficiente.
● Ponto Fraco:
– Farm é ponto de falha e de alto custo de manutenção.
8. Arquiteturas
● Então veio a Gnutella:
● Março de 2000
● Verdadeira rede P2P
– Não há servidor central.
● Nó (A) deve conhecer no mínimo um nó (B) conectado à rede.
● A conecta-se a B, que retorna uma lista de outros nós ativos.
● A repete o processo até atingir n conexões.
● A requisita arquivo aos seus nós, que propagam a requisição.
● Com o retorno, A se conecta diretamente para transferência.
● Ao sair, A salva suas conexões ativas para o regresso.
9. Arquiteturas
● Gnutella
● Ponto Forte:
– Totalmente distribuída, elimina pontos de falha.
– Protocolo aberto.
● Ponto Fraco:
– Busca ineficiente, mensagens duplicadas na rede, nós
inalcançáveis.
10. Arquiteturas
● KaZaA:
● Março de 2001
● Combina o melhor do NAPSTER e Gnutella.
● Organização hierárquica com super nós.
● Nó deve conhecer um super nó da rede.
● Nó requisita arquivo ao super nó, que busca em seus
filhos e propaga a requisição à outros super nós.
● Com o retorno, o nó se conecta diretamente para
transferência.
11. Arquiteturas
● KaZaA
● Ponto Forte:
– Totalmente distribuída, elimina pontos de falha.
– Busca melhor e mais rápida.
● Ponto Fraco:
– Busca ainda assim não cobre todos os nós.
– Cria-se pontos de ataque (super nós).
12. Arquiteturas
● Enfrentaram problemas de copyright.
● Os proprietários responsabilizavam os serviços e
não os usuários. (É mais fácil? Os serviços têm
culpa?)
● Usuários buscam a anonimidade.
● Ideia de rotear o tráfego por nós intermediários
– Não é eficiente. Lento e com muita sobrecarga.
13. Arquiteturas
● BitTorrent
● 2001
● Nova abordagem para compartilhamento
● Objetivo: replicar rapidamente um arquivo na rede.
● “Distribuidor de Conteúdo” ao invés de
“Compartilhador de Arquivos”
● Arquivos são divididos em partes (64kb à 4Mb) e
que independem da ordem de transferência.
14. Arquiteturas
● BitTorrent
● Protocolo não indexa arquivos, isentando-o de
responsabilidades judiciais com conteúdo ilegal.
● Usuário deve buscar um “torrent” em algum lugar.
– Torrent: arquivo de metadados: nome, tamanho, hash e endereço do
tracker.
● Nó se conecta com tracker, obtendo a lista de nós que
possuem partes do arquivo.
– Trackers são servidores que auxiliam a conexão inicial entre os nós.
● Nós se conectam diretamente para transferência de arquivos,
priorizando partes mais raras na rede.
● Política Tit-for-Tat: prioriza nós que contribuem mais.
15. Arquiteturas
● BitTorrent
● Ponto Forte:
– Alta distribuição de conteúdo.
– Força a contribuição.
● Ponto Fraco:
– Para arquivos grandes.
17. Desafios de Segurança
● Direitos autorais (?)
● Vírus, malwares, spywares
● Anonimidade
● Controle de Acesso
● Negação de Serviço
● Integridade e Autenticação dos Dados
● Pontuações dos Usuários
● Consumo de Tráfego