Um Estudo sobre Plataformas de Anonimato

Propaganda
Um Estudo sobre Plataformas de Anonimato
Ricardo Marx Costa Soares de Jesus, Augusto Jun Devegili
Curso de Sistemas de Informação – Centro Universitário Luterano de Palmas (CEULP)
Palmas, TO, Brasil
{rmarx, devegili}@ulbra-to.br
Resumo. Plataformas de anonimato provêm uma comunicação sem que se revele a real
identidade das partes que se comunicam. Este artigo procura estudar e mostrar o
funcionamento de quatro plataformas de anonimato, a saber: Redes de Misturadores de
Chaum, Roteamento de Cebolas, Web MIXes e Crowds. O estudo objetiva fornecer um
panorama geral do que existe em termos plataformas de anonimato, bem como suas
características e funcionalidades.
1 Introdução
O surgimento da Internet trouxe consigo várias facilidades, e entre elas, estão as aplicações
Web, como webmail e a própria navegação na Internet. As aplicações Web são baseadas na
arquitetura Internet e, portanto, utilizam o protocolo IP para a realização da comunicação.
Entre os campos que existem no cabeçalho de um pacote IP, estão os endereços do
remetente e do destinatário do datagrama. Com estas informações, é possível fazer o
rastreamento da comunicação de uma aplicação Web e revelar conteúdo, origem e destino de
uma mensagem, resultando em violação de privacidade e anonimato. Privacidade e anonimato
não são caracterizados somente pela ocultação de conteúdos de mensagens. Além disso, não
deve ser possível saber quem gerou uma mensagem e nem a quem esta é digida.
Uma forma de se obter a privacidade na Web é utilizando uma plataforma de
anonimato, que provê a comunicação na Internet sem revelar a identidade das partes
envolvidas na comunicação, bem como o seu conteúdo. O anonimato existe para que não seja
possível relacionar uma ação ou informação à sua fonte geradora como, por exemplo, quais
páginas Web um determinado usuário visita na Internet.
A revelação do conteúdo ou da origem e destino de uma mensagem pode
comprometer um indivíduo em algum aspecto, seja este pessoal, profissional ou social. E
como pode ser feito com ligações telefônicas, por exemplo, informações enviadas e recebidas
por aplicações Web podem ser interceptadas e utilizadas para fins duvidosos ou criminosos,
como chantagem e extorsão. Além da revelação do conteúdo e das partes envolvidas na
comunicação, a interceptação pode resultar ainda na identificação dos perfis de tais partes.
Assim, a interceptação pode resultar não só em danos materiais, como roubo de número de
cartão de crédito, mas pode também arruinar reputações e provocar perdas de credibilidade,
que não são facilmente recuperáveis.
A utilização de plataformas de anonimato pode ser vista como um instrumento de
manifestação de liberdade de expressão, caracterizando uma das bases da sociedade da
informação. Em alguns países, o uso de comunicações anônimas é considerado um direito
constitucional [Berthold, Federrath & Köpsell 2001]. Um exemplo que pode ser citado como
desejável utilização de conexões anônimas é a realização de votações digitais ou orientação
psicológica. Por outro lado, se uma plataforma de anonimato é utilizada para fins ilícitos, como
ataques digitais, terrorismo ou contrabando, os responsáveis por tais crimes podem não ser
identificados, resultando em impunidade.
Assim, do ponto de vista do usuário, não utilizar conexões anônimas pode ser
arriscado pela possibilidade deste estar sendo espionado digitalmente. Já na visão de um
governante, a existência de pessoas utilizando-se de comunicações anônimas pode oferecer
risco ao bem estar político e social de uma nação, pois não se sabe o real propósito ou o fim
para o qual a plataforma de anonimato está sendo utilizada.
2 Redes de Misturadores
Em [Chaum, 1981], é proposto o sistema de e-mail não rastreável, o qual permite o envio de
emails mantendo anônima a identidade do remetente. Esta proposta consiste na utilização de
um misturador (mix), o qual faz o intermédio entre o remetente e o destinatário de uma
mensagem.
Quando um usuário deseja enviar uma mensagem, esta é encriptada com as chaves
públicas do destinatário e do misturador que irá encaminhá-la. Tendo realizado isso, a
mensagem é então enviada ao misturador, o qual decripta-a com sua chave privada e gera
como resultado a mensagem encriptada com a chave pública do destinatário. Feito isso, o
misturador então realiza a permutação de forma a não mais relacionar a mensagem à sua
origem. Logo após, é feito o encaminhamento da mensagem ao destinatário. Recebendo-a do
misturador, o destinatário decripta a mensagem e consegue ler o seu conteúdo. Na figura 1, é
exibido um exemplo de misturador.
entrada
saída
Figura 1. Um exemplo de misturador
Uma forma de tornar o processo mais robusto é a utilização de uma cascata ou rede
de misturadores (mix net) [Chaum, 1981]. Da mesma forma que no processo normal, em
uma rede de misturadores a mensagem é encriptada com a chave pública do destinatário. A
mudança é que a mensagem é sucessivamente encriptada com as chave públicas dos
misturadores que compõem a cascata à qual se deseja submeter a mensagem. Portanto, o
número de encriptações deve ser igual à quantidade de misturadores. Sendo então submetida
à cascata, cada misturador faz a decriptação com sua chave privada, permuta e encaminha a
mensagem para o próximo misturador. A saída final é a mensagem encriptada com a chave
pública do destinatário. O encaminhamento da mensagem ao destinatário é feito pelo último
misturador. A decriptação da mensagem pelo destinatário é feita da mesma forma. Na figura
2, é ilustrado um exemplo de rede de misturadores composta de três misturadores.
Quando um usuário envia uma mensagem para outro utilizando o sistema de e-mail
anônimo, para que o receptor da mensagem consiga responder ao remetente, é necessário
utilizar endereços de retorno. Endereços de retorno permitem a um destinatário enviar uma
resposta ao remetente de uma mensagem anônima de forma que a identidade deste último seja
ainda mantida em segredo.
Embora a proposta seja para sistemas de e-mail não rastreável, as redes de
misturadores podem ser utilizadas para aplicações de propósito geral que exijam e
desvinculação entre uma informação e a sua fonte geradora. Ainda em [Chaum, 1981], é
apresentada a definição de pseudônimo digital, que é uma chave pública que serve para
verificar assinaturas feitas pelo proprietário anônimo da chave privada correspondente. Desta
forma, a validação dessas assinaturas é feita considerando-se o pseudônimo, e não o
proprietário em si.
EKUm1(EKUm2(EKUm3(EKUdest(M))))
misturador1
EKUm2(EKUm3(EKUdest(M)))
misturador2
EKUm3(EKUdest(M))
misturador3
EKUdest(M)
Figura 2. Rede de Misturades com três misturadores
3 Roteamento de Cebolas
O Roteamento de Cebolas é uma infra-estrutura de anonimato baseada em redes de
misturadores. No Roteamento de Cebolas, o conceito de misturador (mix) foi substituído por
roteador. O processamento de uma requisição no Roteamento de Cebolas é feito em três
fases: configuração da conexão, transmissão de dados e encerramento da conexão
[Goldschlag, Reed & Syverson 1999].
O processo inicia quando um remetente (iniciador) deseja enviar uma mensagem a um
destinatário. É neste ponto que é feita a configuração da conexão. O iniciador elabora a rota
por onde os dados a serem enviados irão passar; para tanto, ele deve conhecer a chave
pública de cada roteador. O iniciador começa então a construir uma estrutura recursiva
(“cebola”) contendo informações de controle que serão utilizadas por cada roteador. A
figura 3 mostra uma cebola preparada para três roteadores.
A cebola é dividida em camadas. Cada camada é o resultado da encriptação das
informações de controle dirigidas a cada roteador. Ao ser enviada à rede de roteadores, a
cebola então tem sua camada (“casca”) mais externa retirada pelo roteador que a recebeu.
Para que a cebola sempre se mantenha com um tamanho fixo, a camada que é removida por
cada roteador é preenchida de forma a manter o tamanho da cebola constante. Fazendo isso,
a cebola então é encaminhada ao próximo roteador (cada camada inclui o endereço do
roteador responsável por ela). Um exemplo de descascamento de cebola é exibido na
figura 4.
informação de controle criptográfico
dados
(destinatário)
Figura 3. Cebola preparada para três roteadores
roteador1
roteador2
roteador3
Figura 4. Cebola preparada para três roteadores
4 Web MIXes
Web MIXes são baseadas em redes de misturadores e têm por objetivo obter anonimato e
não observação em acessos à Internet. O sistema é composto por três partes: JAP (Java
Anon Proxy), que é executado na estação do usuário, uma rede de misturadores e um cacheproxy, que ficam do lado do servidor [Berthold, Federrath & Köpsell 2001]. As requisições
anônimas são feitas através do JAP, que as encaminha ao primeiro misturador. Chegando a
este misturador, a requisição está então na rede de misturadores. A rede faz o seu
processamento e, saindo da rede, a requisição é então repassada ao cache-proxy, que a
encaminha ao servidor Web de destino. A resposta do servidor faz o mesmo trajeto da
requisição, só que no sentido inverso. A arquitetura das Web MIXes é mostrada na figura 5.
Figura 5. Funcionamento das Web MIXes
O JAP é um software instalado nas máquinas dos usuários que se conecta ao primeiro
misturador e lhe encaminha as requisições de conexões anônimas. Portanto, todas as
requisições de conexões anônimas passam pelo JAP. As funcionalidades do JAP são:
?? registro de usuários nos misturadores;
?? configuração periódica de canais de comunicação;
?? envio e recebimento de dados por canais de comunicação. Se o usuário não estiver
enviando dados, mensagens aleatórias são enviadas automaticamente;
?? espera de requisições vindas do navegador e dos programas do usuário que desejam
se comunicar de forma anônima;
?? filtragem de conteúdos que podem ser perigosos para o anonimato, tais como
JavaScript, ActiveX e outros objetos embutidos;
?? transformação de dados para o formato do misturador e seu envio por um canal
anônimo;
?? recebimento de dados vindos do canal ativo do misturador e seu encaminhamento à
aplicação de origem;
?? utilização periódica de um serviço que informa ao usuário o seu nível atual de
anonimato.
O tipo de misturador utilizado é o mesmo idealizado em [Chaum, 1981], tendo como
objetivo desvincular dados e requisições entre a sua fonte geradora e a entidade receptora.
Para isso, são feitas permutações nos fluxos dados e mudanças de codificação em seus
conteúdos utilizando criptografia. Os misturadores estão dispostos sob a forma de cascata e o
último misturador envia dados ao cache-proxy, e não diretamente ao seu destino, ao
contrário da proposta original de Chaum.
O cache-proxy faz encaminhamentos das requisições aos servidores e recebe as suas
respostas. Estas respostas são enviadas de volta às aplicações do usuário através dos
misturadores, só que no caminho contrário ao percorrido pela requisição. Uma vez que uma
conexão anônima é estabelecida, a comunicação está limitada à transmissão de um certo
número de bytes. Esgotando-se esse número, a conexão é encerrada. Se mais dados
necessitam ser transmitidos, novas conexões devem ser estabelecidas. Uma funcionalidade
proposta inicialmente em [Reiter & Rubin 1998] é a procura de objetos embutidos em
páginas HTML, tais como apontadores para imagens.
Tanto o JAP quanto o cache-proxy realizam esta busca. Se o cache-proxy encontra
um objeto embutido na resposta de um servidor Web, ele automaticamente faz a requisição
desse objeto e encaminha-o ao JAP via misturador. Como o cache-proxy já faz a busca e a
requisição, o JAP não faz novas requisições quando recebe a página que possui objetos
embutidos.
Quando JAP encontra estes objetos, ele já fica à espera dos mesmos, pois já foram
requisitados pelo cache-proxy. Uma funcionalidade tradicional do cache-proxy é, de fato,
fazer o armazenamento de páginas que são requisitadas, diminuindo assim a quantidade de
requisições enviadas à Internet.
O usuário utiliza o serviço anônimo das Web MIXes mediante fatias de tempo
fornecidas pelos misturadores. Essas permissões são emitidas sob a forma de bilhetes
(tickets). A obtenção desses bilhetes deve ser feita junto a cada misturador. Os passos que
são realizados quando um usuário deseja fazer um acesso anônimo à Internet são descritos a
seguir.
1. Uma conexão é estabelecida com um misturador. Esta conexão deve garantir
confidencialiade e integridade e autentica tanto o misturador quanto o usuário
(possível uso de SSL). O usuário possui um certificado que autentica-o no misturador.
Através deste certificado, o misturador verifica se já não existe uma outra conexão
para o usuário. Caso exista, o usuário é impossibilitado de obter mais de um bilhete
reconectando-se ao misturador, evitando assim ataques por inundação. A autoridade
certificadora (que é independente) garante que cada usuário obtenha um e somente
um certificado ou que deve ser verificável se um mesmo usuário possui mais de um
certificado.
2.
O JAP envia uma mensagem ocultada ao misturador, a qual ele deve assinar. A
mensagem consiste em uma chave para um cifrador simétrico e alguns bits formando
uma redundância.
3.
O misturador assina a mensagem usando uma chave especial, a qual é somente válida
por um certo intervalo de tempo.
4.
O JAP remove a ocultação da mensagem e verifica a assinatura. A partir deste
momento, ele possui um bilhete válido, o qual não é relacionado ao usuário.
5.
O JAP repete todos os passos anteriores para cada misturador.
6.
O JAP gera uma mensagem. Na hipótese de que existam misturadores, o JAP
concatena o bilhete que ele obteve do misturador com os dados que ele quer
transmitir. O resultado dessa concatenação forma a mensagem que é por ele
encriptada com a chave pública do misturador . A encriptação é feita somente com a
primeira parte da mensagem. Para o resto da mensagem, é utilizada a chave simétrica
incluída no bilhete. A seguir, ele concatena o bilhete emitido pelo misturador com a
mensagem gerada para o misturador . Ele encripta a mensagem da mesma forma
utilizando a chave pública do misturador e assim por diante até que ele encripte o
bilhete emitido pelo primeiro misturador.
7.
O JAP envia a mensagem gerada no passo anterior através da rede de misturadores.
Um serviço auxiliar que existe nas Web MIXes é o Info-service (serviço de
informação). O serviço de informação fornece dados para manutenção e operação das
conexões anônimas. Os dados fornecidos são: endereços e chaves públicas de misturadores,
informações sobre a situação do tráfego da rede e disponibilidade dos misturadores.
5 Crowds
O projeto Crowds (multidões) [Reiter & Rubin 1998] é uma plataforma de anonimato que se
baseia na utilização de um conjunto de proxies (jondos) para fazer o intermédio entre
navegador e servidor Web. Este conjunto de jondos é chamado de multidão. O blender1 é
quem gerencia a junção e disjunção de jondos na multidão. Quando um jondo é iniciado, ele
então contacta o blender e faz um pedido de junção. Se o pedido é aceito, o blender então
retorna ao jondo uma lista contendo os jondos ativos naquele momento.
Na primeira requisição do navegador do usuário, o jondo cria um caminho aleatório
de jondos, os quais serão utilizados para fazer o envio de requisições e recebimento de
respostas junto ao servidor Web. Na verdade, o que o jondo faz é escolher um jondo da
multidão (possivelmente ele mesmo) de forma aleatória e encaminha a requisição a este último.
Quando este jondo recebe a requisição, ele lança uma “moeda viciada” para determinar se
será feito ou não o encaminhamento da requisição para outro jondo. Se o resultado dado pela
moeda é de encaminhamento, então um jondo da multidão é escolhido de forma aleatória e a
requisição é encaminhada para o mesmo. Do contrário, o jondo envia a requisição ao
servidor Web ao qual se destina tal requisição. As demais requisições feitas ao jondo seguirão
o mesmo trajeto que a primeira, podendo diferenciar-se somente quanto ao servidor de
destino. As respostas do servidor também são transmitidas pelo mesmo caminho das
requisições, só que no sentido contrário. Um exemplo de situação do Crowds pode ser visto
na figura 6.
Uma funcionalidade que um jondo possui é a de buscar objetos embutidos dentro de
páginas HTML, tais como apontadores para figuras. Quando um jondo recebe a requisição
de uma página HTML, ele verifica se existem objetos embutidos. Se ele é o último jondo, ou
seja, o jondo que vai encaminhar a requisição ao servidor Web, então ele já faz as requisições
desses objetos junto ao servidor Web. Quando os objetos são recebidos por esse jondo, ele
faz o encaminhamento dos mesmos à origem da requisição. Se o primeiro jondo (o que faz o
primeiro encaminhamento da requisição) encontra objetos embutidos, então ele não faz novas
requisições para esses objetos. Ele já fica à espera desses objetos, pois o jondo que ficar
encarregado de fazer a entrega da requisição ao servidor Web ficará encarregado de fazer as
requisições desses objetos.
navegador Web
servidor Web
Figura 6. Exemplo de rota percorrida por uma requisição
6 Considerações Finais
A construção de plataformas de anonimato não necessariamente exige apenas conhecimentos
técnicos de computação. Aspectos tais como políticos e sociais devem ser considerados a fim
de que se encontre justificativas de utilização da plataforma. Deve ficar claro que esta
utilização não é limitada somente à realização de comunicações secretas em uma rede de
computadores. Implica mudanças de hábitos e atitudes por parte dos seus usuários. Antes que
se institua a utilização de uma plataforma de anonimato, é importante que sejam estudadas
quais as conseqüências que podem resultar deste processo. Assim como ocorre com outras
ferramentas, uma plataforma de anonimato pode ser utilizada em prol do crime, podendo
acarretar na não identificação dos mal feitores, o que não é um propósito desejável pelos seus
idealizadores.
Referências
[Berthold, Federrath & Köpsell 2001] Berthold, O., Federrath, H. and Köpsell, S. “Web
MIXes: A system for anonymous and unobservable Internet access”, In: Designing Privacy
Enhancing de Technologies -- International Workshop on Design Issues in Anonymity and
Unobservability, p. 115--129, 2001.
[Chaum, 1981] David C. “Untraceable Electronic Mail, Return Addresses, and Digital
Pseudonyms. Communications of the ACM 24/2, p. 84-88, 1981.
[Goldschlag, Reed & Syverson 1999] Goldschlag, D., Reed, M. Syverson, P., “Onion
Routing for Anonymous and Private Internet Connections”, Communications of the ACM
(USA), p. 39--41, 1999, http://citeseer.nj.nec.com/goldschlag99onion.html.
[Reiter & Rubin 1998] Reiter, M. K., Rubin, A. D. “Crowds: anonymity for Web
transactions”, ACM Transactions on Information and System Security, p. 66-92, 1998.
Download