Abstract
El Trabajo Fin de Máster que se presenta en este documento consiste en el desarrollo de una infraestructura de un sistema confidencial y anónimo de transporte con rutas dinámicas y aleatorias. Es decir, permite a los usuarios transmitir datos a otro extremo garantizando el anonimato, la privacidad de las conexiones y la eficiencia en el envío y recepción de datos. En otras palabras, la entidad destinataria obtiene un mensaje confidencial y autenticado, pero sin incluir ningún metadato asociado como dirección IP, localización, etc. Se hace uso de una red intermedia compuesta por diferentes routers que envían y reciben mensajes de un protocolo creado especialmente para este trabajo. Además, hay otra entidad llamada Sistema Gestor de Rutas (SGR), que desempeña las actividades más importantes como enviar el primer salto al usuario que quiere enviar datos anónimamente y calcular las rutas óptimas para que los mensajes viajen por las rutas más cortas y sobre todo, diferentes. También se da la posibilidad de gestionar los datos con conexiones: autenticadas por medio de certificados digitales, fiables con protocolos orientados a conexión que supervisan el intercambio de paquetes de datos, seguras, puesto que la información va cifrada con algoritmos criptográficos, y rápidas al haber mecanismos de sincronización y encaminamiento optimizados. Los mecanismos de seguridad que se incorporan a la aplicación se inspiran en OpenSSL, que es un paquete de librerías relacionadas con la criptografía. Estos servicios ayudan a implementar el protocolo de seguridad SSL/TLS. También ofrecen la posibilidad de crear certificados digitales firmados por una Autoridad Certificadora, que sirven como plataforma de encriptación para las conexiones entre los dispositivos. Con todo esto, si consigue la confidencialidad de los datos a transferir, la identificación de los participantes para impedir suplantaciones, y la seguridad de todos los implicados ante ataques de terceros. La infraestructura se ha realizado en el lenguaje de programación Java. La mejor ventaja de este lenguaje es que es multiplataforma, además de que el manejo de hilos y sockets es muy fácil de gestionar e incluye una librería para utilizar OpenSSL.---ABSTRACT---The Master’s Final Project presented in this document consists of the development of an infrastructure of a confidential and anonymous transport system with dynamic and random routes. In other words, users are allowed to transmit data to another end, guaranteeing anonymity, privacy of connections and efficiency in data encryption and reception. The recipient entity obtains a confidential and authenticated message but without including any associated metadata such as IP address, location, etc. Using an intermediate network, made up of different routers, it sends and receives messages from a protocol created especially for this job. In addition, there is another entity called Routes Management System (RMS) that performs the most important activities, such as sending the first hop to the user who wants to send data anonymously and calculate the optimal routes, so that every time messages take the shortest route and in a different way. It also gives the possibility of managing the data with connections: authenticated by means of digital certificates; reliable with connection-oriented protocols that monitor the exchange of data packs; safe, since the information is encrypted with cryptographic algorithms; and fast with optimized synchronization and routing mechanisms. The security mechanisms that are incorporated into the application are inspired by OpenSSL, which is a package of libraries related to cryptography. These services help to implement the SSL / TLS security protocol. It also offers the possibility of creating digital certificates signed by a Certificate Authority, which serve as an encryption platform for connections among devices. With all this, we achieve the confidentiality of the data to be transferred, the identification of the participants to prevent impersonations and the security of all those involved in attacks by third parties. The infrastructure has been made in the Java programming language. The best advantage of this language is that it is multiplatform, besides the handling of threads and sockets, it is very easy to manage and it includes a library to use OpenSSL.