Abstract
El principal objetivo de este proyecto es analizar la seguridad del gestor de contraseñas KeePassX. Para conseguir este objetivo, se realizará un estudio en base al código fuente de la aplicación, el cual está publicado bajo una licencia abierta. En este proyecto, se realizará una introducción a la aplicación KeePassX y un estudio de la arquitectura de esta. Tras esto, se focalizará en el estudio de los procedimientos que están implementados para la generación de secuencias aleatorias y de las contraseñas, incluyendo los apartados de la generación de ruido, medida de su entropía, generación de la contraseña y procesado. Además, se estudiará las medidas criptográficas de la aplicación, focalizándose en el uso de los algoritmos de cifrado y descifrado para la creación de bases de datos seguras. Finalmente, se aplicarán alteraciones lo menos susceptibles posibles al código fuente para crear vulnerabilidades en KeePassX. En concreto, se alterará la generación de secuencias aleatorias y se sustituirá uno de los algoritmos de cifrado utilizados por la aplicación.---ABSTRACT---The main purpose of this project is to analyse the security of the password manager KeePassX. To achieve this purpose, it will be necessary to study the source code of the program, which is published under an open license. In this project, it will be done an introduction to KeePassX and an analysis of the architecture of the program. In addition, this project will focus on the study of the procedures that are implemented for the generation of random sequences and passwords, including the following aspects: noise generation, entropy measurement, password generation and information processing. Moreover, it will study the cryptographic measures used by KeePassX focusing on the different cypher algorithms used for the creation of secure databases. Finally, this project will resume the different modifications that have been introduced to the source code to create vulnerabilities in KeePassX. Specifically, these modifications will be focused on the generation of random sequences and a substitution of the cypher algorithm used by the program.