run hostname verifier on FTPS data connection#404
Open
dxbjavid wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When a hostname verifier is installed through setHostnameVerifier, FTPSClient only runs it during the control-connection handshake in sslNegotiation; the data connection opened for each transfer completes its TLS handshake in openDataConnection without ever calling the verifier. As the default trust manager only checks that the certificate is in date and not that the name matches, an in-path attacker on the data port can present any unexpired certificate and the transferred bytes are read or altered even though the caller asked for the server identity to be checked. This runs the same verifier against hostname on the data socket after its handshake, so the data channel honours the check already applied to the control channel.