[openssl-users] Peer closing connection with a FIN without first sending a close_notify
Jason Schultz
jetson23 at hotmail.com
Tue Apr 21 11:30:07 UTC 2015
Thanks for your response, Viktor. You views fall in line with our opinions on how the situation should be handled.
Any other opinions?
> Date: Mon, 20 Apr 2015 16:26:43 +0000
> From: openssl-users at dukhovni.org
> To: openssl-users at openssl.org
> Subject: Re: [openssl-users] Peer closing connection with a FIN without first sending a close_notify
>
> On Mon, Apr 20, 2015 at 03:03:37PM +0000, Jason Schultz wrote:
>
> > We am seeing the following situation and are not quite sure the proper
> > way to handle it, so I thought I'd solicit the mailing list. Our application
> > is an FTP server using OpenSSL. The peer is a non-OpenSSL FTP client in
> > active mode. The problem comes in with how the FTP client handles closing
> > the data connection after doing a put and transferring a file from client
> > to our server. Instead of sending a close_notify, it closes the connection
> > with a TCP FIN.
>
> That's wrong. This client snatches defeat from the jaws of victory,
> by failing to take advantage of the TLS shutdown facility to securely
> signal end of data. Without SSL shutdown the data transfer is
> vulnerable to truncation attacks.
> >
> > On our server, calls to SSL_read() and SSL_get_error() indicate an
> > SSL_ERROR_SYSCALL, which we treat as a protocol violation and abort the
> > connection. When the FTP implementation sees the abort, it tears down
> > the connection and throws the file away.
>
> That's sensible default behaviour I think, but you may need
> work-arounds for broken clients.
>
> > If we change our server to look for this specific case, and indicate a
> > close to the FTP application instead of an abort, the FTP transfer completes
> > successfully.
>
> Apply this work-around to as few clients as possible.
>
> > This is where our questions arise. First of all, the FTP client's close
> > without being preceded by a close_notify seems to be a violation of the
> > protocol, and OpenSSL handles it as such.
>
> Correct.
>
> > Does changing the way it's handled open up our application to truncation
> > attacks?
>
> Yes.
>
> > We have also read that this particular behavior is not unheard of in SSL
> > implementations, and treating the TCP FIN as a proper way to close the
> > connection as described above is OK.
>
> Only when the application-level protocol contains sufficient framing,
> to make additional framing in TLS redundant. This is not the case
> in FTP in stream mode. FTP in block mode can signal end of file via
> the block headers, and then TLS shutdown is not needed. (I've never
> seen FTP used in block mode).
>
> > Given the conflicting information we have seen, what is the opinion of
> > the OpenSSL team?
>
> I don't speak for the team. My opinion is that the client is broken
> unless it is using FTP in some manner that provides in-band file
> integrity.
>
> So any work-around may require client-specific configuration so as
> not to downgrade all clients.
>
> --
> Viktor.
> _______________________________________________
> openssl-users mailing list
> To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mta.openssl.org/pipermail/openssl-users/attachments/20150421/d95b7928/attachment-0001.html>
More information about the openssl-users
mailing list