Défi : Créez votre propre générateur de mots de passe !
Bonjour,
La rubrique Sécurité vous propose de créer votre propre générateur de mot de passe et d'avoir peut-être la chance de le voir hébergé sur Developpez.com.
Notre partenaire livre, les éditions ENI, offrira aux trois meilleures participations un livre intitulé Ethical Hacking, dont vous pouvez consulter les retours par nos membres.
Les règles sont simples, vous avez jusqu'au 01/03/2014 pour proposer votre générateur de mot de passe sur ce sujet. Vous pouvez participer quelle que soit votre nationalité. Le générateur devra proposer les fonctionnalités suivantes :
- générer un mot de passe avec des options de génération (par exemple : avec ou sans chiffres, avec ou sans caractères spéciaux, entre X et Y caractères, ...) ;
- tester la résistance d'un mot de passe.
Vous pouvez vous inspirer de l'exemple de générateur de mots de passe suivant.
Pour proposer votre générateur, vous devrez fournir :
- un lien URL pour tester votre générateur s'il possède une interface Web ;
- le cas échéant, une version de votre compilateur qui pourra être testée par les lecteurs ;
- les sources de votre générateur (vous pourrez les poster ici) ;
- ainsi qu'une description rapide de votre générateur.
Pour les langages compilés, à défaut de pouvoir fournir une version pour chaque environnement, essayez de rendre vos sources facilement compilables (ex : CMake, Makefile, ...).
Un sujet par générateur sera alors créé par nos soins. Les lecteurs auront ensuite jusqu'au 01/04/2014 pour donner une note sur 20 à votre générateur suivant le barème ci-dessous :
- fonctionnalités : 4 points ;
- qualité du code : 4 points ;
- commentaire et documentation : 4 points ;
- sécurité de l'application : 4 points ;
- design et inventivité de l'interface : 4 points.
Le 02/04/2014, deux classements seront faits :
- un classement regroupant tous les logiciels ayant une interface Web ;
- un classement regroupant tous les logiciels n'ayant pas d'interface Web.
Le meilleur de chaque classement se verra offrir l'un des trois livres par les éditions ENI.
De plus, le logiciel ayant eu la note la plus élevée parmi les logiciels du classement "interface Web" regroupant les conditions listées ci-dessous se retrouvera hébergé dans la rubrique sécurité et son développeur se verra remettre le livre Ethical Hacking publié par les éditions ENI :
- garantit une bonne sécurité selon l'appréciation des juges ;
- facilement intégrable (en PHP/JavaScript/HTML/CSS standard avec un minimum de bibliothèques tierces pour rester indépendant du système).
Juges :
- khayyam90- Responsable portail et développeur du portail de Developpez.com
- MaitrePylos - Responsable Livres de Developpez.com
- manticore - Membre très actif de la rubrique sécurité de Developpez.com.
- Neckara - Rédacteur et Modérateur de la rubrique sécurité de Developpez.com
EDIT :
Le défi est désormais terminé.
Vous pouvez consulter les résultats de ce défi ici.
Vous pouvez voir les 3 générateurs de mots de passe hébergés par nos soins ici.
Protect It! — Intuitive Password Generator
C# : Password Strength Meter
Voici ma participation avec un outil développé en C# : Password Strength Meter.
Cet outil permet de générer un mot de passe personnalisable en choisissant d'utiliser soit des chiffres, des lettres majuscules ou minuscules et même des symboles. Il permet aussi de mesurer la robustesse du mot de passe généré aléatoirement ou saisi par l’utilisateur.
Suivant les options sélectionnées la longueur du mot de passe varie de la valeur minimum de 8 caractères à la valeur maximum de 20 caractères.
Voici un exemple de paramétrage pour calcul un mot de Passe avec 3 Lettres majuscules, 4 Lettres minuscules, 2 Nombres et 3 Symboles.
Soit un mot de passe d’une longueur de 12 caractères. Le résultat obtenu étant le mot de passe : $\mNn]3MsB2%
Concernant le calcul du score de robustesse, je me suis quelque peu inspiré du principe exposé sur le site Yet Another Password Meter. Cependant j’ai opté pour des règles de calcul de détermination de la robustesse du mot de passe différentes. Ce calcul de robustesse n’est pas parfait, ni infaillible. Il a cependant l’avantage de montrer visuellement comment améliorer le mot de passe afin qu’il soit le plus difficilement possible « crackable ».
Les règles sont soit du type « Bonus » , c'est-à-dire qu’elle augmente la valeur de la robustesse, soit du type « Malus » diminuant la valeur de la robustesse.
La valeur maximum de cette robustesse étant 100 et le minimum étant 0.
Deux paramètres peuvent entrer en compte dans le calcul d’une règle. Le paramètre len correspondant à la longueur du mot de passe et le paramètre n correspondant au nombre de caractères trouvés correspondant à la règle.
Voici en exemple le résultat du calcul de robustesse sur le mot de passe : $\mNn]3MsB2%
Pour réaliser cet outil j’ai développé les 2 classes suivantes :
- PasswordGenerator: Génération aléatoire d’un mot de passe.
- PasswordStrengthMeter: Calcul de la robustesse d’un mot de passe.
La classe PasswordGenerator est assez simple. Elle expose juste la méthode Generate(...) permettant de créer un nouveau mot de passe.
La classe PasswordStrengthMeter expose les propriétés suivantes :- Password : Spécifie le mot de passe pour lequel le calcul de robustesse sera effectué.
- Score : Valeur de la robustesse entre 0 et 100.
- Bonus : Valeur du bonus de la robustesse.
- Malus : Valeur du malus de la robustesse.
- Text : Description au format texte de la robustesse.
J'ai posté les sources des 2 classes.
- C# : Génération aléatoire d'un mot de passe.
- C# : Calcul de la robustesse d'un mot de passe
Pour les personnes qui seraient intéressées par cet outil, je prépare une installation Windows que je mettrais à disposition en téléchargement sur mon site.