39
CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos e Redes: Privacidade e Personalização

CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Embed Size (px)

Citation preview

Page 1: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

CROWDS

Wenceslau Elias MarcominoProf. Dr. Sergio Donizetti Zorzo

Universidade Federal de São Carlos Departamento de Computação

Tópicos em Sistemas Distribuídos e Redes: Privacidade e Personalização

Page 2: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Agenda

• Aspectos de Anonimato• Crowds• Funcionamento• Análise de Segurança• Segurança na Implementação• Riscos e Limitações• Aspectos Políticos de Uso• Tor / Anonymizer / Mix-Net / Crowd• Bibliografia

Page 3: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Aspectos de Anonimato

• [Reiter & Rubin, 1998] Consideram três aspectos em comunicações anônimas• Anonimato de Comunicação

• Emissor anônimo• Receptor anônimo• Emissor e Receptor sem relação

• Atacantes • Buscam quebrar o anonimato

• Grau de anonimato

Page 4: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Aspectos de Anonimato

• Grau de anonimato• Absolute privacy – não identifica a presença de

comunicação• Beyond suspicion – identifica presença de mensagem• Probable innocence – igualmente ser ou não o

emissor• Possible innocence – probabilidade do emissor ser

outro qualquer• Exposed – probabilidade de quem é o emissor• Provably Exposed – identifica e prova o emissor

absoluteprivacy

beyondsuspicion

probableinnocence

possibleinnocence

exposed provablyexposed

Page 5: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Crowds

• Crowds – Multidão• Coleção dinâmica de usuários que trabalham de

forma cooperativa para auxiliar cada um dos seus membros a se manter anônimo

• Cada usuário no sistema é identificado por um “Jondo” (John Doe)

• Mensagem viaja por um conjunto de usuários até atingir o servidor final

Page 6: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Crowds

• Ataques considerados• Escuta local

• Atacante observa completamente a comunicação.• Desprotegido quando servidor final está dentro da LAN

• Membros da Crowd• Membros que não obedecem ao protocolo

• Servidor final• Servidor para a qual a comunicação está direcionada• Não pode conhecer a comunicação estre os membros

Page 7: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Crowds

• Ataques não atendidos• Denial-of-service

• O membro não retransmite a mensagem e interrompe a comunicação. São identificáveis, não oferecem risco ao sistema e o membro é eliminado da lista do emissor.

• Comportamento• Falha • Abandono

• Alteração de informação• O membro recebe a mensagem de outros membros ou do

servidor final e altera seu conteúdo. O anonimato não é quebrado. Difícil detecção.

Page 8: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Crowds - Composição

• Jondo – membro da crowd• Representa o usuário na crowd;• Executado localmente na maquina do usuário;• Configurado no browser como web proxy;• Passando a controlar a comunicação HTTP;

Page 9: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Crowds - Composição

• Blender – administrador da crowd• Concede liberação para novos membros;• Concentra a lista dos membros;• Fornece chaves para a comunicação entre os membros;• Por medida de segurança pode ser replicado;• Não participa como membro da crowd;• Seu comprometimento não leva ao colapso da rede;

Page 10: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Crowds

• Lista de Membros• Todo jondo possuí uma lista de membros;• No aceite da participação do jondo na crowd, o

blender envia ao jondo a lista de membros;• Tal lista pode ser atualizada mediante aviso do

blender;• A medida que o jondo verifica a não existência de um

outro membro este é eliminado da lista;• Com isso as litas dos jondos podem diferir entre si;

Page 11: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Crowds

• Funcionamento 1/3• O usuário inicia o jondo localmente;• Jondo solicita admissão ao blender na crowd;• O jondo ao ser aceito recebe

• A atual sociedade da crowd;• Uma lista dos membros da crowd;• Conjunto de chaves comuns;

• Aguarda liberação do blender para iniciar sua participação na crowd;

• Uma vez admitido o usuário informa nas configurações de proxy de seu web browser o nro. ip e a porta onde o jondo está funcionando;

Page 12: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Crowds

• Funcionamento 2/3• Requisições subsequentes do usuário são

