IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Application qui gère les mots de passe en Java


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 135
    Par défaut Application qui gère les mots de passe en Java
    Salut tout le monde

    Je compte développer une application open source en Java qui permet de gérer les mots de passe. l'idée m'est venue à l'esprit pour deux raisons :
    1. J'enregistrais mes passwords dans un fichier texte (caché et portant une fausse extension ! mais bah, je sais quand même que c'est pas sécurisé)
    2. Je veux améliorer mes connaissances en développement et cryptographie.

    Pour ce faire, j'ai besoin d'une base de données, dans laquelle, je vais sauvegarder l'ensemble des mots de passe après les avoir chiffré bien sûr.
    Maintenant, je vous demande, est-ce que l'utilisation des fichiers XML comme support de sauvegarde est acceptable ? puisque je veux que l'application soit portable, donc je ne dois pas utiliser une BD de type client-serveur.



    Merci d'avance.

  2. #2
    Membre émérite Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Par défaut
    Citation Envoyé par khaled_prg Voir le message
    Pour ce faire, j'ai besoin d'une base de données, dans laquelle, je vais sauvegarder l'ensemble des mots de passe après les avoir chiffré bien sûr.
    Maintenant, je vous demande, est-ce que l'utilisation des fichiers XML comme support de sauvegarde est acceptable ? puisque je veux que l'application soit portable, donc je ne dois pas utiliser une BD de type client-serveur.
    Pour une application mono-utilisateur, en stand-alone, des fichiers xml peuvent faire l'affaire.

    Citation Envoyé par khaled_prg Voir le message
    Pour ce faire, j'ai besoin d'une base de données, dans laquelle, je vais sauvegarder l'ensemble des mots de passe après les avoir chiffré bien sûr.
    Pour ce type d'utilisation, penses bien la manière dont vas stocker la clé de chiffrement... ca peut devenir une grosse faille si cela est mal géré!

  3. #3
    Membre éclairé Avatar de nchal
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 512
    Par défaut
    Bonjour,

    Je pense qu'avoir un fichier xml pour stocker tes mots de passe est une idée assez bonne dans l'optique d'approfondir tes connaissance en Java.
    Tu vas pouvoir apprendre à créer et parser un fichier xml, tu peux même t'amuser à faire une petite IHM pour avoir un rendu assez sympa.
    Pour le cryptage, pourquoi pas partir sur du MD5 ? Je m'y connais pas trop en sécurité mais il me semble que c'est le cryptage de base.
    Après tu peux faire ton propre cryptage, le plus simple est de faire un cryptage XOR, c'est à dire tu fais un OU exclusif avec une clef qui tu as défini sur ton mot de passe pour le crypter et tu refais la même chose pour le décrypter (le cryptage XOR est symétrique). Ci joint un lien qui explique ça assez clairement (http://www.primenumbers.net/Renaud/fr/crypto/XOR.htm)

  4. #4
    Membre émérite Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Par défaut
    Citation Envoyé par nchal Voir le message
    Pour le cryptage, pourquoi pas partir sur du MD5 ? Je m'y connais pas trop en sécurité mais il me semble que c'est le cryptage de base.
    MD5 est ce que l'on appel une fonction de hashage, cela signifie notamment que ce n'est pas réversible... Le stockage d'un hash à la place du mot de passe est utiliser pour les systèmes d'authentification. Cela permet de vérifier que le mot de passe de l'utilisateur correspond bien à celui saisi. Cela vient notament du fait que si hash(password1) == hash(password2) alors on peut en déduire que password1 == password2. Il faut pour cela que la fonction de hashage utilisée n'ait qu'un faible taux de collision, c'est à dire un nombre de résultats identiques faibles pour des entrées différentes. Il s'avère que md5 n'est pas vraiment le meilleur pour cela.

    Par contre, comme tu l'as surement compris, une fonction de hashage n'étant pas réversible, tu ne pourras pas récupérer tes mots de passe. dommage. Utilises donc plutot une fonction de chiffrement.


    Citation Envoyé par nchal Voir le message
    Après tu peux faire ton propre cryptage, le plus simple est de faire un cryptage XOR, c'est à dire tu fais un OU exclusif avec une clef qui tu as défini sur ton mot de passe pour le crypter et tu refais la même chose pour le décrypter (le cryptage XOR est symétrique). Ci joint un lien qui explique ça assez clairement (http://www.primenumbers.net/Renaud/fr/crypto/XOR.htm)
    Si tu as envie de découvrir les algos de chiffrements de bases, pourquoi pas recoder le XOR, par contre, il faut que tu saches que celui si n'est pas vraiment robuste. Je t'invites également à ne jamais recoder toi même les algos de chiffrement mais à utiliser des implémentations réputées correctes et sans faille connues (sauf bien sur si tu c'est ton job d'implémenter des algos de chiffrement).

  5. #5
    Membre éclairé Avatar de nchal
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 512
    Par défaut
    Re,

    Effectivement, si le MD5 n'est pas réversible, ça ne va pas être pratique
    Je trouvais mon idée de recoder le XOR, plutôt bonne car c'est également un bon moyen de découvrir des nouvelles choses en Java (opération sur les strings)
    Il est vrai que tu n'as pas expliqué pourquoi tu veux crypter tes mots de passes mais effectivement, si tu refais l'algo, il faut faire attention où tu stocke ta clef, car si elle est lisible par une tierce personne, ton chiffrement tombe à l'eau.

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 135
    Par défaut
    @benratti et @nchal
    Merci beaucoup pour vos remarques pertinentes.

    J'ai discuté hier avec un ami, développeur en Java, il m'a conseillé d'utiliser une base de données SQLite pour stocker les mots de passe, avec la possibilité d'exporter les données sous formats XML, HTML ou TXT. Qu'en pensez-vous ?

    Sinon, y a encore deux grandes questions qui me prennent souvent la tête :
    - La BD SQLite doit être cryptée à tout moment, comment puis-je y connecter et travailler là-dessus ? (Dois-je utiliser une méthode telle que SealedObject ? )
    - Je compte utiliser MD5 pour vérifier l’intégrité de la base lors de l'importation par exemple, et AES pour chiffrer la BD. Maintenant, pour le mode CBC, est-ce que AES l'utilise implicitement ou je peux l'utiliser d'une façon explicite pour renforcer la résistance de l'algo ?



    Merci encore une fois.

  7. #7
    Membre très actif Avatar de Sennad
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 180
    Par défaut
    Salut !

    Pourquoi tu veux crypter ta BDD ?
    C'est le mot de passe qui le sera, pas ta BDD nan ? Ou alors j'ai mal compris ce que tu veux faire.
    Mais pour moi tu as tes mots de passes crypté de stocké dans ta DB, et pour savoir ton mot de passe réel ton appli java va le décrypter.
    Je comprends pas trop pourquoi crypté la DB ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/04/2014, 22h43
  2. Une application qui gère les ordres de missions
    Par okouby dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 29/12/2012, 09h43
  3. Bloquer les IP qui essayent des mots de passe
    Par gilles_906 dans le forum Développement
    Réponses: 15
    Dernier message: 28/11/2012, 10h29
  4. [WS 2003] Un groupe qui a le droit de changer les mots de passes d'un autre groupe
    Par hpavavar dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 22/07/2009, 18h56
  5. Le dossier qui stock les mots de passe
    Par cartonis dans le forum Sécurité
    Réponses: 21
    Dernier message: 17/08/2005, 12h49

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