c++ - 黑盒系统。自定义主机上的安全软件
问题描述
我正在寻找一种方法来构建一个可以安全地运行我的算法并且可以向用户输出数据的黑盒系统。
该系统将是我自己的定制 linux 计算机,它运行我的算法,我会赠送给用户。现在我想要的是用户可以通过一些预定义的端口配置算法,也可以从预定义的端口接收数据。但是,用户应该看不到算法的任何源代码,最好也不能复制程序(但这不是我的主要考虑)
这样做的最佳方法是什么?它不必是超级不可破解的安全性(因为这可能是不可能的)。只是某种良好的安全性,不会使查看和复制源代码变得过于直接。
硬件是我的定制计算机,我可以配置我想要的方式。该程序不需要在其他任何地方运行。
解决方案
如下设置您的盒子:
应用程序设置
- 编写一个将自身加载到计算机内存中的应用程序,然后从文件系统中删除它自己的可执行文件。这将在您寻找时提供您的基本安全性。
编写管道(这将允许两个或多个应用程序进行通信)
使用 BG IPC(后台进程间通信),您将能够通过另一个应用程序通过管道端口连接以与用户交谈。
应用程序安全性(可选)
该应用程序可以是自删除和自解密的。
在应用程序启动时,它会要求用户输入密码(启动应用程序),然后它将从文件系统中删除文件,
额外安全
应用程序可执行文件可以为零或随机字节为空。这将在删除之前用随机字节值替换可执行文件中的每个字节。这将确保文件不可恢复。
推荐阅读
- javascript - 如何根据来自 2 个不同组件的用户输入更新表数据
- python - 在python 2.7中当矩阵中的每一列等于或大于1时查找行号
- r - lordif 包错误:项目数必须至少为 4
- c++ - C++ 如果静态函数在单独的文件中声明,如何将其作为回调传递?
- php - 如何在 Laravel 中存储一些标签以及如何在技术上使用相同的 ID 存储这些标签
- php - Wordpress Feed - 内容类型会自动更改
- javascript - 元素引用
.nativeElement:任何抛出“任何类型值的不安全调用”错误 - pyqt5 - QMdiArea 显示不正确
- eclipse - 每当我尝试执行诸如保存,复制,粘贴之类的快捷操作时,只要单击 ctrl 键,就会出现以下弹出窗口
- dialog - 如何使用对话框获取破折号中的文本?