The point of SSL is to provide (possibly) data integrity (detection of
tampering and validation of the source of the data) and secrecy
services /on the wire/.  The endpoints have always been known to be
points of concern as they must maintain the keys, both private and
symmetric, in their memory space somewhere.

Putting these keys in shared memory arguably reduces overall security,
by bypassing the OS's normal mechanisms of process memory isolation.
This should certainly be an implementation concern, because if your
webserver gets compromised through a buffer overflow, integer
misreflection (overflow or fencepost errors on arrays for example), or
any other remote code execution vulnerability, then the shared memory
is readable.  In practice, this doesn't matter all that much because
it's very likely that the process that's compromised is running in the
same context as the key manager anyway.

The way OpenSSL works, unless it has an ENGINE doing its encryption
work for it, the keys are in accessible memory.  (Unless the ENGINE is
a tamper-resistant/detectant piece of hardware, they keys are going to
be in accessible memory again/as well.)

Also, OpenSSL's memory space is vulnerable to a debugger.  This has
also always been the case.

These are issues that are common to all software SSL/TLS
implementations.  Without adequate OS security, putting encrypted data
on the wire is like putting a deadbolt with an integrated alarm on a
pressboard door, and leaving the windows open.

These are some of the issues that need to be taken into consideration
when deciding whether to allow SSL/TLS connections to be passed back
and forth, not merely allowing SSL/TLS sessions to be resumed (which
implies keeping the session state for some period of time).  Since
UNIX domain sockets can pass file descriptors back and forth, the
ability to pass SSL and SSL_CTX objects back and forth as well might
be useful... but it's not important enough to me for me to code it. :)

-Kyle H

On 10/13/06, [EMAIL PROTECTED]
<[EMAIL PROTECTED]> wrote:
>> Since he's talking about a process that forks, there
>> shouldn't be a problem.
>> He just needs to create a shared mapping in the parent. After
>> the 'fork', the address will still be the same.
>
>However if the program forks and calls exec* then this issue could
>arise.  The title of the thread suggests this ;-)
>
>Cheers,
>Mark

Yeh, you are quite right Mark as when this thread started, I was considering
fork()/exec() scenario. Later the discussion over several other approaches
to the problem were discussed and an attempt to solve the problem by getting
rid of exec() was under consideration.

As far as the application that I am working on is concerned, it already has
a mechanism in place to map the shared memory at exactly the same address in
all the related processes. So no issue withe the address there.

Of course, it will be great to have a feature in OpenSSL implementation
iteslf that will enable SSL session handover / or even session sharing
between multiple related processes. But I am not quite sure if this would
involve any security hazards like session hijacking, that would in fact
defete the purpose of SSL (which is to provide security).

~ Urjit

DISCLAIMER
==========
This e-mail may contain privileged and confidential information which is the
property of Persistent Systems Pvt. 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 Pvt. 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]



--

-Kyle H
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to