可以使用 https 代替 sftp 进行安全文件传输吗?

信息安全 tls pci-dss ftp
2021-08-14 17:52:14

我的公司从事财务工作,我们需要在公司和客户之间安全地传输包含非公开消费者信息的文件。

通常的解决方案是使用 sftp 进行文件传输,但是我们的许多客户并不精通技术,让他们使用 sftp 软件进行设置并教他们如何使用它非常耗时,而且常常让双方感到沮丧。

作为一个简单的解决方案,我创建了一个通过 https 托管的非常基本的网站,允许用户使用他们的 ftp 凭据登录并通过 Web 界面上传/下载文件。

但是可以将 https 视为等同于 sftp 的一种安全传输文件的方式吗?

4个回答

正确使用 HTTPS 和 SFTP 同样安全。实践中的底层加密算法在功能上都是等效的——在实践中都不能通过直接攻击加密协议来破解。

但是,在我看来,对于非技术精通用户的实践,HTTPS 稍微弱一些。

可以对粗心的、非技术型的用户发起对两者的攻击。Rell3oT 所说的对 SFTP 的攻击是,通常您在第一次连接时最初不知道 SFTP 的公钥,并在所有后续连接中记住它(尽管DNSSEC 中定义的 SSHFP DNS 记录可以解决这个问题,但不是目前广泛使用)。这意味着最初将 Internet 流量重新路由到他们的假 sftp 服务器的攻击者可以捕获您的数据,如果他们将攻击目标针对从计算机首次连接到 sftp 站点的人(该计算机没有保存公钥)。这种攻击不会发生在后续连接上。

但是,通过 https 引入了更多潜在的攻击,非精通技术的用户可能会被欺骗。

  1. 用户可能不会访问https://your-secure-file-transfer.com,而只是your-secure-file-transfer.com在 Web 浏览器中键入(默认情况下会转到http版本)。攻击者可以等待这种情况,然后捕获此流量并将其重定向到该站点的伪造副本;窃取认证信息/财务数据。(是的,将 sftp 替换为 ftp 可能会发生类似的事情;但由于它通常在保存连接信息的单独应用程序中完成,这似乎不太可能——要转到 ftp 版本,用户通常必须手动输入不同的端口号)。您可以通过要求站点启用 HSTS来解决此问题除非他们注意 URL 栏的显示https,否则用户可能不会注意到他们在http站点或其他 URL。 大多数浏览器仅在一小部分主要网站上启用HSTS 。大多数情况下,它会在第一次成功访问 HTTPS 站点后在 Web 浏览器中启用(其中有一个标头要记住该站点必须始终通过 https 连接);为 SFTP 提供功能等效的安全性。
  2. 非精通技术的用户的网络浏览器不如标准 SFTP 客户端安全。用户经常安装各种浏览器扩展程序,这些扩展程序能够访问您的所有互联网活动以获得某种功能。这种附加功能可能带有秘密攻击;例如,窃取会话 cookie、在表单上输入的信息(如他们的密码)等,这些信息最终会被发送回客户端作者。
  3. CA(或中间 CA)随时可能遭到破坏,攻击者可以获得浏览器信任的证书,从而使他们能够在不被发现的情况下欺骗您的 https。这又与 SFTP 不同,在 SFTP 中,sftp 客户端会记住它之前看到的站点的公钥,并在它发生更改时提醒您。(Web 浏览器不会这样做;证书只要经过正确签名就可以更改。同样,这不太可能很快改变,因为负载平衡的 Web 服务器通常都有不同的签名证书。

我想说的是,HTTPS 在实践中比 SFTP 稍弱一些。而两者都基于其加密优点同样安全。如果你训练你的用户检查它https是否存在并且在正确的域中,并且另外灌输了一些关于在他们的工作计算机上使用浏览器扩展的偏执狂(或者建议使用浏览器的私有模式,通常安装了很少的扩展)它将大致相同(假设您使用 HSTS/安全的 http-only cookie 等正确设置了站点。

是的。我认为 HTTPS 与 SFTP 相当或更好。

HTTPS 使用中央证书颁发机构,而 SFTP 没有。首次使用 SFTP 进行身份验证时存在风险。HTTPS 使用受信任的第三方可以防止这种风险。

需要注意的是(假设已建立安全通道)SFTP 和 HTTPS 同样安全。

HTTPS 和 SFTP 在一个非常重要的方面有所不同,在我看来,这使得优势显着偏向 HTTPS:流数据与文件传输。软件服务之间的正确 HTTPS 连接会以增量方式生成和传输数据,并且不需要静态文件。另一方面,按照惯例、实践和协议,SFTP 要求在传输(发送和接收)的同时创建和存储文件——因此同时存在两个静态副本。

零个静止文件与两个静止文件是巨大的,尤其是在涉及 CA 问题的情况下。HTTPS 获胜。

一个为 SFTP 提供了一些充分理由的答案已被接受,但似乎没有人提出使用 https 的许多优点。

首先,'https 工具的可用性比 SFTP 更广泛。它具有更广泛的用途,因此应该是一种更成熟的技术。

在不影响加密强度的情况下集成来自不同供应商的工具要容易得多。

单独移动文件没有什么好处。只有在处理数据时才能实现价值。与 SFTP 相比,将处理与“https 传输”集成起来要容易得多。

Http(和'https)有一个词汇表来描述数据应该如何被解释(编码、语言、mime 类型)和处理(get、post、put、delete),这在 SFTP 中是不可用的。

Http(s) 提供了一种机制,用于提供上下文信息以及传输功能 - 文档、有关帐户使用、帐户管理、问题记录等的信息,而 SFTP 不可用。

安全网络中最薄弱的环节通常是用户。与 SFTP 相比,用户对 HTTPS 的理解要好得多。客户端证书/密钥为此增加了一些复杂性,但告诉人们检查 URL 中的绿色背景比通过启用严格的主机检查和处理翻转(如果它们发生变化)来告诉他们要容易得多。

并且 https 证书具有到期日期和 oob 验证机制(HSTS 预注册)。

您提出的问题让我认为您是安全分析师/系统管理员。从这个角度来看,差异可能并不那么明显。去和你的开发者和用户交谈,你会得到一个非常不同的画面。