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 :

Crypto - Clé de session


Sujet :

Sécurité Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 8
    Par défaut Crypto - Clé de session
    Bonjour à tout le monde

    En tant qu'un débutant dans le domaine crypto, j'ai un problème en manipulant une clé de session.

    En fait, je crypte une msg avec une clé secrete que j'ai créé aléatoirement,
    et crypte la clé secrete avec la clé publique (du serveur) que j'ai récupéré dans un certificat. de côté serveur, je décrypte la clé secrete avec la clé privée du serveur. Mais le problème c'est que je n'arrive pas de récupérer la clé secrete correctement.

    Voici mon code côté client :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    //Cryptage symétrique du msg
    KeyGenerator cleGener = KeyGenerator.getInstance("DES", codeProvider);
    cleGener.init(new SecureRandom());
    SecretKey cle = cleGener.generateKey();
     
    chiffrementSym.init(Cipher.ENCRYPT_MODE, cle);
    byte[] msgInit = msg.getBytes();
    byte[] msgCrypte = chiffrementSym.doFinal(msgInit);
     
    //Crypter la clé secrete avec la clé publique du serveur
    /*c'est probablement ici qui pose problème, mais je ne sais pas comment faire. On m'avez dit que il faut utiliser les byteArrayInputStream et ObjectInputStream au lieu de caster directement la clé serecte en un tableau de byte, j'ai essayé mais je n'arrive pas*/
     
    chiffrementAsym.init(Cipher.ENCRYPT_MODE, clePubliqueServeur);
    byte[] cleSecrete = cle.toString().getBytes();
    byte[] cleSecreteCrypte = chiffrementAsym.doFinal(cle.getEncoded());
     
    //envoyer sur le reseau
    dos.writeInt(cleSecreteCrypte.length);
    dos.flush();
    dos.write(cleSecreteCrypte);
    dos.flush();
    dos.writeInt(msgCrypte.length);
    dos.flush();
    dos.write(msgCrypte);
    dos.flush();
    et le code du serveur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    lon = dis.readInt();
    byte[] cleSecreteRecu = new byte[lon];
    dis.read(cleSecreteRecu);
    lon = dis.readInt();
    byte[] msgRecu = new byte[lon];
    dis.read(msgRecu);
     
    //Décrypter la clé secrete recue par la clé privée du serveur
    chiffrementAsym.init(Cipher.DECRYPT_MODE, clePrivee);
    byte[] cleS = chiffrementAsym.doFinal(cleSecreteRecu);
     
    ByteArrayInputStream bais = new ByteArrayInputStream(cleS);
    ObjectInputStream ois = new ObjectInputStream(bais);
    SecretKey cleSecrete = null;
    try {
            cleSecrete = (SecretKey) ois.readObject();
    } catch (ClassNotFoundException ex) {
            Logger.getLogger(threadGRH_c.class.getName()).log(Level.SEVERE, null, ex);
    }
     
    //Décrypter le msgRecu avec la clé secrete
    chiffrementSym.init(Cipher.DECRYPT_MODE, cleSecrete);
    byte[] msgCli = chiffrementSym.doFinal(msgRecu);
    Est-ce qu'il y a qlq'un qui peut m'aider svp?

    Merci d'avance

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 8
    Par défaut
    il n'y a personne qui sait m'aider?

  3. #3
    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
    Utilise les API standard pour faire du TLS ça ira surement mieux que de coder un truc perso.

Discussions similaires

  1. [Servlets - JSP] Problème de session
    Par the java lover dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 28/11/2011, 09h54
  2. [JSP][session] perte de session et sendRedirect
    Par blaz dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 30/03/2007, 09h32
  3. Réponses: 12
    Dernier message: 24/09/2003, 15h26
  4. [XMLRAD] session
    Par jml dans le forum XMLRAD
    Réponses: 4
    Dernier message: 17/12/2002, 09h24

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