FUNCIONAMENTO DO TOR

O Tor é, essencialmente, um serviço de comunicação anonima através de circuitos virtuais, baseado na técnica de Onion Routing. Por ser da segunda geração de Onion Routers, possui controle de congestionamento, servidores de diretório, verificação de integridade, as políticas de saída configuráveis, e um design prático para serviços de localização de pontos de rendezvous.

Onion Routing

Onion Routing é uma rede sobreposta distribuída, projetada para aplicativos baseados em TCP, como navegação na web anônima e mensagens instantâneas. Os clientes escolhem um caminho através da rede e constroem um circuito virtual, em que cada nó ("onion router", ou "OR") no caminho conhece o seu antecessor e sucessor, mas nenhum outro nó no circuito. Os fluxos de tráfego no circuito são constituídos de células de tamanho fixo, que são formadas de uma mensagem com camadas sucessivas de encriptação. Essas células, após serem enviadas, são decriptadas por uma chave simétrica em cada nó que passam (processo análogo à descascar uma cebola: a cada nó, uma camada de encriptação é “descascada”, sendo a mensagem resultante retransmitida para o nó seguinte, até chegar ao destino final).

Onion Routing (fonte: Wikipedia, Onion Routing)

A mensagem, portanto, pode ser vista apenas pelo emissor, pelo destinatário e pelo último nodo (aquele que realiza o último decriptamento). Porém, se houver encriptação da mensagem entre o emissor e o destinatário (uso do protocolo SSL/TSL, por exemplo), nem mesmo o último nodo do circuito poderá saber o conteúdo da mensagem.

Diferenças entre o Tor e o Modelo Original

No modelo inicial do Onion Routing, um único nodo hostil poderia gravar o tráfego e mais tarde comprometer nodos sucessivos no circuito e forçá-los para decifrá-lo. Ao invés de usar uma única estrutura de dados (uma cebola) em cada circuito, o Tor usa uma técnica de construção de caminho distinta, onde o iniciador negocia chaves de sessão a cada salto sucessivo no circuito. Uma vez que essas chaves são eliminadas, os nodos comprometidos não podem descriptografar o tráfego antigo. Como consequência, detectar a repetição de células não é necessário, e o processo de de construção dos circuitos é mais confiável, uma vez que o iniciador sabe quando um salto falha e pode então tentar estabelecer a conexão usando outro nodo.

Além disso, o modelo original exigia uma aplicação intermediária (proxy) para cada protocolo de aplicação suportado; o Tor, por sua vez, usa a interface proxy SOCKS, o que permite o suporte de uma quantidade maior de programas baseados em TCP, sem a necessidade de modificação.

Controle de Tráfego

Os projetos de anonimato anteriores não tratavam os gargalos de tráfego. Porém, o Tor apresenta um controle de congestionamento descentralizado, que utiliza acks end-to-end para preservar o anonimato, enquanto permite os nodos nas bordas da rede detectar congestionamentos e enviar menos dados até que a sobrecarga da rede diminua.

Servidores de Diretório

O projeto inicial do Onion Routing inundava a rede com as informações de estado dos nodos. O Tor, por sua vez, distribui esta informação através de nodos confiáveis – eles agem como servidores de diretório: fornecem diretórios assinados, descrevendo roteadores conhecidos e seus estados atuais (os usuários da rede atualizam suas informações sobre os diretórios periodicamente através desses servidores, via HTTP).

Verificação de Integridade

No modelo inicial, não havia nenhuma verificação de integridade de dados, ou seja, qualquer nodo do circuito poderia alterar o conteúdo das células. O Tor dificulta ataques à integridade das células, verificando a integridade dos dados antes de deixarem a rede.

Localização de Pontos de Rendezvous

O Tor fornece uma mecanismo integrado de resposta anônima através da localização de servidores protegidos. Os projetos anteriores de Onion Routing utilizavam "cebolas resposta" que poderiam ser utilizadas para construir circuitos em um servidor oculto (porém, elas se tornavam inúteis caso algum nodo do circuito falhasse ou trocasse suas chaves). No Tor, os clientes negociam pontos de rendezvous para se conectarem com os servidores ocultos.

Comunicação na Rede Tor

A rede Tor é uma rede sobreposta, onde cada “roteador cebola” (OR, ou onion router) é executado como um processo em nível de usuário. Cada roteador mantém uma conexão TLS com todos os outros, e cada usuário executa um software local chamado “proxy cebola” (OP, ou onion proxy) para buscar diretórios, estabelecer circuitos e tratar conexões.

