M0ri

导航

协议


FTP
    FTP (File Transfer Protocol,RFC 959)是TCP/IP网络上用于文件传输的标准协议,基于C/S架构,可以上传、下载、删除文件,创建或改变服务器上的目录。在客户端和服务器间要建立分离的控制和数据连接,控制连接用于Session管理,如交换命令和回复、交换用户标识和密码等,数据连接用于传输数据。FTP使用明文登录协议验证用户名和密码,如果服务器允许也可以匿名连接。
    FTP有两种传输模式:主动和被动。主动模式时,客户端创建到服务器的TCP控制连接,发送客户端IP地址和随机的端口号,然后等待服务器初始化数据连接。这种情况下,如果客户端有防火墙,将无法接受进入的TCP连接。被动模式时,客户端使用控制连接向服务器发送PASV命令,然后接收服务器IP地址和端口号,客户端使用随机端口建立到服务器的数据连接。由于控制连接和数据连接都由客户端发起,可以解决防火墙问题。
    多数浏览器和文件管理器都能连接FTP服务器,默认大都使用被动模式。FTP URL语法如下:
    ftp://[<user>[:<password>]@]<host>[:<port>]/<url-path>
    FTP不是一个安全的协议,用户名、密码、命令和数据等都使用明文传输,内容非常容易被截获。在加密机制创立前设计的的网络协议,如SMTP、Telnet、POP、IMAP等都有这个问题。

FTPS
    FTP over SSL,常被称为Secure FTP,它是构建在SSL/TLS(RFC5246,Secure Socket Layer/Transport Layer Security)协议之上的,通过SSL/TLS对信道进行加密传输,它本身还需要FTP服务器的支持,又分为显示和隐式:
    显示FTPS又称为FTPES,是对FTP标准的扩展,客户端必须显示请求(客户端发送"AUTH TLS"命令)对FTP会话加密。如果客户端不要求加密,服务器也允许非加密通讯。服务器可以选择允许或拒绝未请求TLS的连接。这个扩展协议在推荐标准RFC4217中定义。
    隐式FTPS是过期的FTP标准,需要所有客户端都使用SSL或TLS连接。为了保持兼容性,隐式FTPS控制连接使用990端口,数据连接使用989端口。注意,隐式FTPS未在RFC4217中定义。
    FTPS支持如下验证方式:
    1、密码验证
    2、SSL证书验证
 
SFTP
    SFTP(SSH File Transfer Protocol)是SSH 2.0的一项扩展协议,提供安全的文件访问、传输和管理功能。SFTP协议的目标是通过可靠的数据流提供安全的文件传输功能,本身不提供验证和安全机制,需要依赖底层协议。SFTP协议虽然在SSH2协议中描述,但它是通用的,独立于SSH2套件中的其余协议。SFTP常作为SSH2.0实现的一个子系统。
    SFTP功能与FTP相似,有相似的命令集,但与FTP是无关的。与标准FTP不同,SFTP加密命令和数据,以防止在网络上明文传输密码和敏感信息。SFTP由于使用了不同的协议,不能使用标准的FTP客户端与SFTP服务器通讯,也不能使用SFTP客户端与FTP服务器通讯。
    SFTP是二进制协议,所有的命令(请求)都打包成二进制消息后发送到服务器,服务器回复二进制应答包。
    与早期的仅支持文件传输的SCP协议(SSH1.x中的)相比,SFTP协议支持更广泛的远程文件操作。SFTP客户端增加的额外功能包括:恢复中断的传输、目录列表、远程文件删除。SFTP服务器支持大多数平台。SSH 1是过时的,不安全的,不推荐使用。
    SSH服务器提供了如下3种验证方式:
    1、密码验证
    2、密钥验证
    3、密码+密钥验证
    关于验证方式的选择,推荐使用密钥验证,其安全性高于单纯的密码验证。
    目前使用最广泛的SFTP服务器是OpenSSH

posted on 2019-11-14 16:59  M0ri  阅读(174)  评论(0编辑  收藏  举报