You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Mark Thomas <ma...@apache.org> on 2018/10/11 20:39:23 UTC

TLSv1.3 and 9.0.next

Hi,

As you probably noticed I've been working on TLS 1.3 support, building
on Chris's work in BZ 62748.

The current status is the Tomcat Native 1.2.x and Tomcat 9.0.x support
TLSv1.3 in any of the following combinations:
- NIO[2]+JSSE on Java 11
- NIO[2]+OpenSSL on Java 8 onwards
- APR/Native on Java 8 onwards

All combinations support server initiated requests for client
certificates apart from NIO[2]+JSSE on Java 11 as the Java 11 TLSv1.3
implementation does not include post handshake authentication.

I have made quite a few changes to the Native code to support this.

My plan going forwards is as follows:

- give folks until early next week to review the native changes
- tag 1.2.18 early next week
- hopefully release 1.2.18 late next week
- update 9.0.x to require 1.2.18 or later
- tag / release 9.0.x

Alongside the above, I'll be backporting the TLSv1.3 support to 8.5.x
and 9.0.x.

Thoughts, comments and especially code reviews welcome.

Mark

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: TLSv1.3 and 9.0.next

Posted by Mark Thomas <ma...@apache.org>.
On 12/10/18 19:08, Christopher Schultz wrote:
> Mark,
> 
> On 10/11/18 16:39, Mark Thomas wrote:
>> Hi,
> 
>> As you probably noticed I've been working on TLS 1.3 support,
>> building on Chris's work in BZ 62748.
> 
>> The current status is the Tomcat Native 1.2.x and Tomcat 9.0.x
>> support TLSv1.3 in any of the following combinations: - NIO[2]+JSSE
>> on Java 11 - NIO[2]+OpenSSL on Java 8 onwards - APR/Native on Java
>> 8 onwards
> 
>> All combinations support server initiated requests for client 
>> certificates apart from NIO[2]+JSSE on Java 11 as the Java 11
>> TLSv1.3 implementation does not include post handshake
>> authentication.
> 
>> I have made quite a few changes to the Native code to support
>> this.
> 
>> My plan going forwards is as follows:
> 
>> - give folks until early next week to review the native changes -
>> tag 1.2.18 early next week - hopefully release 1.2.18 late next
>> week - update 9.0.x to require 1.2.18 or later - tag / release
>> 9.0.x
> 
>> Alongside the above, I'll be backporting the TLSv1.3 support to
>> 8.5.x and 9.0.x.
> 
>> Thoughts, comments and especially code reviews welcome.
> 
> Rather than throwing a new tcnative into both Tomcat 9.0.x and Tomcat
> 8.5.x simultaneously, maybe we should release Tomcat 9.0.x with an
> updated tcnative and get some feedback before we back-port everything.

Ah. I've already done the back-ports. We can certainly release 9.0.x and
wait before 8.5.x though.

Mark

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: TLSv1.3 and 9.0.next

Posted by Christopher Schultz <ch...@christopherschultz.net>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Mark,

On 10/11/18 16:39, Mark Thomas wrote:
> Hi,
> 
> As you probably noticed I've been working on TLS 1.3 support,
> building on Chris's work in BZ 62748.
> 
> The current status is the Tomcat Native 1.2.x and Tomcat 9.0.x
> support TLSv1.3 in any of the following combinations: - NIO[2]+JSSE
> on Java 11 - NIO[2]+OpenSSL on Java 8 onwards - APR/Native on Java
> 8 onwards
> 
> All combinations support server initiated requests for client 
> certificates apart from NIO[2]+JSSE on Java 11 as the Java 11
> TLSv1.3 implementation does not include post handshake
> authentication.
> 
> I have made quite a few changes to the Native code to support
> this.
> 
> My plan going forwards is as follows:
> 
> - give folks until early next week to review the native changes -
> tag 1.2.18 early next week - hopefully release 1.2.18 late next
> week - update 9.0.x to require 1.2.18 or later - tag / release
> 9.0.x
> 
> Alongside the above, I'll be backporting the TLSv1.3 support to
> 8.5.x and 9.0.x.
> 
> Thoughts, comments and especially code reviews welcome.

Rather than throwing a new tcnative into both Tomcat 9.0.x and Tomcat
8.5.x simultaneously, maybe we should release Tomcat 9.0.x with an
updated tcnative and get some feedback before we back-port everything.

- -chris
-----BEGIN PGP SIGNATURE-----
Comment: Using GnuPG with Thunderbird - https://www.enigmail.net/

iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAlvA4wYACgkQHPApP6U8
pFjNZQ/9Ebqi365aY6c6FXe9Q9gUBONe6cS8vFZIsfwQsFta6mXap72zqSoaZ9ra
s2KxDHUibt2Rzn2JJOJanq4nE/mcHgp9Qdw02ns7l9aESw38/Un5C4JUwMj1DQ+s
ZlUFPVBonq8+BIKqTIrUOdIcpiiBE60WC+z20PSfkLiJOPrGLtmjrj7Rcd/2agoI
MscHjNH2fGbz21OWLZGs3XbL+RhFKTldhqA8PKLRdb15q9FJgIyYVND/QT786Avt
bxTtl4b6UoQYckMeSDSwbtBCpTgB0ilDyHrRPlpe7VuCpeVxc9eMt/UBIYhdDVZP
O7twmzAd9mNPZtcTHEZl04DxACQiAGHIVJk9E7Fgw+ypMuc7JhYqMi4gxgDYJzOK
dWmEXWSTUv20yZMspHi6JfWu2FWHrAfQUOwdRPfC04Fd3JRBBuOCwf/HRs6J01mP
FW6sf1S/cEaTgO/4Y5JENW+IN7G+u8QV4/khmGEdss/S1cPrjYeffImfOmi3OwRg
6EKmeS5LrdLwOPfkd1y1SMg918ao4NbCO0H+pwdV9MwkAy7n7Rklr/aMsLfjuHTS
oqLbYZjaY+S9gneVIZ0PPkDmMpBORdqlcRcv1ZN8q/q8lzRooaHGAk4ZUO0kdUAa
Cyc7Q8MVtYcGG8QoZ/U6EXRUV6fct16I2hfvSqGiQ+HM9+CTqGU=
=E/KJ
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: TLSv1.3 and 9.0.next

Posted by Rémy Maucherat <re...@apache.org>.
On Fri, Oct 12, 2018 at 9:59 PM Rainer Jung <ra...@kippdata.de> wrote:

> Am 12.10.2018 um 19:39 schrieb Mark Thomas:
> > On 12/10/18 15:55, George Stanchev wrote:
> >> Mark,
> >>
> >> Can you elaborate around the following:
> >>
> >> <quote>
> >> All combinations support server initiated requests for client
> certificates apart from NIO[2]+JSSE on Java 11 as the Java 11 TLSv1.3
> implementation does not include post handshake authentication.
> >> </quote>
> >>
> >> What are the use cases affected. Is it for TLS upgrade when a certain
> resource is being requested?
> >
> > Security constraints can require CLIENT-CERT authentication for some
> > URLs within a web application.
> >
> > If the TLS connection is established before one of these URLs is
> > requested then either renegotiation (TLSv1.2 and earlier) or post
> > handshake authentication (TLSv1.3) is required to obtain the
> > certificates from the client.
> >
> > Tomcat supports this for all combinations of TLSv1.2. It supports it for
> > TLSv1.3 only when OpenSSL is providing the encryption. With pure Java
> > (JSSE, Java 11+) it is not supported because Java has not (yet?)
> > implemented post handshake authentication.
>
> And for those who are not aware: post_handshake_auth is a new TLS
> extension in TLS 1.3 that's supposed to get used for that. The Java JEP
> (Java Enhancement Proposal) that defines the TLS1.3 support in Java 11
> can eg. be found under
>
> http://openjdk.java.net/jeps/332
>
> It contains:
>
> "The following significant features will not be implemented as part of
> this JEP:
>
> ...
> - Post-handshake authentication
> ..."
>

There's also that 0RTT performance thing that is another useful item that
will not be in JSSE, so it seems the OpenSSL support that was added to get
supportable ALPN remains a must have.

Rémy

>
> There's a three month old open bug for implementing it with no
> noticeable activity:
>
> https://bugs.openjdk.java.net/browse/JDK-8206923
>
> Regards,
>
> Rainer
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>
>

Re: TLSv1.3 and 9.0.next

Posted by Rainer Jung <ra...@kippdata.de>.
Am 12.10.2018 um 19:39 schrieb Mark Thomas:
> On 12/10/18 15:55, George Stanchev wrote:
>> Mark,
>>
>> Can you elaborate around the following:
>>
>> <quote>
>> All combinations support server initiated requests for client certificates apart from NIO[2]+JSSE on Java 11 as the Java 11 TLSv1.3 implementation does not include post handshake authentication.
>> </quote>
>>
>> What are the use cases affected. Is it for TLS upgrade when a certain resource is being requested?
> 
> Security constraints can require CLIENT-CERT authentication for some
> URLs within a web application.
> 
> If the TLS connection is established before one of these URLs is
> requested then either renegotiation (TLSv1.2 and earlier) or post
> handshake authentication (TLSv1.3) is required to obtain the
> certificates from the client.
> 
> Tomcat supports this for all combinations of TLSv1.2. It supports it for
> TLSv1.3 only when OpenSSL is providing the encryption. With pure Java
> (JSSE, Java 11+) it is not supported because Java has not (yet?)
> implemented post handshake authentication.

And for those who are not aware: post_handshake_auth is a new TLS 
extension in TLS 1.3 that's supposed to get used for that. The Java JEP 
(Java Enhancement Proposal) that defines the TLS1.3 support in Java 11 
can eg. be found under

http://openjdk.java.net/jeps/332

It contains:

"The following significant features will not be implemented as part of 
this JEP:

...
- Post-handshake authentication
..."

There's a three month old open bug for implementing it with no 
noticeable activity:

https://bugs.openjdk.java.net/browse/JDK-8206923

