本文概述
FTPS(支持传输层安全性(SSL / TLS)的文件传输协议), FTP(文件传输协议)和SFTP(SSH文件传输协议)基本上是授予客户端和服务器之间远程文件传输功能的协议。
但是, 它们是什么, 它们之间有什么区别?了解3个最臭名昭著的(和类似名称的)传输协议之间的区别是什么。
FTP
FTP用于在网络上的计算机之间传输文件。你可以使用FTP在计算机帐户之间交换文件, 在帐户和台式计算机之间传输文件或访问在线软件档案。但是请记住, 许多FTP站点已被大量使用, 并且在连接之前需要进行多次尝试。
使用FTP, 命令和数据通道均未加密。通过这些通道发送的任何数据都可以被拦截和读取。利用此特定漏洞的一种常见利用是使用ARP中毒和数据包嗅探器的中间人攻击。
优点
- 允许你传输多个文件以及目录。
- 如果连接丢失, 可以继续传输。
- 能够将项目添加到要上传/下载的”队列”中。
- 许多FTP客户端都可以计划传输。
- 单次传输没有大小限制(浏览器最多允许2 GB)。
- 许多客户端通过命令行具有脚本功能。
- 大多数客户端具有同步实用程序。
- 传输速度比HTTP更快。
缺点
- 用户名, 密码和文件以明文形式发送。
- 在本地计算机上很难过滤活动的FTP连接(首选被动)。
- 可以欺骗服务器以将数据发送到意外计算机上的随机端口。
- 很难编写作业脚本。
- 并非始终通过https支持TLS 1.2(请改用cURL)(根据Steve Silberberg atFitpacking)。
- 没经验的用户可以轻松完成工作(WeSwap Travel Money的Sam Williamson)。
- 不一致/无法跟踪已上传到远程系统上的内容(Capital Technology Services的John Chapin)。
FTPS
FTPS(FTP / SSL)是一个名称, 用于提供FTP软件执行安全文件传输的多种方式。每种方式都涉及在标准FTP协议之下使用SSL / TLS层来加密控制和/或数据通道。
最初起草FTP协议时, 安全性不是问题。从那时起, 许多事情发生了变化, 通过任何未加密的公共网络发送数据被认为是非常危险的, 在某些情况下被禁止。例如, 诸如PCI-DSS和HIPAA之类的法规包含要求通过加密保护数据传输的规定。为了解决此问题, 出现了对原始FTP(RFC 2228)的扩展, 该扩展保护使用SSL加密在网络上传输的FTP数据。
优点
- 广为人知和使用。
- 交流可以被人类阅读和理解。
- 提供服务器到服务器文件传输的服务。
- SSL / TLS具有良好的身份验证机制(X.509证书功能)。
- 许多Internet通信框架都内置了FTP和SSL / TLS支持。
缺点
- 没有统一的目录列表格式。
- 需要辅助数据通道, 这使得在防火墙后面很难使用。
- 没有为文件名字符集(编码)定义标准。
- 并非所有的FTP服务器都支持SSL / TLS。
- 没有获取和更改文件或目录属性的标准方法。
SFTP
SFTP(SSH文件传输协议)是一种网络协议, 可通过任何可靠的数据流提供文件传输和操作功能。它通常与SSH-2协议(TCP端口22)一起使用以提供安全的文件传输, 但也打算与其他协议一起使用。
SFTP的缩写通常被误用于指定某种安全FTP, 人们通常将其称为FTPS。另一个(类似)错误是, SFTP被认为是某种基于SSL的FTP。实际上, SFTP是SSH文件传输协议的缩写。这不是通过SSL的FTP, 也不是通过SSH的FTP(从技术上讲也是可行的, 但很少见)。
优点:
- 具有良好的标准背景, 可以严格定义大多数(如果不是全部)运营方面。
- 只有一个连接(不需要DATA连接)。
- 连接始终是安全的。
- 目录列表是统一的, 并且是机器可读的。
- 该协议包括权限和属性操纵, 文件锁定和更多功能的操作。
缺点:
- 通讯内容是二进制的, 无法”按原样”记录下来以供人工阅读。
- SSH密钥更难管理和验证。
- 该标准将某些事物定义为可选的或推荐的, 这会导致来自不同供应商的不同软件标题之间的某些兼容性问题。
- 没有服务器到服务器的复制和递归目录删除操作。
- VCL和.NET框架中没有内置的SSH / SFTP支持。
差异性
|
的FTP | FTPS | SFTP |
安全 | 命令和数据通道中的未加密信息交换。通信是人类可读的。 | 通过隐式SSL或显式SSL在命令和数据通道上进行加密。通信是人类可读的。 | FTP服务器和客户端之间的所有信息交换均通过SSH协议加密。 SFTP还可以加密会话。由于通讯采用二进制格式, 因此难以理解。 |
服务器的防火墙端口 | 允许端口21上的入站连接 | 允许端口21和/或990、989上的入站连接 | 允许端口22上的入站连接 |
客户端的防火墙端口 | 允许到服务器定义的端口21和被动端口范围的出站连接 | 允许到服务器定义的端口21和被动端口范围的出站连接 | 允许到端口22的出站连接 |
评论前必须登录!
注册