Without a /dev/random device your not cryptographically
secure.  If you fudge it and allow a connection anyway
you are essentially lying to the users - they think it's
secure but it really isn't.

Ted

> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] Behalf Of
> [EMAIL PROTECTED]
> Sent: Saturday, January 12, 2008 7:58 PM
> To: openssl-users@openssl.org
> Subject: RE: Handling missing random number generator
> 
> 
> 
> 
> ---- Original message ----
> >Date: Sat, 12 Jan 2008 03:42:36 -0800
> >From: "Ted Mittelstaedt" <[EMAIL PROTECTED]>  
> 
> >   The easiest way is to have the user install a random
> >   device.  There's ones out there
> >   for Solaris all the way back to version 2.5.1
> >    
> >   However, keep in mind that all but the latest
> >   /dev/random devices out there do
> >   not generate very good random numbers, the newer
> >   ones use the Yarrow engine,
> >   but the very best ones also derive randomness from
> >   the hardware random number
> >   generators on some of the CPUs (ie: the VIA C3
> >   Nehemiah, the Intel 82802
> >   ie x810 chipset) or from devices like the following
> >   SG100:
> >    
> >   http://www.protego.se/sg100_en.htm
> >    
> >   Ted
> 
> Ted,
> Thank you very much for your response.
> I will consider that option. But my question is, what if it is 
> not present, and for whatever reason the user is not willing to 
> add it (or add it immediately). For such situation, I thought of 
> taking help of RAND_write_file() and RAND_load_file() function.
> Without these functions, my SSL_connect just doesn't connect. And 
> I have tested that these functions do make it possible.
> But then, I wanted to use them only as the last option. So I 
> wanted to know how to detect the existence / absence of the 
> random number generator, based on which I would call these functions.
> 
> Do I just test if any of /dev/urandom, /dev/random or 
> /dev/srandom is present? Or is there a better way ?
> 
> Really appreciate your help.
> 
> ~ Urjit
> 
> >
> >     -----Original Message-----
> >     From: [EMAIL PROTECTED]
> >     [mailto:[EMAIL PROTECTED] Behalf
> >     Of Urjit Gokhale
> >     Sent: Monday, January 07, 2008 1:06 AM
> >     To: openssl-users@openssl.org
> >     Subject: Handling missing random number generator
> >
> >     Hello,
> >      
> >     I observed that on few platforms, the random
> >     device is missing. Due to this, the SSL_connect
> >     fails. I would have to use -rand option of
> >     s_client for successful connection.
> >     On such platforms, even my client application
> >     fails due to the missing random number generator
> >     device.
> >     For eg. On my solaris box, my client fails and
> >     truss gives the following output:
> >     =============
> >      0.0999 open("/dev/urandom",
> >     O_RDONLY|O_NONBLOCK|O_NOCTTY) Err#2 ENOENT
> >      0.1003 open("/dev/random",
> >     O_RDONLY|O_NONBLOCK|O_NOCTTY) Err#2 ENOENT
> >      0.1007 open("/dev/srandom",
> >     O_RDONLY|O_NONBLOCK|O_NOCTTY) Err#2 ENOENT
> >      0.1013 so_socket(1, 2, 0, "",
> >     1)                       = 5
> >      0.1018 connect(5, 0xFFBEE3F8, 19,
> >     1)                   Err#2 ENOENT
> >      0.1021
> >     close(5)                                        =
> >     0
> >      0.1025 so_socket(1, 2, 0, "",
> >     1)                       = 5
> >      0.1029 connect(5, 0xFFBEE3F8, 15,
> >     1)                   Err#2 ENOENT
> >      0.1032
> >     close(5)                                        =
> >     0
> >      0.1035 so_socket(1, 2, 0, "",
> >     1)                       = 5
> >      0.1039 connect(5, 0xFFBEE3F8, 15,
> >     1)                   Err#2 ENOENT
> >      0.1041
> >     close(5)                                        =
> >     0
> >      0.1046 so_socket(1, 2, 0, "",
> >     1)                       = 5
> >      0.1050 connect(5, 0xFFBEE3F8, 14,
> >     1)                   Err#2 ENOENT
> >     =============
> >      And then the SSL_connect fails with
> >     SSL_ERROR_SYSCALL and errno set to 2.
> >      
> >     In such cases, I had thought of using
> >     RAND_write_file() followed by RAND_load_file()
> >     just after loading required libraries
> >     (SSL_load_error_strings, SSL_library_init).
> >      
> >     Do you think this is sensible approach? If not,
> >     could you suggest ways to deal with situations
> >     when the random device is missing?
> >     If yes, I have another question. How to detect,
> >     programatically if the random device is missing?
> >     The RAND_write_file() and RAND_load_file() should
> >     be used only if the random device is missing,
> >     right?
> >      
> >     Any help in understanding this is highly
> >     appriciated.
> >      
> >     Thank you,
> >     ~ Urjit
> >
> >     DISCLAIMER ========== This e-mail may contain
> >     privileged and confidential information which is
> >     the property of Persistent Systems Ltd. It is
> >     intended only for the use of the individual or
> >     entity to which it is addressed. If you are not
> >     the intended recipient, you are not authorized to
> >     read, retain, copy, print, distribute or use this
> >     message. If you have received this communication
> >     in error, please notify the sender and delete all
> >     copies of this message. Persistent Systems Ltd.
> >     does not accept any liability for virus infected
> >     mails.
> 
> DISCLAIMER
> ==========
> This e-mail may contain privileged and confidential information 
> which is the property of Persistent Systems Ltd. It is intended 
> only for the use of the individual or entity to which it is 
> addressed. If you are not the intended recipient, you are not 
> authorized to read, retain, copy, print, distribute or use this 
> message. If you have received this communication in error, please 
> notify the sender and delete all copies of this message. 
> Persistent Systems Ltd. does not accept any liability for virus 
> infected mails.
> ______________________________________________________________________
> OpenSSL Project                                 http://www.openssl.org
> User Support Mailing List                    openssl-users@openssl.org
> Automated List Manager                           [EMAIL PROTECTED]
> 
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to