需要保护服务器程序不被非法复制

需要保护服务器程序不被非法复制

我有一个在 Linux 操作系统上运行的服务器程序。我需要将安装了此程序的 PC 交给某人使用一段时间,但我需要防止该程序被非法复制。我知道绝对防止黑客入侵是不可能的。想知道我能做些什么来将这种可能性降到最低。

以下是我在网上搜索到的一些建议:

  1. 用挂锁锁住电脑底盘
  2. 使用密码保护 BIOS。
  3. 使用密码保护 grub

请注意,加密主目录并将(服务器)程序放在主目录中不是一个选项,因为 PC 用户可能需要打开 PC 才能访问该程序提供的服务。

答案1

物理访问权相当于简单地将其放在银盘上交给他人。但如果必须这样做,就必须这样做。

一些想法:

  1. 确保无法从硬盘以外的任何设备启动(无 USB、光盘、网络等)
  2. 使用 SELinux 使程序仅可执行,并阻止任何其他程序访问它(即阻止cat打开文件)。这可能很难,也可能很容易。
  3. 继续加密文件系统。如果磁盘被“盗”了,而小偷以某种方式解密了磁盘,那么某人和“小偷”之间就必须有某种交流
  4. 任何人都可以撬锁。使用某种防篡改封条,如果有人打开盒子,封条就会被破坏。
  5. 确保无法卸载程序所在的文件系统。可以读取原始设备或 lv。
  6. 确保文件系统 proc 不可用。这可能很困难,因为有些程序依赖它。可以使用 proc 读取和更改程序的内存和可执行代码。

答案2

由于已经提出了大多数“保护您的物理机器”的建议,您可能还想考虑可以添加的另一个安全功能。

保护您的软件不被分发到未经授权的机器上。具体来说,您可以专门为该人编译您的软件包,并使用额外的钩子检查机器 CPU ID + NIC Mac 地址 | md5sum,然后与您预定义的有效机器列表进行交叉引用。请注意,这当然不适用于解释代码,也不是完美的(如果有足够的时间,没有一种方法是真正完美的),但这是一个想法。

答案3

确保您设置了 BIOS,以便它不能启动 USB 记忆棒或 PXE 启动,或者从已安装的 HD 以外的任何东西启动。

但最好的处理方式可能是通过合同,对复制软件的行为施以严厉的惩罚。

答案4

我知道您在寻求技术解决方案,但根据我的经验,第 8 层和第 9 层同样重要,而且通常更有效。

制定协议,明确规定他们不能做什么,以及他们必须做什么来保护你的代码。制定合同,规定严厉的惩罚措施。

此外,最好让他们不要试图抢夺源代码。尝试建立长期关系,如果他们打开盒子或在其他地方运行代码,保修就会失效。

相关内容