Tabla de Contenidos
Tor
Tor es la sigla de The Onion Router (en español: El Rúter Cebolla). Es un proyecto cuyo objetivo principal es el desarrollo de una red de comunicaciones distribuida de baja latencia y superpuesta sobre internet, en la que el encaminamiento de los mensajes intercambiados entre los usuarios no revela su identidad, es decir, su dirección IP (anonimato a nivel de red) y que, además, mantiene la integridad y el secreto de la información que viaja por ella. Por este motivo se dice que esta tecnología pertenece a la llamada darknet o red oscura también conocida con el nombre de deep web o web profunda.
La red funciona a partir de un conjunto de organizaciones e individuos que donan su ancho de banda y poder de procesamiento. Según información obtenida de los documentos de alto secreto filtrados por Edward Snowden en 2013, la Agencia de Seguridad Nacional de Estados Unidos (NSA) habría, supuestamente, conseguido “romper” Tor y así descubrir las identidades de los usuarios que buscan el anonimato.
Historia
El 20 de septiembre de 2002 se anunció una versión alfa del software libre con la red del encaminamiento de cebolla en funcionamiento.2 Creado en 2003 por Roger Dingledine, Nick Mathewson y Paul Syverson surgió como la evolución del proyecto Onion Routing del Laboratorio de Investigación Naval de los Estados Unidos (por eso se dice que es la segunda generación de onion routing). Inicialmente4 financiado por el Laboratorio de Investigación Naval de los Estados Unidos. A finales de 2004 pasó a ser patrocinado por la Electronic Frontier Foundation, la organización de defensa de libertades civiles en el mundo digital, hasta noviembre de 2005. Actualmente el proyecto Tor está en manos de The Tor Project una organización sin ánimo de lucro orientada a la investigación y la educación, radicada en Massachusetts y que ha sido financiada por distintas organizaciones.5 Actualmente el proyecto está formado por un equipo6 liderado por Roger Dingledine.
Funcionamiento
Componentes
Está formada por una serie de nodos que se comunican mediante el protocolo TLS sobre TCP/IP manteniendo así secreta e íntegra, sin modificaciones externas, la información desde un nodo a otro. Hay dos tipos de entidades:
Nodos OR o simplemente OR ( del inglés Onion Router): Funcionan como encaminadores y en algunos casos además como servidores de directorio (DNS) de una especie de servicio de mantenimiento. Los nodos OR mantienen una conexión TLS con cada uno de los otros OR. Las conexiones OR-OR no son nunca cerradas deliberadamente salvo cuando pasa cierto tiempo de inactividad. Cuando un OR comienza o recibe nueva información de directorio, él intenta abrir nuevas conexiones a cualquier OR que no esté conectado.
Nodos OP o simplemente OP (del inglés Onion Proxy): Los usuarios finales ejecutan un software local que hace la función de nodo OP y que su función es obtener información del servicio de directorio, establecer circuitos aleatorios a través de la red y manejar conexiones de aplicaciones del usuario. Los OP aceptan flujos TCP de aplicaciones de usuarios y las multiplexa a través de la red OR's. Las conexiones OR-OP no son permanentes. Un OP debería cerrar una conexión a un OR si no hay circuitos ejecutándose sobre la conexión y ha vencido cierto temporizador
Algoritmos usados
Para establecer las conexiones TLS usa TLS/SSLv3. Todos los OR y OP tienen que soportar SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA y deberían tener disponible TLS_DHE_RSA_WITH_AES_128_CBC_SHA. Los OP para comunicarse con los OR pueden usar: TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA
Como algoritmo simétrico de cifrado se usa AES en counter mode (AES-CTR) con claves de 128 bits, con vector de inicialización con todos los bytes a 0
Como algoritmo de clave pública usa RSA con claves de 1024 bytes y exponente fijo 65537. Usa como esquema de relleno OAEP-MGF1 con SHA-1 usado como función resumen
Como función resumen usa SHA-1
Para establecimiento de claves usa DH (Diffie-Hellman) con g=2 y para p usamos el primo seguro de 1024 bits obtenido de RFC 2409 con valor hexadecimal:
— david amador 2019/11/13 11:01