Date: Thu, 24 Aug 2000 02:57:39 -0700 From: D M P <dmp@aracnet.com> To: "Andresen,Jason R." <jandrese@mitre.org> Cc: Chris Fedde <chris@fedde.littleton.co.us>, freebsd-questions@FreeBSD.ORG Subject: Re: More questions about passwords [Was: Re: Encrypting a password for insertion using chpass(1)?] Message-ID: <39A4F193.9BE6005E@aracnet.com> References: <200008210537.e7L5bNj25784@fedde.littleton.co.us> <39A36B63.7A5292F9@aracnet.com> <39A3CA70.7F871682@mitre.org>
next in thread | previous in thread | raw e-mail | index | archive | help
"Andresen,Jason R." wrote: > D M P wrote: > > Assuming that I am right, logic follows that if I generated a eight > > random characters to use instead, that it would still work, and the > > cleartext wouldn't be seen in the cypher. My question is, how do I > > input those characters? Is that the salt I pass to perl's crypt()? > > Can it be any 64-bit value, or does it have to be comprised of the > > 64 characters mentioned in crypt(3)? > > > > Yes, those characters are the salt, and they can be anything you want > them to be. Ahh... good. I'm not very clear on the size of the salt value though. In perl, how many bits does the salt value have to be? Above I just assumed it was 64-bits, based on the password file having eight characters of salt, but crypt(3) says those characters are just 6 bits long, and my perl book says its crypt() uses a salt of just 2 characters. > By the way, one thing that is important is to get a truely random salt > value, since pseudorandom salt values are easier to crack. This is not > easy on a computer, rand() and even random() are not up to the task, and > the Camel book's suggestion is terrible (they use the first few bytes of > ps output piped to gzip, which is always the gzip magic number!). > Generally people try something like two random bytes in the current > system time munged with ps output compressed with gzip. Anyone know where I can get a geiger counter and some Cesium-137? ;) I was thinking of something less complicated. Get the password, crypt it with itself as the salt, then take the part of the result after the third $ and it as the salt in a second crypt to produce the actual string to stick in the password file. Not random by a long shot, but in this particular case, the extra work in gather random data is something of an exercise in futility. As far as truly random salts go, a few lines of perl code could retrieve an arbitrary number of bits from Hotbits... $nbytes = 8 #Number of bytes to get, 2048 max. $socket = IO::Socket::INET->new(www.fourmilab.ch:80); print $socket "GET /cgi-bin/uncgi/Hotbits?nbytes=", "$nbytes", "&fmt=bin\n"; $saltval = <$socket> But I'm not sure what John Walker (the creator of Hotbits) would think if this went into use. -- "Human beings, who are almost unique in having the ability to learn from the experience of others, are also remarkable for their apparent disinclination to do so." - Douglas Adams dmp@{aracnet|coffeylabs).com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?39A4F193.9BE6005E>