请建议一种安全的方式将数据从一台计算机传输到另一台计算机

时间:2009-12-24 00:12:06

标签: sockets command

我希望“A”计算机负责执行命令,“B”计算机将命令发送到“A”计算机。我对实施有一些想法。

WAY1: “A”计算机有一个真正的循环来监听“B”计算机的命令,当它被接收时,它会执行。

Way2: 使用FTP服务器,存储有关该命令的信息。 “A”计算机有一个while循环来检查“B”计算机是否上传了有关该命令的任何新信息。如果是,重建命令并执行。执行后,FTP服务器上的文件将被删除。并存储副本“A”计算机。

Way3: 这类似于way2,但使用数据库来存储。执行命令后,将执行该命令。

您对这三种方式有何建议?那够安全吗?

6 个答案:

答案 0 :(得分:2)

通用方式:sshscp

可靠的特定安​​全数据库:取决于平台:Service BrokerOracle AQMQSeries

不太好主意:写一个套接字程序,不知道任何有关安全性的事情。

答案 1 :(得分:1)

您正在假设一种信任关系而没有提供任何关于您如何知道计算机A的有效负载是良性的线索。您打算如何防止计算机A发送“在为所有银行帐户和密码进行掠夺后重新格式化硬盘”的任务?

  1. AKA在计算机B上编写套接字侦听器,让计算机A连接到它。这里没有安全保障。
  2. FTP只是让您不必编写传输协议。
  3. 持久性数据库而不是文件存储 - 这里没什么新东西。
  4. 您的选项都没有任何安全性,因此很难说哪一个更安全。 FTP要求用户知道您的FTP服务器的URL,如果您不允许匿名访问,则需要用户名和密码。这使得2比1更安全.2和3同样(安全)。

    一切都可以奏效,但都有风险。我在这里看到很少或没有安全保障。

答案 2 :(得分:1)

如果没有更多细节,我建议的安全性就是使用SSL。

使用FTP或数据库服务器只会增加不必要的复杂性,可能无法获得任何实际价值。

如果您需要安全的解决方案,则需要仔细描述您的环境,风险和攻击者。

你害怕欺骗吗?拒绝服务?信息披露?拦截?

答案 3 :(得分:1)

  • 1与安全无关。
  • 2使用FTP而不是FTPS?任何人和他们的祖父母都可以嗅探用户名/密码。不要使用。
  • 3取决于您连接到数据库的安全程度---两端。另外,如果您的受托人如何确定插入数据库的内容?

你在真正在这里实施了什么?尽管如此,听起来你至少应该阅读一本关于信息安全的介绍性书籍。

答案 4 :(得分:1)

从您的示例中看来,您似乎并不太关心防范恶意攻击和位操作,但您想要的是可靠的交付。

查看消息队列解决方案,例如MSMQ

答案 5 :(得分:1)

这取决于您需要什么样的安全性。 如果它是有保证的交付 - 任何使消息存储并批准存储的方式将在删除之前完成。 如果是发件人和收件人ID,你应该使用证书。 如果它是关于线安全性的 - 你应该加密消息。

如果您使用的是Microsoft世界,可以使用WCF实现所有功能。 如果您在Linux世界中,还有其他库。 (例如,您可以使用https帖子。)