什么更安全 - 使用套接字编程或SSH / SCP / FTP进行数据传输

时间:2010-04-15 04:50:38

标签: ftp ssh sockets data-transfer

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

但是我必须在数据传输方面选择一个更安全的(网络上的加密数据)。任何建议。

6 个答案:

答案 0 :(得分:6)

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

当您说“安全”时,您是否在网络上寻找加密数据?通信方的认证?既?

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

此外,FTP本身也不安全。

答案 1 :(得分:2)

所有网络编程都使用引擎盖下的套接字。 所以这是你使用的协议的问题。

通常,如果您想要安全,则应使用SSL(https,sftp,ftps)隧道通信

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

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

FTPS在许多平台和许多客户端上得到广泛支持。即使您编写自定义客户端,也可以使用FileZilla等其他客户端进行测试。

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

答案 4 :(得分:1)

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

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

您可以阅读detailed descriptions of pros and cons of FTPS and SFTP here

答案 5 :(得分:0)

我会考虑三个主要选项:

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

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

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