Cada roteador mantém uma chave de identidade de longo prazo e uma “chave cebola” de curto prazo. A chave de identidade é usada para assinar certificados TLS, para assinar o descritor do roteador (resumo das suas chaves, endereços, largura de banda, política de saída, etc), e por servidores de diretório, para assinar diretórios. A chave cebola é usada para descriptografar solicitações dos usuários para criar um circuito e negociar chaves efêmeras.

O Tor Browser acessa a Deep Web, que roda por baixo da Web.

USOS DA REDE TOR

Exemplos

O Tor foi desenvolvido originalmente para proteger comunicações governamentais. Hoje em dia, ele é usado por milhares de pessoas ao redor do mundo, com as mais diversas finalidades.

O Tor tem sido usado para se obter acesso à informação e exercer liberdade de expressão em alguns países onde existe uma tentativa de censura na internet. O projeto Tor foi uma ferramenta importante para as revoluções no Oriente Médio, permitindo que os usuários escapassem da censura e se mobilizassem. A anonimidade permite que as pessoas denunciem abusos de poder sem correrem riscos.

Na China, por exemplo existe um controle muito forte sobre a internet. Alguns conteúdos são bloqueados e existe uma monitoração muito grande. Lá as companhias que fornecem acesso a internet são responsáveis pelo que seus usuários fazem, então as próprias empresas e as pessoas se regulam com medo das consequências legais. Como a rede Tor fornece anonimato, o acesso a rede Tor foi bloqueado.

Anonymous usa o Tor Browser

Os nós de entrada da rede Tor são públicos, então o acesso a esses nós foi bloqueado na china, só que a rede Tor tem alguns nós de entrada escondidos, mesmo assim o acesso estava sendo impedido. Isso foi conseguido porque o tráfego da rede Tor é facilmente distinguível de outros tipos de tráfego.

Normalmente um servidor usa um certificado emitido por uma autoridade certificadora. Esse certificado que prova a autenticidade de um servidor geralmente tem validade de anos, quando o Tor estabele uma conexão segura ele gera certificados que duram apenas para aquela sessão. Esse fato foi usado pelo governo do Irã para cortar tráfego da rede Tor. A solução para contornar esse bloqueio foi o uso de uma ferramenta, obfsproxy, que camufla o tráfego Tor para que ele se pareça com tráfego normal.

(http://www.techrepublic.com/blog/security/how-the-tor-project-defeated-iran-filters-inside-24-hours/6583)

Uma outra utilidade da rede para pessoas comuns é auxiliar na proteção da família ocultando informações sensíveis de terceiros. Ninguém quer que um bandido saiba aonde seus filhos estudam ou aonde você mora, quanto você ganha, etc.

O Tor também pode ser usado por militares que estão em atividade em algum país que monitore o tráfego da internet. Esse agente pode se manter anônimo ao acessar um servidor militar conhecido.

A rede Tor ainda permite que websites e servidores sejam acessados sem que o ip desses servidores seja conhecido, nesse caso esses servidores são acessados por um endereço próprio da rede Tor desde que se tenha uma proxy apropriada.

Vulnerabilidades

O projeto Tor é eficiente contra análise de tráfego e possíveis bisbilhoteiros, porém tem algumas vulnerabilidades. Se um adversário tiver controle sobre o nó de entrada e o de saída de um circuito da rede Tor, então ele consegue identificar quem está falando com quem. O adversário poderia também corromper o tráfego em algum ponto do circuito e ver aonde apareceria esse mesmo padrão.

Com o crescimento da rede Tor, a probabilidade de um adversário controlar os nós de início e saída de um circuito diminui muito. Porém na tentativa de diminuir a latência através de um balanceamento de tráfego, outra vulnerabilidade foi criada.

Nesse balanceamento, nós com maior banda são usados preferencialmente. Um adversário pode fornecer alguns nós e alegar ter maior banda do que tem, aumentando a probabilidade de que os nós sobre os quais ele tem controle sejam escolhidos. Esse adversário consegue comprometer a anonimidade antes mesmo dos dados serem enviados, na fase da criação do circuito. O que aumenta ainda mais a probabilidade desse ataque funcionar é o fato de que a maioria dos nós tem regras de saída que não permitem que eles sejam escolhidos para todos tráfegos.

A rede Tor não é eficiente contra confirmação de tráfego. Se existir uma suspeita de que alguém está usando Tor para acessar algum destino conhecido, essa suspeita pode ser facilmente confirmada.

Um outro ataque ainda consiste em inutilizar a rede e não em tentar descobrir os usuários. Para reconhecer o tráfego da rede Tor são usadas técnicas heurísticas e de aprendizado automático. O tamanho dos pacotes e o intervalo de tempo entre a chegada de pacotes subsequentes são algumas características que são usadas para a inferência.