encaminhadas ao jondo;• Para cada requisição o jondo escolhe de forma

randômica um outro membro e encaminha a mensagem. O próprio membro iniciador pode ser selecionado aleatoriamente e receber a mensagem;

• Cada membro ao receber a mensagem define aleatoriamente se a mensagem será encaminhada a outro jondo ou ao servidor final;

• Se a mensagem tiver que ser enviada a outro jondo, o sistema sorteia aleatoriamente um jondo para o envio da mensagem;

Page 13: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Crowds

• Funcionamento 3/3• A comunicação entre dois membros é encriptada

usando uma chave conhecida somente entre eles;• O jondo que encaminhar a mensagem ao servidor

final aguarda pela resposta e a retransmite;• O caminho formado no envio da mensagem é o

mesmo utilizado para o retorno;• O caminho permanece estático para futuras

requisições do mesmo emissor;• Eventualmente os caminhos são recriados;

Page 14: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Novo jondo ?

Crowds

• Definição do Caminho

Jondo receberequisição

Lança moeda

Escolhe outroJondo

aleatórimente

Envia requisição

servidor final

Seleciona-se jondos até a mensagem ser enviada ao servidor final.O retorno é feito pelo mesmo caminho de forma inversa.O caminho é gravado e reutilizado para novas requisições do iniciador.Comunicação encriptada com chave única entre os jondos.

Sim Não

Page 15: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Crowds

• Definição do Caminho• Jondos são selecionados aleatoriamente até a

mensagem ser enviada ao servidor final;• O lançamento da moeda é tendencioso ao envio da

requisição ao servidor final. pf > ½• Probabilidade de forward (pf) é um parâmetro definido

no sistema;

Page 16: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Crowds

• Impactos da probabilidade de forward• Tamanho do caminho.

• pf -> 1 = caminho pequeno

• pf -> ½ = caminho longo

• Propriedades de anonimato oferecidas pelo sistema• pf -> 1 = aumenta o número de membros em

colaboração suportado

• pf -> ½ = diminui o número de membros em colaboração suportado

Page 17: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

(1) client,request receive_request()(2) if (client = browser)(3) sanitize(request) /* strip cookies and identifying headers */(4) if (my_path_id = _|_) /* if my path id is not initialized ... */(5) my_path_id new_path_id()(6) next[my_path_id] R Jondos(7) forward_request(my_path_id)(8) else /* client is a jondo */(9) path_id remove_path_id(request) /* remove “incoming" path id */(10) if (translate[path_id] = _|_) /* “incoming" path id is new */(11) coin coin_flip(pf ) /* tails with probability pf */(12) if (coin = heads)(13) translate[path_id] ‘submit'(14) else(15) translate[path_id] new_path_id() /* set “outgoing" path id */(16) next[translate[path_id]] R Jondos /* select next jondo at random */(17) if (translate[path_id] = ‘submit')(18) submit_request()(19) else(20) forward_request(translate[path_id])

