crowds wenceslau elias marcomino prof. dr. sergio donizetti zorzo universidade federal de são...

Post on 18-Apr-2015

104 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

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

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

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

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

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.

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;

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;

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;

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;

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;

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;

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

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;

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

(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 */

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)

• 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

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;

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;

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;

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

Propriedades de Anonimato

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;

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;

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;

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;

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;

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;

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

TOR

TOR

TOR

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;

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;

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;

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).

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).

top related