有没有办法锁定 Linux 系统以仅使用特定(预定义)硬件?我正在开发一种商业产品,并且想让某人更难克隆整个工作系统,所以我正在考虑将 SW 和 HW 捆绑在一起,这样就需要为给定的 HW 提供特殊的 SW 图像。
我的确切场景是从 SD 卡启动的嵌入式板(带有 Raspbian 的 Raspberry Pi 2)。问题是 SD 卡可以在板之间轻松交换,所以我希望 SD 卡只能与单个特定板一起使用。我将使用自定义二进制文件(我自己从 C++ 编译)来提供产品的功能。我可以简单地从我的二进制文件中检查特定的硬件 ID(RPi序列号或 MAC 地址),但这仍然会为某人在操作系统级别上伪造这些硬件 ID 留下空间,然后在其上启动我的二进制文件。
我猜加密整个系统可能会提供更多保护,但密钥(无论是软件密码还是硬件 ID)也必须保存在那里以便系统启动,所以如果“攻击者”找到它,他将解密系统图像反正?系统工作在只读模式。
在具有可交换主存储的系统上,我可以获得的最佳保护是什么?我猜嵌入式存储可能有点难以阅读,但可能又不能提供 100% 的保护?
编辑:
关于我的保护原因:我的场景是一个嵌入式计算机视觉设备,它没有直接的 UI(显示或监视器的图像输出),但在某些情况下只会发出蜂鸣声警告。我不介意 SW 盗版,只要它至少带来一些“产品推广”或营销(例如,盗版 Microsoft Windows 就是这种情况 - 即使是盗版,它也有助于推广产品,因为它是品牌和徽标遍布用户界面)-但这根本不是我的情况。廉价的中国ELM 327芯片克隆是嵌入式软件盗版的好例子——软件是从PIC控制器中读出的,现在卖得很便宜。