Tor – The Onion Router

Transcrição

Tor – The Onion Router
Proxies para navegação anónima, Comunicação de Dados, LESI_PL, Barcelos, 2013 Maio 5 Tor – The Onion Router S. Pereira -­‐ 7813, F. Sousa -­‐ 7815. Instituto Politécnico do Cávado e do Ave Escola Superior de Tecnologia Resumo – Cada vez mais se assiste à distribuição do universo computacional, tornando-­‐se mesmo parte integrante do nosso quotidiano o acesso a máquinas remotas para os mais diversos fins. São sobejamente conhecidas as vantagens desta tecnologia, mas muitas vezes desconhecidos os riscos que se correm simplesmente por disfrutar desta maravilha do Séc. XX, e.g., análise de tráfego. Conscientes disso, ou pura e simplesmente por questões de censura, assistimos a uma cada vez maior restrição e/ou monotorização do acesso a essa maravilhosa rede de bytes que nos une por parte de terceiros. Este fenómeno dá-­‐se com especial incidência em locais de acesso público à internet e/ou em países onde ainda reinam regimes altamente restritivos no que às politicas de informação diz respeito. Técnicas de análise de tráfego permitem aferir quem está a falar com quem numa rede pública de comunicações, e.g., a internet. Este artigo descreve uma infraestrutura de comunicações, Onion Routing, resistente, entre outros, à análise de tráfego que, em conjunto com um proxy SOCKS, oferece anonimato total nas comunicações. Esta infraestrutura é implementada ao nível da camada de transporte e aplicação do modelo OSI, e foi desenhada para interagir com uma vasta variedade de aplicações, sem a necessidade de as modificar. Este tipo de roteamento, em português chamado de roteamento cebola, oferece comunicação bidirecional e em tempo real resistente, fundamentalmente, a ambos análise de tráfego e eavesdropping1. Palavras-­‐chave – Comunicação, proxy, anonimato, informação, segurança, internet, tráfego, censura. 1
Escuta não autorizada Sílvio Pereira & Filipe Sousa 2 II. INTRODUÇÃO II.I. O PROBLEMA Estamos em meados de 2013 e os últimos relatos informam que países como o Japão e China tentam proibir o uso do Tor pela garantia de anonimato e liberdade de expressão que proporciona ao internauta. Simultaneamente entidades como a Human Rights Watch, Electronic Frontier Foudation, Amnistia Internacional, Indymedia e Repórteres sem Fronteiras apoiam e defendem o uso deste projeto como meio de denuncia de abusos em zonas de conflitos militares ou políticos [1]. Através da análise de tráfego é possível saber com precisão quem fala com quem através de uma rede pública, como por exemplo a internet. Um pacote de comunicações nesta rede inclui obrigatoriamente um cabeçalho, usado para o roteamento e o conteúdo da comunicação propriamente dito, os dados que se pretendem comunicar. Técnicas de encriptação de conteúdo das mensagens são já largamente utilizadas, e o seu uso é fortemente encorajado pelos principais fornecedores de soluções de comunicação via internet. Esquecido fica portanto o tal cabeçalho que, à semelhança de um envelope que se envie pelo correio identifica destinatário e remetente sem qualquer tipo de encriptação. Aqui reside a questão, a verdade é que mesmo que de alguma forma se conseguisse obscurecer este cabeçalho por forma a proteger a identidade de quem envia e recebe as informações, continuaria a ser possível rastrear o percurso que o envelope faz através da rede. As comodidades e eficiência da comunicação através da internet e redes públicas são uma forte motivação para empresas e particulares precisarem de a usar. Como tal impõe-­‐se a necessidade de proteger estas comunicações, especialmente quando de informação mais sensível se trate. Neste artigo irá discutir-­‐se, mais que a simples encriptação dos dados que circulam na rede, a forma de se conseguir comunicar sem que as identidades dos intervenientes sejam reveladas a menos que haja uma vontade explicita das partes em fazê-­‐lo. Existem algumas formas de o fazer, entre elas a mais assertiva é confiar as nossas comunicações a uma solução como a que se passa a explanar. II.II. HISTÓRIA O projeto OR2 nasce em 1995, quando a ONR3 decide criar uma ferramenta capaz de proteger os canais de comunicações militares de “olhares indiscretos”. Nesta altura a ideia era simplesmente usar um router intermédio para esconder as identidades do remetente e destinatário das comunicações. Em 1996 alguns melhoramentos ao funcionamento da aplicação são discutidos, sendo os mais relevantes a introdução de um novo conceito, o de vários nós por circuito e a utilização de chaves DH4. Este é um algoritmo que permite a troca de informação encriptada entre partes sem que para isso precise haver uma troca de chaves na integra entre as mesmas. Foi um algoritmo bastante polémico justamente por isso, desenvolvido por Whitfield Diffie e Martin Hellman e publicado em 1976. Acredita-­‐se que este tenha importância suficiente para se incluir uma ilustração do seu funcionamento, o que se faz de seguida. 2
Onion Routing Office of Naval Research 4
Diffie-­‐Hellman 3
Sílvio Pereira & Filipe Sousa 3 Figura 1 -­‐ Ilustração da troca de chaves DH – fonte desconhecida
É ainda durante o corrente ano posto em funcionamento o chamado protótipo proof-­‐of-­‐concept da rede, que consiste numa rede de 5 nodos a correr numa única máquina sobre Solaris 2.5.1/2.6 no NRL5, com proxies para navegação na internet. É a chamada geração 0 do projeto, sendo que a geração 1 já começa a ser pensada nesta altura. Em 1997, já com a geração 1 implementada, a DARPA6 junta-­‐se ao desenvolvimento deste projeto. São adicionadas as funcionalidades de location hidden server e rendezvous points, respectivamente possibilitando hospedar serviços na rede em pleno anonimato e permitindo que duas entidades comuniquem sem saber a localização uma da outra, e.g., chat servers. Dentre discussões acerca de segurança contra ataques a páginas alojadas na rede, é nesta data publicado o design do protocolo na geração corrente no Simpósio de Segurança e Privacidade do IEEE. Assinala-­‐se também a inclusão da noção de rotas variáveis desde a fonte e a separação do proxy do serviço do router, i.e., um cliente já não precisa de confiar a rota escolhida a um proxy remoto. Adicionalmente são introduzidas politicas de saída de trafego de cada nó na rede, possibilitando a cada um escolher o que quer repassar. A base de dados de politicas de saída, chaves de identificação e nós ativos na rede é descentralizada a fim de impedir que haja um único ponto de falha do sistema. Pensa-­‐se por fim alterar o tamanho fixado inicialmente para os pacotes de dados, que previa 44 bytes de tamanho máximo, a pensar nas até à altura usuais redes ATM. 5
6
United StatesNaval Research Laboratory Defense Advanced Research Projects Agency Sílvio Pereira & Filipe Sousa 4 1998 assinala a inauguração de várias redes distribuídas de geração 0 e 1. Uma delas, de 13 nodos é inicializada nas instalações do NRL, NRAD7 e UMD8. Outras duas de geração 0 são montadas, uma delas no Ministério da Defesa Canadiano. O redireccionador NRAD é implementado sobre um Windows NT e redireciona todo o tráfego TCP para a rede OR sem a necessidade de uso de um proxy para o efeito, requerendo no entanto um módulo especial de kernel a correr no próprio sistema operativo. Outros proxies já na altura o faziam mas apenas para um tipo de tráfego especifico, e.g, HTTP, FTP, etc. Nesta altura são registados os valores máximos de utilização do protótipo de geração 0 implementado no NRL, uma média de 50,000 hits/dia e mais de um milhão de conexões feitas por mês. Em 31-­‐12-­‐1998 ocorre o pico de tráfego registado na rede, atingindo 84,022 conexões num só dia. O sucesso deste projeto não passa despercebido e é nesta altura criada uma rede idêntica, mas com objectivos comerciais, a Freedom Network. Dadas as ambições e características meramente comerciais desta última, o ano de 2001 dita o seu encerramento. Volvido um ano, em 1999, o esforço destas entidades no desenvolvimento de uma solução tão audaz é pela primeira vez reconhecido com o prémio Alan Berman Research Publication Award, atribuído sob o titulo "Anonymous Connections and Onion Routing". Em contraste o desenvolvimento do OR é suspenso durante o corrente ano por falta de financiamento, facto que levou todos os desenvolvedores a abandonar a NRL. Independentemente do facto a pesquisa e análise sobre o tema continuam. O ano de 2000 marca o encerramento das redes de geração 0. Conforme explanado acima esta implementação era feita numa única máquina e consistia em 5 roteadores cebola que permitiam uma escolha aleatória de caminhos de rotas entre os 5 disponíveis. Um ano mais tarde, em 2001, é retomado o desenvolvimento do OR, com o objectivo de adicionar funcionalidades de tolerância a falhas ao código da geração 1 do OR. Este ano trás a segunda distinção pela invenção do OR, o prémio Edison Invention é atribuído ao projeto. 2002 marca o abandono do código da geração 1 por estar demasiado confuso, devido às inúmeras atualizações que veio a sofrer até à data. O desenvolvimento da geração 2 do código inicia-­‐se, sendo em grande parte fundamentado no código criado por um então estudante de informática da Cambrige University, no âmbito do seu projeto final de licenciatura. Todavia nenhum deste código sobrevive a partir de 2004. Entretanto, por esta altura, já muito do trabalho que até então era preocupação dos desenvolvedores do OR tinha sido feito e disponibilizado gratuitamente, sobretudo no que à área de proxies diz respeito. Tendo implementações de proxies disponíveis, a então equipa de desenvolvimento do OR precisou apenas de escolher o mais acertado para integrar a solução que propunham e, o Privoxy é escolhido. À medida que firewalls se tornam mais comuns, o protocolo SOCKS, definido no RFC 1928 de Março de 1996 [2], revela-­‐se de tal ordem ubíquo que praticamente todas as aplicações TCP que interessam ao projeto o implementam. Este facto liberta a equipa de desenvolvimento do OR da escrita de proxies para cada uma das aplicações que pretende suportar. A partir desta data, as preocupações com a criptografia da informação que entra ou sai da rede deixam de existir. Com o financiamento da ONR para a geração de desenvolvimento 2 e sua implementação, da DARPA para a criação de gestão de recursos e tolerância a falhas e financiamento interno NRL da ONR para a construção de servidores escondidos, abre-­‐se o caminho para em Outubro de 2003 se implementar aquela que é conhecida, usada até hoje e apresentada a partir do próximo capítulo, a rede Tor. Adicionalmente o código do Tor é disponibilizado sobre licença MIT9, esta é uma licença não copyleft utilizada em software livre, i.e., permite a reutilização de software licenciado em programas livres ou proprietários. Daqui em diante o projeto passa a ser gerido através do site Tor development site e no final 7
Naval Research and Development University of Maryland 9
Massachusetts Institute of Technology 8
Sílvio Pereira & Filipe Sousa 5 do ano de 2003 conta já com uma dúzia de nodos voluntários, todos nos Estados Unidos da América, à exceção de um, localizado na Alemanha. Em 2004 disponibiliza-­‐se a localização dos Hidden Services, com o nascimento da Hidden Wiki, i.e., biblioteca de links para páginas alojadas na rede Tor. O design da implementação é publicado na USENIX Security10, e os financiamentos por parte da ONR e DARPA terminam. Surge então o financiamento de entidades como a EFF para a continuação do desenvolvimento e implementação da rede TOR, bem como o da ONR para que os trabalhos na localização de serviços escondidos continue. No final do ano já existiam mais de 100 nodos da rede em 3 continentes, crescendo até mais de 3500 estimados à data do presente documento11. III. DESCRIÇÃO DO TOR Em 2004, batizado a seguir ao OR e constituindo a sua 2ª geração, nasce o Tor. No capítulo anterior já foram abordados os objectivos e evolução desta aplicação, que se pretendem aprofundar doravante. Trata-­‐se de um software pensado para estabelecer uma comunicação anónima entre dois pontos de uma rede, à partida hostil, que comummente se materializa na chamada internet. Esta não é a única rede de comunicações distribuída em que o Tor opera, aliás, estima-­‐se que a internet, tal e qual como é conhecida represente apenas 30% dos dados disponíveis em redes mais ou menos públicas [3]. Para cada nova rota é estabelecido um caminho aleatório, negociadas chaves de autenticação e encriptação de dados e, tantas quantos nós ou pontes existam entre o remetente e destinatário da mensagem, adicionadas camadas de encriptação aos dados que se pretende que circulem em pleno anonimato. Desta característica de operações surge o nome de “roteamento cebola”. Existe para o efeito uma rede de nós, composta maioritariamente por computadores de voluntários como por exemplo o do leitor, que comunica através de túneis virtuais e que se encarrega de transportar a informação encriptada. O princípio de funcionamento é bastante básico e ainda assim dos mais eficazes que se conhecem, para cada circuito escolhido são aleatoriamente recrutados 3 nós da rede, verificadas identidades e negociadas chaves de encriptação individuais. Tal como mencionado no capítulo anterior as chaves criptográficas usadas são negociadas recorrendo ao algoritmo DH, segundo o protocolo SSL/TLS 12 . Por forma a preservar a velocidade de transferência de dados na rede, sempre que se identifique essa necessidade, a rota atual pode ser mantida por mais que uma comunicação. No máximo uma rota dura 10 minutos, altura em que voltam a ser negociadas chaves de encriptação de dados com os novos nodos escolhidos para constituir o novo túnel de comunicações. Outros fatores para além dos mencionados influenciam a escolha da rota, e.g., dependendo do tipo de tráfego que a comunicação envolva, há-­‐que escolher um nodo terminal que esteja disposto a fazer o seu port-­‐forwarding. Este assunto irá ser abordado mais à frente, e é introduzido agora só para que se possa prover uma explicação mais abrangente acerca da escolha das rotas que constituem a rede. A próxima imagem ilustra o modelo de encapsulamento da aplicação. 10
The Advanced Computing Systems Association 11
Fonte: metrics.torproject.org http://en.wikipedia.org/wiki/Transport_Layer_Security 12
Sílvio Pereira & Filipe Sousa 6 Figura 2 -­‐ Modelo comunicação Tor – fonte desconhecida Sílvio Pereira & Filipe Sousa 7 IV. PROPRIEDADES DE SEGURANÇA [4] Sendo o Tor uma aplicação que promete a navegação anónima sobre uma rede à partida hostil, pensa-­‐se que uma das maiores e primordiais preocupações ou curiosidade de quem se propõe a conhecer ou usá-­‐lo é justamente esta, como e com que meios o Tor protege a minha identidade?. Este capítulo será inteiramente dedicado a esclarecer estas questões. Tem-­‐se por objectivo o total esclarecimento do leitor, conhecendo a sensibilidade da matéria, a segurança da nossa identidade e dados. O Tor usa o protocolo SSL/TLS como método de autenticação e criptografia em conjunto com as onion keys. Cada nodo na rede tem a sua, publicada num diretório gerido pelo servidor central da rede. Abaixo far-­‐se-­‐á uma descrição mais pormenorizada de cada um destes itens, bem como a sua associação com o respectivo âmbito de segurança. • Autenticação de nodos na rede Aqui é determinada a identidade de alguém. Cada nodo participante da rede tem a respectiva chave privada de desencriptação, a chamada “chave cebola”. Esta chave tem duração máxima de uma semana. Sempre que é estabelecido um novo circuito, para cada novo “salto” é exigido que cada respetivo nó prove o conhecimento da sua “chave cebola”. • Coordenação das chaves públicas de autenticação de nodos Cada nodo na rede tem uma chave pública, chamada “identity key”, indexada num diretório de identidades. Adicionalmente, cada diretório de identidades tem a sua chave de identidade privada e a respectiva chave pública é fornecida juntamente com a aplicação Tor. Este fato faz com que todas as chaves de identidade dos nodos possam ser fornecidas juntamente com uma assinatura a fim de se verificar a sua autenticidade, esta assinatura é criada recorrendo à chave de assinatura de cada diretório. Existem 8 diretórios de autoridade, por tal, a menos que o adversário consiga controlar todos os diretórios, não há forma de enganar os usuários da rede acerca das chaves de identidade, localizações e politicas de saída de trafego de cada nodo. •
Certificação de diretórios de autoridade Conforme escrito acima, a aplicação Tor traz uma lista de localizações e chaves públicas de cada um dos diretórios de autoridade. Por sua vez, cada download da aplicação é assinado digitalmente a fim de garantir toda a hierarquia de assinaturas descrita acima. Esta assinatura está no ficheiro “.asc” descarregado juntamente com a aplicação e é uma assinatura GPG13, uma alternativa à suite PGP14, desenvolvida pela GNU Project. Esta assinatura poderá ser verificada segundo as instruções encontradas em (https://www.torproject.org/docs/verifying-­‐signatures.html.en)15. 13
GNU Privacy Guard 14
Pretty Good Privacy Curiosamente, mesmo seguindo todos os passos descritos na página não foi possível verificar a assinatura do programa, pois não se encontrou o ficheiro “.asc”, indispensável a tal procedimento 15
Sílvio Pereira & Filipe Sousa • Encriptação de dados e cabeçalhos de pacotes 8 Informação codificada para que seja lida apenas pelos intervenientes autorizados. Isto protege a informação que passa pela rede. Neste quesito o Tor utiliza o protocolo SSL/TLS. Este protocolo encripta os dados com uma chave simétrica, previamente acordada entre partes segundo o algoritmo DH atrás explanado. •
Integridade dos dados Garantia de que a informação enviada pela rede chega inalterada. Se for capturada e modificada por alguém durante o transporte, o Tor detecta o ocorrido. Esta aplicação efetua ligações em rede entre computadores, com fortes garantias de que as partes nas extremidades da ligação são genuínas. Para garantir integridade dos dados que circulam na rede o Tor mais uma vez recorre ao protocolo SSL/TLS, que prevê que todas as mensagens trocadas sejam acompanhadas do respetivo MAC16. 16
Message authentication code Sílvio Pereira & Filipe Sousa 9 VI. CAMADAS LÓGICAS DO TOR O Tor é um software que atua ao nível do TCP17, como tal opera na camada de rede do modelo TCP/IP. Em versões anteriores à 0.2.0.1-­‐alpha, de maio de 2010 [4] esta aplicação era usada em conjunto com um proxy web a fim de colmatar as fugas de pedidos DNS18 características de alguns exploradores de internet, como por exemplo o Firefox, o qual é aconselhado pelos desenvolvedores do Tor. Até esta altura poderia se considerar assim que o conjunto de aplicações envolvidas na solução de navegação anónima atuava adicionalmente na camada de aplicação, por responsabilidade do proxy. A grande vantagem do Tor operar na camada de rede da pilha TCP/IP é a de poder intermediar todas as comunicações de uma máquina que corra um sistema operativo compatível com a mesma, simplesmente configurando o sistema operativo de forma a que todo o tráfego TCP/IP flua via Tor. Passa-­‐se a anonimizar não só o tráfego HTPP, mas todo ele. Abaixo ilustra-­‐se a configuração sugerida num sistema Unix. Figure 3 -­‐ Configuração pilha TCP/IP Unix para operar com o Tor Conforme se pode constatar o Tor corre um serviço na porta 9150/TCP da máquina onde está instalado, e basta associar o tráfego TCP/IP a essa porta para que TODAS as comunicações da máquina com o exterior passem a ser anónimas. 17
Transmission Control Protocol Domain Name Server 18
Sílvio Pereira & Filipe Sousa 10 VII.
FUNCIONALIDADES DO TOR Neste capitulo descrevem-­‐se as principais funcionalidades disponibilizadas pelo Tor, são elas: •
Navegação anónima Este é o propósito mais comum da aplicação Tor, descreve a navegabilidade anónima, quer na rede .onion, quer na internet. Já foram abordadas neste documento as propriedades da aplicação em causa que permitem que uma interação com uma rede hostil possa ser feita de forma totalmente anónima e resta por tal deixar uma chamada de atenção para a boa utilização da mesma. Como qualquer técnica de segurança informática, a solução está sujeita a falhas, muito por responsabilidade do uso que se dá à aplicação. Esta aplicação é excelente a esconder a nossa identidade ao usar circuitos de nós que cedam a sua identidade em prol da manutenção do anonimato da nossa, mas não previne a entrega dos nossos dados a sites nem encripta as comunicações entre o nó de saída do circuito e o site de destino. Cabe por tal a cada usuário a responsabilidade da entrega de dados sensíveis ou suscetíveis de o identificar a todo e qualquer site acedido através do Tor, bem como a da não utilização de protocolos de encriptação de dados numa rede, e.g., HTTPS. Resumidamente e ilustrando o que se acaba de expor, irá mostrar-­‐se uma imagem que descreve a comunicação via Tor. A esta altura o cliente já obteve uma lista dos nodos disponíveis através do servidor de diretórios da rede, escolheu um caminho aleatório composto por 3 desses nós e trocou chaves de encriptação com cada um deles. Este circuito, conforme já se teve oportunidade de expor durará no máximo 10 minutos, sendo que o ideal seria alterá-­‐lo a cada troca de mensagens. Tal não é feito por impostos de eficiência, mas ainda assim consegue um rácio de rastreabilidade bastante reduzido. Figura 4 -­‐ Comunicação de dados através do Tor – fonte torproject.org Sílvio Pereira & Filipe Sousa 11 • Hidden services O Tor também pode fornecer anonimato a sites e outros servidores. Servidores configurados para receber conexões de entrada através do Tor são chamados de serviços escondidos. Ao invés de revelar o endereço IP do servidor, e assim a sua localização na rede, um serviço oculto é acedido através do seu “endereço de cebola”. A rede Tor entende estes endereços e encaminha os dados de e para serviços ocultos, mesmo aqueles hospedados atrás de firewalls ou tradutores de endereços de rede, i.e., NAT, preservando o anonimato de ambas as partes. Pelo atrás descrito, o Tor é absolutamente imprescindível para aceder aos serviços ocultos. Os serviços ocultos foram implementados na rede Tor no início de 2004. Não existe nenhuma base de dados que armazene uma lista completa dos endereços destes serviços, apesar de um número de serviços escondidos catalogar endereços cebola conhecidos publicamente. É o caso da “ The Hidden Wiki”, esta é acessível somente através da rede “.onion” e aloja links para outros sites na rede. Como os serviços ocultos não usam nós de saída, eles não estão sujeitos a escutas nos mesmos. Há no entanto outras questões de segurança que envolvem o serviços ocultos do Tor. Por exemplo, os serviços que são acessíveis através dos serviços ocultos Tor e da Internet pública são suscetíveis a ataques de correlação e portanto não são perfeitamente escondidos. Foi o caso do tão falado Wikileaks. O conceito de hidden services introduz dois novos conceitos ainda não abordados neste documento, os rendezvous points e os introduction points. Os primeiros servem para intermediar o acesso do lado de um cliente a um site alojado na rede “.onion” e o segundo serve exatamente o mesmo propósito, mas do lado do serviço escondido. É portanto preciso publicitar as chaves públicas e introduction points das páginas alojadas na rede para que a comunicação possa acontecer. Cada serviço escondido pode e deve ter mais que um introduction point na rede para que se possa defender de ataques DDoS19. Um acesso a um site na rede Tor segue 6 passos: 1. Um serviço escondido escolhe aleatoriamente alguns nodos, constrói circuitos até eles e pede-­‐lhes que se comportem como introduction points, dando-­‐lhes a sua chave pública. Ao usar um circuito Tor já se garante que a rastreabilidade do endereço IP do servidor do serviço escondido se torna difícil de realizar. A esta altura tudo o que os introduction points sabem acerca do servidor é a sua chave pública. 2. O servidor do serviço escondido constrói um descritor para este serviço contendo a sua chave pública e um sumário de cada introduction point onde está espelhado. Este descritor é assinado com a chave privada do servidor e enviado para uma hash table distribuída. A ideia é que este descritor seja encontrado pelos clientes que pretendam aceder ao site ao requisitarem um link do tipo “XPTO.onion” onde XPTO é um nome de 16 caracteres derivado da chave pública do servidor. Concluído este passo o serviço escondido está pronto a ser acedido. 3. Um cliente que pretenda aceder a um serviço escondido primeiro tem que descobrir o seu endereço .onion. A seguir o cliente pode começar o estabelecimento da conexão, descarregando o descritor da referida tabela de hash distribuída. Através do descritor do serviço o cliente sabe quais são os introduction points que espelham o site a que pretende aceder, bem como a chave pública a usar, resta estabelecer um circuito Tor e pedir ao nó de entrada desse circuito que aja como um rendezvous point, dando-­‐lhe um segredo de utilização única. 19
Denial of Service Sílvio Pereira & Filipe Sousa 12 4. Concluído o passo 3, temos o rendezvous point implementado e o descritor presente e é altura do cliente criar uma mensagem encriptada de apresentação usando a chave pública do serviço, incluindo o endereço do rendezvous point que escolheu e o respectivo segredo já criado. Esta mensagem deve ser enviada a um dos introduction points do serviço requerendo a sua entrega ao servidor escondido. Mais uma vez, toda a comunicação acontece via Tor, de forma a que ninguém saiba quem está a enviar esta mensagem, preservando a identidade do cliente. 5. O serviço escondido desencripta a mensagem enviada usando a sua chave privada e sabe assim o endereço do rendezvous point escolhido para representar o endereço do cliente e o respectivo segredo criado para estabelecer a ligação. Cabe ao serviço escondido criar o circuito que o irá ligar ao rendezvous point, enviando-­‐lhe o segredo numa mensagem especifica. 6. Por fim é o rendezvous point que notifica o cliente de que uma conexão com o serviço foi estabelecida com sucesso e posto isso ambos o cliente e serviço podem finalmente usar os circuitos que cada um pré-­‐estabeleceu com ele para comunicarem um com o outro. O rendezvous point simplesmente irá servir de nó, encriptando a comunicação entre o cliente e o nó e o nó e o serviço, e vice-­‐versa. Não se usam os introduction points para estabelecer comunicações entre clientes e serviços pelo fato de que nenhuma comunicação deve depender apenas de um nó previamente conhecido e único, características de um introduction point. Assim se garante que nenhum rendezvous point nunca chega a conhecer a identidade de um serviço escondido. Uma comunicação entre um cliente e um servidor totaliza portanto 6 nós, 3 deles escolhidos pelo cliente com o 3º a servir de rendezvous point e os outros 3 escolhidos pelo serviço escondido, a cada novo pedido de ligação. A próxima figura ilustra uma comunicação já estabelecida entre cliente e serviço, (leia-­‐se aceder a um site). Figura 5 -­‐ Acesso a um Hidden service – fonte torproject.org Sílvio Pereira & Filipe Sousa 13 VIII.
ATAQUES BLOQUEADOS PELO TOR Já foram abordadas neste documento as propriedades de segurança do Tor de forma exaustiva, por tal servirá este capitulo apenas para nomear e descrever cada um dos tipo de ataque em redes distribuídas a que o Tor é imune, até ao dia da escrita deste documento, tanto quanto se consegue dizer. Existem fundamentalmente 3 tipos de ataque com que a implementação desta aplicação especialmente se preocupa. Em primeiro lugar, conforme já mencionado, resguardar identidades de internautas e, em consequência preservar a integridade dos dados que circulam nas redes públicas de comunicações. Passa-­‐
se a explanar cada um deles: • Ataque Homem-­‐no-­‐meio, MITM “O man-­‐in-­‐the-­‐middle (pt: Homem no meio, em referência ao atacante que intercepta os dados) é uma forma de ataque em que os dados trocados entre duas partes, por exemplo você e o seu banco, são de alguma forma interceptados, registados e possivelmente alterados pelo atacante sem que as vitimas se apercebam. Numa comunicação normal os dois elementos envolvidos comunicam entre si sem interferências através de um meio, aqui para o que nos interessa, uma rede local à Internet ou ambas. Durante o ataque man-­‐in-­‐the-­‐middle, a comunicação é interceptada pelo atacante e retransmitida por este de uma forma discricionária. O atacante pode decidir retransmitir entre os legítimos participantes os dados inalterados, com alterações ou bloquear partes da informação. Como os participantes legítimos da comunicação não se apercebem que os dados estão a ser adulterados tomam-­‐nos como válidos, fornecendo informações e executando instruções por ordem do atacante.”[5] • Ataques DDoS “O principal objetivo de um ataque de negação de serviço e deixar um recurso computacional inacessível para seus usuários legítimos. As duas classes principais de métodos de ataque são diminuição de largura de banda e esgotamento de recursos. Ataques de diminuição de largura de banda são caracterizados pelos ataques por inundação e amplificação. Ataques de esgotamento de recursos são ataques que fazem uso indevido dos protocolos de comunicação de rede ou enviam pacotes de rede malformados.” [5] • Traffic Analysis “Análise de tráfego é o processo de interceptar e examinar as mensagens, a fim de deduzir informações a partir de padrões de comunicação. Ela pode ser realizada mesmo quando as mensagens são criptografadas e não pode ser descriptografado. Em geral, quanto maior for o número de mensagens observados, ou mesmo recebido e armazenado, a mais pode ser inferida a partir do tráfego. Análise de tráfego podem ser realizadas no contexto da inteligência militar ou contra-­‐inteligência, e é uma preocupação na segurança do computador. Tarefas de análise de tráfego podem ser apoiadas por programas de software dedicados, incluindo os programas disponíveis no mercado, como os oferecidos pela i2, Visual Analytics, Memex, Orion Scientific, Pacific Northwest National Labs, do Genesis EW Gencom Suite, SynerScope e outros. Técnicas de análise de tráfego avançado podem incluir várias formas de análise de rede social.” [6] Sílvio Pereira & Filipe Sousa 14 Esta é a principal motivação deste projeto e portanto não podia deixar de merecer especial menção, desde o inicio que a ainda OR foi projetada a pensar nesta peculiaridade, descurada até então, encapsular os cabeçalhos dos pacotes que circulam na rede, de forma a que todo e qualquer internauta possa ter a sua liberdade de expressão, seja em que condições for. Para nós comuns habitantes de países do 1º mundo esta questão pode até passar despercebida, mas a verdade é que o propósito que serve é nobre, basta por momentos considerarmos os habitantes de países como a China, Coreia do Norte ou Irão e depressa se adquire conhecimento do mesmo. IX. APLICAÇÃO Este capítulo pretende materializar e consolidar toda a teoria que foi introduzida até agora e dá-­‐se por logrado o seu objetivo sendo no final do seu estudo o leitor capaz de desfrutar de tudo o prometido até então. Não é o objetivo deste documento a promoção da aplicação, sendo no entanto o de esclarecer o uso e benefícios de uma solução do género. Adicionalmente se pretende deixar claro que esta é uma aplicação que, como não poderia deixar de ser, dada a sua potencialidade, pode ser usada para fins como os induzidos ao longo da dissertação ou, em contraste, para fins menos lícitos. Deixa-­‐se a consciência do uso da ferramenta nas mãos do utilizador. O Tor, projeto que se tem vindo a descrever, é na realidade um conjunto de aplicações que juntas proporcionam a tão almejada anonimidade nas comunicações. É distribuído como “Tor Browser Bundle” e é hoje, em constante evolução, um conjunto que inclui, à data: • Tor 0.2.3.25 (with libevent-­‐2.0.21-­‐stable, zlib-­‐1.2.7 and openssl-­‐1.0.0k) Sendo o Tor o serviço multifunções que corre na máquina onde é instalado, implementa o libevent como biblioteca de notificação de eventos para acesso remoto e o openssl como protocolo e biblioteca de segurança informática. Esta última inclui e define recursos de criptografia, integridade e autenticidade de dados e o algoritmo de troca de chaves criptográficas. Sendo o principal recurso do conjunto de aplicações, inclusivamente constituindo o proxy que nos irá separar das redes públicas a fim de escolher por nós as melhores rotas para as comunicações e adicionalmente permitir por exemplo que se passe por uma firewall que de alguma forma tente restringir a utilização da solução, será aquele com quem menos iteração o utilizador terá já que praticamente todas as suas operações são feitas de forma pré-­‐
programada. É importante saber que este serviço corre na porta 9150/TCP, tal como mostrado no capítulo IV. • Vidalia 0.2.21 (with Qt 4.8.1) Esta é a interface gráfica do Tor. Com recurso a esta ferramenta conseguimos desde definir o tipo de utilização que pretendemos dar ao Tor, i.e., a simplesmente navegar de forma anónima ou adicionalmente alojar um serviço escondido na nossa máquina, a conhecer toda a rede de nós que compõem a OR. Crê-­‐se que esta é a aplicação que mais atenção merece pelo fato de ser a que permite “controlar” toda a utilização que se dá ao Tor, e por tal será incluída uma imagem de cada um dos recursos mais importantes e sua descrição. Sílvio Pereira & Filipe Sousa Figure 6 – Painel de controlo serviço Tor 15 Como se pode constatar, esta janela proporcionada pela Vidalia, assume-­‐se como o painel de controlo do Tor. Através dela tem-­‐se acesso a todas as funcionalidades do mesmo. Sendo que esta janela deve ser apresentada no arranque do Tor, desde logo mostra o status da ligação à rede OR. Conforme tem vindo a ser explicado ao longo do documento este é o principal objectivo do seu uso e como tal, em primeiro lugar há-­‐que estabelecê-­‐la. Esta ligação terá no máximo duração de 10 minutos e, se efectuada com sucesso desencadeia a execução do explorador de internet Firefox, ferramenta que se abordará ainda neste capítulo. É dada a oportunidade de verificar a identidade de cada ligação, disjunta da que se observa na pilha TCP/IP da máquina que corre o serviço. Este é o maior dos feitos da aplicação. As próximas imagens provam a diferença de entidades entre o que é mostrado na internet e aquele que na realidade é o IP público da máquina, i.e., o IP concedido pelo ISP responsável pelo serviço de internet ao qual estamos ligados. Sílvio Pereira & Filipe Sousa Figure 7 -­‐ Janela inicial do Firefox demostrando a alteração de identidade Figure 8 -­‐ Janela do Chrome a identificar o IP real da máquina 16 Sílvio Pereira & Filipe Sousa 17 Desde logo, nesta janela se pode interromper o serviço que se acaba de iniciar ou mudar de identidade caso se identifique essa necessidade. Outro recurso interessante é o de poder conhecer graficamente a rede em que acabamos de ingressar, a próxima figura ilustra justamente isso. Figure 9 -­‐ Mapa da rede ativa em tempo real Neste momento constituímos um “router cebola” aos olhos da rede Onion e como tal temos o direito de configurar a largura de banda que pretendemos disponibilizar à rede, bem como o tipo de tráfego que estamos dispostos a repassar, caso estejamos dispostos a repassar algum. É importante perceber que este pormenor é o que alimenta a rede que de igual forma estamos a usar para nosso proveito. A próxima imagem ilustra esse menu. [7] Sílvio Pereira & Filipe Sousa 18 Figure 10 -­‐ Escolha tipo de uso que fazemos da rede Tor É nesta última janela que escolhemos o tipo de utilização que fazemos da rede Tor. A imagem deixa poucas dúvidas, contudo gostar-­‐se-­‐ia de chamar à atenção para a flexibilidade que a aplicação demostra no que às configurações de uso diz respeito. Ao contrário da maioria das aplicações do género que conhecemos ela é completamente configurável, não sendo o utilizador obrigado a aceitar nenhum tipo de imposição para que possa simplesmente usufruir de navegação anónima e gratuita. Consegue-­‐se identificar o nível de detalhe com que se consegue decidir até onde e o quanto queremos contribuir para a “rede cebola”. Pelo acima exposto facilmente se depreende a importância desta interface, que de certa forma torna a utilização muito mais amigável do que a que seria proporcionada pelo Tor, em linha de comandos. • Firefox 17.0.6 esr Este navegador de internet certamente dispensará grandes apresentações, ainda assim abordar-­‐se-­‐ão os complementos que o acompanham nesta distribuição por se entender que embora não sejam do conhecimento da maioria, em contraste tenham uma importância fulcral na manutenção do anonimato do internauta a par da utilização do Tor. Sílvio Pereira & Filipe Sousa o Torbutton 1.5.2 19 Este add-­‐on pode simplesmente servir para ativar ou desativar a navegação através da aplicação Tor, ou mais importante que isso, ajuda a preservar a nossa identidade controlando fatores que não estão dentro do âmbito de intervenção do Tor, mas assumem uma importância vital neste campo, e.g., desabilitar plugins como o Flash, aplicação que, entre outras sabemos terem problemas de vulnerabilidade bastante conhecidos. Figure 11 -­‐ Opções add-­‐on TorButton Sílvio Pereira & Filipe Sousa o NoScript 2.6.6.1 20 São conhecidas as técnicas de MIM implementadas através da execução de scripts mal intencionados. Segundo estes procedimentos é possível “roubar” e modificar os cookies que uma máquina guarda, sendo o que muitas vezes nos identifica em sites tão sensíveis como o de um banco on-­‐line por exemplo. Este add-­‐on bem configurado garante que nenhuma página fazendo-­‐se passar por outra fidedigna é capaz de executar scripts na máquina do internauta por forma a atingir os fins acima descritos. Para tal é construída uma “lista branca” de sites autorizados a fazê-­‐lo. Mostra-­‐se a facilidade com que se podem implementar estas politicas na próxima figura. Figure 12 -­‐ Configuração whitelist do NoScript Sílvio Pereira & Filipe Sousa o HTTPS-­‐Everywhere 3.2 21 Por fim, mas não menos importante, este adicional ao Firefox permite ao utilizador garantir que apenas são efetuadas ligações seguras entre a máquina local e o nó de entrada e o nó de saída e o servidor remoto, i.e., transparentemente, entre a máquina do utilizador e o website que está a aceder. Sabemos que o foco da aplicação Tor é de proteger o “cabeçalho” das mensagens. Embora as comunicações dentro da rede Tor sejam feitas de forma completamente encriptada, aquando da saída da rede, entre o nó de saída e o endereço de destino as comunicações só serão encriptadas se o utilizador conseguir garantir que saem desta forma da sua máquina. Figure 13 -­‐ Info do HTTPS Everywhere Com a exposição deste adicional do Firefox pensa-­‐se ter abordado a essência da teoria e prática de uma das ferramentas mais importantes na defesa da liberdade de expressão da humanidade. Através dela todo e qualquer ser humano, mesmo aquele com parcos conhecimentos de informática ganha o direito a expressar-­‐se, ainda que contra qualquer tipo de regime que assim o imponha. É demais evidente que esta solução se predispõe a ajudar os que têm propósitos menos lícitos e por isso, mais que desencorajar, existirão componentes desta rede e aplicação que propositadamente não foram abordadas no documento a fim de não encorajar este tipo de atos. Sílvio Pereira & Filipe Sousa 22 X. CONCLUSÃO Como se viu, este trabalho é resultado de um estudo minucioso que exigiu, no decorrer do mesmo, muita, mas mesmo muita análise e pesquisa. Uma das maiores dificuldades na elaboração do presente foi justamente a falta de informação técnica acessível, mesmo na rede OR. Na maior parte das vezes os elementos do grupo foram forçados a estudar documentos RFC, sendo as únicas fontes disponíveis para consulta com respeito ao desenvolvimento e características da solução que se abordou. Justamente por isso, o desenvolvimento deste trabalho permitiu-­‐nos adquirir novos conhecimentos, e foi, apesar das dificuldades, deveras entusiasmante realizá-­‐lo. Ao longo do documento procurou descrever-­‐se com o máximo de detalhe e fidelidade possível o Tor, bem como os protocolos e adicionais que o compõem. Dá-­‐
se como bem-­‐sucedido este trabalho se, no mínimo se tiver conseguido despertar a curiosidade do leitor para o uso a aplicação em questão, que se acredita ser de grande utilidade no dia-­‐a-­‐dia. Por fim gostar-­‐se-­‐ia de deixar duas breves recomendações, que constituem óptimos complementos de segurança na utilização de um sistema informático distribuído. Nenhum software consegue ser uma solução de segurança completa, existem factores que vão para além de assegurar as comunicações, com forte autenticação e encriptação que devem ser considerados. O ambiente físico e o factor “homem” são muitas vezes vistos como causadores de brechas de segurança. São dois exemplos os a seguir descritos: • Passwords Palavras-­‐chave fortes são políticas necessárias para que os utilizadores não escolham palavras pequenas e fáceis de adivinhar. Para além disso, devem ser definidas politicas que incentivem à alteração regular de passwords e que de forma alguma permitam a sua reutilização. • Backups São geralmente implementados em servidores e na maior parte das vezes postos de parte quando se fala de computadores de secretaria. Implementar procedimentos de backup em rede, pode proteger e garantir a recuperação de informação importante se o computador foi perdido, roubado ou danificado. A utilização do Tor junto com boas políticas de segurança permitirá utilizar económica, privada, efetiva e seguramente, as redes públicas como a internet para que se possam fazer comunicações do dia-­‐a-­‐dia e de trabalho, com clientes e colaboradores ou de lazer. Sílvio Pereira & Filipe Sousa 23 XI. BIBLIOGRAFIA [1] www.superinteressante.pt. [Online]. http://www.superinteressante.pt/index.php?option=com_content&view=article&id=1850:a-­‐internet-­‐
obscura&catid=18:artigos&Itemid=98 [2] IEFT. (1996, Março) RFC 1928. [3] the journal of electronic publishing. (2013, May) the journal of electronic publishing. [Online]. http://dx.doi.org/10.3998/3336451.0007.104 [4] www.torproject.org. (2013, May) www.torproject.org. [Online]. https://www.torproject.org/docs/faq.html.en#KeyManagement [5] http://pt.wikipedia.org. (2013, May) http://pt.wikipedia.org. [Online]. http://pt.wikipedia.org/wiki/Ataque_de_negação_de_serviço [6] http://en.wikipedia.org. (2013, May) http://en.wikipedia.org. [Online]. http://en.wikipedia.org/wiki/Traffic_analysis [7] http://pt.wikipedia.org/wiki/Criptografia_de_chave_pública. [8] pt.wikipedia.org. (2013, May) pt.wikipedia.org. [Online]. https://pt.wikipedia.org/wiki/Ataque_man-­‐in-­‐
the-­‐middle 

Documentos relacionados