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