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 :

JAVA_Cipher - Stockage clé AES


Sujet :

Sécurité Java

  1. #1
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 30
    Par défaut JAVA_Cipher - Stockage clé AES
    Bonjour,

    Voilà j'ai bien lu le topic sur les bonnes pratiques de cryptage, mais c'est toujours un peu flou.

    Voilà une application doit accéder à une base de données. Le mot de passe d'accès est contenu dans un fichier properties pour éviter de demander ce mot de pass à chaque connexion à la base.
    Seulement le but est de crypter ce mot passe dans le fichier properties, il faut donc le decrypter à chaque connexion.

    En utilisant Cipher et AES il faut stocker la clé sym pour le décryptage.

    Clairement, comment procéder à ce stockage ? Quel est le meilleur moyen ?

    merci d'avance pour vos réponses.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,
    Il n'y a pas de solution miracle sans l'entrée d'un mot de passe par un intervenant humain. Tu pourras crypter ton mot de passe dans le fichier, si la clef est enregistrée en clair, ce cryptage est inutile, si elle est elle même cryptée, il faudra stocker la clef qui a servi à crypter la clef... Bref on tourne en rond.
    De même stocker un mot de passe ou une clef en dur dans le code, n'est jamais une bonne solution car il peut être retrouvé en décompilant ton code... Ceci dit j'ai déjà vu plusieurs appli qui procèdent ainsi, et on la clef en dur dans le code. A toi de voir

  3. #3
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 30
    Par défaut
    Effectivement ça confirme ce que je pensais un peu.
    Merci pour ta réponse

  4. #4
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 30
    Par défaut
    Voilà, j'ai donc choisi une solution...
    Mais je réouvre car je rencontre un léger problème.
    J'utilise AES/CFB/PCKS5Padding, et Base64Encoder/Decoder.

    Tout se passe bien, cryptage/decryptage sauf dans 1 cas,
    source étant un String:
    - cryptage(source)/decryptage(source) = OK
    - cryptage(source)/decryptage(source modifiée) = KO -> normal
    - cryptage(source)/decryptage("a"+source) = KO -> normal
    - cryptage(source)/decryptage(sou+"a"+rce) = KO -> normal
    - cryptage(source)/decryptage(source+"a") = OK -> Anormal !
    - cryptage(source)/decryptage(source+"ab") = KO -> normal

    En résumé, si j'ajoute un char quelconque à la fin de mon message crypté, le decryptage fonctionne quand même et renvoie le bon message en clair.

    Etrange ? ou j'ai raté un épisode.

    Merci

  5. #5
    Invité
    Invité(e)
    Par défaut
    Tu peux nous montrer un exemple, tu ajoutes le "a" à ta chaine en base 64 ? Ca marche juste avec "a" ou avec d'autres caractères ?

  6. #6
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 30
    Par défaut
    J'ai pas le code sous les yeux, mais demain je posterai un exemple si jamais.

    Oui avant d'appeler la methode decrypt(source), je rajoute un caractère quelconque à la chaine cryptée source (n'importe quoi "a", "1", "-", ....)

    Par exemple:
    encrypte("clearText") = mE45d5csslpfosXe1
    decrypte("mE45d5csslpfosXe1j") = "clearText"

    alors que:
    decrypte("mE45d5csslpfosXe1j-") = BadPadding exception

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 11
    Par défaut
    Citation Envoyé par rampageXT Voir le message
    J'ai pas le code sous les yeux, mais demain je posterai un exemple si jamais.

    Oui avant d'appeler la methode decrypt(source), je rajoute un caractère quelconque à la chaine cryptée source (n'importe quoi "a", "1", "-", ....)

    Par exemple:
    encrypte("clearText") = mE45d5csslpfosXe1
    decrypte("mE45d5csslpfosXe1j") = "clearText"

    alors que:
    decrypte("mE45d5csslpfosXe1j-") = BadPadding exception
    Bonjour, j'ai besoin de savoir si vous avez trouvé un moyen de stocker la clé AES.

    Merci.

  8. #8
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Pour stocker un mot de passe, la meilleure des solutions est de stocker l'empreinte numérique (SHA-1 ou MD5) de ton mot de passe.
    Ton utilisateur saisit son mot de passe, tu le hashes et tu compares le résultat du hash avec l'empreinte stockée pour cet utilisateur. Si elle correspond alors le mot de passe est le bon.

    C'est, à ma connaissance, la meilleure façon de procéder pour la gestion des mots de passes car comme l'a dit George7, pour chiffrer il faut aussi un mot de passe et donc on tourne en rond

  9. #9
    Invité
    Invité(e)
    Par défaut
    Si tu veux utiliser ce mot de passe pour te connecter quelque part ou crypter/décrypter par exemple, stocker le hash ne marchera pas
    Il te faut avoir le mot de passe en clair à un moment ou un autre. Donc sans intervention humaine (entrée de mot de passe, ...) il n'existe aucune solution sûre... Comme toujours la question est : de quel niveau de sécurité as tu besoin ? Quel est le risque ?

  10. #10
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Ah oui pour cette utilisation là c'est sûr, il y aura toujours un mot de passe au bout de la chaine ^^

Discussions similaires

  1. Stockage de paramètres unitaires
    Par ovh dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 07/10/2003, 09h07
  2. Standard cryptographique AES et licence d'utilisation
    Par KORTA dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 24/09/2003, 13h33
  3. [Kylix] stockage d'un tableau d'octets dans interbase
    Par georges1001 dans le forum EDI
    Réponses: 1
    Dernier message: 16/09/2003, 14h14
  4. gain stockage olap
    Par colomban dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 15/05/2003, 15h24
  5. [Stockage] Image dans un fichier XML
    Par ovh dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 30/04/2003, 16h21

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