Défi : Créez votre propre générateur de mots de passe !
Plus que quelques jours pour participer.

Le , par Neckara, Expert éminent sénior
Bonjour,

Le 15 février, la rubrique sécurité vous a proposé 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 meilleurs le livre intitulé Ethical Hacking, qui a déjà été lu par quelques-un de nos membres.



Il ne vous reste que quelques jours pour participer à ce défi ! En effet, vous n'avez que jusqu'au 1er mars pour nous faire parvenir votre participation.

Vous pouvez consulter les détails de ce défi ici.


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de iolco51 iolco51 - Membre habitué https://www.developpez.com
le 26/02/2014 à 10:38
Bonjour,
Merci pour l'idée c'est un concours sympa, n'ayant jamais été moi-meme satisfait de la grosse majorité des générateurs / évaluateurs en ligne.

Du coup j'ai tenté de faire un petit générateur et évaluateur en javascript. Comme je le fais sur mon temps libre, et que j'en ai peu j'ai du revoir mes ambitions a la baisse: pas d'internationalisation, pas de recherche ni de génération depuis dictionnaire, pas de stratégie "customizable". Je pense que je n'aurai pas l'occasion de l'améliorer beaucoup d'ici au 01/03 donc je le poste maintenant.

Utilisable en ligne ici: http://iolco51.free.fr/
Sources sur github: https://github.com/lcoulet/securePassword.Js

  • En langue anglaise seulement pour le moment... Désolé! (facile à changer mais pas encore internationalisé)
  • Le moteur de génération a quelques options: la taille, les sets de caractères, et optionnellement générer des patterns plus facilement mémorisables
  • Le moteur d'évaluation est subjectivement basé sur mon opinion de ce que doit être un bon mot de passe, influencé par les ressources sur le sujet sur le net. Sur bien des points je le trouve meilleur que la plupart que l'on trouve sur le net.
  • Licence permissive Apache 2.0
  • Le choix de javascript: pas de besoin de de processing sur le serveur, pas ou peu de dépendances (Jquery et gauge.coffee pour l'UI seulement, il y aurait i18n si j'avais réalisé l'internationalisation)
  • Il n'y a aucune dépendance envers l'UI, le moteur de génération ou d'évaluation peuvent être utilisés séparément
  • Je ne suis pas codeur Javascript, merci pour votre indulgence si le code ne respecte pas les standards / best practices... C'était aussi l'occasion pour moi de pratiquer un peu ce langage.


Ce que l'outil ne dit pas, c'est qu'un mot de passe dans la plupart des cas doit être mémorisable, et suffisamment long. Selon moi mieux vaut une grande chaine de plusieurs mots qu'un mot de passe complètement cryptique et court, ce que j'ai essayé de représenter dans la partie notation qui me convient pas mal.

Merci encore pour le petit défi.

Loic
Avatar de I_Pnose I_Pnose - Membre chevronné https://www.developpez.com
le 26/02/2014 à 17:21
Voila ma contribution expresse, en C# =P

L'intégralité du code :

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using System;
using System.Web.Security;

namespace PassGenerator
{
    class Program
    {
        static void Main()
        {
            int length, specialCharCount;
            var password = string.Empty;

            if (int.TryParse(Console.ReadLine(), out length) &&
                int.TryParse(Console.ReadLine(), out specialCharCount) &&
                length >= specialCharCount)
            {
                password = Membership.GeneratePassword(length, specialCharCount);
            }

            Console.WriteLine(string.IsNullOrWhiteSpace(password) ? "Paramètres incorrects" : password);
            Console.Read();
        }
    }
}
(Ajouter System.Web.dll aux références du projet pour avoir accès à la classe Membership).

Bon par contre ce n'est pas très userfriendly, je vous l'accorde. Si j'avais eu plus de temps j'aurais participé volontiers à ce défit ^^
Avatar de Aiekick Aiekick - Membre chevronné https://www.developpez.com
le 26/02/2014 à 17:46
Pas besoin de s'embeter a faire des mot de passe les plus compliqués qui soient que vous arriverez jamais a retenir ( d'autant que je compte meme plus le nombre de site, qui vous renvoient par mail votre login et votre mot de passe en clair... ). retenez une phrase et ecrivez la sans les espace et la ponctuation et c'est réglé..
Avatar de smarties smarties - Membre actif https://www.developpez.com
le 26/02/2014 à 21:50
Il y a la librairie vt-password en java qui permet de générer des mots de passe simplement, juste en définissant les règles à respecter... du coup le code devient très clair
Avatar de bytecode bytecode - Membre actif https://www.developpez.com
le 26/02/2014 à 23:07
Bonsoir,
En cherchant des codes sources sur ce sujet j'aurais appris que java script est plus sécurisé pour l'utilisateur plutôt qu'un script cgi c'est évident si on y réfléchis, non ?
Avatar de Spartacusply Spartacusply - Membre expert https://www.developpez.com
le 26/02/2014 à 23:19
J'ai mis à jour mes sources, je pense plus n'y toucher jusqu'au premier mars.

La démo : http://generationpassword.url.ph/
Les sources : https://github.com/ccantet/generationpassword
L'API : http://generationpassword.url.ph/doc

