概述
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不行。最后
以上就是文静背包为你收集整理的FTP_FTPS_SFTP_SCP_专题SSL/TLS 双向认证(一) -- SSL/TLS工作原理的全部内容,希望文章能够帮你解决FTP_FTPS_SFTP_SCP_专题SSL/TLS 双向认证(一) -- SSL/TLS工作原理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复