En este Proyecto de Fin de Grado se presenta el desarrollo de una aplicación móvil para la gestión de las contraseñas en local, es decir, en el dispositivo, con almacenamiento de usuario y de su clave de cifrado en la nube. De esta manera, se persigue una doble seguridad en caso de hackeo, puesto que, por una parte, no pueden obtenerse las contraseñas de un usuario a través del dispositivo, dado que éstas se almacenan totalmente cifradas y no se pueden descifrar sin su clave, y, por otro lado, tampoco se pueden obtener estas contraseñas a través de la base de datos de la aplicación desplegada, debido a que en ella solo se almacenan las claves de cifrado de cada usuario, y, en ningún caso, sus contraseñas.
La aplicación ha sido desarrollada utilizando Kotlin como lenguaje principal, dentro del framework Kotlin Multiplatform, lo que permite compartir lógica entre plataformas. La arquitectura implementada sigue un modelo cliente-servidor, donde el Frontend está desarrollado en Kotlin para Android, y el Backend se ha construido con Ktor, un framework asincrónico y ligero para aplicaciones. En cuanto al almacenamiento de datos, se utilizan dos bases de datos: una base de datos local en el dispositivo para uso offline y una base de datos remota PostgreSQL para la gestión centralizada de usuarios y credenciales.
Además de ofrecer un entorno seguro para las contraseñas, la aplicación incorpora un sistema de análisis de vulnerabilidades, el cual permite la comprobación de la fortaleza de las contraseñas de un usuario, además de si éste se ha visto afectado por filtraciones de datos conocidas.
Por último, podemos afirmar que este trabajo tiene como objetivo contribuir positivamente a la concienciación sobre la importancia de la seguridad en Internet en lo que respecta al manejo de las contraseñas por parte de un usuario. Asimismo, se pretende demostrar la posibilidad de implementar soluciones eficaces para la gestión de contraseñas, lo suficientemente robustas y rigurosas, como para que nos permita evitar el uso de plataformas de terceros, así como el almacenaje en la nube.
Abstract:
In this Final Degree Project, the development of a mobile application for local password management is presented, that is, on the device, with user storage and their encryption key in the cloud. In this way, dual security is pursued in the event of a hacking attempt, since, on the one hand, a user’s passwords cannot be obtained through the device, as they are completely encrypted and cannot be decrypted without their key, and, on the other hand, these passwords cannot be obtained through the deployed application’s database either, as it only stores the encryption keys of each user, and, in no case, their passwords.
The application has been developed using Kotlin as the main language, within the Kotlin Multiplatform framework, which allows sharing logic between platforms. The implemented architecture follows a client-server model, where the Frontend is developed in Kotlin for Android, and the Backend has been built with Ktor, a lightweight asynchronous framework for web services. Regarding data storage, two databases are used: a local database on the device for offline use and a remote PostgreSQL database for the centralized management of users and credentials.
In addition to offering a secure environment for passwords, the application incorporates a vulnerability analysis system, which allows checking the strength of a user’s passwords, as well as whether they have been affected by known data breaches.
Finally, we can affirm that this work aims to contribute positively to raising awareness about the importance of Internet security with regard to the handling of passwords by a user. Likewise, it aims to demonstrate the possibility of implementing effective solutions for password management, sufficiently robust and rigorous, so that it allows us to avoid the use of third-party platforms, as well as cloud storage.
En este Proyecto de Fin de Grado se presenta el desarrollo de una aplicación móvil para la gestión de las contraseñas en local, es decir, en el dispositivo, con almacenamiento de usuario y de su clave de cifrado en la nube. De esta manera, se persigue una doble seguridad en caso de hackeo, puesto que, por una parte, no pueden obtenerse las contraseñas de un usuario a través del dispositivo, dado que éstas se almacenan totalmente cifradas y no se pueden descifrar sin su clave, y, por otro lado, tampoco se pueden obtener estas contraseñas a través de la base de datos de la aplicación desplegada, debido a que en ella solo se almacenan las claves de cifrado de cada usuario, y, en ningún caso, sus contraseñas.
La aplicación ha sido desarrollada utilizando Kotlin como lenguaje principal, dentro del framework Kotlin Multiplatform, lo que permite compartir lógica entre plataformas. La arquitectura implementada sigue un modelo cliente-servidor, donde el Frontend está desarrollado en Kotlin para Android, y el Backend se ha construido con Ktor, un framework asincrónico y ligero para aplicaciones. En cuanto al almacenamiento de datos, se utilizan dos bases de datos: una base de datos local en el dispositivo para uso offline y una base de datos remota PostgreSQL para la gestión centralizada de usuarios y credenciales.
Además de ofrecer un entorno seguro para las contraseñas, la aplicación incorpora un sistema de análisis de vulnerabilidades, el cual permite la comprobación de la fortaleza de las contraseñas de un usuario, además de si éste se ha visto afectado por filtraciones de datos conocidas.
Por último, podemos afirmar que este trabajo tiene como objetivo contribuir positivamente a la concienciación sobre la importancia de la seguridad en Internet en lo que respecta al manejo de las contraseñas por parte de un usuario. Asimismo, se pretende demostrar la posibilidad de implementar soluciones eficaces para la gestión de contraseñas, lo suficientemente robustas y rigurosas, como para que nos permita evitar el uso de plataformas de terceros, así como el almacenaje en la nube.
Abstract:
In this Final Degree Project, the development of a mobile application for local password management is presented, that is, on the device, with user storage and their encryption key in the cloud. In this way, dual security is pursued in the event of a hacking attempt, since, on the one hand, a user’s passwords cannot be obtained through the device, as they are completely encrypted and cannot be decrypted without their key, and, on the other hand, these passwords cannot be obtained through the deployed application’s database either, as it only stores the encryption keys of each user, and, in no case, their passwords.
The application has been developed using Kotlin as the main language, within the Kotlin Multiplatform framework, which allows sharing logic between platforms. The implemented architecture follows a client-server model, where the Frontend is developed in Kotlin for Android, and the Backend has been built with Ktor, a lightweight asynchronous framework for web services. Regarding data storage, two databases are used: a local database on the device for offline use and a remote PostgreSQL database for the centralized management of users and credentials.
In addition to offering a secure environment for passwords, the application incorporates a vulnerability analysis system, which allows checking the strength of a user’s passwords, as well as whether they have been affected by known data breaches.
Finally, we can affirm that this work aims to contribute positively to raising awareness about the importance of Internet security with regard to the handling of passwords by a user. Likewise, it aims to demonstrate the possibility of implementing effective solutions for password management, sufficiently robust and rigorous, so that it allows us to avoid the use of third-party platforms, as well as cloud storage. Read More


