On Sun, Jun 16, 2002 at 04:25:13PM +0200, Shalendra Chhabra wrote:
> In SSL 3.0 Specifications about ClientHello.random It is written
> random_bytes 28 bytes generated by a secure random generator.
> While for ServerHello.random it is written random structure
> generated by the server, but it is not written how this
> ServerHello.random is generated?

I refer to RFC2246, describing TLSv1:

   When generating keys and MAC secrets, the master secret is used as an
   entropy source, and the random values provide unencrypted salt
   material and IVs for exportable ciphers.

   To generate the key material, compute

       key_block = PRF(SecurityParameters.master_secret,
                          "key expansion",
                          SecurityParameters.server_random +
                          SecurityParameters.client_random);

Thus, if I don't misinterprete this section, the master secret (which
is derived from the premaster secret) is the critical part, for which
a cryptographically secure random number should be used. The client
and server random values should be unique to be used for the salt,
so that pseudo random numbers should be good enough.
Therefore it is the client, which must create the premaster secret,
that must provide cryptographically secure random numbers.
(When using DH key exchange, both client and server need additional
cryptographically strong random numbers for the DH algorithm.)

> Also can someone inform what PRNGs are used for generating these
> ClientHello.random and ServerHello.random and to what extent
> they are considered secure? Was there an attack in earlier versions
> of Openssl due to these PRNGs, I heard from somebody long ago something
> like this

It is said, that early versions of Netscape (being a client) did not 
properly take care of the seeding of the PRNG.

With respect to OpenSSL: OpenSSL has its own PRNG to create random numbers
when properly seeded. Seeding is done via /dev/urandom or EGD socket.
Seeding is job of the application, which knows far more about the environment
it is running in.
If you search the openssl-* mailing lists for the terms "PRNG" and "seed"
you will find more answers than you were looking for :-)

Best regards,
        Lutz
-- 
Lutz Jaenicke                             [EMAIL PROTECTED]
http://www.aet.TU-Cottbus.DE/personen/jaenicke/
BTU Cottbus, Allgemeine Elektrotechnik
Universitaetsplatz 3-4, D-03044 Cottbus
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]
  • Random Shalendra Chhabra
    • Lutz Jaenicke

Reply via email to