单向连续数据传输到气隙计算机

信息安全 网络 防火墙 气隙 数据传输
2021-08-27 11:51:44

什么是从面向互联网的计算机A => 气隙计算机B向一个方向传输文件以保护计算机B 上的文件免遭未经授权的泄露,而不使用昂贵的数据二极管的方法?

要求

  1. 数据传输必须是连续的。(电缆可以,但不是 USB 闪存驱动器)
  2. 只有计算机 B 中数据的机密性很重要。无需保护计算机 B 中数据的完整性。

考虑到计算机 A 可能存在被入侵的风险。向一个方向传输数据(主要是 pdf 文件)的最佳方式是什么?我正在寻找一种主要防止远程攻击(即机密文件最终出现在受感染的计算机A上)而不是本地攻击(攻击者距离设置几米)的解决方案。

4个回答

我已经看到在安全环境中多次实现了这一点:

只需通过光纤连接两台计算机并断开光纤的一侧。

这保证了您的单向连接。

协议方面,连接使用UDP协议:

  1. 起始块
  2. 数据块
  3. 挡块
  4. 校验和块

通常,开始和停止是整个文件,而不是块。

接收方简单地校验数据并与发送的校验和进行比较。如果匹配,你就完成了。如果不是,则接收器指示必须手动检查的错误,用户必须手动重新发送,因为没有自动反馈。

这种简单的方法非常有效,因为使用直接光纤一对一连接,通常不会发生关于 UDP 的经典问题。

  • 顺序是有保证的,因为它是完全顺序的。
  • 可靠性虽然没有保证,但在没有网络竞争的情况下非常高。
  • 验证只需要一个简单的校验和。

一些系统选择多次重传作为简单的纠错,但直接连接很少出现错误。

使用计算机 B 上移除 TX 引脚的串行端口。

您可以发送数据,但无论发生什么,如果没有 TX 引脚,您实际上无法将其从计算机 B 中取出。

您可以使用数据包过滤器和自定义 UDP 服务进行文件传输,但我相信您需要一些甚至不需要的东西。

让计算机 B 位于配置了防火墙的路由器后面。防火墙允许流量进入,但会丢弃流量。这就是您需要 UDP 服务的原因,因为 TCP 必须发送确认数据,这是被禁止的。

您的 UDP 服务必须接收文件名、文件大小和带有块哈希的 Merkle 树。您需要将文件切成小块,因为 UDP 不保证顺序,甚至不保证数据包会被接收。每个块都需要有它的序列顺序、大小和散列。一个接一个地发送块,每个块之间有一个延迟。

在接收站点上,服务必须获取所有块,对它们进行哈希处理,将它们按顺序排列,并计算 Merkle 树以查看文件是否发送没有问题。如果文件是有序的,请保存它。如果不是,则丢弃它,因为无法告诉发送方文件未正确发送。

您可以尝试“单向”网线:https ://electronics.stackexchange.com/questions/279257/implement-send-only-one-way-ethernet-cable

一个快速的 DIY 数据二极管可以用一对媒体转换器 + 一个光纤分路器制造 100-200 美元。作为软件,您可以使用 udpcast。您还可以在网上找到一些其他 DIY 设置,包括软件。请注意,数据二极管不会保护 B 免受攻击。(不包括侧通道)它只会阻止数据回流。

还有一些正在进行的项目: https ://www.thehaguesecuritydelta.com/projects/project/99-open-source-data-diode 但据我所知,尚未发布任何内容。

此外,如果 A 受到损害,您如何“信任”来自 A 的数据?