On Tue, May 20, 2008 at 12:09 AM, Bodo Moeller <[EMAIL PROTECTED]> wrote:
> On Mon, May 19, 2008 at 11:57 PM, Richard Stoughton <[EMAIL PROTECTED]> wrote:
>
>>  - do not mix the PID into the internal entropy pool, and
>
> The OpenSSL PRNG uses the PID twice:
>
> Once it is used as part of the intitial seeding on Unix machines, to
> get some data that might provide a little actual entropy.  This part
> wasn't functional in the Debian version, because the content of each
> and every seed byte was ignored.
>
> But then the PRNG also mixes the PID into the output (via a hash).
> This is why the PID did influence the output bytes on Debian.  The
> point in using the PID here is *not* to collect entropy.  Rather, it
> is to ensure that after a fork() both processes will see different
> random numbers.  Without this feature, many typical Unix-style server
> programs would be utterly broken.

I see.

As far as I can understand the code, the suggested usage pattern for
the RNG would be

 ssleay_rand_bytes(ssleay_rand_add ^ n) with n > 0.

If consecutive calls to ssleay_rand_bytes without intermediate calls
to ssleay_rand_add are allowed, your objection is obviously more than
justified.

>>  - do not mix bits of the given output buffer into the internal entropy pool.
>
>> Note that the second improvement may totally break already broken
>> client software.
>
> Why would it?

Clients that do not call ssleay_rand_add at all would probably get a
random series with even less variance than the debianized one has.

However, I cannot see that the second point would make the correctly
used RNG weaker. Would it?
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to