常用的文件传输协议

文件传输是将文件从一个计算机系统传到另一个计算机系统,这个过程经由网络,但由于网路中各个计算机的文件系统往往不相同,因此,要建立全网公用的文件传输规则,称作文件传输协议。与文件传输相关的协议有很多种,比如我们常见的FTP(File Transfer Protocol),安全性更强的SSH(Secure Shell)等。

下面将会简单介绍FTP、FTPS、SSH、SCP以及SFTP几种常用文件传输协议的异同和关系。

01

FTP(File Transfer Protocol)

FTP是TCP/IP网络上两台计算机传送文件的协议,属于应用层。FTP协议要用到两个TCP连接,一个是命令链路(21端口),用来在FTP客户端与服务器之间传递命令;另一个是数据链路(22端口),用来上传或下载数据。

FTP有两种工作模式:

PORT(主动):客户端向服务器的FTP端口发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器,于是服务器向发送连接请求,建立一条数据链路来传送数据。

PASV(被动):客户端向服务器的FTP端口发送连接请求,服务器开一个临时端口并通知客户端在这个端口上传送数据的请求,客户端连接此端口,服务器将通过这个端口传送数据。

FTPS

FTPS一种多传输协议,相当于加密版的FTP。当在FTP服务器上收发文件的时候,会面临两个风险。第一个风险是在上载文件的时候为文件加密。第二个风险是这些文件在等待接收方下载的时候将停留在FTP服务器上,这时需要保证这些文件的安全。我们可以选择创建一个支持SSL的FTP服务器,即使用一个在FTP协议下面的SSL层加密控制和数据通道来让主机使用一个FTPS连接上载这些文件。

02

TLS&SSL

TLS是设计用来保护网络通信过程中信息的私密性的一种工业标准,允许客户机,服务器应用程序可以探测到安全风险,包括消息篡改,消息拦截,消息伪造,其前身是SSL。

TLS与SSL在传输层对网络连接进行加密,但是在应用层之下工作的。因此,它可以很容易在诸如HTTP,Telnet,POP3,IMAP4,SMTP和FTP等应用层协议上实现。SSL安全扩展至少有两种不同的初始化方法:显式安全和隐式安全。

03

SSH(Secure Shell)

SSH为建立在应用层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

传统的网络服务程序,如FTP、POP和Telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的, 就是很容易受到“中间人”这种方式的攻击,即“中间人”冒充真正的服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”转手做了手脚之后,就会出现很严重的问题。通过使用SSH,你可以把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。使用SSH还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。

04

SCP(Secure Copy)

SCP协议是用来定义“本地机器和远端机器之间”或者“远端机器和远端机器之间”传输文件的过程的协议,是应用层协议。SCP协议基于SSH协议,因而基于SCP协议的文件传输是安全的。

SCP客户端和服务器两者都包含有“从本地复制文件传输给对方”和“从对方获取文件复制到本地”的功能,但其服务器跟常见的服务器不同,它不是“持续运行,监听端口”,而是被触发运行的。

当SCP客户端发起文件传输请求时,会去调用同台机器上的SSH客户端程序,接着SSH客户端程序向SSH服务器进行文件传输请求,在得到允许的结果后,SSH服务器会建立一个SSH连接作为数据隧道,并运行同台机器上的SCP服务器。 此时如果是从SCP客户端传输文件到SCP服务器的情形:接下来SCP客户端从本地复制文件数据,将数据通过SSH隧道传输,SCP服务器从SSH隧道读取数据,将数据写入本地存储成一个文件。

05

SFTP(Secure File Transfer Protocol)

SFTP是安全文件传送协议,可为传输文件提供一种安全的加密方法,其与FTP有着几乎一样的语法和功能,但SFTP为SSH的一部份,是一种传输文件到服务器的安全方式。SFTP本身没有单独的守护进程,它必须使用SSH守护进程来完成相应的连接操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。

SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果对网络安全性要求更高时,可以使用SFTP代替FTP。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180504B1LFD800?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励