搜索
首页科技周边IT业界FTP程序安全吗?

FTP的安全隐患及更安全的替代方案

关键要点:

  • FTP程序(如FileZilla)可能隐藏密码,但如果凭据被存储,则很容易从配置文件中访问,从而危及安全性。
  • FTP本身缺乏安全性,以明文形式传输数据和凭据,容易被拦截和滥用。
  • 安全的替代方案,如FTPS和SFTP,在传输过程中对数据进行加密,与传统的FTP相比,提供了更高的安全级别。
  • SSH密钥通过无需传输敏感信息即可进行身份验证来增强安全性,有效防止拦截。
  • 持续交付工具和安全的FTP协议(如SFTP和FTPS)可以减轻手动文件传输过程中人为错误带来的风险。

你是否使用FTP部署或传输文件?鉴于该协议的古老性和在众多托管公司中的广泛流行,可以说你可能正在使用。

但是,你是否意识到这可能会为你和你的企业带来安全问题?让我们深入探讨一下这种情况。

FileZillaCyberDuckTransmitCaptain FTP等程序可以是安全的。它们可能实现一些措施,例如隐藏密码,防止他人查看。但是,如果你使用FTP传输数据,这些措施实际上会被削弱。

我直截了当地说,我写这篇文章的原因是8月份在SitePoint上进行的一次有趣的讨论。讨论主要集中在FileZilla上,对它有多不安全(或不是)做了一系列断言。

争论的一个关键方面集中在是否应该将密码与FileZilla一起存储。其中一条评论链接到一篇描述性文章,该文章表明,尽管在使用软件时会隐藏你的凭据,但如果你保存了凭据,它们很容易被检索。

如果你没有读过这篇文章,FileZilla会将连接详细信息存储在一个简单的XML文件中,如下所示:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><filezilla3></filezilla3>
    <servers></servers>
        <server></server>
            <host>localhost</host>
            <port>21</port>
            <protocol>0</protocol>
            <type>0</type>
            <user>anonymous</user>
            <pass>user</pass>
            <logontype>1</logontype>
            <timezoneoffset>0</timezoneoffset>
            <pasvmode>MODE_DEFAULT</pasvmode>
            <maximummultipleconnections>0</maximummultipleconnections>
            <encodingtype>Auto</encodingtype>
            <bypassproxy>0</bypassproxy>
            <name>test site</name>
            <comments> </comments>
            <localdir> </localdir>
            <remotedir> </remotedir>
            <syncbrowsing>0</syncbrowsing>test site
        >
    >
>

你可以看到它存储了关于连接的大量信息,这样你就不需要记住它了。但是请注意,它也以明文形式存储你的密码?

Are FTP Programs Secure?

当然,当你使用该程序时,它会隐藏密码,如上面的屏幕截图所示,这样就无法从你的肩膀上读取。

但是,如果你可以访问计算机,那么从计算机中提取密码就没有意义了。公平地说,在最新版本的FileZilla中,默认情况下不允许存储密码。

加密配置文件怎么样?

有人建议,至少配置文件应该加密,或者以在授予访问权限之前请求主密码的方式设置,就像1Password和KeePassX一样。

Louis Lazaris随后链接到Stack Exchange上的一个讨论,试图反驳这一观点。以下是这篇文章的核心内容:

你看,加密凭据需要一个加密密钥,该密钥需要存储在某个地方。如果你的用户帐户上运行了恶意软件,那么他们和你(或任何其他在同一级别运行的应用程序)拥有的东西一样多。这意味着他们也将能够访问加密密钥或加密加密密钥的密钥等等。

我相信上述断言并没有完全理解1Password和KeePassX等程序的设计考虑。专门设计为密码和其他安全信息的安全保管库的应用程序,可能不像这个答案暗示的那样容易破解。

例如,1Password最近的一篇博客文章列出了对抗黑客的关键机制。

这些包括128位和256位对称密钥、SHA512和PBKDF2加密——以及一系列其他用于保护被访问的数据文件的特性,同时保留了它们易用性和简单性。

因此,推断使用安全的加密保管库实际上并不更安全是不正确的,特别是考虑到所有这些可用的技术。

是FTP,而不是你的应用程序!

但是,关于是否应该保存凭据的论点是无关紧要的,因为使用FTP本身忽略了一个关键点——你的凭据和数据是以明文形式发送的。不相信我?请阅读Deccanhosts博客上的《为什么FTP不安全》。

