Bodo, thanks for your response.  You're right, I wasn't aware of how
session caching is supposed to work.

Is there anyway to optimize the connection overhead (connections from
multiple clients)?  I have been trying to download lots of small files
from an in-house server.  I get very poor throughput since the files are
only about 300 bytes.  Of course when downloading large files (2-8 MB)
I get much better throughput, at least in terms of KB/s.

Thanks again,
Tim

On Tue, 20 Jul 1999, Bodo Moeller wrote:

> Timothy Canfield <[EMAIL PROTECTED]>:
> 
> > I have noticed that much of the overhead of an openssl session is during
> > the connection stage.  Is it possible for me to use only one SSL_session
> > for every connection that which I accept.  This will make it easier to
> > crack a session, right?  Will it also make the connection overhead less?
> 
> Note that client and server have to agree on session reuse -- if a
> client does not ask (by sending a previous session ID in the initial
> hello message), the server cannot force it to continue an old session.
> Also note that each session is specific to a single client (the
> wording of your question sounds as if you may not be aware of this).
> 
> Without session reuse, each new connection needs at least on
> public-key operation, which is quite expensive to do.  You don't
> really have to worry about weakening the encryption by allowing
> session reuse: Even if it's weak cryptography so that brute-forcing
> the session key is possible, the actual encryption keys used for each
> connection in that session are unique to a single connection; they are
> derived from per-connection randomness (sent in clear) and a
> session-wide master secret, which the attacker does not know (512-bit
> public key cryptography is a lot harder to crack than 40-bit symmetric
> cryptography, so no-one will do the former).
>  
> > If this solution makes sense, how do I go about it?  Do I create a new
> > session with SSL_SESSION_new() and then use SSL_set_session() after
> > calling SSL_accept.  How do the fields of this session get filled?  Will
> > this actually save connection overhead?
> 
> Each SSL_CTX structure automatically has a session cache shared by all
> its SSL server structures (i.e. every server generated by calling
> SSL_new).  You have to call SSL_CTX_set_session_id_context first if
> you use client verification, otherwise session reuse will not be
> accepted.  If your program has just one context, any short non-empty
> string is acceptable as argument to SSL_CTX_set_session_id -- see
> s_server.c.
> 
> If your server uses fork(2), then you'll have to use an external
> session cache.  Study the sources of the SSL/TLS implementations for
> Apache to see how this is done.
> ______________________________________________________________________
> OpenSSL Project                                 http://www.openssl.org
> Development Mailing List                       [EMAIL PROTECTED]
> Automated List Manager                           [EMAIL PROTECTED]
> 

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to