Tor e Hidden Service Protocol - Explicando tecnicamente a "Deep Web"

Este artigo foi escrito para (tentar) explicar o funcionamento do Tor e do Hidden Service Protocol.

[ Hits: 63.061 ]

Por: Marcelo Theodoro em 14/01/2013


Hidden Service Protocol



O cliente TOR nos permite acessar serviços mantendo nosso IP oculto, porém, graças a uma implementação do Hidden Service Protocol na rede Tor, nós podemos também oferecer serviços dentro da rede Tor mantendo nosso IP oculto.

O Hidden Service Protocol permite a disponibilização de serviços, como publicação de páginas, serviços de mensagens, e-mails, SSH, entre outros tipos de serviços dentro da rede Tor, sem que nosso IP seja exposto em momento algum.

Ou seja, com este protocolo você pode, por exemplo, montar um servidor para publicar um site, e o IP desse servidor permanecerá oculto dentro da rede TOR. Ninguém que acessa o site, vai conhecer o IP de seu servidor. :)

Para entendermos corretamente o modo de funcionamento do Hidden Service Protocol, vamos primeiro definir alguns personagens importantes nesse "joguinho":
  • Cliente_TOR → É o cliente TOR do usuário que está tentando se conectar ao hidden service;
  • Hidden Service → É o serviço oculto, ou seja, aquele serviço que vai estar disponível na rede TOR mantendo oculto o IP de quem está o provendo;
  • Circuito TOR → Relembrando o que foi passado no outro capitulo, circuito Tor se constitui como a passagem do tráfego saindo do cliente_TOR e pelos 3 relays antes de chegar no destino.
  • Ponto de introdução → É um relay aleatório que mantém um circuito aberto com quem está provendo o hidden service. Esse relay é escolhido pelo hidden service no momento que ele é iniciado.
  • Chave pública do serviço → Todo hidden service tem uma chave pública. Importante notar, que a URL do serviço oculto, é formada pelo hash da chave pública+subdominio .onion.

    Exemplo: http://kpvz7ki2v5agwt35.onion

    A chave pública e o hash são gerados automaticamente na primeira vez que o hidden service é iniciado.

  • BD distribuído de hashs → Conjunto de relays que guardam informações sobre todos o hidden services disponíveis na rede. As informações que ele guarda são: Qual a chave pública do serviço e quais são seus pontos de introdução. O serviço após gerar a chave pública e escolher seus pontos de introdução, passa essas informações automaticamente para esse BD.
  • Ponto de encontro → É um relay escolhido randomicamente pelo cliente TOR. Este relay será o ponto onde tanto o hidden service quanto o cliente TOR, vão se conectar simultaneamente para a troca de informações.

* Leia com bastante atenção, porque realmente não é uma coisa muito fácil de se entender.

Agora, da perspectiva prática:
  1. Eu já estou com o TOR instalado e digito no Tor Web Browser, o endereço: http://kpvz7ki2v5agwt35.onion;
  2. Cliente TOR já nota pelo "subdominio .onion" que eu quero me conectar a um hidden service, e envia o hash da chave pública que está no URL para o banco de dados de hashs;
  3. O banco de dados de hashs procura procura pela hash que enviei, caso encontre, manda como resposta para o meu cliente uma lista de todos os pontos de introdução desse hidden service e sua chave pública completa;
  4. O cliente TOR escolhe randomicamente na rede um relay para servir como ponto de encontro e cria um circuito até ele, após isso, o cliente envia para o ponto de encontro um código chamado de "one-time secret";
  5. O cliente TOR, envia para o ponto de introdução do hidden service uma mensagem com o endereço do ponto de encontro, juntamente com o "one-time secret". Essa mensagem é criptografada usando a chave pública do hidden service;
  6. O ponto de introdução, usando o circuito que já estava estabelecido, passa para o hidden service a mensagem criptografada que recebeu do cliente TOR. O hidden service, com sua chave privada, descriptografa a mensagem e descobre o endereço do ponto de encontro e o "one-time secret";
  7. O hidden service, que já está com o endereço do ponto de encontro, abre até ele um circuito. E passa para esse ponto de encontro o one-time secret;
  8. O ponto de encontro compara o one-time secret enviado pelo cliente TOR e pelo hidden service. Caso os dois sejam idênticos, ele notifica o cliente TOR e o hidden service que a conexão foi feita com sucesso;
  9. O cliente TOR e o hidden service já podem se comunicar. O ponto de encontro apenas repassa as mensagem recebidas pelo hidden service para o cliente TOR e vice-versa. Neste ponto, a conexão é completamente criptografada.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Cliente Tor - Funcionamento básico
   3. Hidden Service Protocol
   4. É seguro?
Outros artigos deste autor

Hidden Service - Disponibilizando seu site na Deep Web através do Tor

Solicitações através do Tor utilizando Python

Leitura recomendada

Gerenciando certificados A1 fornecidos pelo ICB-Brasil no navegador Chrome sobre Linux

Gaim + Gaim Encryption - Bate-papo com segurança

Melhorando a segurança de servidores GNU/Linux (Parte 1)

Instalação do Freeradius com suporte a EAP-TLS e PEAP-TTLS MSCHAPv2 no Ubuntu

