On Mon, 16 Mar 1998, George Chung wrote:
> Perhaps I'm being naive, but it seems like it should be possible for an
> ssl peer to algorithmically specify the ordered list of preferred
> ciphersuites given the following information:
> 
> 1. ordered list (in preference order) of available signature algorithms
> 2. ordered list (in preference order) of available integrity algorithms
> 3. ordered list (in preference order) of available encryption algorithms
> 4. for server, signature type (e.g., RSA, DSA, Fortezza, DH) of its
> certificate (NULL if no certificate)
> 5. for server, signature type (e.g., RSA, DSA, Fortezza) of ordered list
> (in preference order) of trusted root certificates
> 
> Is this at all a reasonable idea?
> 
> I'm struggling with how to expose this "choice" (ordering of ssl
> ciphersuites in preference order) to a user or an administrator through
> some INI or config file "knobs". I do NOT want to expose them to
> ordering strings like:
> 
> SSL_RSA_WITH_RC4_MD5
> SSL_DHE_DSA_WITH_3DES_SHA
> etc.
> 
> in a config file.

SSLeay does this of sorts.  Each SSL/TLS cipher has a symetric cipher, a MAC,
a key-exchange and a authenticion component.

Try playing with 'ssleay ciphers -v <string>' where
ssleay ciphers -v DES3:SHA1:kRSA:aDSA:+aRSA:+RC4:!EXP:+EDH

ADH-DES-CBC3-SHA        SSLv3 Kx=DH       Au=None Enc=3DES(168) Mac=SHA1
ADH-DES-CBC-SHA         SSLv3 Kx=DH       Au=None Enc=DES(56)   Mac=SHA1
DES-CBC3-SHA            SSLv3 Kx=RSA      Au=RSA  Enc=3DES(168) Mac=SHA1
DES-CBC-SHA             SSLv3 Kx=RSA      Au=RSA  Enc=DES(56)   Mac=SHA1
IDEA-CBC-SHA            SSLv3 Kx=RSA      Au=RSA  Enc=IDEA(128) Mac=SHA1
DES-CBC3-MD5            SSLv2 Kx=RSA      Au=RSA  Enc=3DES(168) Mac=MD5
DES-CBC-MD5             SSLv2 Kx=RSA      Au=RSA  Enc=DES(56)   Mac=MD5
IDEA-CBC-MD5            SSLv2 Kx=RSA      Au=RSA  Enc=IDEA(128) Mac=MD5
RC2-CBC-MD5             SSLv2 Kx=RSA      Au=RSA  Enc=RC2(128)  Mac=MD5
RC4-SHA                 SSLv3 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=SHA1
RC4-MD5                 SSLv3 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=MD5
RC4-64-MD5              SSLv2 Kx=RSA      Au=RSA  Enc=RC4(64)   Mac=MD5
RC4-MD5                 SSLv2 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=MD5
EDH-DSS-DES-CBC3-SHA    SSLv3 Kx=DH       Au=DSS  Enc=3DES(168) Mac=SHA1
EDH-DSS-DES-CBC-SHA     SSLv3 Kx=DH       Au=DSS  Enc=DES(56)   Mac=SHA1
EDH-RSA-DES-CBC3-SHA    SSLv3 Kx=DH       Au=RSA  Enc=3DES(168) Mac=SHA1
EDH-RSA-DES-CBC-SHA     SSLv3 Kx=DH       Au=RSA  Enc=DES(56)   Mac=SHA1       

The order is the preference order.  The plain name includes all ciphers with
that item, a +name 'pulls' all matching cipher to that point, (+DH+aRSA works
as expected).  !name deletes all ciphers with that cipher (eNULL and aNULL, or
null encryption and null authenication are popular candidates for exclusing
:-).  Anyway, the list of tags is in ssl.h (I think), and ssleay ciphers
should be used to verify the results, since there are some 'bugs' it 0.8.1.

eric

+-------------------------------------------------------------------------+
| Administrative requests should be sent to [EMAIL PROTECTED] |
| List service provided by Open Software Associates, http://www.osa.com/  |
+-------------------------------------------------------------------------+

Reply via email to