
Générateur de mots de passe par grammaire hors contexte probabiliste (PCFG)
PCFG = Grammaire Probabiliste Hors Contexte
PCFG = Guesseur Flou Assez Cool
En bref : Un ensemble d'outils pour mener des recherches sur la manière dont les humains génèrent des mots de passe. Ceux-ci peuvent être utilisés pour casser des hachages de mots de passe, mais aussi pour créer des mots de passe synthétiques (honeywords), ou aider à développer de meilleurs algorithmes de force des mots de passe.
Entraîneur : 4.4
Guesseur : 4.6
PRINCE_LING : 4.3
Scoreur de mots de passe : 4.4
Sphinx est utilisé pour créer dynamiquement un Guide du développeur basé sur les docstrings dans le code. Pour construire le Guide du développeur, reportez-vous aux instructions dans /doc/INSTRUCTIONS.rst
Un PDF pré-construit du Guide du développeur peut également être trouvé dans /doc/build/latex/pcfgdevelopersguide.pdf. Notez que je ne vais pas reconstruire ce guide entre les versions majeures pour garder l'historique git plus propre. Autrement dit, commiter des PDF devient très vite désordonné. Cela signifie que le guide pré-construit peut être légèrement obsolète, donc si vous l'utilisez pour vous aider à écrire/modifier du code, il est recommandé de construire le guide vous-même plutôt que d'utiliser le guide pré-construit.
Ce projet utilise l'apprentissage automatique pour identifier les habitudes de création de mots de passe des utilisateurs. Un modèle PCFG est généré en s'entraînant sur une liste de mots de passe divulgués en clair/cassés. Dans le contexte de ce projet, le modèle est appelé un ensemble de règles et contient de nombreuses parties différentes des mots de passe identifiées lors de l'entraînement, ainsi que leurs probabilités associées. Ce stemming peut être utile pour d'autres outils de cassage tels que PRINCE, et/ou des parties de l'ensemble de règles peuvent être directement incorporées dans des attaques par dictionnaire plus traditionnelles. Ce projet inclut également un générateur de suppositions PCFG qui utilise cet ensemble de règles pour générer des suppositions de mots de passe dans l'ordre de probabilité. C'est beaucoup plus puissant que les attaques par dictionnaire standard, et lors des tests, il s'est avéré capable de casser des mots de passe en moyenne avec significativement moins de suppositions que d'autres méthodes disponibles publiquement. L'inconvénient est que générer des suppositions dans l'ordre de probabilité est lent, ce qui signifie qu'il crée en moyenne 50 à 100k suppositions par seconde, alors que les algorithmes basés sur GPU peuvent créer des millions à des milliards (et plus) de suppositions par seconde contre des algorithmes de hachage rapides. Par conséquent, le guesseur PCFG est mieux utilisé contre de grands nombres de hachages salés, ou d'autres algorithmes de hachage lents, où le coût de performance de l'algorithme est compensé par la précision des suppositions.
pip3 install chardet