SSLeay and SSLapps FAQ

SSLeay and SSLapps FAQ

E A Young eay@mincom.oz.au

T J Hudson tjh@mincom.oz.au

Table of Contents


1. What is this stuff?

SSLeay is a free implementation of Netscape's Secure Socket Layer - the software encryption protocol behind the Netsite Secure Server and the Netscape Browser.

This implementation was coded from scratch using only the publically available documentation of the various protocols by Eric Young eay@mincom.oz.au.

The initial prompting to tackle an SSL implementation, the alpha testing, SSL developer (i.e. Eric) hassling, and documentation was done by Tim Hudson tjh@mincom.oz.au.

This implementation has been used by Tim Hudson tjh@mincom.oz.au to add SSL support to the following:

SSLeay supports the following encryption algorithms:

This documentation is Copyright Tim Hudson (tjh@mincom.oz.au). See the COPYRIGHT file for the usage and redistribution restrictions.

Note: a nicely formatted postscript version of this document is included in the file SSLeay.doc-version.tar.gz (in the same directory as the SSLeay source).


2. Is this legal?

That is one of the hard questions on which there is as yet no clear answer. You need to read quite a bit of information (see the RAMBLINGS file in the SSLeay source distribution) to draw your own conclusions - and then go and talk to a lawyer. Again this document is my opinion and as such should be treated in that light - reality could be quite different to how I see things.

In short:


3. What does it cost?

Nothing. The package itself is free. There are a couple of minor conditions which are outlined clearly in the COPYRIGHT file in the source distribution. In short - attribution is mandatory, and no publically available version of this code can have a different license.


4. Can I use it in a commercial product?

Yes. Free of charge. Read the license carefully (see the COPYRIGHT file in the SSLeay source distribution).


5. What documentation is there?

At present the documentation from a programmer's point of view is fairly light and you really need to work through the same code that is included in the library itself and have a look at how the patches are put together. It is fairly straight forward to add SSL support to an existing application.

Most of the issues that need to be considered if you are going to start using SSL either as an end user or as a developer are covered in the documentation - certainly there needs to be more work done on this documentation; however reading the documentation should answer most questions (and raise quite a few more too).


6. Where is it?

Sources for the library and the applications can be found in the following locations:

ftp.psy.uq.oz.au:/pub/Crypto/SSL - source + documentation
ftp.psy.uq.oz.au:/pub/Crypto/SSLapps - SSL applications
ftp.bond.edu.au:/pub/Crypto/SSLapps - SSL applications

The Programmer's Reference is located at

www.psy.uq.oz.au:/~ftp/Crypto/ - online documentation
www.bond.edu.au:/External/Misc/Crypto/ - online documentation

7. Will Netscape talk to NCSA httpd with your patches?

This (believe it or not) has been the most commonly asked question so far.

The whole dependence on RSA for certificates is because Netscape browsers do not allow the user to configure which Certifying Authorities are trusted and only trust four hardcoded CAs. Netscape has announced (in news postings) that the next release of their browser will support user configurable CA's - however this is of little use until it is available and is in widespread use (which naturally will take a while as it is not yet shipping).

If you consider that this is an issue then you should tell Netscape you want user-configurable CA trust policies immediately.

Note: you can simply use the patches to NCSA Mosaic and then talk to any Netscape secure server or the patched NCSA httpd as you have total control over the CA trust policies in the client (and in the server too). However Netscape have a significant portion of the WWW broswer market so getting their policy changed is important.

So in summary: for the current versions of the Netscape Navigator the answer is rather simple: yes if and only if you have a certificate signed by RSA or Netscape (which cost $US200-$US300).

7.1 Will RSA issue certificates for use with non-Netscape SSL servers

