Problème SecureRandom et environnement

Problème SecureRandom et environnement - Java - Programmation

Marsh Posté le 28-06-2006 à 08:59:01    

Coucou,
 
Pour une appli web, je génére une chain de connexion automatique à partir des infos cryptées de l'utilisateur. Pour cela j'utilise une classe AutoLoginGenerateur qui contient une méthode encode et une decode en base 64.
J'ai cependant un comportement différent à l'initialisation de ma classe sur 2 serveurs.
 
Le code d'initialisation de la classe :  

Code :
  1. /**
  2.      * @throws NoSuchAlgorithmException
  3.      */
  4.     protected AutoLoginGenerateur() throws Exception {
  5.         SecureRandom sec = new SecureRandom();
  6.  Provider pr = sec.getProvider();
  7.  logging.debug("SecureRandom.getProvider().getInfo() : "+pr.getInfo());
  8.  logging.debug("SecureRandom.getProvider().getName() : "+pr.getName());
  9.  logging.debug("SecureRandom.getProvider().getVersion() : "+pr.getVersion());
  10.         KeyGenerator keyGenerator = null;
  11.  logging.debug("KeyGenerator.getInstance(ALGO)"+ALGO);
  12.         keyGenerator = KeyGenerator.getInstance(ALGO);
  13.  Provider toto = keyGenerator.getProvider();
  14.  logging.debug("Provider.getInfo() : "+toto.getInfo());
  15.  logging.debug("Provider.name() : "+toto.getName());
  16.  logging.debug("Provider.version() : "+toto.getVersion());
  17.  logging.debug("secretKey = keyGenerator.generateKey()" );
  18.      
  19.          SecretKey secretKey =  keyGenerator.generateKey();
  20.         logging.debug("generated secretKey "+secretKey);
  21.         tailleCle = secretKey.getEncoded().length;  
  22.     }
  23.     /**
  24.      * Récupère l'instance unique
  25.      *  
  26.      * @return
  27.      * @throws NoSuchAlgorithmException
  28.      */
  29.     public static AutoLoginGenerateur getInstance() throws Exception {
  30.  logging.debug("AutoLoginGenerateur getInstance() :debut" );
  31.         if (autoLoginGenerateur == null) {
  32.             synchronized (AutoLoginGenerateur.class) {
  33.                 if (autoLoginGenerateur == null) {
  34.                     autoLoginGenerateur = new AutoLoginGenerateur();
  35.                 }
  36.             }
  37.         }
  38.  logging.debug("AutoLoginGenerateur getInstance() :fin" );
  39.         return autoLoginGenerateur;
  40.     }


 
 
log sur le 1er serveur

Code :
  1. serveur 1
  2. 08:45:10,140 DEBUG AutoLoginGenerateur:164 - AutoLoginGenerateur getInstance() :debut
  3. 08:45:10,140 DEBUG AutoLoginGenerateur:164 - SecureRandom.getProvider().getInfo() : SUN (DSA key/parameter generation; DSA signing; SHA-1, MD5 digests; SecureRandom; X.509 certificates; JKS keystore; PKIX CertPathValidator; PKIX CertPathBuilder; LDAP, Collection CertStores)
  4. 08:45:10,140 DEBUG AutoLoginGenerateur:164 - SecureRandom.getProvider().getName() : SUN
  5. 08:45:10,140 DEBUG AutoLoginGenerateur:164 - SecureRandom.getProvider().getVersion() : 1.42
  6. 08:45:10,140 DEBUG AutoLoginGenerateur:164 - KeyGenerator.getInstance(ALGO)DES
  7. 08:45:10,500 DEBUG AutoLoginGenerateur:164 - Provider.getInfo() : SunJCE Provider (implements DES, Triple DES, AES, Blowfish, PBE, Diffie-Hellman, HMAC-MD5, HMAC-SHA1)
  8. 08:45:10,500 DEBUG AutoLoginGenerateur:164 - Provider.name() : SunJCE
  9. 08:45:10,500 DEBUG AutoLoginGenerateur:164 - Provider.version() : 1.42
  10. 08:45:10,500 DEBUG AutoLoginGenerateur:164 - secretKey = keyGenerator.generateKey()
  11. 08:45:10,609 DEBUG AutoLoginGenerateur:164 - generated secretKey com.sun.crypto.provider.DESKey@fffe7cae
  12. 08:45:10,609 DEBUG AutoLoginGenerateur:164 - AutoLoginGenerateur getInstance() :fin


 
logs sur le 2eme serveur

Code :
  1. serveur 2
  2. 08:44:28,421 DEBUG AutoLoginGenerateur:164 - AutoLoginGenerateur getInstance() :debut
  3. 08:44:28,853 DEBUG AutoLoginGenerateur:164 - SecureRandom.getProvider().getInfo() : SUN (DSA key/parameter generation; DSA signing; SHA-1, MD5 digests; SecureRandom; X.509 certificates; JKS keystore; PKIX CertPathValidator; PKIX CertPathBuilder; LDAP, Collection CertStores)
  4. 08:44:28,854 DEBUG AutoLoginGenerateur:164 - KeyGenerator.getInstance(ALGO)DES
  5. 08:44:29,274 DEBUG AutoLoginGenerateur:164 - Provider.getInfo() : SunJCE Provider (implements DES, Triple DES, AES, Blowfish, PBE, Diffie-Hellman, HMAC-MD5, HMAC-SHA1)
  6. 08:44:29,275 DEBUG AutoLoginGenerateur:164 - Provider.name() : SunJCE
  7. 08:44:29,276 DEBUG AutoLoginGenerateur:164 - Provider.version() : 1.42
  8. 08:44:29,277 DEBUG AutoLoginGenerateur:164 - secretKey = keyGenerator.generateKey()


 
sur le 2nd serveur le generateKey part en time out...
les versions des providers sont identiques, meme jvm, là je sèche, est ce que quelqu'un aurait une piste de recherche?
 
 [:prettysmile]

Reply

Marsh Posté le 28-06-2006 à 08:59:01   

Reply

Marsh Posté le 28-06-2006 à 09:00:10    

saluuuuut :hello:
 
[:prettysmile] [:prettysmile]


Message édité par Harkonnen le 28-06-2006 à 09:00:37

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 28-06-2006 à 09:01:46    

hello
 ça fait plaisir de "voir" des têtes connues

Reply

Marsh Posté le 28-06-2006 à 09:42:33    

Piste pour ceux que ça interesseraient : le fichier /dev/random est vide, il semblerait que cela soit donc un problème de génération de nombres aléatoires sur le serveur (milles excuses, je n'avais pas précisé que j'étais sous linux).

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed