首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用两个数据二极管(输入和输出)的网络仍然安全吗?

使用两个数据二极管(输入和输出)的网络仍然安全吗?
EN

Security用户
提问于 2018-01-18 10:17:48
回答 2查看 772关注 0票数 3

我有一个处理纯数值数据并给出一些响应的软件。

为了安全起见,我把它放在两个数据二极管后面:一个用于输入数据,一个用于输出响应。数据二极管作为客户专用硬件实现.

要点:数据二极管宽4位,因此只允许4位字.数据是纯数字的,并以二进制形式编码如下:

代码语言:javascript
运行
复制
0000 = '0'
0001 = '1'
0010 = '2'
0011 = '3'
0100 = '4'
0101 = '5'
0110 = '6'
0111 = '7'
1000 = '8'
1001 = '9'
1010 = '.'
1011 = ';' (separator)

我的数据二极管背后的软件还能免受黑客攻击吗?

我相信是的,因为4位数据字不允许黑客发送任何恶意命令.如果他们是8位宽,那么所有的ASCII字符将通过和软件将是脆弱的。

EN

回答 2

Security用户

发布于 2018-01-18 12:32:06

数据二极管有几个用例,还不清楚用例到底是什么,以及数据二极管是否是解决未知问题的方法。但我的猜测是,数据二极管并不是你真正需要的,而且你目前关于如何使用数据二极管的想法并不能提供你想象中的安全性:

  • 数据二极管的一个用例是确保数据只能离开系统,而不能进入系统。例如,这用于从工业系统中获取日志数据,但阻止任何数据流进入行业系统,以便它们不会受到攻击。
  • 另一个用例是确保数据只能进入系统,而不能离开系统。例如,这用于将由较低安全环境收集的数据输入包含非常敏感数据的系统,并确保任何敏感数据都不会泄漏到较低的安全环境中,即使在出现bug或漏洞的情况下也是如此。

您的用例不是这些。相反,您似乎希望将来自外部的一些数据输入到某个服务中,并得到一个响应,但仍然要保护该服务不受外部黑客攻击。这种双向通信不是单向数据二极管的用例。通过简单地组合两个数据二极管,您基本上允许(大部分是不受限制的)双向通信,因此不保护服务。

您可能需要的是一个应用程序协议级网关,即允许受限的双向通信的系统。如果适当地执行通信协议的语法和语义,则该网关可以确保服务只获得它能够安全处理的数据,并且只有数据离开符合协议定义的语法和语义的服务--这严重限制了攻击者如何危害服务以及如何利用成功的妥协。

票数 6
EN

Security用户

发布于 2018-01-18 10:30:14

它仍然处于危险之中。你好像误解了攻击是怎么发生的。

例如,假设你有以下情况-

代码语言:javascript
运行
复制
int arr[4];
int idx = ReadNumberFromInput();
int val = ReadNumberFromInput();
arr[idx] = val;

没有检查idx以确保它在0-3之间。您正在用val覆盖任意一段内存。idx可能是用来指向用户以后可以调用的指令的。

票数 2
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/177893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档