如果你不知道,通过使用简单的分组嗅探器,如Wireshark,你可以检索到使用的用户名和密码,以及发送的文件中存储的任何其他凭据,以及算法、数据库结构以及存储在其中的任何其他内容。

鉴于长期以来,将这些信息存储在.ini和配置文件中是一种常见做法,我建议相当大量的易于下载的软件,如WordPress、Joomla等,将以这种方式开发。

FTP的设计初衷并非为了安全性;它被设计为一项公共服务。这种设计中固有地包含了一系列进一步的假设,这些假设也没有考虑到安全性。Zend的高级软件工程师Enrico Zimuel甚至说得更远:永远不要使用FTP——永远!

是的,安全更改后来出现了,但它们是附加的——而不是内置的。没有防止暴力攻击的保护,虽然SSH隧道是可能的,但它很困难,因为你需要加密命令和数据通道。因此,你的选择有限。当你试图实现它们时,难度系数并不总是微不足道的。

你是一个网站管理员吗?你是否为你的FTP用户启用了chroot监狱?如果你不熟悉chroot这个术语,它是一种限制用户移动和访问权限的方法。从他们登录的目录开始,他们可以进入任何子目录,但不能移动到该目录之外。

FTP的替代方案

在我让你相信一切都糟透了之前——并非如此。今天周围的一些FTP程序——特别是前面提到的那些程序——也支持一些更安全的FTP衍生产品和替代方案。让我们来看看它们。

FTPS和SFTP

FTPS是安全FTP,就像HTTPS是安全HTTP一样,它运行在SSL(安全套接字层)和TLS(传输层安全)之上。用户凭据和数据不再以明文形式发送;而是先加密,然后再传输。

如果服务器允许,客户端软件还可以灵活地仅加密通信的一部分,而不是全部。根据目前的讨论,这似乎违反直觉。

但是,如果被传输的文件已经被加密,或者没有传输任何敏感性质的信息,那么可能不需要承担加密所需的开销。

但是,切换到FTPS确实需要付出代价(和价格)。使用FTPS需要生成自签名SSL证书,或从受信任的证书颁发机构购买证书。因此,更好的安全性是可用的,但是需要付出更多的努力和成本。

但在你退缩之前,问问自己,你的信息对你企业来说价值多少?这可能会说服你坚持下去。

现在让我们看看SFTP。SFTP或SSH文件传输协议的工作方式与FTPS不同。SFTP被设计为SSH 2.0的扩展,它创建了一个普通的FTP连接,但在已经加密的连接上执行它。FTP数据流本身并不比普通的FTP更安全,但是它运行的连接更安全。

SSH、SCP和其他登录Shell

如果你要放弃FTP,为什么要采取半途而废的措施?为什么要使用FTP?如果你安装了SFTP,你就安装了SSH工具;这些工具为你提供了各种各样的功能。

从SSH本身开始,它为远程系统提供了完整的用户访问权限,让他们可以做比标准FTP更多的事情。连接是安全的,数据可以很容易地从一个系统复制到另一个系统。

如果你是一个命令行高手,你甚至可以使用SSH上的Rsync等工具。

在一个简单的用例中,它可以用来将所有文件从本地目录递归地复制到远程计算机上的目录。第一次运行时,所有文件都会被复制。

第二次及以后的运行,它会检查文件差异,只传输差异、较新的文件,并可以选择删除远程计算机上不再存在的本地文件和目录。

问题是,授予这种访问权限本身就是一个安全问题。但是效果是可以减轻的。OpenSSH允许许多配置选择,例如不允许root访问、限制可以远程登录的用户以及将用户chroot到特定目录。

也许用户根本不需要在远程计算机上,或者在他们在那里时不需要很多权限。如果是这样,并且很可能是这样,你可以从许多旨在适应这些情况的shell中进行选择。

最好的两个是scponly和rssh。Scponly只允许用户将文件复制到远程计算机。

用户无法登录、移动、查看或更改文件。好的是它仍然可以使用rsync(和其他工具)。rssh更进一步,允许访问SCP、SFTP、rdist、rsync和CVS。

