Как java выбирает самый надежный шифр для использования в jsse?

Я не понимаю, как Java выбирает наиболее предпочтительный шифр для использования на Server Hello.

У меня есть конфигурации Tomcat 5, и я установить в разъем SSL в шифры = TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA и т.д.

Сервер т.е. Java кирки TLS_RSA_WITH_AES_128_CBC_SHA на Сервер Здравствуйте как предпочтительный среди поддерживаемых клиентом. Но это не самый безопасный и не предпочтительный вариант в соответствии с http://docs.huihoo.com/java/javase/7/technotes/guides/security/SunProviders.html#SunJSSEProvider, в котором перечислены что TLS_RSA_WITH_AES_256_CBC_SHAимеет предпочтение.
Затем я подумал, что это порядок в атрибуте server.xml, который имел значение, и я сначала поставил другой шифр ( TLS_DHE_RSA_WITH_AES_256_CBC_SHA), который я вижу в Client Hello, что он поддерживается. Но это тоже не было выбрано, и снова был выбран TLS_RSA_WITH_AES_128_CBC_SHA.

Так как же JSSE выбирает шифр предпочтения? Это где-то задокументировано? Я не могу понять, что здесь происходит.

5
задан Jim 24 April 2012 в 09:44
поделиться