[en] Currently, the amount of passwords that we use to identify in different websites is constantly growing. To remember that amount of passwords and usernames results in plenty of bad usage from the users, such as using short and simple passwords, easier to remember, as well as repeating said passwords between different sites, in order to only have to remember a small number of different passwords. This behaviour consists an important security issue, it is easier for the password to become compromised, and once that happens, the damage is greater. An attacker that gained the login information of a website, could access other accounts of that same user with ease, if the login data is repeated. Security, and authentication as the main concern, is a key factor in the current internet model, where the amount of data linked to our personal accounts is increasing. This makes even more painful and hard to fix this problem, the moment that one of our accounts becomes compromised. Considering these factors, we attempt to provide an answer to this problem. A password manager, available in Android phones, is a powerful and portable tool, that can connect to a service that allows safe storage and generation of passwords. The Android application contacts with a Python web service programmed using Flask, a BSD licensed micro web framework. This service provides a way to maintain string, randomly generated passwords. Furthermore, for more convenience, a way of automatically changing passwords from the user accounts, from within the web service is available. This system uses the framework Selenium as well as other web scraping tools to login in the user's accounts and change the passwords when requested. In this document it is detailed the process of design and development of this project. We analyse the current state of standardisation of web pages, considering the impact of their design in tools like this one. On top of that, we analysed security protocols to be applied in the communication between application and web server, as well as the data base storage. After the analysis and design of both parts, we proceed with their creation.

[es] En la actualidad, el número de contraseñas que utilizamos para identificarnos en distintos sitios web está en constante crecimiento. La dificultad para recordar tal cantidad de contraseñas y nombres de usuario desemboca en multitud de malas prácticas por parte de los usuarios, como el empleo de contraseñas cortas y sencillas, más fáciles de recordar, así como la repetición de contraseñas entre sitios diferentes, para solo tener que recordar un número pequeño de contraseñas diferentes. Este comportamiento constituye un problema de seguridad importante, es más sencillo que la password quede comprometida, y una vez que ocurra el daño es mayor. Un atacante que disponga de las credenciales de un sitio, podría acceder a otras cuentas del usuario con facilidad, si se repiten estos datos de acceso. La seguridad, en particular la autenticación como pieza fundamental, es un aspecto clave en el modelo actual de internet, donde cada vez más datos están asociados a nuestras cuentas personales, siendo aún más peligroso y difícil de remediar el problema de un acceso ajeno una vez una cuenta queda comprometida. Por estos motivos se pretende dar una solución a este problema. Mediante un gestor de contraseñas disponible en el teléfono Android del usuario, se dispone de una herramienta portátil desde la cual se puede acceder a un sistema que le permite el almacenamiento seguro de claves. La aplicación Android contacta con un servidor web programado utilizando Flask, un web framework escrito en Python y licenciado BSD. Este servicio facilita una manera de mantener contraseñas fuertes, mediante generación automática aleatoria de las mismas. Además, para mayor conveniencia, este servicio presenta una forma de cambiar automáticamente las contraseñas de las cuentas del usuario, en el propio servicio, utilizando el framework Selenium así como otras herramientas de web scraping para logear en las cuentas del usuario y cambiar las contraseñas cuando se desee. En este documento se detalla el proceso de diseño y desarrollo de este sistema. Se analiza el estado de estandarización de las páginas web habituales, considerando el impacto de su diseño en herramientas como esta. Por otro lado, se analizan mecanismos de seguridad se pueden aplicar en el tráfico entre aplicación y servidor web, así como en el almacenaje en base de datos. Tras realizar el análisis y diseño de sendas partes, se procede a la creación de ambas.