At 07:05 PM 1/12/2005 +0100, Peter Sylvester writeth:
>
>The first thing is to make the dll's it stdcall friendly. :-)
>(at least that the state of the art 3 years ago?)

Well, stdcall-friendly is not necessary for COM.  I was thinking a nice
wrapper DLL that implemented a COM server and made the appropriate calls
into the real DLLs would be sufficient.  I'm just much more concerned about
the security implications in terms of the OS (particularly secured user
environments) and IE's ActiveX and Active Scripting interfaces provide that
might open a serious security loophole if an appropriate IDispatch-derived
interface were implemented in the name of making VB usable with OpenSSL.

As it is, I suspect developers already make a C++ ActiveX/COM wrapper for
whatever functions they need and call it from their VB program (I know a
lot of VB developers do precisely this with other non-VB compliant
libraries, so this is a fairly common practice).  The way they do it,
however, is "security through obscurity" - hackers can't really guess what
the CLSID is that is involved, so the system is secured purely by the way
Windows issues GUIDs.

The problem comes in with a common OpenSSL CLSID.  This opens a huge
loophole and makes it easy to write an Active Script that utilizes the raw
COM object.  Most VB programmers I know can do that.  OpenSSL would have
script kiddies galore overnight.  This is why the topic has to be carefully
discussed.

My recommendation is to use a registry key in HKLM  with a random value and
combine that with another key stored in a file that is randomly generated
at COM server installation.  When the COM server is called, it has to be
"unlocked" with the CLSID and the randomly generated key file data before
it will accept anything else.  This prevents Active Scripting except in
scenarios where Active Scripting allows registry AND file access.  Of
course, in that case, all bets are off.

If anyone has a better solution, I'd like to hear it.  This is about the
third request I've had for a COM interface to OpenSSL.  And with "better
support for C#" requests looming in the distance, a COM server would solve
those requests as well.  In theory COM can be handled cleanly via the
interop handlers .NET provides.

Yeah, I know.  All of this COM talk is going to make everyone here very
ill.  So, I'll stuff a sock in it now and wait for people to comment on
this.  I'd rather not develop it (I have very minimal IDispatch-level
development experience and wouldn't mind knowing more, but to learn on
OpenSSL...), but I will if someone would be willing to help me integrate it
into the build scripts and no one else is capable of handling it (I'm not
_THAT_ familiar with the OpenSSL build process).


Thomas J. Hruska
[EMAIL PROTECTED]

Shining Light Productions
Home of the Nuclear Vision scripting language and ProtoNova web server.
http://www.slproweb.com/

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

Reply via email to