Regards,

Rainer

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: TLSv1.3 and 9.0.next

Posted by Mark Thomas <ma...@apache.org>.
On 12/10/18 15:55, George Stanchev wrote:
> Mark,
> 
> Can you elaborate around the following:
> 
> <quote>
> All combinations support server initiated requests for client certificates apart from NIO[2]+JSSE on Java 11 as the Java 11 TLSv1.3 implementation does not include post handshake authentication.
> </quote>
> 
> What are the use cases affected. Is it for TLS upgrade when a certain resource is being requested?

Security constraints can require CLIENT-CERT authentication for some
URLs within a web application.

If the TLS connection is established before one of these URLs is
requested then either renegotiation (TLSv1.2 and earlier) or post
handshake authentication (TLSv1.3) is required to obtain the
certificates from the client.

Tomcat supports this for all combinations of TLSv1.2. It supports it for
TLSv1.3 only when OpenSSL is providing the encryption. With pure Java
(JSSE, Java 11+) it is not supported because Java has not (yet?)
implemented post handshake authentication.

HTH,

Mark

> 
> Thanks in advance,
> George
> 
> -----Original Message-----
> From: Mark Thomas <ma...@apache.org> 
> Sent: Thursday, October 11, 2018 2:39 PM
> To: Tomcat Developers List <de...@tomcat.apache.org>
> Subject: TLSv1.3 and 9.0.next
> 
> Hi,
> 
> As you probably noticed I've been working on TLS 1.3 support, building on Chris's work in BZ 62748.
> 
> The current status is the Tomcat Native 1.2.x and Tomcat 9.0.x support
> TLSv1.3 in any of the following combinations:
> - NIO[2]+JSSE on Java 11
> - NIO[2]+OpenSSL on Java 8 onwards
> - APR/Native on Java 8 onwards
> 
> All combinations support server initiated requests for client certificates apart from NIO[2]+JSSE on Java 11 as the Java 11 TLSv1.3 implementation does not include post handshake authentication.
> 
> I have made quite a few changes to the Native code to support this.
> 
> My plan going forwards is as follows:
> 
> - give folks until early next week to review the native changes
> - tag 1.2.18 early next week
> - hopefully release 1.2.18 late next week
> - update 9.0.x to require 1.2.18 or later
> - tag / release 9.0.x
> 
> Alongside the above, I'll be backporting the TLSv1.3 support to 8.5.x and 9.0.x.
> 
> Thoughts, comments and especially code reviews welcome.
> 
> Mark
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org For additional commands, e-mail: dev-help@tomcat.apache.org
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


RE: TLSv1.3 and 9.0.next

Posted by George Stanchev <Ge...@microfocus.com>.
Mark,

Can you elaborate around the following:

<quote>
All combinations support server initiated requests for client certificates apart from NIO[2]+JSSE on Java 11 as the Java 11 TLSv1.3 implementation does not include post handshake authentication.
</quote>

What are the use cases affected. Is it for TLS upgrade when a certain resource is being requested? 

Thanks in advance,
George

-----Original Message-----
From: Mark Thomas <ma...@apache.org> 
Sent: Thursday, October 11, 2018 2:39 PM
To: Tomcat Developers List <de...@tomcat.apache.org>
Subject: TLSv1.3 and 9.0.next

Hi,

As you probably noticed I've been working on TLS 1.3 support, building on Chris's work in BZ 62748.

The current status is the Tomcat Native 1.2.x and Tomcat 9.0.x support
TLSv1.3 in any of the following combinations:
- NIO[2]+JSSE on Java 11
- NIO[2]+OpenSSL on Java 8 onwards
- APR/Native on Java 8 onwards

All combinations support server initiated requests for client certificates apart from NIO[2]+JSSE on Java 11 as the Java 11 TLSv1.3 implementation does not include post handshake authentication.

I have made quite a few changes to the Native code to support this.

My plan going forwards is as follows:

- give folks until early next week to review the native changes
- tag 1.2.18 early next week
- hopefully release 1.2.18 late next week
- update 9.0.x to require 1.2.18 or later
- tag / release 9.0.x

Alongside the above, I'll be backporting the TLSv1.3 support to 8.5.x and 9.0.x.

Thoughts, comments and especially code reviews welcome.

Mark

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org For additional commands, e-mail: dev-help@tomcat.apache.org


Re: TLSv1.3 and 9.0.next

Posted by Mark Thomas <ma...@apache.org>.
On 11/10/18 21:39, Mark Thomas wrote:

<snip/>

> My plan going forwards is as follows:
> 
> - give folks until early next week to review the native changes
> - tag 1.2.18 early next week

Just a heads up that I plan to tag 1.2.18 tomorrow.

Mark

> - hopefully release 1.2.18 late next week
> - update 9.0.x to require 1.2.18 or later
> - tag / release 9.0.x
> 
> Alongside the above, I'll be backporting the TLSv1.3 support to 8.5.x
> and 9.0.x.
> 
> Thoughts, comments and especially code reviews welcome.
> 
> Mark
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org