Java отключил SSLv3 из-за уязвимости. Но в почтовом API Java с использованием SMTP-сервера через SSL работает? Почему это так?
В java SSLv3 отключен, но в javamail API работает ssl?
Ответы (2)
Электронная почта через SSL использует семейство протоколов SSL/TLS, реализованное SSLSocketImpl
и связанными классами в библиотеке времени выполнения Java.
В зависимости от того, какую версию Java вы используете, SSLSocketImpl
согласует приемлемую версию протоколов SSL/TLS с удаленным сервером. Java может поддерживать до TLSv1.3 (в Java 11). Поддержка TLSv1.0 была добавлена в Java 6 в обновлении 1111.
Фактически, в январе 2015 года было выпущено обновление для Java 6 и более поздних версий, чтобы по умолчанию отключить поддержку SSLv3 в Java 6 и более поздних версиях. Вам нужно будет установить системное свойство, чтобы включить SSLv3.
1 – обновление 111 для Java 6 недоступно для всех. Если вы используете последнюю общедоступную версию Java 6, вы застряли с использованием небезопасного SSLv3 или более ранней версии. Большинство SMTP-серверов не примут это. Это еще одна причина перейти на поддерживаемую версию Java; например Java 8, 11 или более поздней версии.
Но в почтовом API Java с использованием SMTP-сервера через SSL работает? Почему это так?
Потому что он не использует SSLv3 (или более раннюю версию); см. выше.
Вот ссылка на другой вопрос о переполнении стека, который, я думаю, также отвечает на этот вопрос. переполнение стека
Как указано здесь, в этой ссылке:
протокол можно повторно активировать, удалив «SSLv3» из свойства jdk.tls.disableAlgorithms в файле java.security или динамически установив для этого свойства значение «true».