Has anyone written anything about the problem of using OpenSSL in an untrusted 
environment?  If there is nothing written I would consider studying it and 
sharing the results.

Here's the problem.  Suppose you want to communicate securely with an 
UNTRUSTED party who can authenticate themselves to you.

A concrete example: Alice National Bank wants to transfer some funds to 
customer Bob's digital wallet.  The bank gives Bob a wallet program (linked 
with OpenSSL) that talks to the bank server by SSL.  So the transaction is 
authenticated and secure from third parties who would steal money or find out 
the contents of Bob's transaction.  The problem here is to prevent Bob from 
hacking the wallet by adjusting the wallet program's environment in order to 
get more money than he's supposed to.  (Forget about signed digital money for 
this question).

In the case of OpenSSL, its environment looks vulnerable.  Some obvious holes
for a hostile user that is *NOT* going as far as decompiling the wallet:
 - the environment variable $SSL_CIPHER could be used to specify a weaker
   cipher than the bank wants; 
 - $RANDFILE or /dev/random (or egd) could be replaced with a predictable
   source;
 - whatever else the CONF facility lets the user specify;
 - whatever else someone who studies the code can figure out.

OpenSSL is obviously designed for flexibility and configuration at both ends
of a connection.  Questions:
 - Has anyone cataloged all these untrusted-site-holes?
 - Has anyone added a compile-time option to block them all?
 - Is anyone else interested in untrusted site usage?

Thanks for any thoughts!

Respectfully,
-- 
 Mitchell Perilstein
 [EMAIL PROTECTED]
 www.enetis.net/~mitch
 +1 (605) 574-2367



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

Reply via email to