This is really an unknown. If you are inside the USA, and you have linked with the RSAglue (and hence are using "RSA Software") and you are not charging for use of the software (hence you don't come under the commercial license requirements as I interpret it) then you should be able to get a certificate from RSA - as I think that this meets all their license requirements. If you are going to do this then I suggest that you carefully read the license that comes with RSAREF.

Note: like the rest of this document - this is not a legal opinion and is only my view of things.

As soon as I have an official statement from RSA on their views of this issue, I'll update this section of the document. I am interested in feedback from those who contact RSA to see what their actual response is to using SSLeay.

7.2 Can you legally use an existing RSA certificate?

If you already have a certificate from RSA can you (legally) use it with an SSLeay-ized httpd? This may be okay if you have linked with RSAREF. Outside of the USA this isn't an issue as far as I am aware. However if you want the Netscape browser to work in secure mode then you will still need an RSA or Netscape signed certificate for your server.


8. Will NCSA Mosaic talk to Netsite secure servers with your patches?

The patches to Mosaic were done so that there is no checking of the certificate of the server such that Mosaic will connect and work with any of the exising Netsite secure servers without a problem. This however is probably not the policy you should run if you are planning on running credit card transactions - the client should have some form or security verification procedure in place where it checks the server against a trusted list before handing over any important information.

Exactly how the whole certificate management and authorisation process is going to work on a global basis is really unknown at this stage.


9. How can I help with this stuff?

Rather simply put, we need people who are prepared to contribute to the effort under the same conditions that we work (which is simply attribution is mandatory but everything generated is totally free otherwise) so that we have a wider supported set of applications. If you do add SSL support to an application please drop us a line (and the patches if at all possible).

However if you wish to send donations of almost any form, neither of us will say no and it may influence what we work on next and how quickly things are done.

If you have access to a Unix varient that we do not and you are well connected (bandwidth-wise) and don't mind a little extra load then we can speed up the spread of the SSL applications (the library itself is very portable - it's the applications (at the moment) that are significantly less so.

Also join the ssl-users@mincom.oz.au mailing list (send email to ssl-users-request@mincom.oz.au for instructions for using the majordomo varient that manages this list).


10. List of downloadable files

For those who like to drive everything via WWW browsers here is a list of those things you might want to grab - always be aware that this document lags behind what is actually sitting on the ftp servers.

TODO: put some stuff in here once things have slowed down a bit ;-)


11. SSL Programmer Reference

Details (and some repetition of the above stuff) can be found here.


12. Who can I email to if I have problems?

Well, as this in an unpaid effort there is no guarantee of support (you get what you pay for :-); however there is a mailing list which has those people subscribed to it who are interested in SSLeay and it's furthur development.

Join the ssl-users@mincom.oz.au mailing list (send email to ssl-users-request@mincom.oz.au for instructions for using the majordomo varient that manages this list).


13. How do I contact Eric and Tim?

Eric Young eay@mincom.oz.au

Tim Hudson tjh@mincom.oz.au

Or to get hold of both of us use ssleay@mincom.oz.au

Eric concentrates on the library side of thing and Tim (me) has done all the applications and documentation; however it is better to contact both of us unless it's a really specific question as we do know what each other is working on and work different hours (and have different opinions on some things too :-) and take holidays at different times.


14. Mirror sites

If you are outside of the USA and not covered by legal restrictions on the export and import of encryption technology then drop us a line if you are prepared to mirror the SSLeay distribution.

Andreas Bogk bogk@inf.fu-berlin.de mirrors the SSL distribution (updated every 24 hours) in the following location:


15. Microsoft Windows ...

Is there a Windows version of SSLeay and the applications to go with it? The answer is that the port is about 1/2 complete and will be released as soon as it is usable (and Eric stops changing things underneath me). Again, if you wish to help with this effort (and are a competant Windows programmer) then send email.


16. Other information

SSLeay Programmer Reference
Certificate Handling Interface

And for porting notes for the following applications:

NCSA Mosaic 2.5
SRA Telnet - SSLtelnet & SSLftp
NCSA HTTPD 1.3