Created - 14th July 2000 by Paul Ford-Hutchinson (paul.ford-hutchinson@gxs.com)
Last Updated - 16th Feb 2006 by Paul Ford-Hutchinson
More change history in the HTML source if you are interested
Interoperating ftp and ssl has been defined in three ways.
According to the current internet
draft specification (draft-murray-auth-ftp-tls-16.txt) only one of them is now considered valid.
They are:
From draft-murray-auth-ftp-ssl-07.txt
A. Deprecated SSL negotiation mechanisms There are two other mechanisms that have been used for FTP over SSL, these mechanisms do not conform to [RFC-2228] and so are now deprecated. They are documented below. i) Implicit SSL protection of the FTP session There is a port, registered with the IANA, for secure FTP using ssl {FTP-TLSPORT}. This approach can be likened to the [RFC-2818] approach for https, in that the SSL negotiation happens upon connection (for the control and all data connections). This approach is not favoured by the IETF and should not be used for new FTP-TLS implementations. ii) Protection using the 'AUTH SSL' command Early implementations of the negotiated SSL upgrade, using the AUTH command implemented it in a slightly different way that that used in this document. The parameter on the the AUTH command is 'SSL' and not 'TLS' and, once the control connection is secured, the state of the data connection is implicitly secure. This approach is in direct disagreement with [RFC-2228] which requires the PROT command to be issued and so should not be used in new implementations As a historical note, very early implementation of this approach issued and expected a '334' reply from the 'AUTH SSL' command. This should be contrasted to the '234' reply defined in this document.
Where a version is listed against a particular product, it is meant to identify the earliest version that the FTP/TLS feature appeared in.
I do not intend to update version numbers when the FTP/TLS capability has not altered. If a product adds or removes an FTP/TLS feature then I will list that version as a new item. (I.E. if version x of product Y supports AUTH SSL and version x+4 adds support for AUTH TLS, there will be two entries in the table for product Y.)
The contents of this page have not been verified by me. If you feel any of the information on the page is incorrect, please send me an e-mail with any additions/deletions/corrections that you feel need to be made. (This goes for broken links too). If you are telling me about a new implementation, then please, please provide me with the tabular information. It's amazing how hard (or, more often than not, impossible) it is to glean this from a web-site.
I do keep these pages updated, but tend to 'batch-up' requests. I do apologise if you think you are being ignored - but I have little time to do this. Once I have updated the page, I'll let you know.
SSL (TLS) works in two ways.
Where Mutual Authentication is supported, this document tries to explain how the client handles client certs (which cert to present to which server) and how the server uses the identity represented to map to an authorised user.
name | type | SSL connect | AUTH SSL | AUTH TLS | libraries | platform(s) | X.509 Client Auth | Other |
---|---|---|---|---|---|---|---|---|
C-kermit 8.0 | client | YES | YES | YES | openssl | AIX, FreeBSD, HP-UX, IRIX, Linux, OpenBSD, QNX, SCO OSR5, Solaris, SunOS, UnixWare | Yes [1] | |
Kermit 95 2.1 | client | YES | YES | YES | openssl | Windows 95, 98, ME, NT, 2000, XP; OS/2 | Yes [2] | |
ftp-tls | client | NO | NO | YES | openssl | linux | Yes [1] | Pete Runestig's client based on OpenBSD 2.7 client, now updated with CCC support |
Secure Transport | client | NO | YES | YES | openssl | WIN, unix, linux, OS/400, MVS | Yes [1], [2] | Also supports Valicert FTPS extensions |
M2Crypto (python) | client | NO | YES | YES | openssl | WIN
*IX |
? | Requires SWIG 1.3.6 |
lftp | client | YES | YES | YES | OpenSSL | *IX | ? | |
cleo | client | NO | YES | YES | ? | WIN | Yes [2] | |
z/OS (PDF) | client | YES | YES | YES | IBM skit | IBM z/OS | Yes | See Chapter 2 |
MOVEit | client | YES | YES | YES | MS Crypto API | WIN | YES | Also supports many hardware tokens |
ZMOD Exchange FTP | client | YES | YES | YES | ? | OS/400 | ? | |
Sterling Commerce CONNECT:Enterprise | client | NO | NO | YES | Certicom/Bsafe | WIN and *IX | Yes | |
LundFXP | client | NO | YES | YES | openssl | WIN
Mac *IX |
? | |
BSDFTPD-SSL | client | NO | YES | YES | openssl | WIN
*IX |
Yes [1] | Accepts both 234 and 334 replies |
SmartFTP | client | YES | YES | YES | schannel (MS Crypto API) | WIN | Yes | |
pftp | client | NO | NO | YES | openssl | linux and WIN | No | |
Seagull Secure FTP | client | YES | NO | YES | openssl | WIN32 | Yes | was BlueZone ftp |
pavuk | client | NO | NO | YES | openssl | *IX | ? | seems to have an issue with closing data connections |
XFB.FTP CS | client | YES | YES | YES | cryptix | WIN NT, 2K, XP; Unix AIX, HP, linux, Digital Sun, TRU 64 | Yes [2] | v1.1.1 |
SecurFTP | client | NO | YES | YES | openssl | HP NonStop | Yes [1] | Runs on Guardian personality |
FlashFXP | client | ? | ? | YES | ? | WIN | ? | ? |
COREFTP Lite | client | YES | YES | YES | Openssl/Windows (selectable) | WIN | ? |
Free. Pro version commerical. (Free .edu site license for lite version that removes splash screen delay). Also handles SFTP-via-ssh. Allows toggling of encrypted data/file listing sessions if server supports. |
SDI FTP | client | ? | ? | YES | ? | WIN | ? | ? |
edtFTPj/SSL | client | YES | YES | YES | Cryptix | Pure Java | Yes | Based on the edtFTPj libraries |
SafeTGate:FTP | client | NO | YES | YES | Insession developed | NonStop Server | Yes | |
retawq | client | YES | YES | YES | OpenSSL; GnuTLS | *IX | No | Accepts both 234 and 334 replies |
OS/400 (V5R2) (PDF) | client | YES | YES | YES | IBM skit | OS/400 | Yes | The base O/S ftp client has SSL support (look for SECOpen in PDF file) |
curl | client | YES | YES | YES | openssl or GnuTLS |
|
Yes [1] | Command line, non-interactive OSS client. Accepts both 234 and 334 reply |
turboftp | client | YES | YES | YES | ? | Win* | ? | |
kasablanca | client | NO | NO | YES | openssl | KDE (linux) | ? | |
UnlimitedFTP | client | YES | YES | YES | JSSE | java applet | ? | |
Proxykit | client | NO | NO | YES | openssl | windows | plugin for 'far' file manager (http://www.rarsoft.com/) | |
FileZilla | client | YES | YES | YES | openssl | WIN | No | GNU GPL. |
FTPeel | client | NO | NO | YES | ? | Mac OS X | No | |
FEG Inetutils | client | NO | NO | YES | GNU TLS | *IX | Yes | |
Captain FTP | client | NO | NO | YES | Mac OS X | |||
GetIT FTP | client | NO | YES | YES | openssl | WIN | Yes [2] | |
Kasablanca FTP | client | NO | NO | YES | openssl | *IX | ? | |
CuteFTP Professional and HOME | client | YES | YES | YES | openssl/sslEAY | WIN | Yes [2] | SSL/TLS, SSH, OTP support |
PHP scripting language | client | NO | NO | YES | openssl/sslEAY | WIN | ? | PHP is a scripting language |
RBrowser | client | NO | NO | YES | Mac OS X | ? | ||
ZMOD Exchange FTP | client | YES | YES | YES | ? | Windows | ? | |
edtFTPnet | client | YES | YES | YES | Mentalis | Windows .NET | Yes | |
BitKinex | client | YES | NO | YES | ? | Windows | ? | |
Glub | client | YES | YES | YES | JSSE | WIN, mac, *IX (java) | YES | Also have a bean that supports all functions |
Cyberduck | client | NO | NO | YES | ? | Mac OS X | ? | |
SftpPlus | client | YES | YES | YES | openssl |
|
YES | |
FireFTP | client | YES | YES | YES | openssl | Firefox plugin | Runs as a plugin to Firefox | |
SynchronEX+ | client | NO | YES | YES | openssl | Windows and linux | ? | Automatic File Synchronizer |
Reflection | client | NO | YES | YES | ? |
|
? | Also includes SSH and kerberos |
OneButton FTP | client | YES | NO | YES | Apple SecureTransport | Mac OS X | NO | |
TD-Access (formerly EZ-Access) | client | NO | YES (TLS-P) | NO | ? | WIN | Yes [2] | |
WS_FTP | client | NO | YES | NO | ? | WIN | Yes [2] | |
FTPvoyager 9.0 | client | YES | YES | NO | ? | WIN (shareware) | ? | |
openssl/ssleay | client | NO | YES | NO | openssl/sslEAY | *IX | Yes [1] | |
netfinder | client | NO | YES | NO | ? | MAC | ? | |
IglooFTP Pro | client | NO | YES | NO | openssl | WIN | YES - per host | From v3 |
IglooFTP Pro | client | NO | YES | NO | openssl | linux | YES - per host | X-windows (GTK) |
|
client | NO | YES | NO | openssl/sslEAY | linux | Yes [1] | Based on Tim Hudsons original patches to the BSD client |
South Rivers - WebDrive | client | YES | YES | NO | openssl | Windows 9x/NT/2K/XP | No | Maps a Windows Network Drive letter to a remote FTP server |
jftp | client | YES | YES | NO | ? | Lots (native java GUI application) | ? | |
Incredible ftps | client | ? | ? | ? | openssl/sslEAY | WIN
linux |
? | Documentation is in Greek ! |
Net Transport | client | ? | ? | ? | ? | WIN | MS Crypto API | Download only |
FtpXfer | client | ? | ? | ? | ? | WIN | MS Crypto API |
name | type | SSL connect | AUTH SSL | AUTH TLS | libraries | platform(s) | X.509 Client Auth | Other |
---|---|---|---|---|---|---|---|---|
Proftpd | server | NO | YES | YES | openssl | linux, solaris, *BSD, AIX, Tru64, Cygwin | Yes [1] | |
IE-FTP | server | YES | YES | YES | IBM skit | AIX | Yes [3] | Interface to IBM EDI services |
Secure Transport | server | NO | YES | YES | openssl | Windows, solaris, AIX, linux, HP-UX | Yes [1], [2] | Also supports Valicert FTPS extensions |
M2Crypto (python) | server | NO | YES | YES | openssl | WIN
*IX |
? | Requires SWIG 1.3.6 |
OS/400 (V5R1) (PDF) | server | YES | YES | YES | IBM skit | OS/400 | Yes [2] | The base O/S ftp server has SSL support |
wftpd | server | YES | YES | YES | MS CryptoAPI | WIN NT, 2K, XP | ? | Tested with Cute and Kermit (By vendor) |
z/OS (PDF) | server | YES | YES | YES | IBM skit | IBM z/OS | Yes [2] | See Chapter 2 |
WS_FTP Server | server | NO | YES | YES | ? | WIN NT/2K | Yes [2] | |
RaidenFTPD | server | YES | YES | YES | openssl | WIN | ? | |
orenosv | server | YES | YES | YES | openssl | WIN NT, 2K, XP | ? | |
Trailblazer ZMOD ftp server | server | YES | YES | YES | OS/400 | ? | ||
Sterling Commerce CONNECT:Enterprise | server | NO | YES | YES | Certicom / Bsafe | Unix | Yes | |
LundFTPD | server | NO | YES | YES | openssl | WIN
Mac *IX |
? | |
BSDFTPD-SSL | server | NO | YES | YES | openssl | *IX | Yes | Has extra cert mapping facilities - see This document |
MOVEit DMZ | server | YES | YES | YES | MS Crypto API | WIN 2K
Windows 2003 |
YES | Available in English, French and Spanish.
SSH (SFTP,SCP2) support also |
covalent FTP | server | YES | YES | YES | RSA BSafe | WIN 2K/XP, HPUX, Solaris, linux | Yes [1] | Module for apache 2.0 |
SecurFTP | server | NO | YES | YES | openssl | HP NonStop | Yes [1] | Runs on Guardian personality |
XFB.Gateway | server | YES | YES | YES | axway developed | WIN NT, 2K, XP; Unix AIX, HP, linux, Digital Sun | Yes | v6.70 |
South River - Titan FTP server | server | YES | YES | YES | OpenSSL/Cryptlib | WIN 9x, NT, 2K, XP | Yes [2] | |
Netware FTP server | server | YES | YES | YES | ? | Netware 6.5 (and 5.1 and 6.0) | ? | |
Pure FTPD | server | NO | NO | YES | Openssl | *IX | NO | OSS server - does not encrypt data connection :-( |
SafeTGate:FTP | server | NO | YES | YES | Insession developed | NonStop Server | Yes | |
glftpd | server | ? | ? | YES | ? | linux
Free BSD Solaris x86 AIX Open BSD |
? | |
wu_ftpd 2.8.0 | server | NO | YES | YES | openssl | linux
Free BSD Solaris x86 AIX Open BSD |
Yes | Still in beta |
edtFTPD | server | NO | YES | YES | openssl | Windows | Yes [1] | Based on Proftpd. Has GUI |
Gene 6 FTP Server | server | YES | YES | YES | openssl | Windows | ? | |
vsftp | server | NO | YES | YES | openssl | *IX | ? | FTP server with security as a stated objective. |
GlobalSCAPE Secure FTP Server | server | YES | YES | YES | OpenSSL | WinNT/XP 2000/2003 | YES | SSH (SFTP) support also |
Sambar Server | server | YES | NO | YES | OpenSSL | Windows and linux | YES | |
FileZilla | server | YES | YES | YES | openssl | WIN | No | GNU GPL. |
SftpPlus | server | YES | YES | YES | openssl |
|
YES | |
openssl/ssleay | server | NO | YES | NO | openssl/sslEAY | *IX | ? | |
TDNgine | server | ? | ? | ? | ? | ? | ? | |
Incredible ftps | server | ? | ? | ? | openssl/sslEAY | linux | ? | Documentation is in Greek ! |
SurgeFTP | server | ? | ? | ? | ? | WIN NT
linux |
? | |
ShareIT FTP | server | ? | ? | ? | WIN | ? |
name | type | SSL connect | AUTH SSL | AUTH TLS | libraries | platform(s) | X.509 Client Auth | Other |
---|---|---|---|---|---|---|---|---|
edtFTPj | library | NO | YES | YES | Cryptix | Pure Java | Yes | |
curl | library | YES | YES | YES | openssl or GnuTLS |
|
Yes [1] | Many many interfaces: perl, C, C++, java, pascal and Tcl to name but a few. Accepts both 234 and 334 replies |
ftplibpp | library | NO | NO | YES | openssl | Provided as C++ source | ? | |
Glub | library | YES | YES | YES | JSSE | WIN, mac, *IX (java) | YES |
name | type | SSL connect | AUTH SSL | AUTH TLS | libraries | platform(s) | X.509 Client Auth | Other |
---|---|---|---|---|---|---|---|---|
tlswrap | client proxy | NO | NO | YES | openssl | linux and WIN | ? | SSLifies any PASV capable ftp client |
ftpswrap | server proxy | YES | YES | YES | JSSE | WIN
OS X *IX |
? | SSLifies control and Data in both active and passive modes |
Seagull Security Server | server proxy | YES | NO | YES | openssl | WIN32 | Yes | SSLifies any PASV enabled ftp server |
SecurFTP | client proxy | NO | YES | YES | Phaos Crypto Toolkit, see http://www.phaos.com/products/crypto/crypto.html | any platform with a Java 1.2 virtual machine | No | Tested with Win32, *IX. Win32 has GUI to ease configuration. Other platforms are command-line driven |
ftp Guardian | client proxy | YES | NO | YES | ? | WIN | YES | Free |
ftp Guardian Server | server proxy | YES | NO | YES | ? | WIN | YES | Front to IIS |
frox | client proxy | NO | YES | NO | openssl | linux | Allows a standard client to talk to a protected server | |
SuSE | proxy | NO | NO | NO | openssl | linux | ? | Not sure what this does. Not FTP/TLS apparently though :-) |
delegate | proxy | ? | ? | ? | ? | ? | ? |
These implementations seem to have disappeared - if you come across them, please send me the link.
name | type | SSL connect | AUTH SSL | AUTH TLS | libraries | platform(s) | X.509 Client Auth | Other |
---|---|---|---|---|---|---|---|---|
wuFTPD/SSL (ii) (Broken Link) | server | NO | YES (with the broken 334 reply) | NO | openssl | *IX | ? | A Patch for an old wuftpd |
ftpsd (Broken Link) | server | NO | YES (with the broken 334 reply) | NO | openssl | ? | ? | Based on Tim Hudsons original patches to the BSD client/server |
wuFTPD/SSL
(i) (Broken Link) |
server | ? | ? | ? | openssl | ? | ? |
Projects that I am aware of that will come to fruition soon