我需要向我所在公司的客户提供一台可运行演示软件的笔记本电脑。
该软件仅用于显示,不需要任何用户通过键盘或鼠标进行交互。
我需要计算机禁用所有设备输入,并对硬盘进行加密,这样只有这台计算机才能运行。我想阻止客户在计算机运行时访问计算机,并阻止移除硬盘并在其他计算机上使用它的选项。
有人知道有什么硬件计算机\硬盘组合可以做到这一点吗?
谢谢。
答案1
在启动时检查笔记本电脑的 BIOS,查看以下选项硬盘加密或“ATA 硬盘锁”(不是加密,但我认为大多数驱动器没有任何允许您绕过密码的机制)。
您可以将环氧树脂注入火线端口,以防止它们连接 PCI 内存读取器调试工具。
更新
事实上,Linux 为您提供了更多的灵活性。:) 您可以从系统中删除usbhid.ko
、和类似的内核模块。查看输出并删除任何看起来对触控板、键盘或乳头鼠标有用的内容。删除火线模块。甚至可能是串行和并行模块。(如果您不使用它们,删除它们不会有什么坏处。)hid.ko
lsmod(8)
你需要封锁grub
这样,您的客户端就不能只编辑内核启动行并添加init=bash
或init=getty /dev/ttyS01
其他类似的烦人的内容。
您可能还想使用以下工具应用装甲,东芝Linux,知世, 或者啪. 任何这些强制访问控制工具可以防止应用程序逃脱一组明确定义的权限。我已经在 AppArmor 系统上工作了十年,它是我最了解的系统,也是我推荐的系统 :) 但这些工具中的任何一个都可以帮助锁定客户端与计算机交互的每种机制。
(讲一个小故事,我们带着一个 AppArmor 限制系统参加了几年的 DEFCON 夺旗竞赛;其中一年需要允许用户使用特定密码以 root 身份进行 telnet。AppArmor 可以轻松限制守护进程telnetd
、它启动的 shell,然后是“scorebot”需要运行的程序。我们从未赢得过 CTF 竞赛,但我们也从未被 root 过。我们从来不需要担心物理攻击,因为我们知道每个防守者是谁。)
祝你好运。
答案2
这根本就不可能。对硬件的物理访问实际上消除了所有安全的保证。
当然可以,你可以做到更加困难有人未经授权就获得访问权限。但除了最微不足道和最便宜的措施外,这样做完全是浪费时间和金钱。如果有人真的想进入,他们会找到办法,你无法阻止他们。
更不用说他们可以对您的软件进行逆向工程,而无需危及您提供的演示计算机。我不确定这是否符合您对“黑客”的定义,但可能应该如此。
这不是技术问题,而是法律问题。你需要通过许可证和其他合同协议来保护你的软件和知识产权。让客户签署一份保密协议必要时。最好的办法是咨询律师,而不是技术专家。
如果你害怕律师,那就聘请一家安保公司。使用硬件解决方案锁定计算机,例如上锁的柜子和武装警卫。如果这听起来很荒谬,请参阅上文。
答案3
正如问题评论中提到的,实现这一目标的正确方法叫做“合同”。写一份合同(或者,最好是聘请律师写一份合同 - 你可能只需几百美元就能完成,这比防篡改硬件的成本要低得多),详细说明他们可以对演示单元做什么和不可以做什么,并让他们签署合同作为接收所述演示单元的条件。
答案4
一旦有人物理访问了系统,您就无能为力了。首先,它依赖于操作系统 - 您可以使用只读媒体来防止用户弄乱系统,并在设置过程中将其设置为输入不可用 - 可能使用 bartpe(适用于 Windows)或某种 livecd - 很多方法都允许您从正在运行的系统制作可启动的备份。
我还建议在硬盘或 CD-ROM 驱动器上贴上防篡改标签 - 至少它会让你知道硬盘是否被移除。
在这种情况下,一个迷你 ITX 或带有可锁外壳的完整系统可能是更好的选择