要实现它,系统管理员只需使用他们选择的工具更改用户的shell,然后编辑/etc/rssh.conf,列出允许的协议。这是一个示例配置:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><filezilla3></filezilla3>
    <servers></servers>
        <server></server>
            <host>localhost</host>
            <port>21</port>
            <protocol>0</protocol>
            <type>0</type>
            <user>anonymous</user>
            <pass>user</pass>
            <logontype>1</logontype>
            <timezoneoffset>0</timezoneoffset>
            <pasvmode>MODE_DEFAULT</pasvmode>
            <maximummultipleconnections>0</maximummultipleconnections>
            <encodingtype>Auto</encodingtype>
            <bypassproxy>0</bypassproxy>
            <name>test site</name>
            <comments> </comments>
            <localdir> </localdir>
            <remotedir> </remotedir>
            <syncbrowsing>0</syncbrowsing>test site
        >
    >
>

此配置仅允许用户使用SCP和SFTP。

SSH密钥

接下来,让我们考虑SSH密钥。这个过程需要一些解释,但我将尝试使其简短扼要,大量改写Stack Exchange上的这个答案:

首先,服务器的公钥用于构建安全的SSH通道,方法是协商一个对称密钥,该密钥将用于保护剩余的会话,启用通道机密性、完整性保护和服务器身份验证。通道功能安全后,将进行用户身份验证。

接下来,服务器创建一个随机值,用用户的公钥加密它并将其发送给他们。如果用户是他们应该成为的用户,他们可以解密挑战并将其发送回服务器,然后服务器确认用户的身份。这是经典的挑战-响应模型。

这项技术的关键好处是私钥永远不会离开客户端,也不会发送任何用户名或密码。如果有人拦截SSL流量,并且能够解密它(使用被破坏的服务器私钥,或者如果你在连接到服务器时接受错误的公钥)——你的私人详细信息将永远不会落入攻击者手中。

与SCP或SFTP一起使用时,这进一步减少了使用它们的所需工作量,同时提高了安全性。SSH密钥可能需要密码来解锁私钥,这似乎会使它们更难使用。

但是,有一些工具可以将此链接到你的用户会话,当你登录到你的计算机时。正确设置后,密码会自动为你提供,因此你可以充分利用该系统。

持续交付怎么样?

也许你以前没有听说过这个术语,但它已经存在一段时间了。我们之前在SitePoint上写过关于它的文章,就在上周。由Martin Fowler创造的持续交付定义为:

一种软件开发纪律,你以这样一种方式构建软件,即软件可以随时发布到生产环境。

实现它的方法有很多,但是Codeship和Beanstalk等服务在很大程度上消除了痛苦。

以下是如何工作的粗略比喻。你设置你的软件项目,包括你的测试代码和部署脚本,并将所有这些存储在版本控制下。我假设你正在使用在线服务,例如GitHub或Bitbucket。

在你的代码分支中进行提交或发布后,每次向这些服务之一推送时,该服务都会运行你的应用程序的测试。如果测试通过,则会部署你的应用程序,无论是测试还是生产。

假设一切顺利,它随后会自动为你处理部署。之后你会收到通知,告知部署成功或失败。

如果成功,你可以继续下一个特性或错误修复。如果出现问题,你可以检查它以查找问题的原因。请查看下面的简短视频,该视频展示了使用Codeship实际部署测试存储库的过程。

你必须做什么?将提交推送到Github存储库——就是这样!你不需要记住运行脚本、脚本在哪里、要传递给它们的选项和开关(尤其是在周五晚上很晚的时候,你宁愿在任何地方而不是工作)。

我理解这相当简单,并没有涵盖所有选项和细微之处,但你明白了我的意思。

人为错误的问题

最后,让我们从使用FTP的基本安全问题转向日常使用的有效性。例如,假设你正在开发一个网站,例如一个电子商务商店,并且你的部署过程使用FTP,特别是FileZilla。

这里有一些与人为错误相关的固有问题:

  • 所有文件是否都上传到正确的 位置?
  • 文件是否保留或获得所需的权限?
  • 是否会忘记一两个文件?
  • 生产中是否需要更改一个开发名称?
  • 是否需要运行部署后脚本?

所有这些都是有效的担忧,但是当使用持续交付工具时,所有这些都可以很容易地减轻。如果时间晚了,如果压力很大,如果相关人员即将离开公司或渴望休假,那么通过FTP手动传输文件就是在自找麻烦。

好吧,手动传输文件,总而言之,就是在自找麻烦。人为错误太难避免了。

向FileZilla致歉

我不想显得好像我是在针对FileZilla。它是一个非常好的应用程序,我已经使用了多年。并且已经使用了试图使其更安全的技术。

我的关键点在于FTP本身,而不是仅仅是FileZilla。

总结

这就是我对FTP安全辩论的看法。我的建议——不要使用它;此外,在管理部署时,请记住安全性。毕竟,这是你的数据。

