6

我仍在学习套接字编程(使用 Perl),但我有两个选项(套接字编程和 SSH/SCP/FTP)可用于将数据从远程机器传输到我的本地服务器。

但就数据传输而言,我必须选择一种更安全的(网络上的加密数据)。有什么建议么。

4

6 回答 6

6

仅使用套接字根本不会给您任何安全性。正确的选择取决于应用程序、您使用的系统以及用户对使用它需要做什么的了解程度。例如,如果您以安全的方式与 Web 服务器交互,您最终可能会为此使用 TLS/SSL。如果您只是在两个系统之间传输数据,那么使用 ssh 可能是最方便的方式。

当您说“安全”时,您是在寻找网络上的加密数据吗?通信双方的身份验证?两个都?

另一种选择是使用 TLS/SSL,可能与 OpenSSL 工具包一起使用(并且有带有绑定的 Perl 模块。)编程比使用 ssh 更复杂,你必须为它做更多的身份验证工作,所以它回到你想要做的任何事情。

此外,FTP 本身也不安全。

于 2010-04-15T05:01:46.360 回答
2

所有网络编程都在底层使用套接字。因此,这与您使用的协议有关。

通常,如果您想确保安全,您应该使用 SSL(https、sftp、ftps)进行通信

于 2010-04-15T04:52:30.143 回答
1

SSH/SFTP/SCP 在套接字编程下都使用了套接字。除非您有比 SSH 提供的更好的算法(安全性),否则请为 Perl 使用 SSH 模块。

于 2010-04-15T05:04:36.150 回答
1

开箱即用的插座不安全。数据以原始形式从 A 点传输到 B 点。

添加 SSL 可增加安全性。许多协议都支持 SSL。特别是几种 FTP 和 HTTP 支持 SSL。

FTPS 在许多平台和许多客户端上得到广泛支持。即使您编写自定义客户端,手头有其他客户端(例如 FileZilla)进行测试也很不错。

如果我要在这样的系统上从头开始,我会使用 FTPS。

于 2010-04-15T05:11:54.290 回答
1

SSH 是一个远程 shell 协议,它本身不用于文件传输(如 FTP)。SCP 文件传输协议是 SSH1 的一部分,但由于 SSH1 已过时且存在缺陷,因此不建议使用 SCP。在 SSH2(用于所有现代系统)中,使用 SFTP(SSH 文件传输协议)。

FTP (RFC 959) 本身不提供任何安全性。存在允许您通过 SSL/TLS 运行 FTP 的扩展(隐式地,通过预加密的通道,或显式地,通过 TLS 作为 FTP 协议的一部分)。基于 SSL 的 FTP 称为 FTPS(不要与 SFTP 混合使用)。

您可以在此处阅读有关 FTPS 和 SFTP 优缺点的详细说明

于 2010-04-15T06:03:36.960 回答
0

我会考虑三个主要选项:

  • FTPS(基于 SSL/TLS 的 FTP)——它相当于 HTTPS,简单来说意味着它是普通 FTP 协议的加密版本。我认为它非常适合从远程和可能的公共机器通过 Internet 下载。它以 X.509 证书的形式提供了卓越的身份验证机制。防火墙存在一些问题,因为它像 FTP 一样使用两个连接。如果您的目标是防止任何人看到您正在下载的内容,那么恕我直言,这是完美的解决方案。我倾向于使用此协议来访问我无法控制的机器。

  • SFTP (SSH FTP) - 它是一个很好的协议,可能比 FTPS 好一点,但在我看来它更适合受控环境。当我想将文件从我在一台机器上的帐户下载到另一台机器时,我将使用此协议。或者当我想将新脚本上传到服务器时。对我来说,远程相当于我使用闪存驱动器访问机器并登录机器。

  • VPN - 如果这些机器是固定的 - 你总是连接到同一台机器 - 我会考虑使用 VPN 来提供安全性。传输受到外部人员的保护,服务器的行为就像它在同一个网络中一样,我可以使用任何我想要的协议。

于 2010-04-15T21:18:56.753 回答