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

Sécurité Java Discussion :

[Authentification] Une façon sûre de mémoriser un mot de passe ?


Sujet :

Sécurité Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2003
    Messages : 13
    Par défaut [Authentification] Une façon sûre de mémoriser un mot de passe ?
    Bonjour,

    Il serait bien pratique d'inclure, dans mes applications Java, un bouton "Mémoriser mon mot de passe", pour que les usagers ne soient pas obligés d'entrer leurs noms d'utilisateur et mots de passes SQL à chaque utilisation de l'application. Je cherche cependant une façon sécure de mémoriser les mots de passe (et si j'utilise une méthode d'encryption, je dois aussi pouvoir décrypter l'information).

    Je pourrais chercher une façon simple d'encrypter l'information dans un fichier, mais j'ai peur que ce ne soit pas sécuritaire (et les classes java se décompiles trop facilement).

    Il existe, sur la plupars des OS, des systèmes pour mémoriser les mots de passe (comme le "Trousseau d'accès" sur Mac OS X). Y a-t-il un moyen en Java de faire appel à un tel programme, et ce, indépendamment de la plateforme (mes applications peuvent rouler sous Mac OS X, Windows et, moins fréquemment, sous Linux).


    Merci de votre aide,


    François

  2. #2
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Une idée qui me passe par la tête :
    Encapsuler le mot de passe dans un objet que tu "sérialise" dans un fichier, non ?


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  3. #3
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Citation Envoyé par afrikha
    Une idée qui me passe par la tête :
    Encapsuler le mot de passe dans un objet que tu "sérialise" dans un fichier, non ?
    Attention, la sérialisation d'un objet est très loin de "masquer" les attributs d'un objet. Essaye avec un objet d'une classe contenant un simple attribut de type String, sérialise le dans un fichier puis ouvre celui-ci dans un éditeur de texte. Tu verras alors que la chaine de caractères reste "visible".
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2003
    Messages : 13
    Par défaut
    Et justement, je cherche une façon véritablement sécuritaire. J'espèrais ne pas en arriver à une solution maison, car il est trop facile de décompiler l'algorithme de décryption (ou de faire appel a une de mes fonctions à partir d'une autre classe).

    Le problème embêtant, c'est que je partage le logiciel disponible sur notre réseau d'entreprise pour les usagers qui en ont besoin. Alors, pour éviter le piratage, il serait mieux d'utiliser quelque chose de plus fiable pour mémoriser le mot de passe. Si je n'ai pas une solution convenable, je ne permettrai simplement pas la mémorisation du mot de passe. (Ah l'administration système ! )

    Mais enfin, merci pour la suggestion

    D'autres idées ?

  5. #5
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Regarde du coté du package javax.crypto, apparement les fluxs CipherInputStream/CipherOutputStream semble être une piste intéressante.
    Malheureusement je ne connais pas très bien JCE et ne te serais donc pas d'une grande aide là dessus.
    Donc avis aux connaisseurs de JCE, en attendant voici un peu de lecture : Java Cryptography Architecture API Specification and Reference.
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  6. #6
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Citation Envoyé par le y@m's
    Attention, la sérialisation d'un objet est très loin de "masquer" les attributs d'un objet. Essaye avec un objet d'une classe contenant un simple attribut de type String, sérialise le dans un fichier puis ouvre celui-ci dans un éditeur de texte. Tu verras alors que la chaine de caractères reste "visible".
    Effectivement c'était une mauvaise idée ...
    Une autre raison est que l'objet sérialisé pourrait étre désérialisé à partir d'une autre application java, et après un bon coup de réflection et le tour est joué.
    Bref, c'est une très mauvaise idée


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  7. #7
    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
    Regarde du coté de SSO, mais c'est pas evident à mettre en place... je te le dit juste pour information.

  8. #8
    Membre émérite

    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut
    De manière plus globale, tu peux aussi offusquer ton code pour le rendre moins lisible à ceux qui le décompilerait.

    Pour ce qui est du mot de passe en lui même et de le stocker au niveau de l'interface utilisateur, rien ne t'empêche non plus de lui appliquer un cryptage (MD5 par exemple). C'est d'ailleurs la solution propre en web pour passer des mots de passe entre client et serveur, bref c'est pas si mal.

  9. #9
    Membre émérite
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Par défaut
    Je ne suis pas certain que MD5 ne soit pas déchiffrable... Moi je recommanderai DES ou SHA pour être certain que le mot ne passe ne soit pas décryptable.

  10. #10
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    aucun algo de cryto n'est incassable, mais md5 ou sha nécessitent de passer en force brute (de toute façon c'est du hachage et non du crytage pour ces deux là, l'opération est irréversible)

  11. #11
    Membre émérite

    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut
    Sinok, fort belle explication : lorsque j'ai écris mon poste je savais que cryptage n'était pas approprié mais je ne savais plus le mot qu'il fallait mettre lol

    Ceci dit, je vois guère comment mieux protéger qu'une clé de hashage le mot de passe en tant que tel. En effet, il n'y a pas moyen d'intercepter les communication entre la fenêtre et le code il me semble (contrairement à du web), du coup ça limite déjà une bonne partie des risques.

    Ensuite, il me semble qu'on peut très bien accéder au dossier personnel de la personne et y déposer là le bébé, avec les droits correspondant à la personne. Là encore ça renforce la sécurité.

    Après, pour un maximum de sécurité, on doit pouvoir concevoir des algo avec des clés publiques/externes pour complexifier encore la démarche, mais cela requiert un effort supplémentaire et/ou un accès web.

    Bref, le mot de passe haché puis stocké dans un fichier dans le répertoire de l'utilisateur me paraît déjà pas mal. Quelqu'un voit plus ?

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/01/2009, 09h35
  2. Réponses: 2
    Dernier message: 24/11/2008, 13h39
  3. Réponses: 3
    Dernier message: 08/11/2008, 09h23
  4. mémorisation des mots de passe sur l'écran d'accueil
    Par MmoulinexX dans le forum Windows XP
    Réponses: 7
    Dernier message: 11/04/2008, 16h55
  5. Réponses: 0
    Dernier message: 02/08/2007, 14h20

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