Fique por dentro

TOR – O protocolo que sustenta a Deep Web e serve como ótima VPN

© Propriedade Intelectual de 4Tech Tecnologia Ltda. Todos os direitos reservados.

Apesar do negro estigma da Deep Web e seus usuários, o protocolo (TOR, The Onion Router), usado para sustentar uma web totalmente anônima não foi criado por um hacker no porão da casa de sua tia-avó.

Na verdade ele foi criado pela marinha dos Estados Unidos e continuado pela DARPA (Department of Advanced Research Projects Agency), duas entidades extremamente competentes.

O objetivo do desenvolvimento era prover uma rede de alto anonimato dentro da internet, não precisando criar uma rede isolada para que isso fosse garantido. Aproveitando toda a infraestrutura da internet garantindo anonimato para fins militares.

Depois de um tempo esse projeto foi aberto ao público e até hoje é desenvolvido e mantido pela comunidade (Projeto Tor), principalmente devido à sua adoção para criar uma web que garanta o anonimato dos clients e servidores, com algumas peculiaridades, como por exemplo , os nomes de domínio grátis e aleatórios.

A premissa do protocolo é usar criptografia de chave assimétrica para ser virtualmente impossível de definir a fonte de uma requisição, rotegendo a identidade de quem envia a requisição.

O que é muito interessante para o público em geral, que acredita que anonimato deveria ser um direito do cidadão, também tornou-se muito interessante para cibercriminosos que pretendem vender seus produtos e serviços pela web. Dando segurança para seus clientes de que eles não poderão ser identificados.

Repare que em hora alguma falamos sobre confidencialidade, por mais que exista criptografia no protocolo. Ele só garante anonimato. Os dados em sí podem ser descriptografados.

Funcionamento

Quando uma requisição é feita ela atravessa uma sequência de nós da rede do Tor até chegar ao seu destino final. Cada nó é chamado de Relay ou Router. A cadeia de nós usados por você para encaminhar a requisição é chamada de chain.

A principal premissa que garante o anonimato é que um relay na chain só sabe de qual relay a requisição está vindo e o próximo relay para o qual ela está indo. O mesmo se repete para o próximo relay, ele sabe apenas o relay que lhe entregou a requisição e o relay para o qual ela deve ser repassada, até chegar no chamado exit node.

O nó é responsável por encaminhar a requisição ao seu destino final, onde a requisição é processada e retornada para o exit node que agora faz o caminho inverso.

O anonimato vem do fato de que um relay não consegue dizer se o relay que lhe entregou a requisição é a fonte da requisição ou apenas mais um relay na cadeia, sendo impossível determinar a fonte requisição.

Isso tudo funciona por que cada relay possui um par de chave privada e pública, sua chave pública e IP são publicados no directory server, que é consultado pelo client para formar uma cadeia de relays.

Com os relays A, B e C (por exemplo uma cadeia de tamanho 3) escolhidos para formar a cadeia, o client agora criptografa sua requisição com a chave pública de C (exit node) e o resultado dessa criptografia (payload) + um cabeçalho, indicando que esse resultado deve ser enviado para o relay C (header). Ele criptografa com a chave pública de B (relay intermediário) e o resultado dessa criptografia (payload) + um cabeçalho indicando que esse resultado deve ser enviado para o relay B (header). Ele criptografa com a chave pública de A (relay intermediário inicial), igual ao demonstrado na imagem ilustrativa acima.

No final de todas essas criptografias, esse pacote é enviado para o relay A que consegue descriptografar o pacote com sua chave privada, pois a última criptografia realizada foi com sua chave pública. Ao descriptografar, ele vê o cabeçalho indicando que o payload deve ser enviado para o relay B e toma essa ação. Agora que o B recebeu o pacote ele descriptografa usando sua chave privada, vê o cabeçalho e envie a requisição para C, que descriptografa usando sua chave privada, efetua a requisição, pega o seu retorno e envia devolta para C, que lembra que a requisição veio de B, o qual lembra que veio de A, que lembra que veio da fonte. A diferença é que como B não sabe se A é a fonte da requisição, A também não sabe se a fonte da requisição é de fato a fonte ou se somente mais um relay como B.

Alguns fatores interessantes da rede é que ela depende fortemente dos relays, que no projeto Tor são computadores dedicados pela comunidade. Os exit nodes são relays especiais que ativam a opção de poderem ser usados como exit nodes. Pois isso traz uma carga burocrática adicional, tendo em vista que o seu IP será usado para efetuar requisições de pessoas do mundo inteiro e requisições de todos os tipos.

Se após a leitura desse artigo você ainda tem dúvidas, basta encaminhar um email para contato@4tech.digital , ou acessar Contato em nossa página (www.4tech.digital) a sessão Fale Conosco, que produziremos mais conteúdo cobrindo suas dúvidas ou lhe respondendo diretamente.