Vendor Crypto Package Research

Imported from previous forum

[ original email was from Ryan Pierce - rpierce@taltrade.com ]
This is the place to post research on various free and commercial crypto packages. Things to research for each package:

  • Platforms / Languages Supported
  • Protocols (SSLv3, TLS 1.0) Supported
  • Ciphersuites Supported

[ original email was from Ryan Pierce - rpierce@taltrade.com ]
Package: OpenSSL 0.9.5a

Platforms / Languages: Unix, Windows, OpenVMS, MacOS / C

Protocols: SSLv2, SSLv3, TLSv1

Ciphersuites:

SSLv3:

SSL_RSA_WITH_NULL_MD5
SSL_RSA_WITH_NULL_SHA
SSL_RSA_EXPORT_WITH_RC4_40_MD5
SSL_RSA_WITH_RC4_128_MD5
SSL_RSA_WITH_RC4_128_SHA
SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5
SSL_RSA_WITH_IDEA_CBC_SHA
SSL_RSA_EXPORT_WITH_DES40_CBC_SHA
SSL_RSA_WITH_DES_CBC_SHA
SSL_RSA_WITH_3DES_EDE_CBC_SHA

SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
SSL_DHE_DSS_WITH_DES_CBC_SHA
SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA
SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA
SSL_DHE_RSA_WITH_DES_CBC_SHA
SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA

SSL_DH_anon_EXPORT_WITH_RC4_40_MD5
SSL_DH_anon_WITH_RC4_128_MD5
SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA
SSL_DH_anon_WITH_DES_CBC_SHA
SSL_DH_anon_WITH_3DES_EDE_CBC_SHA

TLS:

TLS_RSA_WITH_NULL_MD5
TLS_RSA_WITH_NULL_SHA
TLS_RSA_EXPORT_WITH_RC4_40_MD5
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5
TLS_RSA_WITH_IDEA_CBC_SHA
TLS_RSA_EXPORT_WITH_DES40_CBC_SHA
TLS_RSA_WITH_DES_CBC_SHA
TLS_RSA_WITH_3DES_EDE_CBC_SHA

TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
TLS_DHE_DSS_WITH_DES_CBC_SHA
TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA
TLS_DHE_RSA_WITH_DES_CBC_SHA
TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA

TLS_DH_anon_EXPORT_WITH_RC4_40_MD5
TLS_DH_anon_WITH_RC4_128_MD5
TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA
TLS_DH_anon_WITH_DES_CBC_SHA
TLS_DH_anon_WITH_3DES_EDE_CBC_SHA

[ original email was from craig iskowitz - craig@mondial.com ]
Do we need to research all of these Cypher Suites? You listed over 40 of them.

Also, I thought we decided at the last WG mtg to just stick with SSLv3 for now. That should limit things a bit and keep the scope more manageable.

> Package: OpenSSL 0.9.5a
>
> Platforms / Languages: Unix, Windows, OpenVMS, MacOS / C
>
> Protocols: SSLv2, SSLv3, TLSv1
>
> Ciphersuites:
>
> SSLv3:
>

[ original email was from craig iskowitz - craig@mondial.com ]
Do we need to research all of these Cypher Suites? You listed over 40 of them.

Also, I thought we decided at the last WG mtg to just stick with SSLv3 for now. That should limit things a bit and keep the scope more manageable.

> Package: OpenSSL 0.9.5a
>
> Platforms / Languages: Unix, Windows, OpenVMS, MacOS / C
>
> Protocols: SSLv2, SSLv3, TLSv1
>
> Ciphersuites:
>
> SSLv3:
>

[ original email was from Ryan Pierce - rpierce@taltrade.com ]
> Do we need to research all of these Cypher Suites? You listed over 40 of them.
>
> Also, I thought we decided at the last WG mtg to just stick with SSLv3 for now. That should limit things a bit and keep the scope more manageable.

I’m not sure what you mean about researching all of the ciphersuites. Just about all I consider necessary right now for research of a vendor SSL / TLS implementation is what I posted for OpenSSL. One thing I wish I had done was post a URL: http://www.openssl.org/

Pretty much any implementation is going to give you a list similar to what is shown. I should have described that format a bit more; those are the constants defined in the SSL and TLS spec for ciphersuites. Also, although they look complex, they are generally self-explanatory.

The first part represents what protocol they are used for. The vast majority are the same in SSLv3 and TLS; the SSL just got renamed.

The second part represents the authentication and key exchange algorithms, i.e. RSA or DHE_DSS for DSS with ephemeral Diffie Hellman.

There might be the word EXPORT next which means whether it could be exported based on old US crypto laws (the ones limiting keys to 40 bits.)

Then there’s a WITH and the symmetric cipher used to provide confidentiality. Examples are RC4_40 (40-bit RC4), RC4_128 (128 bit RC4), DES40_CBC (40-bit DES with Cipher Block Chaining), DES_CBC (normal DES), 3DES_EDE_CBC (triple DES), and NULL (no encryption; everything sent in the clear). Last is the message digest function used for verifying integrity, MD5 or SHA (really SHA1).

Most of the ciphersuites are likely of no use. For instance, anonymous Diffie Hellman, NULL encryption, possibly all Diffie Hellman if we decide to go with RSA, and short key lengths pretty much cut down the useable list substantially.

Second, it is my impression that we did NOT decide to stick with SSLv3. We decided to defer it to the discussion group so people could research crypto toolkits and post results. Knowing which implementations support SSLv3, TLS, or both is necessary to making a decision.