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

  1. #21
    Membre du Club
    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
    Points : 67
    Points
    67
    Par défaut
    Dans un fichier, un enregistrement, que tu chiffre avec le mot de passe maitre choisi par l'utilisateur.
    Excusez-moi, j'ai pas bien saisi l'idée. Je travaille sur une BD SQLite, J'ai créé une table pour les login/passwords/URL, est-ce que je dois créer une autre table pour stocker le mot de passe maitre ?

  2. #22
    Membre éclairé 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 : 29
    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
    Points : 703
    Points
    703
    Par défaut
    Euh oui, c'est dommage de faire une table pour ca, tu pourrais faire un fichier, mais oui.
    Parcontre lui il dois etre Haché pas Chiffré, un hash md5 par exemple
    -----------------------------------------------------------------------------------------
    Don't play with fire if u don't wanna get burn ! Clinton - Fearon
    ____________________________________________________Pensez au

  3. #23
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Tu ne dois stocker nulle part le mot de passe maitre! C'est lui qui protège tout. Il n'est stocké qu'à un seul endroit, dans la tête de ton utilisateur.




    niveau chiffrement, tu as quelque chose de ce style la:

    un truc à protéger + une clé générée-> le truc à stocker dans la base de donnée
    le truc à stocker dans la base de donnée + la clé générée -> le truc à protéger


    Reste à protéger cette clé générée, et en général on fais ça:


    clé générée + mot de passe maitre -> truc à stocker pour récupérer la clé plus tard
    truc stocké + mot de passe maitre -> récupère la clé générée

    par + et -> j'entends: appliquer un algorithme de chiffrement.

  4. #24
    Membre du Club
    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
    Points : 67
    Points
    67
    Par défaut
    Bienvenu Sennad

    Euh oui, c'est dommage de faire une table pour ca, tu pourrais faire un fichier, mais oui.
    T'as raison, mais d'après tous les password manager que j'ai téléchargés , l'utilisateur doit avoir un seul fichier contenant toutes les informations nécessaires pour gérer ses mots de passe.

    @Tchize
    Un grand merci à toi pour l'aide mais franchement, j'ai pas compris grand chose
    ma question est simple : si je stocke ni la clé de chiffrement ni le hachage du mot de passe maitre, comment puis-je vérifier le mot de passe saisi lors de l’authentification ?

  5. #25
    Membre éclairé 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 : 29
    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
    Points : 703
    Points
    703
    Par défaut
    J'avoue ne pas avoir tout compris non plus :/

    Moi ce que je pensai, (je peux me tromper hein !) :

    Admettons que ton mot de pass admin soit "monPwd", tu le hash et tu le stocke en DB.
    Donc de stocké tu as juste une chaine incompréhensible et irréversible.
    Quand tu souhaites vérifier si le pass entré est bon, tu hash le pass entré et du regarde si ce hash correspond bien à celui stocké en db.
    Si hash(passEntré) = hashStoké, alors on peut déduire que passEntré = "monPwd" donc c'est bon.

    Mais apparemment ce n’est pas bon d'après tchize_, peux-tu m'expliquer pk ?
    Je suis d'accord il ne doit être stocké que dans la tête de l'utilisateur, mais le hash lui faut bien le stocké, comme il a dit comment tu fais sinon pour savoir que le pass entré est bon ?
    -----------------------------------------------------------------------------------------
    Don't play with fire if u don't wanna get burn ! Clinton - Fearon
    ____________________________________________________Pensez au

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

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

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

    J'ai essayé de vous suivre les gars et je me demande encore pourquoi vous faîtes si compliqué ? Peut-être n'ai je tout simplement pas compris de le besoin de khaled.

    Je prendrais un fichier xml comme stockage, tout ce qu'il y a de plus con
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <accounts>
        <account>
            <login>user1</login>
            <password>pwd1</password>
        </account>
        <account>
            <login>user2</login>
            <password>pwd2</password>
        </account>
    </accounts>

    Et tu fais un cryptage (XOR ou AES-128 ou autre) de toutes les informations qui sont entre les balises.

    À partir de ça, le seul problème que je vois, c'est le stockage de la clef de cryptage qui est dans le code source de ton appli, donc pas très sécure. Mais on peut très bien imaginer que ta clef de cryptage, c'est un mot, ce mot tu t'en sers comme mot de passe globale, et tu le stocke hacher dans le xml.

    Je dis n'importe quoi, ou c'est cohérent ?
    Si la réponse vous convient, un petit ça encourage.
    Avant tout nouveau post, pensez à : la FAQ, Google et la fonction Recherche
    Si vous devez poster, pensez à: Ecrire en français, la balise [CODE] (#) et surtout

  7. #27
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    Une fonction de hachage n'est pas une méthode de chiffrement pour la simple raison qu'elle ne garantie pas l'unicité entre l'empreinte générée et le message de départ. Pour faire simple, et même si les probabilités sont faible, on peut potentiellement obtenir la même empreinte avec 2 messages différents -> Pas bon pour un mot de passe.

    Après il existe des fonctions que hachage qui sont qualifiées de "robuste" comme SHA-256. Donc j'avoue ne pas être certains de la réponse..

    De ce que j'ai compris de l'idée de @tchize_

    Au moment de la création du mot de passe.

    - L'utilisateur choisie un mot de passe maitre qu'il gardera dans sa tête (on l'appellera MDPM)
    - Ton programme génère une chaine -> Ta clé de chiffrement

    - Tu chiffres ton mot de passe maitre avec cette clé et tu stockes
    - Puis tu chiffres cette clé avec ton mot de passe maitre (c'est un peu le serpent qui se mord la queue)

    - Tu peux ainsi stocker les deux résultats sans crainte car sans le MDPM -> impossible de connaitre réellement la clé de chiffrage,
    - Et sans la clé de chiffrage -> impossible de pirater le MDPM

    Tu te retrouves donc avec 2 token chiffré en Base (ou ailleur) qui ne servent a rien sans le MDPM que seul l'utilisateur connait et qui n'est stocké nulle part.

    Ensuite pour voir si l'utilisateur et bien celui qu'il prêtent être :

    - Tu déchiffres la clé avec le MDP saisie dans ton formulaire
    - Tu déchiffres celui stockée en base avec cette clé
    - Tu compares les deux MDP

    Bon j'espère ne pas avoir dis de conneries

  8. #28
    Membre du Club
    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
    Points : 67
    Points
    67
    Par défaut
    Merci beaucoup Nico pour cette explication, +1
    J'ai essayé de traduire cette explication en schéma, le voici :
    Nom : 26-08-2014 14-34-23.jpg
Affichages : 992
Taille : 81,7 Ko
    Si c'est correcte, où je dois stocker les deux chaines cryptées ? sachant que pour le moment, ma BD SQLite contient une seule table login/password/URL.


    Merci encore une fois.

  9. #29
    Membre éclairé 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 : 29
    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
    Points : 703
    Points
    703
    Par défaut
    Bah alors y'a un truc que je comprends pas moi

    Si tu fais ça comment tu peux vérifier si le pass maitre entré est bon ?
    Pour moi il faut un système d'encryptage ( avec une clé, ce qui permet de crypter et décrypter ) Ca ok.
    Pour faire ça il faut une clé -> OK. Cette clé c'est le pass maitre, OK.
    Mais comment tu sais si le pass maitre entré est bien celui attendu ?

    C'est pour ça que je disais qu'il faillait haché le pass maitre et le stocké. J'ai bien dis haché ! Pas crypter, parce que pour crypter il faut une clef, or la clef c’est justement ce pass maitre.
    Donc pour moi ta un pass maitre haché de stocké quelque part. Quand un user rentre le pass maitre, tu le hash et la tu peux vérifier si les deux hash correspondent.

    Ya un truc que j'ai pas compris avec votre solution peut etre ? :/
    -----------------------------------------------------------------------------------------
    Don't play with fire if u don't wanna get burn ! Clinton - Fearon
    ____________________________________________________Pensez au

  10. #30
    Membre chevronné
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Points : 1 984
    Points
    1 984
    Par défaut
    Euh, je viens de lire cette discussion et attention, pas mal de contre vérités ont été dites. Visiblement, tu n'as pas compris ce que disait tchize, qui est certes un peu compliqué, mais c'est hyper important.

    Pour ce type d'application, en oubliant 2 secondes qu'il s'agit d'un programme "pour s'amuser", il faudrait utiliser une base de données qui gere le cryptage (au risque de casser tes reves, tu vas te prendre la tete pour faire un truc vachement moins bien que ce que propose une base de données digne de ce nom nativement). Bref, l'idée, ce serait de créer une base de données cryptée avec un mot de passe entré par l'utilisateur. Cette clé ne sera stockée nulle part. Ainsi, quand l'utilisateur voudra ouvrir la base, il faudra lui demander son mot de passe et decrypter la base avec. Si ca marche, c'est le bon mot de passe. Sinon, c'est un mauvais mot de passe. Je ne sais pas si SQLite le propose mais en gratuit fichier, il y a aussi H2 qui le fait (c'est sur puisque je l'ai utilisé).
    Il ne faut pas oublier que java est tres facile a decompiler. Si tu stockes le mot de passe de la base, meme crypté, il suffira de 2 minutes à quelqu'un qui sait à peine programmer pour hacker ton application.

    Apres, pour le sport, tu peux t'amuser à crypter les mots de passe avant de les stocker. Mais ca, c'est une autre histoire

    Citation Envoyé par tchize_ Voir le message
    A prévoir après pour n vrai programme :
    Tu dois aussi t'arranger pour que le mot de passe / la clé ne soit jamais transféré vers la swap, donc que la zone mémoire où tu le stock soit non swapable => ce qui est impossible à faire en java à ma connaissance
    Tu dois t'arranger pour que les mots de passe ne puissent pas être intercéptés par un programme qui sauvegarderais le presse papier. Keepass fais ça en machouillant le mot de passe dans tous les sens et en le combinant à des simulations de touches gauche / droite / delete / backspace
    Tu dois t'arranger pour que le mot de passe / les mots de passe disparaissent de la mémoire de ton programme dès que l'on passe en hibernation => impossible en java encore une fois
    je sais qu'on a deja eu un débat la dessus mais franchement, si un programme à acces a ton ordi (à la ram et au presse papier), il peut aussi faire des captures d'ecran (le but du programme étant de stocker des mots de passe, j'imagine qu'il permettra de les visualiser). Bref, je suis pas sur que ces contraintes ont vraiment une utilité.

  11. #31
    Membre du Club
    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
    Points : 67
    Points
    67
    Par défaut
    Bref, l'idée, ce serait de créer une base de données cryptée avec un mot de passe entré par l'utilisateur. Cette clé ne sera stockée nulle part. Ainsi, quand l'utilisateur voudra ouvrir la base, il faudra lui demander son mot de passe et décrypter la base avec. Si ça marche, c'est le bon mot de passe. Sinon, c'est un mauvais mot de passe
    Pfff, c'était mon idée de base mais tous les amis se sont mis d'accord sur le fait que "crypter" la base est un peu compliqué et il ne faut pas jouer avec !!

    Mais supposons qu'on va utiliser une BD cryptée, la question qui se pose est la suivante :
    Si la BD SQLite est cryptée à tout moment, comment peut-on y connecter et travailler là-dessus ?


    Mais comment tu sais si le pass maitre entré est bien celui attendu ?
    D'après ce que j'ai compris, l'utilisateur va taper un mot de passe lors de l'authentification, voici la démarche à suive :
    - Tout d'abord, dans la BD, on a deux choses : le MDPM crypté avec la clé de chiffrement et la clé de chiffrement cryptée avec le MDPM.
    - Soit MDPM2, le mot de passe saisi par le user, on va décrypter la clé de chiffrement avec MDPM2 (on obtient une chaine X)
    - On décrypte le MDPM avec X et on compare MDPM et MDPM2. (je pense que l'idée est un peu claire au niveau du schéma)

  12. #32
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par Sennad Voir le message

    Mais apparemment ce n’est pas bon d'après tchize_, peux-tu m'expliquer pk ?
    Parce que vu que c'est une application locale
    1) je peux entrer dans la base de donnée changer le hash pour mettre le mot de passe que je veux => aucune protection
    2) tu n'as toujours pas résolu le problème de la protection des données.


    On ne parle pas d'une application serveur mais une application locale. Pour reprendre l'exemple de Keepass, la formule utilisée est


    Clé cyptographique pour chiffrer / déchiffre les mots de passes est SHA(SHA(master password)+clé aléatoire sauvée dans le fichier)
    Ce dernier SHA ne quitte jamais mémoire et master password non plus ni SHA(master password)

  13. #33
    Membre du Club
    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
    Points : 67
    Points
    67
    Par défaut
    A monsieur @Tchize
    Clé cyptographique pour chiffrer / déchiffre les mots de passes est SHA(SHA(master password)+clé aléatoire sauvée dans le fichier)
    Ce dernier SHA ne quitte jamais mémoire et master password non plus ni SHA(master password)
    C'est compris mais selon cette équation, si je ne garde pas le hash du mot de passe, comment puis-je vérifier le mot de passe saisi lors de l’authentification ?

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Points : 649
    Points
    649
    Par défaut
    Citation Envoyé par khaled_prg Voir le message
    A monsieur @Tchize

    C'est compris mais selon cette équation, si je ne garde pas le hash du mot de passe, comment puis-je vérifier le mot de passe saisi lors de l’authentification ?
    Je poserais plutôt la question dans l'autre sens : Pourquoi vérifier le mot de passe saisi lors de l’authentification ? Comme il a été dis plus haut, le mot de passe (ou plutot une passe-phrase) doit simplement permettre de récupérer la clé de chiffrement/déchiffrement. Si tu arrives à récupérer la clé de déchiffrement ou de chiffrement, cela te permet d'authentifier ton utilisateur, si ça ne fonctionne pas, cela signifie que l'utilisateur n'est pas authentifié. Pas besoin de hash...

    La question qui vient ensuite est comment stocker la clé de chiffrement: un keystore peut faire l'affaire, et pour récupérer la clé, il faut justement une passphrase... donc cool.

    Après une fois que tu as la clé de chiffrement, ça te permet de déchiffrer ta base de mot de passe (à toi de voir le type de stockage, base de données ou fichier => c'est l'usage que tu dois en faire qui dois le déterminer ! Mettre en place une base de données complexe pour stocker 10 mots de passe, est ce vraiment nécessaire : à toi de répondre).

    Pour la question de chiffrer l'ensemble de la base de données ou simplement les mots de passes, il te faut garantir plusieurs choses :
    * la confidentialité des données : les chiffrements à minima des mots des passe + login peut suffit
    * l'intégrité (pas de modification des données non souhaités) : soit tu chiffres l'ensembles, soit tu passes par un mécanisme de signature, et là tu pourrais utiliser des hash,

  15. #35
    Membre chevronné
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Points : 1 984
    Points
    1 984
    Par défaut
    Citation Envoyé par khaled_prg Voir le message
    Pfff, c'était mon idée de base mais tous les amis se sont mis d'accord sur le fait que "crypter" la base est un peu compliqué et il ne faut pas jouer avec !!
    Je n'ai pas parlé de crypter toi meme la base (ce qui sera plus compliqué) mais plutot d'utiliser une base de données adaptée.
    Par exemple, avec la base de données H2 (qui gere le cryptage), ca donne ca :
    http://www.h2database.com/html/featu...ile_encryption

    Quand tu te connectes à une bdd, tu donnes toujours le login et le mot de passe de l'utilisateur connecté. Si la base de données propose le cryptage, c'est ca qu'elle va utiliser pour décrypter. Si le login/mot de passe est incorrect, elle va renvoyer une erreur.

    Citation Envoyé par khaled_prg Voir le message
    Mais supposons qu'on va utiliser une BD cryptée, la question qui se pose est la suivante :
    Si la BD SQLite est cryptée à tout moment, comment peut-on y connecter et travailler là-dessus ?
    Au lancement de ton programme, tu lui demandes son login mot de passe. Puis tu te connectes à la base avec ceux-ci. Ensuite, 2 cas :
    - Le login/mot de passe est bon : La base de données devient accessible comme si elle n'etait pas cryptée, tu peux faire tes requetes et ce que tu veux.
    - Le login/mot de passe est mauvais : La base de données renvoie une erreur. Tu affiche à l'utilisateur que c'est pas bon et voila.
    A aucun moment, tu n'as besoin de stocker le mot de passe (pas plus que son hash).

    Citation Envoyé par khaled_prg Voir le message
    D'après ce que j'ai compris, l'utilisateur va taper un mot de passe lors de l'authentification, voici la démarche à suive :
    - Tout d'abord, dans la BD, on a deux choses : le MDPM crypté avec la clé de chiffrement et la clé de chiffrement cryptée avec le MDPM.
    - Soit MDPM2, le mot de passe saisi par le user, on va décrypter la clé de chiffrement avec MDPM2 (on obtient une chaine X)
    - On décrypte le MDPM avec X et on compare MDPM et MDPM2. (je pense que l'idée est un peu claire au niveau du schéma)
    Ca permet de faire joujou avec le cryptage mais ca laissera la base de données accessible. Et ca te fait réinventer la roue.

  16. #36
    Membre du Club
    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
    Points : 67
    Points
    67
    Par défaut
    @benratti +1
    La question qui vient ensuite est comment stocker la clé de chiffrement: un keystore peut faire l'affaire, et pour récupérer la clé, il faut justement une passphrase... donc cool.
    Merci, c'est clair, mais comme on a discuté auparavant, je veux utiliser le minimum de fichiers possibles, tous les password manager que j'ai vus n'utilisent qu'un seul fichier crypté (BD, fichier XML ou autre) et je veux faire pareil, donc je pense que la solution de keystore ne m'arrange pas.
    Soit X le cryptage du mot de passe maitre avec la clé de chiffrement, est-ce que je peux sauvegarder X dans ma BD et lors de l'authentification, je déchiffre X avec la clé de chiffrement calculée puis je compare X avec le mot de passe saisi ?

    @hwoarang +1
    Je l'ai jamais utilisé mais elle a l'air intéressante, je vais chercher là dessus puis je reviens, mais avant, y a une petite question qui me prend la tête :
    Si l'utilisateur s'authentifie et il se connecte à la BD avec succès, y aura-t-il une BD déchiffrée sur le disque dur, sur laquelle on fait le travail (insertion, modification, etc) ?

  17. #37
    Membre chevronné
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Points : 1 984
    Points
    1 984
    Par défaut
    Citation Envoyé par khaled_prg Voir le message
    Si l'utilisateur s'authentifie et il se connecte à la BD avec succès, y aura-t-il une BD déchiffrée sur le disque dur, sur laquelle on fait le travail (insertion, modification, etc) ?
    Je ne me suis pas vraiment posé la question. J'ai deja remarqué que la BDD grossissait quand on se connecte mais c'est probablement une simple decompression. Après, pour avoir fait une appli similaire à ce que tu veux faire, je pars pas du principe que le hacker a acces à mon ordi pendant que je l'utilise. Encore une fois, quelque soit le niveau de protection que tu mettras, le but du jeu sera d'afficher les mots de passe à l'utilisateur. Et si on suppose qu'un mouchard est installé, il lui suffira de faire des captures d'ecran. Bref, je pense qu'il faut arreter la protection à un niveau résonnable. Et en ce qui me concerne, si je faisais un mouchard, le minimum qu'il ferait serait des captures d'ecran et capturer des touches clavier...

  18. #38
    Membre chevronné
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Points : 1 984
    Points
    1 984
    Par défaut
    Citation Envoyé par khaled_prg Voir le message
    Je l'ai jamais utilisé mais elle a l'air intéressante, je vais chercher là dessus puis je reviens
    Pour info, pour avoir utilisé les 2 BDD (SQLite et H2), j'ai trouvé SQLite un peu plus rapide pour des requetes équivalentes. Par contre H2 a pas mal de fonction dont ne dispose pas SQLite (parcours des resultsets dans les 2 sens, cryptage de la base, BDD full java). Bref, pour ma part, j'utilise H2 dans mes projets perso.

  19. #39
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    De toute façon, dès qu'on pose la question de sécurité informatique, il faut toujours raisonné en terme "risque acceptable". Jusqu'à quel niveau on veut sécuriser notre application ? Ceci est évidement conditionné par l'utilisation que l'on en fera et du type de donnée que l'on souhaite protéger (on va pas imposer un niveau de sécurité équivalent entre un numéro de carte de crédit et le password de ton site internet favoris).

    Maintenant c'est à toi de déterminer jusqu'où tu es prêt à aller et quel niveau de sécurité tu souhaites mettre en œuvres.

    Encore une fois, quelque soit le niveau de protection que tu mettras, le but du jeu sera d'afficher les mots de passe à l'utilisateur. Et si on suppose qu'un mouchard est installé, il lui suffira de faire des captures d'ecran. Bref, je pense qu'il faut arreter la protection à un niveau résonnable. Et en ce qui me concerne, si je faisais un mouchard, le minimum qu'il ferait serait des captures d'ecran et capturer des touches clavier
    De toute façon si il compte aller aussi loin dans la protection, j'imagine que Java n'est pas vraiment le plus adapté. Il faudra surement choisir un langage plus bas niveau.

  20. #40
    Membre du Club
    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
    Points : 67
    Points
    67
    Par défaut
    Merci les amis, c'était une discussion très intéressante, maintenant, je veux en tirer une conclusion :
    Considérons que l'équation qui permet de générer la clé de chiffrement est celle de @Tchize :
    Clé cyptographique pour chiffrer / déchiffre les mots de passes est SHA(SHA(master password)+clé aléatoire sauvée dans le fichier)
    Soit X le mot de passe maitre crypté avec la clé de chiffrement, est-ce que je peux sauvegarder X dans ma BD et lors de l'authentification, je déchiffre X avec la clé de chiffrement calculée puis je compare X avec le mot de passe saisi ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

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