Download Reference Manual
The Developer's Library for D
About Wiki Forums Source Search Contact

Ticket #1541 (new enhancement)

Opened 15 years ago

Last modified 14 years ago

Secured FTP Support

Reported by: domain Assigned to: lmartin92
Priority: major Milestone: 1.0
Component: Tango Version: 0.99.7 Dominik
Keywords: FTP SSL Cc:

Description

I saw SSLSocketConduit in tango, maybe it's not difficult to support SSL in FTP?

Change History

03/19/09 15:36:31 changed by larsivi

  • milestone changed from 0.99.8 to 0.99.9.

03/19/09 16:44:42 changed by lmartin92

When I find the one that is compatible I will look to implementing it. A list of Secure FTP Supporting servers would be a help here (I only do passive connections). This way I can test against them (and possibly telnet them to figure out how to do so correctly.

larsivi: should this be implemented as a subclass of FTPConnection (SecureFTPConnection?) or should it be directly integrated into FTPConnection?

03/19/09 16:45:36 changed by lmartin92

  • status changed from new to assigned.

03/19/09 23:17:34 changed by larsivi

It should probably be its own module to avoid unnecessary dependencies if a user don't want the secure part.

(follow-up: ↓ 6 ) 04/02/09 03:32:23 changed by lmartin92

  • owner changed from lmartin92 to kris.
  • status changed from assigned to new.
  • milestone changed from 0.99.9 to 1.0.

since there is no ftp protocol over ssl or other encryption method, and all secured file transfer protocols are non releated to regular ftp, it is not my responsibility to implement this (though I may choose to). The only secure method of relation to ftp is ftp over ssh, and even then it's only half secured as usually only the command channel is secured and the other channels for data transfer are not.

As ftp over ssh requires an ssh implementation that I am also not required to write, I will demote this ticket to where support for it will (maybe) be in by 1.0 but that is not guaranteed. As I don't know how to drop myself from assignment to this ticket, I am reassigning it to kris (sorry).

If I am out of place for demoting and reassigning let me know, and next time I will ask someone to do it for me.

If I am incorrect about ftp and it on ssl and so on, please let me know. I am using wikipedia as my main resource.

(in reply to: ↑ 5 ) 04/16/09 18:33:05 changed by Nthalk

Replying to lmartin92:

If I am incorrect about ftp and it on ssl and so on, please let me know. I am using wikipedia as my main resource.

FTPS is FTP over SSL, whereas SFTP is it's own protocol, made to improve upon SCP. Read this for details: http://winscp.net/eng/docs/protocols#protocol_comparison

FTP over SSH is just silly, since you are already using something that is way more powerful than FTP to emulate FTP. However, _all traffic_ over a SSH connection is encrypted, even if you think you are sending plain text from the server. However, FTP over SSL is also secure, as long as you do not do that pasv connect back on a non ssl connection (I do not think that avoiding this is very feasible unless your client has a SSL cert =D)

You are right, it would also be way awesome, and most likely a first step to SFTP or SCP to have a general SSH connection done. And, well, after that, who needs an FTP, SFTP, FTPS, or SCP client when they have a free OpenSSH server that exists for every major OS and something like this:

auto ssh = new SSHConnection('me@somewhere.com','mypass//my-private-key');

int bytes_already_recieved = 434;
char[] file_to_copy = '~/file_i_want_to_copy';
char[] cmd = '/usr/bin/env cat ';
char[] offset = '| /usr/bin/env tail -c+' ~ Integer.toString(bytes_already_recieved);

auto buffer = ssh.cmd(cmd ~ file_to_copy ~ offset);

04/17/09 00:29:41 changed by kris

This is not something I would feel comfortable doing. Don't know enough about SSH, so someone else will have to volunteer :)

11/09/09 09:09:57 changed by kris

  • owner changed from kris to lmartin92.