Parth, Your understanding is correct.
I am also debating for 1(A) specially in context of security mechanisms like Kerberos which guarantees prevention from MITM during handshake. But with 1( B ) we are saying in case of Drill it's possible and fine since no data is compromised. Thanks, Sorabh ________________________________ From: Parth Chandra <par...@apache.org> Sent: Wednesday, November 1, 2017 1:42:14 PM To: dev Subject: Re: Drill SASL Forward Compatibility I sort of lost track of the arguments in the thread. Is my understanding below correct ? 1) A handshake from a (1.12) client expecting authentication and encryption is intercepted by a rogue server. The server then responds with a success message and bypasses the auth and encryption for the session. 2) The client is now connected, but not to the server it wanted to connect to. 3) The rogue server can now feed any bogus response to the client. Question 1 - Is #3 a security issue? Answer 1 (A) - Yes. The handshake has been compromised. The client is no longer connected to an authentic server. Answer 1 (B) - No. There is no data that has been compromised. Just a client that has been misled. I believe this is a security issue. A rogue server can now feed invalid results to the client and that is not safe. Perhaps others with more experience on industrial grade security can chime in. Question 2 - If this is a security issue, is it severe enough to break forward compatibility? In general, I'm -1 on breaking backward compatibility and -0 on breaking forward compatibility. I believe it is a very desirable goal to maintain both backward and forward compatibility. However, forward compatibility cannot be guaranteed unless we bake it into the RPC protocol and design clients to be version and feature aware. This itself would be a breaking change and should be one of the goals for V2. In this case, I'm inclined to go with what Arina is suggesting.