1. #1
    Expert éminent sénior

    Avatar de Neckara
    Homme Profil pro
    Étudiant
    Inscrit en
    décembre 2011
    Messages
    6 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : décembre 2011
    Messages : 6 396
    Points : 16 475
    Points
    16 475

    Par défaut Défi : Notez le générateur de mots de passe de Spartacusply

    Bonjour,

    La rubrique sécurité vous propose de noter le générateur de mot de passe de Spartacusply dans le cadre de ce défi.

    N'oubliez pas que 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.

    Participation :


    Citation Envoyé par Spartacusply
    GenerationPassword

    Application web de génération et de test de sécurité de mot de passe, développée à l'occasion du défi sur developpez.com
    Avant tout, une démonstration du fonctionnement de l'application est disponible à cette adresse : http://generationpassword.url.ph


    Informations Générales

    Le site a été développé avec le framework CakePhP.
    On peut dénombrer 2 classes principales dans ce projet se trouvant dans le dossier app/Model :

    • PasswordEntity : classe du password. Contient deux principales méthodes qui sont :
      • generatePassword : Méthode de génération du mot de passe
      • testPassword : Méthode qui va tester le mot de passe

    • ManipulableString : classe qui propose des méthodes de manipulation sur une chaîne de caractère, dans l'objectif de proposer un mot de passe fort

    Les autres classes se trouvant dans app/Model sont :

    • Toolbox : classe servant de "boîte à outils" contenant des méthodes statiques plutôt pratiques
    • Word : Modèle permettant d'accéder à la table words, qui contient l'ensemble des mots des dictionnaires français et anglais
    • CommonPassword : Modèle permettant d'accéder à la table common_passwords contenant les 10 000 pires mots de passe existant (soit les 10 000 mots de passe les plus utilisés). Obtenu sur le site xato.net

    Une API complète de l'application est disponible à cette adresse : http://generationpassword.url.ph/doc


    Comment est généré le mot de passe ?

    Le mot de passe est généré à partir d'une phrase choisi par l'utilisateur. C'est phrase sert de base à la génération du mot de passe.


    Qu'en fait l'algorithme ?


    • Premièrement, il met aléatoirement en majuscule les premières lettres de chaque mot qui compose la phrase
    • Si l'utilisateur a indiqué qu'on devait transformer cette phrase, on remplace aléatoirement des lettres par leur équivalent (ex: a => @, u => µ...) et on met aléatoirement certaines lettres en majuscule
    • Ensuite, il supprime les espaces en les remplacant par des chiffres (qui suivent un ordre logique) et un caractère spécial (ordre non défini)
    • Si le mot de passe est trop petit (c-a-d de longueur inférieure à la longueur minimum requise) des caractères aléatoires sont ajoutés en début et/ou en fin de chaîne jusqu'à ce que celui-ci atteigne la taille requise
    • Enfin, on s'assure que le caractère comporte au minimum un caractère minuscule, majuscule, un chiffre et un caractère spécial. Si ce n'est pas le cas, pour chaque type manquant, on en ajoute aléatoirement un au début ou à la fin du mot de passe déjà créé

    A l'issue de la génération du mot de passe, celui-ci est directement testé.


    Comment est testé le niveau de sécurité d'un mot de passe ?

    La sécurité d'un mot de passe dépend avant tout et surtout de sa longueur. Ainsi un mot de passe de 8 caractères, peut-importe sa composition, sera toujours considéré comme très faible, alors qu'à contrario un mot de passe de plus de 16 caractères sera considéré comme très bon. Un mot de passe est également automatiquement considéré comme très faible si c'est un mot du dictionnaire (français ou anglais), où s'il fait parti des 10 000 passwords les plus utilisés au monde.
    Le niveau de sécurité dépend du temps qu'il faudrait à un ordinateur de bureau actuel (4 coeurs, effectuant 200 000 000 000 de test à la seconde) pour casser le mot de passe par force brute.
    Des conseils sont également affiché à l'utilisateur pour améliorer la qualité de son mot de passe (ajouter un chiffre, allonger sa taille...)
    On dit "chiffrer" pas "crypter" !

    On dit "bibliothèque" pas "librairie" !

    Ma page DVP : http://neckara.developpez.com/

  2. #2
    Membre habitué

    Profil pro
    Inscrit en
    janvier 2003
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2003
    Messages : 65
    Points : 139
    Points
    139

    Par défaut

    Note globale 15.4 / 20

    J'essaye d’être le plus objectif possible, mais ayant soumis moi même soumis une proposition à ce concours c'est relativement délicat pour moi de noter. N’hésitez pas a revenir vers moi ou a censurer si mes notations semblent abusives.
    Question: Suis-je le seul a regarder et noter les sujets ou bien les autres messages ne sont pas visibles?

    fonctionnalités : 3.1 points

    • Les fonctions demandées sont présentes
    • Bon point: Le générateur est vraiment original
    • Bon point: Le test de fiabilité semble original, j'aime les mots de passes les plus utilisés dans le monde
    • Bon point: On peut tester un mot de passe autre que celui généré
    • Dommage: Pas de recherche ou de génération avec dictionnaire
    • Dommage: nécessite un navigateur et un serveur WEB full stack...
    • Dommage: pas d'API


    qualité du code : 3 points

    • A cause du framework Cake (je pense) , je trouve le code est difficilement lisible et compréhensible lorsqu'on ne connait pas Cake. A-t-on besoin d'un truc aussi rigide que ce framework pour un outil aussi simple?
    • Bon point: le code semble de qualité
    • Bon point: Enfin quelqu'un qui gère son code avec un gestionnaire de version!
    • Dommage: Pas de tests unitaires, alors que le framework utilisé favorise cette pratique (les dossiers sont vides)


    commentaire et documentation : 3,7 points

    • Multitude de commentaires
    • Documentation basique comme il se doit dans le readme.md
    • Il y a même une licence !
    • Bonus pour la génération de la documentation


    Il y a **rien** a redire en matière de documentation, cela semble nickel.


    sécurité de l'application : 2.4 points ;

    • Il faut un serveur Web + PHP + serveur SQL a maintenir avec les bons patchs + le framework Cake. Compte tenu du faible nombre de fonctions publiques je pense que toute cette complexité est inutile. La complexité est l'ennemie de la sécurité. Pourquoi besoin d'un base de données pour générer ou tester un mot de passe?


    design et inventivité de l'interface : 3.2 points

    • L'interface est claire est élégante
    • Bon point: Le test de mot de passe indique des conseils pour améliorer


    C'est du tres bon boulot, meme si je dois avouer que j'ai du mal avec le framework:
    Pour un outil aussi simple je m'attendrais a une dizaine de fichiers (un html, un CSS, deux a quatre php ou javascripts, Plus la license et le readme et des tests unitaires), avec du code clair et lisible... Ici il y en a 1103 au total , environ 75 si on retire la documentation et le framework cake. que de complexité!

  3. #3
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    mai 2011
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : mai 2011
    Messages : 1 711
    Points : 3 337
    Points
    3 337

    Par défaut

    Merci pour ton commentaire. Pour répondre à tes interrogations et commentaires, qui sont tous justifiés :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A-t-on besoin d'un truc aussi rigide que ce framework pour un outil aussi simple?
    A mon avis (et ce n'est que mon avis) OUI et mille fois OUI. L'utilisation d'un framework, quel qu'il soit, permet d'avoir une organisation claire, organisée et structurée (modèle MVC tout ça, tout ça) sans se prendre la tête une seule seconde. Et rien que ça, c'est génial (et pour tout le reste aussi quand ça devient un peu plus complexe)

    Au final, en effet mon appli se résume à une dizaine de fichier :



    le reste n'est jamais utilisé. Même s'il est là et qu'il ne pourrait pas l'être, je te l'accorde, mais il fait partie intégrante du framework, et le coût pour moi, c'est 3Mo d'espace disque autant dire NADA.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pourquoi besoin d'un base de données pour générer ou tester un mot de passe?
    Ben pour le coup je t'avoue que y a pas grand chose dedans, c'est vrai, mais faut bien les stocker quelque part les 10 000 mots de passe les pires au monde...

    Ah et oui pour la notation des autres sujets, c'est pas que je voudrai pas le faire, mais étant donné que j"ai participé au concours, je crois que serai bien incapable de mettre la note juste à chacun des projets.
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  4. #4
    Expert éminent sénior

    Avatar de Neckara
    Homme Profil pro
    Étudiant
    Inscrit en
    décembre 2011
    Messages
    6 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : décembre 2011
    Messages : 6 396
    Points : 16 475
    Points
    16 475

    Par défaut

    Bonjour,

    Citation Envoyé par iolco51 Voir le message
    J'essaye d’être le plus objectif possible, mais ayant soumis moi même soumis une proposition à ce concours c'est relativement délicat pour moi de noter. N’hésitez pas a revenir vers moi ou a censurer si mes notations semblent abusives.
    Question: Suis-je le seul a regarder et noter les sujets ou bien les autres messages ne sont pas visibles?
    Pour le moment tu es le seul à voter mais j'ai prévu de m'y mettre ce week-end.
    Ne t'inquiète pas pour tes votes, tu essayes de faire de ton mieux en restant le plus objectif possible.
    Après, tout le monde peut noter, s'ils ne notent pas, ils n'auront pas à se plaindre des résultats quels qu'ils soient.
    On dit "chiffrer" pas "crypter" !

    On dit "bibliothèque" pas "librairie" !

    Ma page DVP : http://neckara.developpez.com/

  5. #5
    Membre habitué

    Profil pro
    Inscrit en
    janvier 2003
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2003
    Messages : 65
    Points : 139
    Points
    139

    Par défaut

    Citation Envoyé par Spartacusply Voir le message
    Merci pour ton commentaire. Pour répondre à tes interrogations et commentaires, qui sont tous justifiés :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A-t-on besoin d'un truc aussi rigide que ce framework pour un outil aussi simple?
    A mon avis (et ce n'est que mon avis) OUI et mille fois OUI. L'utilisation d'un framework, quel qu'il soit, permet d'avoir une organisation claire, organisée et structurée (modèle MVC tout ça, tout ça) sans se prendre la tête une seule seconde. Et rien que ça, c'est génial (et pour tout le reste aussi quand ça devient un peu plus complexe)

    Au final, en effet mon appli se résume à une dizaine de fichier :



    le reste n'est jamais utilisé. Même s'il est là et qu'il ne pourrait pas l'être, je te l'accorde, mais il fait partie intégrante du framework, et le coût pour moi, c'est 3Mo d'espace disque autant dire NADA.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pourquoi besoin d'un base de données pour générer ou tester un mot de passe?
    Ben pour le coup je t'avoue que y a pas grand chose dedans, c'est vrai, mais faut bien les stocker quelque part les 10 000 mots de passe les pires au monde...

    Ah et oui pour la notation des autres sujets, c'est pas que je voudrai pas le faire, mais étant donné que j"ai participé au concours, je crois que serai bien incapable de mettre la note juste à chacun des projets.
    Merci pour ta réponse

    Loic

Discussions similaires

  1. Réponses: 6
    Dernier message: 06/04/2014, 18h58
  2. Réponses: 1
    Dernier message: 14/03/2014, 00h04
  3. Réponses: 1
    Dernier message: 13/03/2014, 23h43
  4. Défi : Notez le générateur de mot de passe de Adrael66
    Par Neckara dans le forum Sécurité
    Réponses: 1
    Dernier message: 05/03/2014, 15h35
  5. Défi : Notez le générateur de mots de passe de iolco51
    Par Neckara dans le forum Sécurité
    Réponses: 1
    Dernier message: 04/03/2014, 18h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo