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
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>>> 
>>>> 
>>> 
> 

Reply via email to