I'm running a server that requires a blacklist of weak cipher suites.
So which of the following are weak? http://java.sun.com/javase/6/docs/technotes/guides/security/SunProviders.html#SunJSSEProvider
I'm running a server that requires a blacklist of weak cipher suites.
So which of the following are weak? http://java.sun.com/javase/6/docs/technotes/guides/security/SunProviders.html#SunJSSEProvider
Why do you need to exclude the bad ones? Why not only include the good ones?
For starters, I'd follow the NSA Suite B guidelines, specifically RFC 5430
I think the anonymous modes are unequivocally useless:
SSL_DH_anon_WITH_RC4_128_MD5TLS_DH_anon_WITH_AES_128_CBC_SHATLS_DH_anon_WITH_AES_256_CBC_SHASSL_DH_anon_WITH_3DES_EDE_CBC_SHASSL_DH_anon_WITH_DES_CBC_SHATLS_ECDH_anon_WITH_RC4_128_SHATLS_ECDH_anon_WITH_AES_128_CBC_SHATLS_ECDH_anon_WITH_AES_256_CBC_SHATLS_ECDH_anon_WITH_3DES_EDE_CBC_SHASSL_DH_anon_EXPORT_WITH_RC4_40_MD5SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHATLS_ECDH_anon_WITH_NULL_SHAAs are the deliberately hobbled "export" suites:
SSL_RSA_EXPORT_WITH_RC4_40_MD5SSL_RSA_EXPORT_WITH_DES40_CBC_SHASSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHASSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHATLS_KRB5_EXPORT_WITH_RC4_40_SHATLS_KRB5_EXPORT_WITH_RC4_40_MD5TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHATLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5I assume you want encryption, which rules out the "null" cipher:
SSL_RSA_WITH_NULL_MD5SSL_RSA_WITH_NULL_SHATLS_ECDH_ECDSA_WITH_NULL_SHATLS_ECDH_RSA_WITH_NULL_SHATLS_ECDHE_ECDSA_WITH_NULL_SHATLS_ECDHE_RSA_WITH_NULL_SHAI don't think the HMAC algorithm allows the known weaknesses of MD5 to be exploited, but when in doubt, throw it out:
SSL_RSA_WITH_RC4_128_MD5TLS_KRB5_WITH_RC4_128_MD5TLS_KRB5_WITH_3DES_EDE_CBC_MD5TLS_KRB5_WITH_DES_CBC_MD5Key size for the DES is too small:
SSL_RSA_WITH_DES_CBC_SHASSL_DHE_RSA_WITH_DES_CBC_SHASSL_DHE_DSS_WITH_DES_CBC_SHATLS_KRB5_WITH_DES_CBC_SHAThe Kerberos exchange is only applicable if you are running Kerberos, which is unlikely, and you would know it if you were:
TLS_KRB5_WITH_RC4_128_SHATLS_KRB5_WITH_3DES_EDE_CBC_SHAI usually throw out RC4, just because it isn't necessary, but this one is debatable.
SSL_RSA_WITH_RC4_128_SHATLS_ECDH_ECDSA_WITH_RC4_128_SHATLS_ECDH_RSA_WITH_RC4_128_SHATLS_ECDHE_ECDSA_WITH_RC4_128_SHATLS_ECDHE_RSA_WITH_RC4_128_SHAThe AES is strong enough with 128-bit keys, and there are some results against 256-bit keys that could be extended in the future:
TLS_RSA_WITH_AES_256_CBC_SHATLS_ECDH_ECDSA_WITH_AES_256_CBC_SHATLS_ECDH_RSA_WITH_AES_256_CBC_SHATLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHATLS_ECDHE_RSA_WITH_AES_256_CBC_SHATLS_DHE_RSA_WITH_AES_256_CBC_SHATLS_DHE_DSS_WITH_AES_256_CBC_SHAElliptical Curve algorithms might be the best key agreement there is, but unfortunately, putting them into practice is difficult. Interoperability problems around named curve support in Java are common, and real CA's are not yet issuing EC certs. So, sadly, the EC algorithms aren't easily implemented yet:
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHATLS_ECDHE_RSA_WITH_AES_128_CBC_SHATLS_ECDH_ECDSA_WITH_AES_128_CBC_SHATLS_ECDH_RSA_WITH_AES_128_CBC_SHATLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHATLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHATLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHATLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHAAre you sure that Jetty doesn't support a white list? That is different from every other SSL setup I've seen. Usually, not only do you provide a whitelist, but the list is ordered, with the most preferred algorithms first. You likely have an RSA certificate, in which case I'd order the residue like this:
TLS_DHE_RSA_WITH_AES_128_CBC_SHASSL_DHE_RSA_WITH_3DES_EDE_CBC_SHATLS_RSA_WITH_AES_128_CBC_SHASSL_RSA_WITH_3DES_EDE_CBC_SHAIf you have a DSA certificate, the list would look like this:
TLS_DHE_DSS_WITH_AES_128_CBC_SHASSL_DHE_DSS_WITH_3DES_EDE_CBC_SHAPretty sure Jetty is blacklist.
http://docs.codehaus.org/display/JETTY/SSL+Cipher+Suites http://jira.codehaus.org/browse/JETTY-1164 <-- I'm using slightly older version lol
Anyways my issue is solved. Thanks