[ 
https://issues.apache.org/jira/browse/WAGON-600?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

David Obernöder updated WAGON-600:
----------------------------------
    Attachment: trace_ftp_original_wagon-ftp.pcapng

> FTP-Upload fails if server enforces data encryption
> ---------------------------------------------------
>
>                 Key: WAGON-600
>                 URL: https://issues.apache.org/jira/browse/WAGON-600
>             Project: Maven Wagon
>          Issue Type: Improvement
>          Components: wagon-ftp
>    Affects Versions: 2.0
>            Reporter: David Obernöder
>            Priority: Trivial
>         Attachments: trace_ftp_modified_wagon-ftp.pcapng, 
> trace_ftp_original_wagon-ftp.pcapng
>
>   Original Estimate: 8h
>  Remaining Estimate: 8h
>
> We recently deployed stronger encryption rules to a few of our webservers. 
> Unfortunately this leads to an issue with the FTP-Upload of wagon plugin for 
> FTP. We receive the message "425-Server reqires protected data connection".
> Due to our FTP-Server allows only data transfer with encryption, this error 
> arises.
> RFC4217, 9 defines the behaviour of Data Connection Protection and defines 
> two available modes for FTPS:
> 'C' - Clear - neither Integrity nor Privacy
> 'P' - Private - Integrity and Privacy
> With 'Clear' protection level, the data connection is made without
>  TLS. Thus, the connection is unauthenticated and has no
>  confidentiality or integrity. This might be the desired behaviour
>  for servers sending file lists, pre-encrypted data, or non-
>  sensitive data (e.g., for anonymous FTP servers).
>  
>  If the data connection security level is 'Private', then a TLS
>  negotiation must take place on the data connection to the
>  satisfaction of the Client and Server prior to any data being
>  transmitted over the connection. The TLS layers of the Client and
>  Server will be responsible for negotiating the exact TLS Cipher
>  Suites that will be used (and thus the eventual security of the
>  connection).
>  
> In addition, the PBSZ (protection buffer size) command, as
>  detailed in [RFC-2228], is compulsory prior to any PROT command.
>  This document also defines a data channel encapsulation mechanism
>  for protected data buffers. For FTP-TLS, which appears to the FTP
>  application as a streaming protection mechanism, this is not
>  required. Thus, the PBSZ command MUST still be issued, but must
>  have a parameter of '0' to indicate that no buffering is taking
>  place and the data connection should not be encapsulated.
> [...]
> However, it should be noted that using a value of '0' to mean a
>  streaming protocol is a reasonable use of '0' for that parameter
>  and is not ambiguous.
> Initial Data Connection Security
> The initial state of the data connection MUST be 'Clear' (this is
>  the behaviour as indicated by [RFC-2228]).
>  
> While inspecting the code I noticed that the plugin does not do any switch to 
> "secure data connection" (PBSZ 0 and PROT P). So it looks like the plugin is 
> not compatible to servers that enforce a data connection.
> A good behaviour would be that the plugin tries to switch to protected data 
> connections and continue if the server can't handle the PROT Command. Many 
> clients switch to data encryption too when a TLS encrypted FTP was started.
> I'm pretty sure this is also an issue in the current version.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to