PR - https://github.com/apache/kafka/pull/8695
> 18 мая 2020 г., в 23:30, Nikolay Izhikov <nizhikov....@gmail.com> написал(а): > > Hello, Colin > > We need hack only because TLSv1.3 not supported in java8. > >> Java 8 will receive TLS 1.3 support later this year >> (https://java.com/en/jre-jdk-cryptoroadmap.html) > > We can > > 1. Enable TLSv1.3 for java11 for now. And after java8 get TLSv1.3 support > remove it. > 2. Or we can wait and enable it after java8 update. > > What do you think? > >> 18 мая 2020 г., в 22:51, Ismael Juma <ism...@juma.me.uk> написал(а): >> >> Yeah, agreed. One option is to actually only change this in Apache Kafka >> 3.0 and avoid the hack altogether. We could make TLS 1.3 the default and >> have 1.2 as one of the enabled protocols. >> >> Ismael >> >> On Mon, May 18, 2020 at 12:24 PM Colin McCabe <cmcc...@apache.org> wrote: >> >>> Hmm. It would be good to figure out if we are going to remove this >>> compatibility hack in the next major release of Kafka? In other words, in >>> Kafka 3.0, will we enable TLS 1.3 by default even if the cipher suite is >>> specified? >>> >>> best, >>> Colin >>> >>> >>> On Mon, May 18, 2020, at 09:26, Ismael Juma wrote: >>>> Sounds good. >>>> >>>> Ismael >>>> >>>> >>>> On Mon, May 18, 2020, 9:03 AM Nikolay Izhikov <nizhi...@apache.org> >>> wrote: >>>> >>>>>> A safer approach may be to only add TLS 1.3 to the list if the cipher >>>>> suite config has not been specified. >>>>>> So, if TLS 1.3 is added to the list by Kafka, it would seem that it >>>>> would not work if the user specified a list of cipher suites for >>> previous >>>>> TLS versions >>>>> >>>>> Let’s just add test for this case? >>>>> I can prepare the preliminary PR for this KIP and add this kind of >>> test to >>>>> it. >>>>> >>>>> What do you think? >>>>> >>>>> >>>>>> 18 мая 2020 г., в 18:59, Nikolay Izhikov <nizhikov....@gmail.com> >>>>> написал(а): >>>>>> >>>>>>> 1. I meant that `ssl.protocol` is TLSv1.2 while >>> `ssl.enabled.protocols` >>>>> is `TLSv1.2, TLSv1.3`. How do these two configs interact >>>>>> >>>>>> `ssl.protocol` is what will be used, by default, in this KIP is stays >>>>> unchanged (TLSv1.2) Please, see [1] >>>>>> `ssl.enabled.protocols` is list of protocols that *can* be used. >>> This >>>>> value is just passed to the `SSLEngine` implementation. >>>>>> Please, see DefaultSslEngineFactory#createSslEngine [2] >>>>>> >>>>>>> 2. My question is not about obsolete protocols, it is about people >>>>> using TLS 1.2 with specified cipher suites. How will that behave when >>> TLS >>>>> 1.3 is enabled by default? >>>>>> >>>>>> They don’t change anything and all just work as expected on java11. >>>>>> >>>>>>> 3. An additional question is how does this impact Java 8 users? >>>>>> >>>>>> Yes. >>>>>> If SSLEngine doesn’t support TLSv1.3 then java8 users should >>> explicitly >>>>> modify `ssl.enabled.protocols` and set it to `TLSv1.2`. >>>>>> >>>>>> [1] >>>>> >>> https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/common/security/ssl/DefaultSslEngineFactory.java#L218 >>>>>> [2] >>>>> >>> https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/common/security/ssl/DefaultSslEngineFactory.java#L164 >>>>>> >>>>>>> 18 мая 2020 г., в 17:34, Ismael Juma <ism...@juma.me.uk> >>> написал(а): >>>>>>> >>>>>>> Nikolay, >>>>>>> >>>>>>> Thanks for the comments. More below: >>>>>>> >>>>>>> 1. I meant that `ssl.protocol` is TLSv1.2 while >>> `ssl.enabled.protocols` >>>>> is `TLSv1.2, TLSv1.3`. How do these two configs interact? >>>>>>> 2. My question is not about obsolete protocols, it is about people >>>>> using TLS 1.2 with specified cipher suites. How will that behave when >>> TLS >>>>> 1.3 is enabled by default? >>>>>>> 3. An additional question is how does this impact Java 8 users? >>> Java 8 >>>>> will receive TLS 1.3 support later this year ( >>>>> https://java.com/en/jre-jdk-cryptoroadmap.html), but it currently does >>>>> not support it. One way to handle this would be to check if the >>> underlying >>>>> JVM supports TLS 1.3 before enabling it. >>>>>>> >>>>>>> I hope this clarifies my questions. >>>>>>> >>>>>>> Ismael >>>>>>> >>>>>>> On Mon, May 18, 2020 at 6:44 AM Nikolay Izhikov < >>> nizhi...@apache.org> >>>>> wrote: >>>>>>> Hello, Ismael. >>>>>>> >>>>>>> Here is answers to your questions: >>>>>>> >>>>>>>> Quick question, the following is meant to include TLSv1.3 as well, >>>>> right? >>>>>>>> Change the value of the SslConfigs.DEFAULT_SSL_ENABLED_PROTOCOLS to >>>>> «TLSv1.2» >>>>>>> >>>>>>> I propose to have the following value >>>>> SslConfigs.DEFAULT_SSL_ENABLED_PROTOCOLS = «TLSv1.2,TLSv.1.3» >>>>>>> >>>>>>>> 1. `ssl.protocol` would remain TLSv1.2 with this change. It would >>> be >>>>> good to explain why that's OK. >>>>>>> >>>>>>> I think it covered by the following statements in KIP. >>>>>>> If you know more trustworthy sources of this kind of information, >>>>> please, let me know. >>>>>>> >>>>>>> ``` >>>>>>> For now, only TLS1.2 and TLS1.3 are recommended for the usage, other >>>>> versions of TLS considered as obsolete: >>>>>>> • https://www.rfc-editor.org/info/rfc8446 >>>>>>> • >>>>> >>> https://en.wikipedia.org/wiki/Transport_Layer_Security#History_and_development >>>>>>> >>>>>>> ``` >>>>>>> >>>>>>>> 2. What is the behavior for people who have configured >>>>> `ssl.cipher.suites`? >>>>>>>> The cipher suite names are different in TLS 1.3. What would be the >>>>> behavior >>>>>>>> if the client requests TLS 1.3, but the server only has cipher >>> suites >>>>> for >>>>>>>> TLS 1.2? It would be good to explain the expected behavior and add >>>>> tests to verify it. >>>>>>> >>>>>>> I think those users should update >>>>> `SslConfigs.DEFAULT_SSL_ENABLED_PROTOCOLS` and enable required(but >>>>> obsolete) version of TLS they use. >>>>>>> After one should migrate to the reliable TLS version. >>>>>>> This reflected in the KIP: >>>>>>> >>>>>>> ``` >>>>>>> Migration: Users who are using TLSv1.1 and TLSv1 should enable these >>>>> versions of the protocol with the explicit configuration property >>>>> "ssl.enabled.protocols" >>>>>>> ``` >>>>>>> >>>>>>>> 25 февр. 2020 г., в 08:57, Nikolay Izhikov <nizhikov....@gmail.com >>>> >>>>> написал(а): >>>>>>>> >>>>>>>> Hello. >>>>>>>> >>>>>>>> Any feedback on this? >>>>>>>> >>>>>>>> This change seems very simple, I can start vote right now if >>> nothing >>>>> to discuss here. >>>>>>>> >>>>>>>>> 21 февр. 2020 г., в 15:18, Nikolay Izhikov < >>> nizhikov....@gmail.com> >>>>> написал(а): >>>>>>>>> >>>>>>>>> Hello, >>>>>>>>> >>>>>>>>> I'd like to start a discussion of KIP [1] >>>>>>>>> This is follow-up for the KIP-553 [2] >>>>>>>>> >>>>>>>>> Its goal is to enable TLSv1.3 by default. >>>>>>>>> >>>>>>>>> Your comments and suggestions are welcome. >>>>>>>>> >>>>>>>>> [1] >>>>> >>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-573%3A+Enable+TLSv1.3+by+default >>>>>>>>> [2] >>>>> >>> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=142641956 >>>>>>>> >>>>>>> >>>>>> >>>>> >>>>> >>>> >>> >