KeepMyPass
Sobre KeepMyPass
KeepMyPass é um sistema de gerenciamento de senhas construído em Python usando integração MySQL com uma interface gráfica de usuário. Foi desenvolvido em June/July, 2020
como um projeto de ciência da computação de grau XII (CBSE). Ele também contém um sistema de gerenciamento de eventos e de gerenciamento de contatos.
Reconhecimento e Certificação
Este projeto foi realizado parcialmente com a ajuda de meu professor de Ciência da Computação da série XII. Ele atende a todos os requisitos do Projeto de Ciência da Computação de Grau XII, 2020-21, e cobre os seguintes conceitos em detalhes elaborados:
- Manipulação de arquivos de dados binários por meio de Python
- Gerenciamento de banco de dados MySQL por meio de integração Python-MySQL usando
mysql.connector
- Criando interfaces gráficas de usuário usando
tkinter
Alguns recursos do aplicativo
Recurso de informação
Botões de ajuda são fornecidos em várias telas para auxiliar o usuário a navegar pelo aplicativo.
Recurso Esqueci a senha
Se um usuário esquecer sua MasterPassword, ele poderá recuperar sua conta perdida usando este recurso.
Recurso de geração de senha
O Secure-Vault contém um gerador de senhas que gera senhas (pseudo)aleatórias.*
(Pseudo) Recursos de segurança
- Arquivos binários incluem registros de dados falsos.*
- Os dados gravados no arquivo binário são criptografados duas vezes.*
- Apenas um usuário pode fazer login por vez.
- Todos os dados são armazenados na base de dados em formato encriptado, sendo desencriptados apenas se o Utilizador desejar visualizá-los.
- As chaves para criptografia/descriptografia são exclusivas para cada usuário.
Recurso de modo de administrador
Usando um Modo Admin protegido por senha, uma pessoa pode pesquisar em todos os User-Vaults de uma só vez.* A pesquisa pode ser usada para pesquisar registros específicos ou todos os registros de um tipo específico.
Notas de rodapé e problemas de segurança
- O projeto é vulnerável à desserialização insegura porque usa o módulo Python
pickle
. - O projeto menciona (em vários lugares) que as senhas geradas são ‘seguras’. Observe que as senhas são pseudorandom , embora um elemento da função de geração de senha use
os.urandom()
. - O recurso Admin-Mode foi adicionado ao projeto apenas para atender aos requisitos definidos pelo CBSE. De forma alguma o recurso deve ser aproveitado. Eu, o desenvolvedor, entendo perfeitamente que ser capaz de acessar todos os dados armazenados e fornecer acesso aos usuários finais é problemático e antiético .
- A técnica de criptografia implementada compreende apenas diferentes mapeamentos de caracteres e cifras ROT, ou seja, nenhum algoritmo de criptografia real foi usado no projeto.
- A inclusão de registros falsos nos arquivos binários não afeta realmente a segurança dos registros de dados reais.
- Criptografar os dados duas vezes não traz nenhum benefício adicional em comparação com criptografá-los apenas uma vez.
- As dicas de tipo foram adicionadas a todas as funções posteriormente.
-
user_checker.py
foi adicionado apenas como um verificador de funcionalidade de back-end. Não foi feito para uso.
Créditos de ilustração
Todas as ilustrações utilizadas no projeto foram retiradas do LastPass e afirmo que de forma alguma posso e utilizarei meu projeto para fins comerciais de qualquer natureza com essas ilustrações.
Correr
Para executar, clone o repositório no seu dispositivo, navegue até a pasta e execute:
Planos futuros
- Corrigir todos os possíveis problemas de segurança e envolvimento de algoritmos reais de criptografia/descriptografia
- Melhorar a interface/design
- Uso de um pacote alternativo para lidar com arquivos binários ou implementação de um método alternativo para armazenar chaves de criptografia/descriptografia
- A senha para o Modo Admin não deve ser codificada no arquivo
- Ramifique o projeto, onde o Modo Admin será removido
- Torne o código mais modular
- Dicas de tipo melhores e mais profissionais