[ 
https://issues.apache.org/jira/browse/AMQ-9661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18022736#comment-18022736
 ] 

Robbie Gemmell commented on AMQ-9661:
-------------------------------------

When you specify e.g SSLContext.getInstance("TLSv1.3") you are actually _not_ 
asking for _only_ _TLS 1.3_ support as you believe. You are asking for an 
instance that _does_ support TLS 1.3 {_}and which may potentially support other 
protocols{_}. See the security standard-names documentation at 
https://docs.oracle.com/en/java/javase/17/docs/specs/security/standard-names.html#sslcontext-algorithms

In practice this usualy tends to mean the instance returned supports a specific 
protocol if asked for in the passed string, e.g 1.3, as well as the lower 
versions. However modern JDK releases disable TLS 1.0 and 1.1 out of the box 
for security reasons, effectively making 1.2 the lowest. So when you asked for 
SSLContext.getInstance("TLSv1.2") you will now often only get 1.2 support, as 
the lower ones are already disabled. However when you ask for 
SSLContext.getInstance("TLSv1.3") you will often get a context that supports 
and enables _both_ 1.2 and 1.3 on a resulting SSLEngine...unless you also set 
the enabledProtocols option to govern which of the _supported_ protocols are 
then actually left _enabled_ on the resulting SSLEngine created.

In short, this is the JVM itself doing what it is allowed to do and essentially 
always has done.

> ActiveMQ client jar code is sending both TLSv1.2 and TLSv1.3 in the 
> ClientHello message, even when TLSv1.3 ssl context is set in SSLContext
> -------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-9661
>                 URL: https://issues.apache.org/jira/browse/AMQ-9661
>             Project: ActiveMQ Classic
>          Issue Type: Bug
>          Components: JMS client
>         Environment:   * {*}ActiveMQ jars Version{*}: 6.1.5
>  * {*}JDK Version{*}: JDK 17
>  * {*}Operating System{*}: linux
>            Reporter: Sumit Sharma
>            Assignee: Jean-Baptiste Onofré
>            Priority: Major
>             Fix For: 6.3.0
>
>         Attachments: TlsExample.java
>
>
> We are configuring *ActiveMQ client classes* to use *TLSv1.3* explicitly by 
> setting the {{org.apache.activemq.broker.SslContext}} as follows:
> SslContext mqSslcontext = new SslContext();
> mqSslcontext .setCurrentSslContext( 
> javax.net.ssl.SSLContext.getInstance("TLSv1.3"))
> However, during the {*}SSL handshake{*}, the *ClientHello* message sent by 
> ActiveMQ still includes both *TLSv1.2 and TLSv1.3* in the 
> {{supported_versions}} extension, instead of restricting it to *TLSv1.3.*



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact


Reply via email to