Re: ***SPAM*** Re: [Obm] Configuration de la période de jours travaillés dans le module "Gestion des temps"

Thomas Cataldo thomas.cataldo at aliasource.fr
Mon Sep 8 23:53:27 CEST 2008


2008/9/8 dabfus <dabfus at dabfus.net>:
>
>
> 2008/9/8 dabfus <dabfus at dabfus.net>
>>
>> Le 8 septembre 2008 14:38, Thomas Cataldo <thomas.cataldo at aliasource.fr> a
>> écrit :
>>>
>>> Oui, le mode crypt est mal supporté par obm-sync (il y a bcp de
>>> variantes de crypt en fait...) : il vous faut soit utiliser des mots de
>>> passe en PLAIN (en clair), soit basculer obm-sync en authentification
>>> LDAP.
>>>
>>>
>>>
>>
>> OK en texte clair ce serait une régression, il va donc falloir se plonger
>> dans le LDAP !
>> Pour ma gouverne, le mode crypt c'est la version historique Unix DES qui
>> est supporté ?
>
> Ok donc sur une GNU / Linux récente en utilisant une classe MD5Crypt (mode
> de fonctionnement Crypt type *BSD et GNU /Linux) à la place de la classe
> UnixCrypt cela fonctionne bien (il faut juste gérer le salt, UserHome.java)
> :
>                         String pass_type;
>                         String pass;
>                         String salt;
>                         if (rs.next()) {
>                                         pass_type =
> rs.getString(1).toLowerCase();
>                                         pass = rs.getString(2);
>                                 if (pass_type.equals("crypt")) {
>                                         salt = pass.substring(0,11);
>                                         ret =
> pass.equals(MD5Crypt.crypt(password, salt));
>                                 } else if (pass_type.equals("md5sum") ) {
>                                         ret =
> pass.equals(Helper.getMD5Diggest(password));
>                                 } else {
>                                         ret = pass.equals(password);
>                                 }
>                         }

En fait un fonctionnement réellement correct serait d'appliquer ça :

      The glibc2 version of this function supports additional
encryption algorithms.

       If salt is a character string starting with the characters
"$id$" followed by a string terminated by "$":

              $id$salt$encrypted

       then  instead  of using the DES machine, id identifies the
encryption method used and this then determines how the rest of the
password
       string is interpreted.  The following values of id are supported:

              ID  | Method
              ---------------------------------------------------------
              1   | MD5
              2a  | Blowfish (not in mainline glibc; added in some
                  | Linux distributions)
              5   | SHA-256 (since glibc 2.7)
              6   | SHA-512 (since glibc 2.7)

       So $5$salt$encrypted is an SHA-256 encoded password and
$6$salt$encrypted is an SHA-512 encoded one.

       "salt" stands for the up to 16 characters following "$id$" in
the salt.  The encrypted part of the password string is the  actual
com‐
       puted password.  The size of this string is fixed:

       MD5     | 22 characters
       SHA-256 | 43 characters
       SHA-512 | 86 characters

       The characters in "salt" and "encrypted" are drawn from the set
[a–zA–Z0–9./].  In the SHA implementation the entire key is
significant
       (instead of only the first 8 bytes in MD5).

Normalement ça serait compatible avec php qui utilise l'appel crypt de
la libc, mais ma préférence reste l'utilisation du PLAIN en bd et
d'authentifier sur le ldap.

>
> mais le comble (cf. thread) c'est que j'ai toujours mon décallage de deux
> heures, même avec le timezone de MySQl correct :)

Etes vous sur que les timezones des clients et du serveur sont bien
Europe/Paris ? les dates dans les logs de tomcat sont elles ok ? (par
exemple sur la ligne de log getSync(user, date))


More information about the Obm mailing list