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

Sockets 请建议一种将数据从一台计算机传输到另一台计算机的安全方法,sockets,command,Sockets,Command,我希望“A”计算机负责执行命令,“B”计算机将命令发送到“A”计算机。我对实施有一些想法 方式1: “A”计算机有一个while true循环来监听“B”计算机的命令,当它被接收时,它就会执行 方式2: 使用FTP服务器,存储有关命令的信息。 “A”计算机有一个while true循环,用于检查“B”计算机是否上载了有关该命令的任何新信息。如果是,则重构命令并执行。执行后,FTP服务器上的文件将被删除。并将副本存储在“a”计算机上 方式3: 这类似于way2,但使用数据库存储。执行命令后,它将被

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

方式1: “A”计算机有一个while true循环来监听“B”计算机的命令,当它被接收时,它就会执行

方式2: 使用FTP服务器,存储有关命令的信息。 “A”计算机有一个while true循环,用于检查“B”计算机是否上载了有关该命令的任何新信息。如果是,则重构命令并执行。执行后,FTP服务器上的文件将被删除。并将副本存储在“a”计算机上

方式3: 这类似于way2,但使用数据库存储。执行命令后,它将被设置为已执行


你对这三种方式有什么建议?这足够安全吗?

您假设了一种信任关系,但没有提供任何线索,说明您如何知道来自计算机a的有效负载是良性的。你打算如何防止计算机A发送一个任务,上面写着“在盗取所有银行帐户和密码后重新格式化硬盘?”

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


    所有这些都可以工作,但都是有风险的。我在这里看到很少或没有安全性。

    没有更多详细信息,我所能建议的安全性就是使用SSL

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

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

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

    一种常见的方式:和

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

    不太好的主意:编写一个socket程序,而不了解任何有关安全性的知识。

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

    您在这里真正实现的是什么?恕我直言,听起来您至少应该学习一本关于信息安全的介绍性书籍。

    从您的示例中,您似乎对防范恶意攻击和位操纵不太感兴趣,但您需要的是可靠的交付


    例如,看一看消息队列解决方案。

    它取决于您需要什么样的安全性。 如果它是有保证的交付-任何方式,使邮件存储和批准删除前存储都可以。 如果是关于发送者和接收者id的,则应使用证书。 如果是关于线路安全性的,你应该加密消息

    如果您在Microsoft world上,所有事情都可以通过WCF实现。 如果你在Linux世界,还有其他库。
    (例如,您可以使用https post)。

    您是否在寻找身份验证?保密性?消息完整性?可靠的传递?从您的示例中,我猜您只需要最后一个,但请澄清一下好吗?