但是你的想法是什么?你还在使用FTP吗?你是否考虑过迁移?在评论中分享你的经验以及你尝试过的解决方案,这样我们都可以努力寻找一个实用且易于使用的解决方案。

进一步阅读和资源

  • ZendCryptPassword
  • 密码(不)安全性(幻灯片)
  • 为什么FTP不安全
  • Wireshark(网络协议分析器)
  • 1Password 4中不断发展的安全
  • 当心:FileZilla无法保护你的密码
  • Linux受限Shell:rssh和scponly

关于FTP程序安全的常见问题

与FTP程序相关的安全风险主要有哪些?

FTP程序虽然对文件传输很有用,但也存在一些安全风险。主要问题是FTP不加密数据,这意味着所有传输的信息,包括敏感数据(如用户名和密码),都是以明文形式发送的。这使得网络罪犯很容易拦截和滥用这些信息。此外,FTP容易受到暴力攻击、数据包捕获和欺骗攻击等攻击。这些风险可能导致数据泄露、未经授权的访问和其他严重的安全问题。

如何减轻使用FTP程序的风险?

有几种方法可以减轻与FTP程序相关的风险。最有效的方法之一是使用FTP的安全版本,例如SFTP或FTPS。这些协议在传输过程中加密数据,使网络罪犯难以拦截。此外,使用强壮、唯一的密码并定期更新它们可以帮助防止暴力攻击。保持FTP程序更新也很重要,因为更新通常包含安全补丁。

FTP、SFTP和FTPS之间有什么区别?

FTP或文件传输协议是一种标准的网络协议,用于通过互联网将文件从一台主机传输到另一台主机。但是,它不提供任何加密。SFTP或安全文件传输协议是FTP的安全版本,它使用SSH(安全外壳)在传输过程中加密数据。FTPS或FTP Secure是FTP的另一个安全版本,它使用SSL(安全套接字层)或TLS(传输层安全)进行加密。

今天仍然使用FTP吗?

是的,FTP今天仍然被广泛使用,尤其是在企业环境中用于传输大型文件或批量文件。但是,由于其安全漏洞,许多组织正在转向更安全的替代方案,如SFTP或FTPS。

如何判断我的FTP程序是否安全?

要确定你的FTP程序是否安全,你应该检查它是否在文件传输过程中使用加密。FTP的安全版本,如SFTP和FTPS,在传输过程中加密数据。你通常可以在程序的文档或设置中找到此信息。此外,安全的FTP程序应该提供诸如强密码强制、双因素身份验证和定期更新等功能。

我可以将VPN与FTP程序一起使用来增强安全性吗?

是的,将VPN(虚拟专用网络)与FTP程序一起使用可以增强安全性。VPN加密通过互联网发送的所有数据,包括你的FTP流量。这可以帮助保护你的数据不被网络罪犯拦截。

FTP的一些安全替代方案是什么?

FTP的一些安全替代方案包括SFTP、FTPS和SCP(安全复制协议)。这些协议都使用加密来保护传输过程中的数据。此外,基于云的文件传输服务通常提供强大的安全措施,包括加密、双因素身份验证和访问控制。

什么是暴力攻击,它如何影响FTP?

暴力攻击是一种网络攻击,攻击者试图通过猜测密码来访问系统。由于FTP以明文形式发送密码,因此它特别容易受到暴力攻击。如果攻击者成功猜测到密码,他们可以未经授权访问系统,并可能窃取或操纵数据。

如何保护我的FTP程序免受欺骗攻击?

欺骗攻击(攻击者假装是合法用户或设备)可能是对FTP程序的严重威胁。为了防止这些攻击,你可以使用使用加密的FTP的安全版本,如SFTP或FTPS。此外,使用强壮、唯一的密码并定期更新它们可以帮助防止欺骗攻击。

什么是数据包捕获,它如何影响FTP?

数据包捕获,也称为数据包嗅探,是网络罪犯用来拦截和分析数据包在网络上传输时的方法。由于FTP不加密数据,因此它特别容易受到数据包捕获的影响。攻击者可以使用此方法窃取敏感信息,如用户名和密码。为了防止数据包捕获,你应该使用使用加密的FTP的安全版本,如SFTP或FTPS。

以上是FTP程序安全吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
安卓首家接入DeepSeek背后:看见女性力量安卓首家接入DeepSeek背后:看见女性力量Mar 12, 2025 pm 12:27 PM

