[en] The principal objective of this Final Degree Project has been the creation of an open-source secret's manager from the beginning. With a secret manager's implementation created from scratch, it has been looking to meet the needs no present in the current managers, therefore, after analysing the data of the current managers (5 open-source and 3 commercial), some interesting additional functionalities have been added. As a benefit of this initial analysis, I decided to perform a polyvalent secret's manager, in other words, a manager able to be used by many different departments, with the allowance to store more than passwords and, the more significant in this project; orientating its functionality to the use that the work's team do in it, with the flexibly requirements and granularity that something like this demand in terms of access privileges of each user to the stored secrets. The application has been developed using Python along with Django's framework, and the encryption system used it has been PGP; more precisely, the implementation offered by GPG has been used, defined by the standard RFC-4880. The tool design has been based in a centralised approach with a classic client/server architecture that consists of two applications. The functionality of the server is exposed by an API REST with the integration of multiple instances of the client application. In terms of the server side application, the design corresponds of a classic web application where it should be noted some added distinguishing elements that provide high value and utility to the application such as the authentication of clients using asymmetric cryptography, inclusion of a caching layer based on the database Key-value Redis, integration with the asynchronous Celery task's service, integration with third party APIs, Sentry use as an error detection system, etc. As a final result it has been obtained the application MrSecrets, a new secret's manager who improves the previously analysed projects and, in base to the specific requirements of my director Carlos' company, it has been used to replace the current tool allowing its application in a real environment. In addition, it has been validated in collaboration with the same company and it will be published in GitHub under a free licence, specifically the GPL licence, making it available to any entity with the need of a polyvalent Secret's Manager who based their encryption in GPG and has been specialised offering a high level of granularity when assigning permissions as well as in the groups management, having one more extra option.

[es] El objetivo principal de este Trabajo Fin de Grado ha sido la creación de un gestor de secretos open-source desde cero, tratando de solventar las carencias de los gestores más relevantes, añadiendo nuevas funcionalidades interesantes descubiertas tras el análisis de los mismos (5 open-source y 3 comerciales). Fruto de este análisis inicial, he decidido llevar a cabo el desarrollo de un gestor de secretos polivalente, es decir, que pueda ser utilizado por diversidad de departamentos, que permita almacenar más que contraseñas y, lo más importante en este proyecto; orientando su funcionalidad al uso que hacen los equipos de trabajo del mismo, con los requisitos de flexibilidad y granularidad que algo así exige en cuanto a los privilegios de acceso de cada usuario a los secretos almacenados. La aplicación se ha desarrollado utilizando Python junto con el framework Django y el sistema de cifrado empleado ha sido PGP, en concreto se ha utilizado la implementación que ofrece GPG, definido bajo el estándar RFC-4880. El diseño de la herramienta se ha basado en un enfoque centralizado con una arquitectura cliente/servidor clásica compuesta por dos aplicaciones. La funcionalidad del servidor queda expuesta mediante un API REST con la que se integran las múltiples instancias de la aplicación cliente. En lo que se refiere a la aplicación del lado servidor, el diseño se corresponde con el de una aplicación web clásica en la que cabe destacar nuevas características como la autenticación de clientes usando criptografía asimétrica, inclusión de una capa de caché basada en la base de datos clave-valor de alto rendimiento Redis, integración con el servicio de tareas asíncronas Celery, integración con APIs de terceros, uso de Sentry como sistema de detección de errores, etc. Como resultado final se ha obtenido la aplicación MrSecrets, un nuevo gestor de secretos que mejora los proyectos previamente analizados y, que gracias a las necesidades de la empresa de mi director Carlos, se ha utilizado para reemplazar la herramienta actual permitiendo su aplicación en un entorno real. Además, ha sido validado en colaboración con la misma empresa y será publicado en GitHub bajo una licencia libre, en concreto la licencia GPL, para que cualquier entidad que necesite un gestor de secretos polivalente que base su cifrado en GPG y se especialice en ofrecer un gran nivel de granularidad a la hora de asignar permisos así como en la gestión de grupos, tenga una opción más a su disposición.