1. #1
    Expert éminent sénior

    Avatar de Neckara
    Homme Profil pro
    Étudiant
    Inscrit en
    décembre 2011
    Messages
    6 398
    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 398
    Points : 16 478
    Points
    16 478

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

    Bonjour,

    La rubrique sécurité vous propose de noter le générateur de mot de passe de Itchy 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 :

    • Auteur : Itchy
    • Type de projet : Applicatif (Java)
    • Sources : lien
    • Description :

    Citation Envoyé par Itchy
    Bonjour,

    Voila ma contribution. Je suis étudiant en BTS SIO SLAM 1ere année et c'est ma première application en JAVA.

    Code source + jar dans le .rar ici :
    http://gatienboquet.olympe.in/developpez/MyPassword.rar


    C'est relativement simple, 3 options, on coche si on veut inclure des nombres et/ou caractères spéciaux. On peut aussi changer la longueur du mot de passe généré.


    Si vous êtes développeur java, je vous déconseille de regarder le code source
    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 10.7 / 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.

    Tout d'abord c'est une bonne chose d'avoir candidaté avec un premier programme Java, il faut forger pour devenir forgeron et développer pour être (et rester) développeur.

    Je n'ai pas accordé le moindre avantage (ni désavantage) de notation parce que le candidat débute, c'est donc plutôt une bonne note pour une première application... D'autant plus si on considère qu'un peu de documentation, un peu de gestion de configuration, et bien sur un test de robustesse qui teste quelque chose auraient considérablement amélioré cette note.


    fonctionnalités : 1.7 points

    • Les fonctions demandées sont présentes
    • Bon point: On ne peut tester un mot de passe autre que celui généré
    • Dommage: Le test de fiabilité ne donne pas d'indication notée (mis a part le time to crack qui selon moi ne veut presque rien dire... les rainbow tables étant le standard)
    • Dommage: Pas de génération ni de recherche avec dictionnaire
    • Dommage: la limitation du mot de passe a 24 caracteres
    • Grave défaut: Le test de robustesse du mot de passe (bon si >= 5 caracteres, nmauvais si < 5 caracteres) n'est pas pertinent du tout, je dirais même dangereusement indigent
    • Portable grâce a Java (nécessite une JVM), on peut même intégrer la classe de génération dans un serveur JEE


    Je ne un peu moins que la moyenne bien que lesfonctions soient présentes... J'ai hésité à le faire, mais compte tenu du test de robustesse je ne savais pas comment faire autrement.
    Avec un test de robustesse un peu meilleur (et bien séparé de l'UI) la note aurait été bien meilleure.


    qualité du code : 2.2 points

    • Code lisible et facilement compréhensible... des sections pas optimales en Java mais rien de rédhibitoire ni de pénalisant
    • Très mauvais point: Pas de gestion de configuration (Github est gratuit, je ne le répéterai jamais assez)
    • Dommage: Pas de tests (unitaires ou autres, les IDE permettent d'intégrer des tests unitaires naturellement)
    • Bon point: L'UI est bien séparée de la classe de génération ce qui permet la réutilisation. Ce n'est hélas pas vrai pour le test de robustesse (en même temps celui n'a aucun intérêt).
    • On peut considérer que la classe GenPassword avec sa méthode fait office d'API... Cela a le mérite d’être simple




    commentaire et documentation : 1.8 points

    • Suffisamment de commentaires dans le code, mais parfois dispensables
    • La description sur le forum et sur la page est trop laconique, et c'est la seule doc.
    • Peu de documentation des fonctions dans le code (style JsDoc), surtout dans la classe GenPassword qui est l'API du moteur de génération et devrait donc être mieux documentée que la classe d'affichage
    • Pas de de licence
    • Pas de documentation utilisateur


    Ici aussi, un petit minimum de documentation aurait permis une bien meilleure note.

    sécurité de l'application : 3.2 points

    • Il faut un une JVM a tenir a jour. Sinon il n'y a pas de risques considérables en tenant compte que les entrées utilisateur sont limitées, et que de toute façons cela tourne en local



    design et inventivité de l'interface : 1.8 points

    • L'interface est claire mais pas originale
    • Dommage: Pas d'information sur comment construire un bon mot de passe, ni de note indiquant pourquoi c'est bon ou mauvais... En meme temps vu le test il vaut mieux ne pas savoir
    • Dommage, le mot de passe généré n'est pas automatiquement recopié dans le champs pour tester

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    février 2010
    Messages
    739
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2010
    Messages : 739
    Points : 1 035
    Points
    1 035

    Par défaut

    Bonjour,

    Je ne mettrais pas de note, par contre je pense que c'est mauvais au niveau sécurité.

    Car l'utilisation de Random qui est uniquement basé sur la congruence modulaire est assez faible pour la sécurité.
    De plus il n'y a pas tant de seed que ça étant basé sur l'heure système en nanoseconde il est facile de déterminer
    au final une liste de clé probable. Bref une méthode simple d'étude, mais pas du tout adapté pour un usage plus vaste.

    A remplacer d'urgence par un SecureRandom et une génération de seed aléatoire également fournit par un système auxiliaire.
    Le but avec ce type d'algorithme est de produire un résultat non déterministe. Il est recommandé d'utiliser des propriétés matériels
    qu'un attaquant sera incapable de reproduire (ce que l'horloge système n'est pas). Par exemple le bruit de fond enregistré par un microphone
    correctement traité est un bon générateur aléatoire.

    Voici un bon article la dessus :
    http://www.ietf.org/rfc/rfc1750.txt

  4. #4
    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

    Merci pour ce lient intéressant.

    Au risque de paraitre naïf, je ne pense pas que le générateur pseudo-aleatoire ait besoin d'une grande robustesse cryptographique.
    Nous parlons d'un générateur de mot de passes affichés en clair pour un usage ultérieur, il suffit que l'aléas de génération soit suffisamment bon, on ne s'en sert pas pour générer des clés SSL a la volée...
    Pourquoi un seed? On ne génère pas un hash a stocker pour lequel le reverse soit difficile, mais simplement une suggestion de "mot de passe" que l'on va afficher en clair.

    Si l’attaquant connait l'instant auquel on a généré le mot de passe et le générateur exact utilisé avec les paramètres exacts, effectivement il peut retrouver plus facilement le mot de passe.

    Dans la mesure ou le mot de passe est affiche en clair, je pense donc qu'il n'est pas nécessaire d'aller trop loin en cryptographie, la qualité d'une politique de sécurité n'est jamais égale qu'a son maillon faible.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    février 2010
    Messages
    739
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2010
    Messages : 739
    Points : 1 035
    Points
    1 035

    Par défaut

    Dans la mesure ou le mot de passe est affiche en clair, je pense donc qu'il n'est pas nécessaire d'aller trop loin en cryptographie,
    Il n'est pas de la responsabilité du programme de gérer l'usage qu'il est fait du mot de passe, sinon on a jamais fini.

    C'était juste des suggestions pour améliorer la qualité des mots de passe générés et pour que l'ensemble des résultats soit le plus sûr possible et non pas sur un ensemble 'prédictible'. Puisque c'est un critère noté.

Discussions similaires

  1. Réponses: 6
    Dernier message: 06/04/2014, 18h58
  2. Réponses: 4
    Dernier message: 15/03/2014, 23h16
  3. Réponses: 1
    Dernier message: 14/03/2014, 00h04
  4. Réponses: 1
    Dernier message: 13/03/2014, 23h43
  5. 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

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