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

我有一个运行在Linux操作系统上的服务器程序。 我需要给个人电脑安装这个程序给某人使用一段时间,但我需要防止程序被非法复制。 我知道绝对防止黑客是不可能的。 不知道我能做些什么来尽量减less可能性。

以下是我通过searchnetworking获得的提示:

  1. 使用挂锁locking电脑机箱
  2. 使用密码保护BIOS。
  3. 使用密码保护gr </s>

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

物理访问就等于简单地把它放在银盘上。 但是,如果你必须,你必须。

一些想法:

  1. 确保不可以从硬盘驱动器(无USB,光纤,networking等)启动,
  2. 使用SELinux使程序只能执行,并防止任何其他程序访问它(即防止cat打开文件)。 这可能很难或很容易。
  3. 继续并encryption文件系统。 如果磁盘“被盗”,窃贼以某种方式解密磁盘,那么在某人和“窃贼”之间必须进行某种沟通,
  4. 任何人都可以select一个锁。 如果有人打开包装箱,请使用某种篡改明显的密封件。
  5. 确保无法卸载程序所在的文件系统。可以读取原始设备或lv。
  6. 确保文件系统过程不可用。 这可能是困难的,因为一些程序依赖于它。 使用proc可以读取和修改程序的内存和可执行代码。

由于大部分“保护您的物理机器”build议已经完成,您可能还想考虑另外可以添加的另一个安全function。

保护您的软件不被分发到非授权的机器上。 具体来说,你可以编译你的软件包专门为那个人检查机器CPU ID +网卡Mac地址|的额外挂钩 md5sum,然后交叉引用您的预定义的有效机器列表。 请注意,这当然不适用于解释的代码,也不是完美的(在给定足够的时间的情况下没有办法),但这是一个想法。

确保你设置了BIOS,以便它不能启动U盘或PXE启动或从任何东西启动,但安装的HD。

但这可能是最好的合同处理,复制软件的严厉处罚。

为防止软件被非法复制,只需授权收件人复制它。 那么他所做的任何副本都是合法的。

如果你想防止它被复制,无论是合法的还是非法的,那将是一个不同的问题。

我意识到你正在寻求技术解决scheme,但以我的经验来看,第8层和第9层同样重要,而且往往更有效。

build立明确规定他们不能做什么的协议,以及他们必须做些什么来保护你的代码。 设立重罚的合同。

另外,最好不要试图抓住源头,这样做不是最有利的。 尝试build立一个长期的关系,fi保证过期,如果他们打开箱子或在其他地方运行的代码。

如果你的机器有TPM,那么你可以有最终的保护。 您可以为程序使用带有encryption分区的可信GRUB。 这将为您提供保护,即使硬盘驱动器被物理移除并连接到另一台主机 – 操作系统也无法从中启动,并且无法读取encryption分区。 你甚至不需要locking你的机箱。 显然,用户在任何情况下都不应该被授予“root”访问权限。

考虑重新实施您的程序作为他们通过互联网连接的Web服务?

只要你不需要来回推送太多的数据,就可以让你的“程序”与他们控制的东西隔离开来。

如果你不能这样做,你可以让你的程序通过互联网login中央服务器。 如果您的程序无法访问您的服务器,则会自行禁用。 基本上它可以检查和响应挑战algorithm…(你想防止服务器被欺骗)

其他人已经有了一些非常好的想法,所以我只是build立在物理安全上。

我以前的任务是采购防篡改密封件,并没有find任何我可以推荐的东西。 在任何情况下,粘合剂都可以软化,通常使用松节油或煤油,将标签去除并稍后重新涂覆。 仔细地做,你永远不能告诉密封被删除。

忘记挂锁的情况下。 正如已经指出的(几乎)任何人都可以select锁。

我build议你改用实物印章。 我更喜欢由电线和curl铅封组成的旧式。 原始的,但令人惊讶的有效,这就是为什么他们仍然被用于许多安全情况。