Pour le reste, je vous laisse lire le README
Avatar de thomZz09 thomZz09 - Candidat au Club https://www.developpez.com
le 27/02/2014 à 2:36
Salut,

N'étant aucunement programmeur web, encore moins PHP, j'ai tout de même, pour le plaisir, réaliser le défi en PHP (soyez donc indulgent envers mon code .. :S).

Pour la démo : http://thomzz.110mb.com/Password_Generator

Pour les sources : https://github.com/ThomZz/thomzz.github.io

--------------------------
Infos / Guide de l'utilisateur (^^) :

Projet réaliser en PHP.
Interface : Javascript (JQuery) et CSS3.

Les validations client-side sont en javascript.

Utilisation :

Section options :
(cliquer sur le petit onglet gris pour cacher/décacher)

Occurences minimales :

Spécfier des occurences minimales pour déterminer combien le mot de passe généré contiendra (au minimum) de chaque type de caractère.
Laisser le champ vide ou à 0 simplement si vous ne désirez rien spécifier.

Ne pas utiliser de .. :

Assez explicite, signifie de ne pas prendre les types de caractères spécifié par l'option.

Résultats : (apparaît lorsqu'un mot de passe est généré, juste en dessous du champs "mot de passe généré"

On peut voir le nombre d'occurences de chaques symboles utilisé dans le mot de passe généré.

J'affiche la complexité (complexify.js) pour donner une idée à l'utilisateur du "niveau de sécurité" du mot de passe généré.

Validations :

Le maximum est de 128 caractères, et le minimum est de 8 pour le paramètre "longueur du mot de passe".
Si une valeur supérieure, non numérique ou négative est entrée, le champ prendra soit la valeur minimale, soit la valeur maximale (128 ou 8, selon ce qui est entré).

Le total des "occurences minimales" ne peut dépasser la longueur du mot de passe choisi.

Les champs "occurences minimales" symboles et majuscules seront disabled selon si on coche l'option "Ne pas utiliser" correspondante.
Il seront aussi vidés dans le cas ou il y avait une valeur dedans avant de cocher.

--------------------------

Ça fait pas mal le tour !

Merci
Avatar de Glieunou Glieunou - Nouveau Candidat au Club https://www.developpez.com
le 27/02/2014 à 9:11
Bien que nouveau membre, je n'ai pas pu y résister, voici ma proposition : http://glieunou.com/code/index.php
Avatar de xurei xurei - Membre averti https://www.developpez.com
le 28/02/2014 à 3:08
Voici ma (tardive) contribution : http://www.xurei-design.be/upg/.

Codé en HTML/CSS/JS. Le fichier index est un php mais fonctionne très bien s'il est renommé en html. L'ensemble est utilisable sur n'importe quel serveur Apache sans aucune modification.

Code source : https://github.com/xurei/upg

Le but de ce projet est de proposer une alternative au mot de passe "traditionnel", en le rendant plus facile à retenir tout en restant robuste. Il y a une perte d'entropie si l'on rejette des password trop "compliqués" à mémoriser, ce que j'essaye de prendre en compte lors du test de robustesse.

Pour l'instant, il y a deux modes : classique et prononçable. Le mode prononçable tente de créer des mots de passe plus faciles à prononcer et donc a retenir.

Je travaille sur un troisième mode, inspiré du strip de xkcd Password Strength. Il sera disponible pour le 1er mars.

Niveau sécurité, la robustesse du password est testée en brute force direct, en crack MD5 et SHA-1. D'autres testes peuvent être ajoutés facilement et le seront sans doute).
Avatar de Matkil888 Matkil888 - Membre du Club https://www.developpez.com
le 28/02/2014 à 9:32
Je suis d'accord sur le fait que générer un mot de passe hyper complexe que personne ne peut se souvenir c'est pas utile. Si on peut pas se rappeler du mot de passe de tête, il sera mit dans un vulgaire fichier sur le pc pour faire des copier coller donc vive la sécurité. Et je ne parle pas du fait que l'utilisateur va vite se lasser d'aller chercher son mot de passe dans un fichier pour faire un copier coller chaque fois qu'il en a besoin.

Donc c'est pour celà que je suis plutôt pour le genre de générateur que propose le membre "Spartacusply" à cette addresse http://generationpassword.url.ph/app...oot/index.php/ . Il propose de saisir une phrase que l'on puisse mémoriser facilement et il la rend plus complexe en rajoutant des "." en guise d'espace et quelques chiffres. Ce système est de loin le meilleur pour ce souvenir d'un mot de passe tout en le rendant complexe. (j'ai testé en mettant une de ses phrases générées dans les tests de mot de passe des autres sites qui ont été proposées, et la force de sécurité est maximale)

Donc voilà je ne propose malheureusement rien du tout j'ai vu l'annonce bien trop tard donc je n'ai malheureusement pas le temps de faire quelque chose de bien. J'apporte donc ma contribution en ayant expliqué mon point de vue, qui peut-être sera prit en compte par les modérateurs

Bon courage pour les autres ! et que le meilleur gagne
Contacter le responsable de la rubrique Sécurité