FTP_FTPS_SFTP_SCP_专题 SSL/TLS 双向认证(一) -- SSL/TLS工作原理

FTP(File Transfer Protocol):

FTP用于Internet上的控制文件的双向传输。FTP采用C/S模型,S端开启FTP服务供C端访问。在FTP的使用当中,用户经常遇到两个概念:“下载Download”和“上传Upload”。下载就是从远程主机拷贝文件至自己的计算机上;”上传”文件就是将文件从自己的计算机中拷贝至远程主机上。TCP/IP协议中,FTP服务端监听端口通常是为21号端口(可以修改,用于传输控制命令)。按照应用模式(port模式和passive模式)的不同,服务端数据传输端口可以是20号端口,也可以是其他端口。两种模式的区别:

Port模式(数据通道连接:server → client)

当客户端C向服务端S连接后,使用的是Port模式,那么客户端C会发送一条命令告诉服务端S(客户端C在本地打开了一个端口N在等着你进行数据连接),当服务端S收到这个Port命令后就会向客户端打开的那个端口N进行连接,这种数据连接就生成了。

Pasv模式(数据通道连接:client→ server)

当客户端C向服务端S连接后,服务端S会发信息给客户端C,这个信息是(服务端S在本地打开了一个端口M,你现在去连接我吧),当客户端C收到这个信息后,就可以向服务端S的M端口进行连接,连接成功后,数据连接也建立了。

即:

Port模式,是客户端C在本地打开一个端口等服务端S去连接建立数据连接;而Pasv模式就是服务端S打开一个端口等待客户端C去建立一个数据连接。

注意:

FTP的传输是明文传输,也就是数据没经过加密,如图抓包分析所示。我用windows做ftp客户端连接Linux的FTP服务端,然后get man_fstab.txt文件(man fstab的输出),左上角窗口用tcpdump进行抓包,可以看到数据传输是明文形式,没经过加密。


SFTP(Secure File Transfer Protocol)

sftp是ssh内含的协议,只要sshd服务器启动了,它就可用,它本身不需要ftp服务器启动。

FTPS(File Transfer Protocol)

FTPS一种多传输协议,相当于加密版的FTP。FTPS是在安全套接层(securesocket layer)使用标准的FTP协议和指令的一种增强型FTP协议,为FTP协议和数据通道增加了SSL安全功能。

FTPS也称作“FTP-SSL”“FTP-over-SSL”。SSL是一个在客户机和具有SSL功能的服务器之间的安全连接中对数据进行加密和解密的协议。详细源于SSL/TLS原理请阅读:

SSL/TLS 双向认证(一) -- SSL/TLS工作原理

SCP(Secure Copy Protocol)

SCP协议,是用来定义“本地机器和远端机器之间”或者“远端机器和远端机器之间”传输文件的过程的协议。SCP协议基于SSH协议,它使用建立的SSH连接隧道作为数据传输通道,而SSH连接隧道是安全的,因而基于SCP协议的文件传输是安全的。

SCP和SFTP 都是SSH功能的一部分,两者的最大不同之处在于: SFTP在文件传输过程中中断的话,连接后还可以继续传输,但SCP不行。

猜你喜欢

转载自blog.csdn.net/zhaogang1993/article/details/80548663