Re: TLSv1.3 and 9.0.next

2018-10-15 Thread Mark Thomas
On 11/10/18 21:39, Mark Thomas wrote:



> 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-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
> 


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



Re: TLSv1.3 and 9.0.next

2018-10-12 Thread Rémy Maucherat
On Fri, Oct 12, 2018 at 9:59 PM Rainer Jung  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:
> >>
> >> 
> >> 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.
> >> 
> >>
> >> 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-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
>
>


Re: TLSv1.3 and 9.0.next

2018-10-12 Thread Rainer Jung

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:


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.


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-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: TLSv1.3 and 9.0.next

2018-10-12 Thread Mark Thomas
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-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: TLSv1.3 and 9.0.next

2018-10-12 Thread Christopher Schultz
-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-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: TLSv1.3 and 9.0.next

2018-10-12 Thread Mark Thomas
On 12/10/18 15:55, George Stanchev wrote:
> Mark,
> 
> Can you elaborate around the following:
> 
> 
> 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.
> 
> 
> 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  
> Sent: Thursday, October 11, 2018 2:39 PM
> To: Tomcat Developers List 
> 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-unsubscr...@tomcat.apache.org For additional 
> commands, e-mail: dev-h...@tomcat.apache.org
> 
> 
> -
> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
> 


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



RE: TLSv1.3 and 9.0.next

2018-10-12 Thread George Stanchev
Mark,

Can you elaborate around the following:


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.


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  
Sent: Thursday, October 11, 2018 2:39 PM
To: Tomcat Developers List 
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-unsubscr...@tomcat.apache.org For additional 
commands, e-mail: dev-h...@tomcat.apache.org