Elytron server-ssl-context allowed protocols
Overview
Elytron currently supports 6 SSL/TLS protocols. Namely, SSLv2, SSLv3, TLSv1, TLSv1.1, TLSv1.2, and
TLSv1.3. However, older JDK versions use SSLv2Hello
during the initial
SSL handshake message where the SSL version that will be used for the rest of the handshake is negotiated.
Newer JDK versions disable this protocol by default, but do provide the ability to
re-enable it if needed. This task is to ensure Elytron can make use of the SSLv2Hello
protocol to ensure feature parity with legacy security.
Issue Metadata
Issue
Related Issues
Dev Contacts
QE Contacts
N/A
Testing By
-
[ X ] Engineering
-
QE
Affected Projects or Components
-
WildFly, WildFly-Core and Elytron
Other Interested Projects
N/A
Requirements
Hard Requirements
-
It should be possible to configure a
server-ssl-context
andclient-ssl-context
in the Elytron subsystem using theSSLv2Hello
protocol as follows:-
server-ssl-context
:
-
/subsystem=elytron/server-ssl-context=mySslContext:add(key-manager=myKeyManager,protocols=[SSLv2Hello,TLSv1])
-
client-ssl-context
:
/subsystem=elytron/client-ssl-context=myClientSslContext:add(key-manager=myClientKeyManager,protocols=[SSLv2Hello,TLSv1])
-
If the user is using a JDK version where
SSLv2Hello
is disabled by default, but they attempt to configure anssl-context
with theSSLv2Hello
protocol, the protocol should be enabled without further user intervention.
Nice-to-Have Requirements
N/A
Non-Requirements
N/A
Test Plan
-
WildFly Elytron Test Suite: one-way and two-way SSL tests will be added that make use of the
SSLv2Hello
protocol. -
WildFly Core Test Suite: one-way and two-way SSL tests with the
SSLv2Hello
protocol when it is configured in the Elytron subsystem, subsystem parsing tests, transformer tests and a test added to the WildFly Core test suite to check usage ofSSLv2Hello
provided by OpenSSL provider. -
WildFly Test Suite: one-way and two-way SSL tests with the
SSLv2Hello
protocol.
Community Documentation
-
Documentation will be added in the "Using the Elytron Subsystem" section in the WildFly documentation, specifically in under 4.3 Configure SSL/TLS to specify that
SSLv2Hello
is supported. A warning should also be added to indicate that the use of this protocol is discouraged. -
Documentation will also be added under "Enable Two-way SSL/TLS in WildFly for Applications" to specify that
SSLv2Hello
is also supported for the client ssl context.
Release Note Content
Older JDK versions use the protocol SSLv2Hello
in the initial handshake message where the SSL version
that will be used for the rest of the handshake is negotiated. Although the usage of this protocol is discouraged,
and disabled by default in newer JDK versions, it is now possible to configure a client or server SSL context using the
SSLv2Hello
protocol in the Elytron subsystem
to ensure feature parity with legacy security configurations.