MD5 for password hashes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 7/7/05, Rich Megginson <rmeggins at redhat.com> wrote:
>  Sam Tran wrote: 
>  On 7/7/05, Sam Tran <stlist at gmail.com> wrote:
>  
>  
>  On 7/7/05, Rich Megginson <rmeggins at redhat.com> wrote:
>  
>  
>  Sam Tran wrote:
>  On 7/7/05, Rich Megginson <rmeggins at redhat.com> wrote:
> 
> 
>  Sam Tran wrote:
> 
> 
> 
>  Hi all,
> 
> I compiled FDS from the latest sources.
> 
> I migrated a user entry from OpenLDAP to FDS as a test. For that user
> entry I tried different password hash schemes for the userPassword
> attribute and checked if it was successfully migrated to FDS. Here are
> the results:
> 
> 
> 
>  Did you run this script first -
> http://www.directory.fedora.redhat.com/download/openLDAP2Fedora.pl
> - to
> migrate the data that used MD5 passwords?
> 
> 
> 
>  {CRYPT} --> OK
> (MD5} --> FAILED
> {SMD5} --> FAILED
> {MD5CRYPT} --> OK
> {SHA} --> OK
> {SSHA} --> OK
> 
> I thought that FDS supported MD5 password hash. Did I miss something?
> 
> 
> 
>  Not sure. I would have expected {MD5} to work but not {MD5CRYPT}. See
> above.
> 
> 
> 
>  Thanks in advance.
> 
> Sam
> 
> 
>  You should not need to run this script to do the migration. This
> script just Base64 decodes the userPassword attribute and puts it in
> the form {HASH}xxxxxxxx. FDS apparently understands the Base64 encoded
> version of the password.
> 
> For SHA, SSHA, CRYPT and MD5CRYPT I didn't use this script and the
> migration was successful. For MD5 I tried without and with the script:
> it was unsuccessful in both cases.
> 
>  This is really bizarre, because MD5CRYPT should not work at all - it is not
> supported by FDS. The only thing I can think is that it is interpreting the
> value as clear text.
> 
>  How did you verify that the migration was successful?
> 
>  Sam
> 
>  
>  I simply did a ldapsearch with a binddn:
> ./ldapsearch -h localhost -b "dc=example,dc=com" -D
> "uid=joesmith,ou=people,dc=example,dc=com" -w -
> "objectclass=*"
>  
>  I create a new user in FDS with a password I generated using this python
> module:
> http://www.sabren.net/code/python/crypt/index.php3
> 
> The hash is MD5CRYPT. And it worked.
> 
> Try for yourself.
> 
> Don't forget to prepend {CRYPT} to the generated password.
>  
>  Ah hah.  That's why it works.  But in FDS, {CRYPT} is not the same as MD5
> crypt - FDS crypt uses the old unix crypt that used to be the standard for
> Solaris /etc/passwd and /etc/shadow (and other OSes).
>  
>  dirving, any clues as to why {MD5} doesn't work?
>  

Rich,

I believe that {CRYPT} in FDS or OpenLDAP use the system crypt(3) function.

Please read this pages:
http://www.openldap.org/faq/data/cache/344.html
http://www.openldap.org/faq/data/cache/1041.html

The second page says:
"Newer Unix systems also support other password hash algorithms
including MD5 and DES-based hashing with longer than 8 significant
password characters."

When I do a "man crypt" on my Debian box I have the following:
[snip]
GNU EXTENSION
       The glibc2 version of this function has the following
additional features.  If salt is a character string starting with
       the  three  characters  "$1$"  followed  by at most eight
characters, and optionally terminated by "$", then instead of
       using the DES machine, the glibc crypt function uses an
MD5-based  algorithm,  and  outputs  up  to  34  bytes,  namely
       "$1$<string>$",  where  "<string>"  stands for the up to 8
characters following "$1$" in the salt, followed by 22 bytes
       chosen from the set [a-zA-Z0-9./].  The entire key is
significant here (instead of only the first 8 bytes).
[snip]

The bottom line is that if your system crypt() function supports
MD5-based algorithm, your FDS should support MD5CRYPT. In the
userPassword attribute, you would see {CRYPT}$1<string> for a
"MD5CRYPT" hashed password. I am sorry if I confused you with the
{MD5CRYPT} naming; it is actually a particular type of {CRYPT} hashing
scheme.

Still don't know what {MD5} does not work ...

Thanks.
Sam




[Index of Archives]     [Fedora User Discussion]     [Older Fedora Users]     [Fedora Announce]     [Fedora Package Announce]     [EPEL Announce]     [Fedora News]     [Fedora Cloud]     [Fedora Advisory Board]     [Fedora Education]     [Fedora Security]     [Fedora Scitech]     [Fedora Robotics]     [Fedora Maintainers]     [Fedora Infrastructure]     [Fedora Websites]     [Anaconda Devel]     [Fedora Devel Java]     [Fedora Legacy]     [Fedora Desktop]     [Fedora Fonts]     [ATA RAID]     [Fedora Marketing]     [Fedora Management Tools]     [Fedora Mentors]     [Fedora Package Review]     [Fedora R Devel]     [Fedora PHP Devel]     [Kickstart]     [Fedora Music]     [Fedora Packaging]     [Centos]     [Fedora SELinux]     [Fedora Legal]     [Fedora Kernel]     [Fedora QA]     [Fedora Triage]     [Fedora OCaml]     [Coolkey]     [Virtualization Tools]     [ET Management Tools]     [Yum Users]     [Tux]     [Yosemite News]     [Yosemite Photos]     [Linux Apps]     [Maemo Users]     [Gnome Users]     [KDE Users]     [Fedora Tools]     [Fedora Art]     [Fedora Docs]     [Maemo Users]     [Asterisk PBX]     [Fedora Sparc]     [Fedora Universal Network Connector]     [Fedora ARM]

  Powered by Linux