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
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
•
•
•
•
Atacantes
•
•
Emissor anônimo
Receptor anônimo
Emissor e Receptor sem relação
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
absolute
privacy
beyond
suspicion
probable
innocence
possible
innocence
exposed
provably
exposed
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
•
•
•
Membros da Crowd
•
•
Atacante observa completamente a comunicação.
Desprotegido quando servidor final está dentro da LAN
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;
Crowds
•
Definição do Caminho
Jondo recebe
requisição
Lança moeda
Escolhe outro
Jondo
aleatórimente
Sim
Novo jondo ?
Não
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.
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)
Análise de Segurança
•
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
•
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-acm1981.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), 155166.
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).
Download

Apresentação 5 - Departamento de Computação