Servidor de log no Debian com Syslog-ng

  
Comentários
[1] Comentário enviado por robsontex em 14/01/2013 - 21:11h

Excelente artigo. Vai para os favoritos! Parabéns pela clareza na explicação de um assunto que não é dos mais simples. Fico no aguardo de outros artigos relacionados ao tema.

[2] Comentário enviado por Polnoraref em 14/01/2013 - 22:49h

Melhor explicação do TOR que eu já vi, até agora só lia sobre mitos e etc nada muito claro mas agora sim um bom artigo favoritado, muito bem explicado, parabéns :)

[3] Comentário enviado por MarceloTheodoro em 15/01/2013 - 13:33h

Opa!
Ainda bem que gostaram. :)

[4] Comentário enviado por phcerqueira em 15/01/2013 - 23:10h

Parabéns amigo! Melhor artigo sobre o assunto que eu já li até hoje e olha que foram muitos.
A monografia da minha esposa era sobre isso e eu nunca tive tanta base para poder ajudá-la como agora.
Obrigado!

[5] Comentário enviado por andrejhonny em 17/01/2013 - 21:38h

Já está nos favoritos!
Ref. "Deixo claro desde já, que este artigo é completamente teórico, porém, caso a comunidade ache o tema interessante, pretendo escrever outro artigo com uma abordagem mais prática. Ou seja, mostrando a configuração de um cliente Tor e de um Hidden Service. "

Cara...demorou pra fazer :)

[6] Comentário enviado por agoncalves em 18/01/2013 - 17:13h

Parabéns!
Ótimo artigo!

[7] Comentário enviado por removido em 31/01/2013 - 11:30h

Nota 10 pelo artigo, muito bom mesmo.

Se souberes, poderia explicar algo sobre as camadas da Deep, o funcionamento também. Já pesquisei muito sobre isso, mas nunca encontrei nada a respeito e não sei também se é verdade esse esquema de camadas mais profundas com outros conteúdos. Sabe se é verdade ou como funciona?

Abraço e parabéns novamente

[8] Comentário enviado por MarceloTheodoro em 31/01/2013 - 21:07h


[7] Comentário enviado por snock em 31/01/2013 - 11:30h:

Nota 10 pelo artigo, muito bom mesmo.

Se souberes, poderia explicar algo sobre as camadas da Deep, o funcionamento também. Já pesquisei muito sobre isso, mas nunca encontrei nada a respeito e não sei também se é verdade esse esquema de camadas mais profundas com outros conteúdos. Sabe se é verdade ou como funciona?

Abraço e parabéns novamente


Obrigado. :)
Sobre sua pergunta...
Algumas pessoas quando falam de outras camadas, podem estar falando de outros tipos de "redes anonimas". Como freenet e algumas outras menores.
Mas fato é, que boa parte do que se ouve por aí é mito.
Alguns dizem que existem algumas camadas que são necessários computadores "quânticos" pra acessar... isso aí já é viajem total.
Bom, de modo geral, nunca vi algo que me convenceu de que realmente existem várias camadas... e se existem, provavelmente não tem nada a ver com a rede Tor.

[9] Comentário enviado por ianclever em 02/02/2013 - 17:05h

Ótimo artigo, veio na hora certa!


[10] Comentário enviado por gpxlnx em 13/02/2013 - 15:08h

Bah otimo artigo meus parabens

[11] Comentário enviado por px em 27/02/2013 - 06:29h

otimo artigo , esta deep net em ... , algo q n domino ainda , porem to me esforçando para entender , sobre estas camadas nada mais são do q servidores e serviços "ocultos" por ai neh é isto , entendi ??

[12] Comentário enviado por MarceloTHeodoro em 27/02/2013 - 11:47h


[11] Comentário enviado por px em 27/02/2013 - 06:29h:

otimo artigo , esta deep net em ... , algo q n domino ainda , porem to me esforçando para entender , sobre estas camadas nada mais são do q servidores e serviços "ocultos" por ai neh é isto , entendi ??


Não existe uma definição formal sobre esse lance de camadas. xD
Mas a maior parte das pessoas que vejo falando de outras camadas, é exatamente isso: Outros tipos de serviços/servidores que funcionam de modo parecido a Tor network.

[13] Comentário enviado por alexspmiranda em 30/10/2014 - 18:14h

Primeiramente, parabéns. Excelente artigo. Se não for abuso, tenho uma dúvida, o meio físico de conexão da "deepweb" é o mesmo da surface web? Digo, cabeamentos... Acredito que use a protocolo P2P, ou estou enganado?

Abração.

[14] Comentário enviado por MarceloTheodoro em 06/01/2015 - 12:47h


[13] Comentário enviado por alexspmiranda em 30/10/2014 - 18:14h

Primeiramente, parabéns. Excelente artigo. Se não for abuso, tenho uma dúvida, o meio físico de conexão da "deepweb" é o mesmo da surface web? Digo, cabeamentos... Acredito que use a protocolo P2P, ou estou enganado?

Abração.


Sim, o meio físico é exatamente o mesmo.
A diferença são os protocolos usados e as camadas de criptografia.

[15] Comentário enviado por souza.CENTOS em 05/05/2015 - 16:39h

Excelente artigo, fiquei muito satisfeito e com informação suficiente para continuar aumentando conhecimento!!!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts