[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: DIGEST-MD5 and {nonce,cnonce}
On Mon, 25 Oct 1999, Kurt D. Zeilenga wrote:
> At 04:25 PM 10/25/99 +0300, Mihai Ibanescu wrote:
> > Hello
> >
> > Another question. How to generate the nonce and cnonce. The draft
> >says they are implementation dependent, but should have at least 64 bits
> >of entropy. As far as I know as a security issue, the {c,}nonce should be
> >unpredictable. So, I am thinking to compute them as a MD5 hash of a struct
> >timeval returned by gettimeofday. AFAIK, gettimeofday is quite portable
> >(not POSIX, but SVR4 and BSD 4.3 support it), and it's impossible to
> >estimate the exact moment (and when I say exact I mean exact by 1e-6
> >seconds!) when the challenge/response occur. And hashing it should give me
> >the needed entropy.
>
> As noted by others, gettimeofday is not a good source of entropy.
>
> I suggest that we implement routine in -llutil that uses appropriate
> mechanisms (as detected through auto configuration) that return
> the desired about of entropy.
>
> int lutil_entropy( char *buf, int nbtyes )
> /* returns nbytes of entropy in buf. buf must be large
> * enough to hold nbtytes of data. lutil_entropy returns
> * non-zero if unable to fulfill request.
> */
>
> I would recommend we look at other codes and "borrow" from them
> as appropriate.
Okay, I already have seen propositions on some options
(/dev/random, which seems the most reliable, and a PRNG started with a
seed derived from gettimeofday, all of them hashed with MD5 or something
like that). Any other alternatives?
I'd like to implement it.
Thanks,
Misa