(21) subroutine forward_request(out_path_id)(22) send out_path_id || request to next[out_path_id](23) reply await_reply() /* wait for reply or recognizable jondo failure */(24) if (reply = ‘jondo failed') /* jondo failed */(25) Jondos Jondos \ {next[out_path_id]} /* remove the jondo */(26) next[out_path_id] R Jondos /* assign a new random jondo for this path */(27) forward_request(out_path_id) /* try again */(28) else /* received reply from jondo */(29) send reply to client

(30) subroutine submit_request ()(31) send request to destination(request) /* send to destination web server */(32) reply await reply(timeout) /* wait for reply, timeout, or server failure */(33) send reply to client /* send reply or error message to client */

Page 18: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Crowds

Exemplo de Caminhos

1 -> 5 -> Server(1)

2 -> 6 -> 2 -> Server(2)

3 -> 1 -> 6 -> Server(3)

4 -> 4 -> Server(4)

5 -> 4 -> 6 -> Server(5)

6 -> 3 -> Server(6)

Page 19: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

• Escuta Local• O emissor está exposto ao atacante;• O atacante observa o envio da mensagem(cifrada);• Não é capaz de determinar o receptor;• A probabilidade do iniciador enviar a mensagem ao

servidor final é de 1/n (nro. elementos na crowd quando o caminho foi criado);

P(beyond syspicion) -> 1 n ->

Análise de Segurança

Page 20: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Análise de Segurança

• Servidor Final• O anonimato do servidor é impossível;• O anonimato do emissor é forte;• Tanto o servidor final quanto membros da crowd tem

igual probabilidade de receber a mensagem do iniciador;

• Desta maneira crowd garante beyond suspicion ao iniciador;

• O aumento de membros na crowd não oferece segurança adicional de anonimato do ponto de vista do servidor final;

Page 21: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Análise de Segurança

• Membros em Colaboração• Membros corrompidos infiltrados na crowd;• Todo conteúdo da mensagem pode ser analisada;• Objetiva identificar o iniciador da mensagem;• Todos os membros não colaborantes possuem igual

probabilidade de ser o iniciador. Porém o predecessor de um colaborante possuí uma chance maior de ser o iniciador;

Page 22: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Análise de Segurança

• Ataques de tempo• Resultado da estrutura HTML;• URL's contidas em web pages são requisitadas;• Ataques de tempo pelos jondos em colaboração;• Aguarda o pedido da URL e verifica o tempo;• Solução

• O iniciador não requisita URL's o jondo final se encarrega de verificar as URL's requisitá-las e transmiti-las;

Page 23: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Análise de Segurança

• Caminhos dinâmicos x estáticos • Dinâmicos

• Balanceamento de carga entre os membros;• Caminhos dinâmicos diminuem segurança ( ligação de

caminhos distintos com mesmo conteúdo )

• Estáticos• Oferece segurança de anonimato• Caminhos são alterados com frequência

• Falhas são detectadas no caminho;• Novos jondos se juntam a crowd; Se os caminhos permanecerem

estáticos o novo caminho criado pode ser associado ao novo membro; join commits

Page 24: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Propriedades de Anonimato

Page 25: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Segurança na Implementação

• Novos membros não podem ser acrescentados de forma arbitrária;• Permite a criação de grande número de jondos

colaboradores;

• Definição de novos caminhos;

• Join-commit, parâmetro configurável; Eventualmente o blender envia esta mensagem aos seu membros• Membros eliminam caminhos antigos;

• Permite a entrada de novos membros;

Page 26: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Segurança na Implementação

• Controlar a quantidade de membros na crowd;• Criação de crowd com pequena quantidade de

membros conhecidos e dispostos a participar da crowd;

• Crowd pública. Fazer a identificação individual de cada membro através de uma conta junto ao blender; E cada conta poderá ter apenas um jondo participante na crowd (ip); Atacantes deverão ter diferentes identidades junto ao blender e sendo executados em locais distintos;

Page 27: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Riscos e Limitações

• Qualquer membro pode enviar a mensagem ao servidor final que por sua vez pode armazenar o IP do jondo como o iniciador;

• Crowds não oferecem proteção ao conteúdo da mensagem. Algumas comunicações expõe dados do usuário. Deve-se desabilitar o jondo para realizar tais comunicações.

• Usuário pode baixar e executar programas que conectam diretamente a outros servidores. Não passam pelo jondo e expõe o usuário. Ex: Applet e ActiveX; Recomenda-se desabilitar estas opções no browser;

Page 28: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Riscos e Limitações

• Códigos Javascript oferecem abertura para ataques de tempo;

• SSL; Último jondo deve manter a conexão SSL com o servidor;

• Crowds elevam modestamente o tráfego de dados na rede; O desempenho está relacionado com a quantidade de imagens no conteúdo das mensagens;

• Jondo é executado na máquina do cliente consumindo recursos;

Page 29: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Riscos e Limitações

• Firewalls • Jondos são identificados pelo ip e porta;

• Firewalls limitam o número de portas que podem receber conexões; A principio não permitirão a comunicação de jondos;

• Caso permita a saída, um jondo externo pode tentar conectar novamente com seu predecessor e caso a conexão falhe, conclui-se que o iniciador da mensagem deve pertencer a este domínio;

• Crowd rodando atrás de firewall não possuem o mesmo grau de anonimidade que os que não usam;

Page 30: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Aspectos Políticos no Uso

• Com anonymizer, servidores de e-commerce passam a recusar as requisições destes clientes;

• Devido a não identificação do iniciador, crowds possuí restrições com servidores de aplicações de e-commerce; Clientes utilizam de números de cartões de crédito roubados; Não identificação do IP de origem;

• Companhias proíbem o uso de Crowds, pois desejam e tem o direito de monitorar o acesso de seus funcionários;

Page 31: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

TOR

● Tor é um conjunto de ferramentas para um amplo grupo de organizações e particulares que desejam aumentar a sua segurança na Internet. Usar Tor pode ajudar a tornar anónima a navegação e publicação na Web, instant messaging, IRC, SSH, e outras aplicações que usem o protocolo TCP. Tor também disponibiliza uma plataforma para os programadores de software, criarem novas aplicações com funções de anonimato, segurança e privacidade já incorporadas

● http://tor.eff.org/index.html.pt

Page 32: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

TOR

Page 33: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

TOR

Page 34: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

TOR

Page 35: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Anonymizer

• Anonymizer• Web site com proxy para requisições WEB;

• A requisição do usuário passa pelo proxy;

• O proxy faz a requisição ao servidor final e repassa ao requisitante;

• Proteção contra o servidor final que não identifica o emissor;

Page 36: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Crowds - Anonymizer

• Considerações• Anonymizer

• Único ponto onde um ataque ou uma falha compromete todos os usuários;

• Anonymizer tem acesso a toda comunicação do usuário; Sistema deve ser confiável, não divulgar/utilizar a informação;

• Crowds• Crowds possuí diversos pontos para o encaminhamento

das requisições; Atacante deve monitorar todas comunicações entre todos os jondos ou a maquina de determinado usuário;

Page 37: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Crowds – Mix-Net

• Considerações• Mix-Net

• Coleção de servidores dedicados;• Encripta a mensagem em cada nó;• Envio desordenado da mensagem;• Não indicado para aplicações de tempo-real;

• Crowds• Melhor adaptação em comunicações síncronas ( Web

transactions );• Membros dinâmicos;

Page 38: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Referências

• Chaum, D., "Untraceable Electronic Mail, Return Addresses, and Digital Pseudonyms", Communications of the ACM, 24 (2). 1981, pp. 84-88, http://world.std.com/~franl/crypto/chaum-acm-1981.html

• Denning, D. et.al. To tap or not to tap. Commun ACM 36, 3 (Mar. 1993), 24-44.

• Diffie, W., and Landau, S. Privacy on the Line: The Politics of Wiretapping and Encryption. MIT Pres, Cambridge, Mass., 1998.

• Droms, R. Dynamic Host Configuration Protocol. RFC-1541, Oct. 27, 1993.

• Gabber, E., Gibbons, P., Matias, Y., and Mayer, A. How to make personalized Web browsing simple, secure, and anonymous. In Proceedings of Financial Cryptography '97 (1997).

Page 39: CROWDS Wenceslau Elias Marcomino Prof. Dr. Sergio Donizetti Zorzo Universidade Federal de São Carlos Departamento de Computação Tópicos em Sistemas Distribuídos

Referências

• Garfinkel, S. and Spafford, G. Web Security and Commerce. O'Reilly, 1997.

• Reiter, M.K., Anupam, V., and Mayer, A. Detecting hit-shaving in click-through payment schemes. In Proceedings of the 3rd USENIX Workshop on Eletronic Commerce. (Aug. 1998), 155-166.

• Reiter , M., Rubin, A., "Anonymous Web Transactions with Crowds", Communications of the ACM, Vol.42, No.2, February 1999, pp. 32-38.

• Syverson, D., Goldschlag, M., and Reed, M.G. Anonymous connections and onion routing. In Proceedings of the 1997 IEEE Symposium on Security and Privacy. (May 1997).