Path: utzoo!attcan!uunet!crdgw1!uakari.primate.wisc.edu!zaphod.mps.ohio-state.edu!caen!uflorida!thedon.cis.ufl.edu!seeger From: seeger@thedon.cis.ufl.edu (F. L. Charles Seeger III) Newsgroups: comp.unix.admin Subject: Re: Is the encrypted password's salt simply random? Message-ID: <27219@uflorida.cis.ufl.EDU> Date: 1 Mar 91 00:28:31 GMT References: <1991Feb27.202424.16444@rigel.econ.uga.edu> Sender: news@uflorida.cis.ufl.EDU Organization: UF CIS Dept Lines: 59 In article <1991Feb27.202424.16444@rigel.econ.uga.edu> glenn@rigel.econ.uga.edu (Glenn F. Leavell) summarizes: |In article <1991Feb26.201846.22584@rigel.econ.uga.edu> I recently wrote: |>I'm using a randomly generated two-character salt from the set [a-zA-Z0-9./], |>and everything seems to be working fine. Here's my question: is this |>the right way to choose the salt - just a random thing? Included as part of the summary: | >The old BSD 4.3 "passwd" program uses | > (void)time(&salt); | > salt = 9 * getpid(); | > saltc[0] = salt & 077; | > saltc[1] = (salt>>6) & 077; | > for (i = 0; i < 2; i++) { | > c = saltc[i] + '.'; | > if (c > '9') | > c += 7; | > if (c > 'Z') | > c += 6; | > saltc[i] = c; | > } | > return(crypt(pwbuf, saltc)); | >which is based on the time of day clock. Note that the salt generated by this code does not depend on the time. The assignment in the second line discards the result of the time() call. The fix that I have seen suggest is to change the assignment operator from "=" to "+=". However, the UCB folks seem to have changed the code more drastically. static char sccsid[] = "@(#)passwd.c 4.42 (Berkeley) 6/19/90"; ... char * getnewpasswd(pw, temp) register struct passwd *pw; char *temp; { register char *p, *t; char buf[_PASSWORD_LEN+1], salt[2], *crypt(), *getpass(); ... /* grab a random printable character that isn't a colon */ (void)srandom((int)time((time_t *)NULL)); #ifdef NEWSALT salt[0] = '_'; to64(&salt[1], (long)(29*25), 4); to64(&salt[5], (long)random(), 4); #else to64(&salt[0], (long)random(), 2); #endif return(crypt(buf, salt)); } Personally, I'm a bit suspicious of NEWSALT and the "&salt[5]". Chuck -- Charles Seeger E301 CSE Building Office: +1 904 392 1508 CIS Department University of Florida Fax: +1 904 392 1220 seeger@ufl.edu Gainesville, FL 32611-2024