
Dépôt Ideaslocas
Ce projet vise à aider à la recherche de mots de passe fuités tout en maintenant un haut niveau de confidentialité en utilisant la méthode de k-anonymat.
Pour ce faire, les API de différents services sont utilisées, en envoyant uniquement une partie du hash du mot de passe que nous souhaitons vérifier, par exemple les 5 premiers caractères.
Le projet a besoin de certaines bibliothèques pour fonctionner, pour les installer, utilisez la commande suivante :
pip install -r requirements
Rappelez-vous que Python 3 est requis.
passme.py [FUNC] [ELEMENT] -engine [ENGINE] -api_key [API_KEY]
FUNC : Le type d'élément que vous souhaitez vérifier, il peut s'agir de -h/--hash ou -p/--password
ou -f/--file ou -l/--list ou --help.
ELEMENT : Le "hash", le "mot de passe" ou le nom du fichier contenant une liste de
hash ou de mots de passe séparés par une nouvelle ligne.
ENGINE : Le moteur de fuites que vous souhaitez utiliser, par défaut il utilise HIBP (Have I been PWN).
API_KEY : La clé API nécessaire pour certaines fonctions de certains moteurs.
La fonction principale du projet reçoit le mot de passe hashé, le moteur à utiliser et la clé API.
Selon le moteur reçu, la clé API et le mot de passe hashé seront envoyés à une fonction ou à une autre.
Si vous souhaitez ajouter votre propre moteur ou un moteur qui n'est pas encore implémenté, ajoutez simplement une option supplémentaire ici.
passme_hash(hashed_password, engine="HIBP", api_key="0")
Cette fonction hashe le mot de passe reçu avec SHA-1 et envoie le hash à la fonction passme_hash().
passme_password(password, engine="HIBP", api_key="0")
Cette fonction lit une par une les lignes du fichier reçu pour vérifier chaque mot de passe, en donnant des informations sur le mot de passe reçu et s'il a été filtré ou non.
passme_file(filename, engine="HIBP", api_key="0")
Cette fonction lit une par une les lignes du fichier reçu pour vérifier chaque hash, en donnant des informations sur le hash reçu et s'il a été filtré ou non.
passme_list(filename, engine="HIBP", api_key="0")
La fonction qui gère l'API HIBP (Have i been pwned) envoie les cinq premiers caractères du hash, puis le compare avec le hash complet pour voir si le mot de passe/hash a été fuité.
engine_HIBP(hashed_password, engine, api_key)
Ce projet comprend une série de tests pour vérifier le bon fonctionnement de toutes ses fonctions. Pour cela, la bibliothèque "pytest" a été utilisée. Pour exécuter les tests, installez pytest avec la commande suivante :
pip install pytest
Une fois installé, exécutez simplement la commande "pytest" pour que les tests soient lancés automatiquement. Toute erreur rencontrée sera renvoyée dans le terminal.
Les résultats des tests en laboratoire sont les suivants :
Ce projet est sous licence GNU General Public License - voir le fichier LICENSE pour plus de détails
LE LOGICIEL EST FOURNI "EN L'ÉTAT", SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU IMPLICITE, Y COMPRIS MAIS SANS S'Y LIMITER LES GARANTIES DE QUALITÉ MARCHANDE, D'ADÉQUATION À UN USAGE PARTICULIER ET D'ABSENCE DE CONTREFAÇON. EN AUCUN CAS LES AUTEURS OU TITULAIRES DU DROIT D'AUTEUR NE SERONT RESPONSABLES DE TOUTE RÉCLAMATION, DOMMAGE OU AUTRE RESPONSABILITÉ, QUE CE SOIT DANS LE CADRE D'UNE ACTION CONTRACTUELLE, DÉLICTUELLE OU AUTRE, DÉCOULANT DE, OU EN RELATION AVEC LE LOGICIEL OU SON UTILISATION OU TOUTE AUTRE INTERACTION AVEC LE LOGICIEL.
Ce logiciel n'a pas de processus d'assurance qualité. Ce logiciel est une preuve de concept.
Si vous avez des problèmes, vous pouvez contacter :
[email protected] - Ideas Locas CDCO - Telefónica
Dans de nombreux endroits, il peut être illégal d'installer un logiciel sur un ordinateur qui ne vous appartient pas, sans le consentement du propriétaire. Nous n'approuvons pas l'utilisation d'une preuve de concept à des fins illégales. Pour télécharger ou utiliser notre logiciel de quelque manière que ce soit, vous devez reconnaître et approuver les points suivants :
1 - Vous déclarez que cette preuve de concept sera utilisée exclusivement de manière légale. En cas de doute sur la légalité, consultez un avocat agréé dans la juridiction où vous utiliserez cette preuve de concept.
2 - Vous reconnaissez que l'ordinateur sur lequel le logiciel doit être installé vous appartient ou que vous avez le consentement du propriétaire pour gérer et installer le logiciel dessus.
| Version Python | Hash Fonction | Liste Fonction | Mot de passe Fonction | Hash ALEATOIRE | Mot de passe ALEATOIRE | Commentaire |
|---|
| 3.9 | ✅ | ✅ | ✅ | ✅ | ✅ | |
| 3.8 | ✅ | ✅ | ✅ | ✅ | ✅ | |
| 3.7 | ✅ | ✅ | ✅ | ✅ | ✅ | |
| 3.6 | ✅ | ✅ | ✅ | ✅ | ✅ | |
| 3.5 | ✅ | ✅ | ✅ | ❌ | ❌ | Random.choice n'est pas disponible dans Python 3.5 // Version Python obsolète |