中国女性科技力量在AI领域的崛起:荣耀与DeepSeek合作背后的女性故事女性在科技领域的贡献日益显着。中国科技部数据显示,女性科技工作者数量庞大,在AI算法开发中展现出独特的社会价值敏感性。本文将聚焦荣耀手机,探究其率先接入DeepSeek大模型背后的女性团队力量,展现她们如何推动科技进步,重塑科技发展价值坐标系。 2024年2月8日,荣耀正式上线DeepSeek-R1满血版大模型,成为安卓阵营首家接入DeepSeek的厂商,引发用户热烈反响。这一成功背后,女性团队成员在产品决策、技术攻坚和用户

DeepSeek'惊人”盈利:理论利润率高达545%!DeepSeek'惊人”盈利:理论利润率高达545%!Mar 12, 2025 pm 12:21 PM

DeepSeek公司在知乎发布技术文章,详细介绍了其DeepSeek-V3/R1推理系统,并首次公开关键财务数据,引发业界关注。文章显示,该系统单日成本利润率高达545%,创下全球AI大模型盈利新高。DeepSeek的低成本策略使其在市场竞争中占据优势。其模型训练成本仅为同类产品的1%-5%,V3模型训练成本仅为557.6万美元,远低于竞争对手。同时,R1的API定价仅为OpenAIo3-mini的1/7至1/2。这些数据证明了DeepSeek技术路线的商业可行性,也为AI大模型的高效盈利树立了

美的推出首款DeepSeek空调:AI语音交互 可实现40万 条指令!美的推出首款DeepSeek空调:AI语音交互 可实现40万 条指令!Mar 12, 2025 pm 12:18 PM

美的即将发布搭载DeepSeek大模型的首款空调——美的鲜净感空气机T6,发布会定于3月1日下午1点30分举行。这款空调配备先进的空气智驾系统,可根据环境智能调节温度、湿度和风速等参数。更重要的是,它集成了DeepSeek大模型,支持超过40万条AI语音指令。美的此举引发业界热议,尤其关注白电产品与大模型结合的意义。不同于传统空调简单的温度设定,美的鲜净感空气机T6能够理解更复杂、更模糊的指令,并根据家庭环境智能调节湿度等,显着提升用户体验。

2025年最佳10个最佳免费反向链接检查器工具2025年最佳10个最佳免费反向链接检查器工具Mar 21, 2025 am 08:28 AM

网站建设只是第一步:SEO与反向链接的重要性 建立网站只是将其转化为宝贵营销资产的第一步。您需要进行SEO优化,以提高网站在搜索引擎中的可见度,吸引潜在客户。反向链接是提升网站排名的关键,它向谷歌和其他搜索引擎表明您的网站权威性和可信度。 并非所有反向链接都有利:识别并避免有害链接 并非所有反向链接都有益。有害链接会损害您的排名。优秀的免费反向链接检查工具可以监控链接到您网站的来源,并提醒您注意有害链接。此外,您还可以分析竞争对手的链接策略,从中学习借鉴。 免费反向链接检查工具:您的SEO情报员

百度又一国民产品接入DeepSeek,是想开了还是跟风?百度又一国民产品接入DeepSeek,是想开了还是跟风?Mar 12, 2025 pm 01:48 PM

DeepSeek-R1赋能百度文库与网盘:深度思考与行动的完美融合短短一个月内,DeepSeek-R1已迅速融入众多平台。百度凭借大胆的战略布局,将DeepSeek作为第三方模型伙伴,整合进自身生态系统,这标志着其“大模型 搜索”生态战略的重大进展。百度搜索和文心智能体平台率先接入DeepSeek及文心大模型的深度搜索功能,为用户提供免费的AI搜索体验。同时,“百度一下,你就知道”的经典slogan回归,新版百度APP也整合了文心大模型和DeepSeek的能力,推出“AI搜索”、“全网信息提炼”

及时的网络开发工程及时的网络开发工程Mar 09, 2025 am 08:27 AM

AI及时工程代码生成:开发人员指南 代码开发的景观有望进行重大转变。 掌握大型语言模型(LLM)和及时工程对于未来几年对开发人员至关重要。 Th

使用GO构建网络漏洞扫描仪使用GO构建网络漏洞扫描仪Apr 01, 2025 am 08:27 AM

此基于GO的网络漏洞扫描仪有效地确定了潜在的安全弱点。 它利用了GO的并发功能的速度功能,包括服务检测和漏洞匹配。让我们探索它的能力和道德

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
2 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
2 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版