我们正在创建一个网络应用程序,它将安装在服务器上并出售给客户,类似于 Google Mini Search 设备。我们正在研究各种方法来保护服务器免受攻击并确保应用程序的来源安全。客户将从网络界面访问它,同样像 Google Mini。
我是否还缺少其他想法来解决这个问题?
硬件:
- 没有软盘、CD ROM、USB 端口
- 底盘入侵检测
软件:
- BIOS 密码 秘密 Windows 密码
- 源代码的某些部分被混淆了
答案1
完全物理地保护不再受您直接控制的机器是不可能的。
例如,机箱入侵检测只有在机器运行且连接到网络时被打开时才对你有用 - 否则你怎么知道事件已经发生?让机箱很难被入侵可能是一个更实用的解决方案,除非你愿意在机箱被打开时安装某种东西来破坏机器的一部分(可能是硬盘)(这无疑是非常研究和开发成本昂贵)。例如,用于 PKI 的大多数安全令牌都设计为气密的,主芯片上有某种东西可以与空气发生反应,从而使芯片立即无法操作(因此您无法打开遥控器并尝试读取存储在芯片上的加密盐)。
为了保护软件,即使存储软件的驱动器被移除,您也可以尝试使用加密文件系统,但要成功启动软件,密钥需要存储在机器上,因此您需要保护保存密钥的介质(如果可能的话,也许可以使用“打开我,我会销毁位”类型的保护)。将密钥存储在异地不会有帮助,因为机器必须与您联系以获取密钥才能启动,因此允许它执行此操作的代码需要受到保护,就好像它是密钥一样(实际上就是这样)。
不幸的是,绝对的安全是不可能的,特别是当你使用通用部件而不是定制设计时一切,并且超过某个点,投入越来越多的精力来解决问题就没有什么好处了——一旦你摆脱了机会主义者和一些稍微执着的书呆子,他们就会闯入挑战,剩下的就是决心已定的人,他们最终会绕过你使用的任何保护措施(可能快得令人痛苦)。
如果我错了,确实存在灵丹妙药,那么它就不是那种可以轻易负担得起的灵丹妙药!也许值得研究一下具体产品(比如您提到的 Google 产品)如何保护自己及其内容。
答案2
从物理角度来看,Google Search Appliance不是一切都很安全。我不会说得太详细了,咳咳。
尽可能编译源代码。在 Python 中,您可以提供 .pyc 文件而不是 .py 文件,这至少可以阻止临时入侵者。我敢打赌,某个地方有选项可以将代码编译成更好的代码。
然而,当涉及到实体部分时,你就有点束手无策了。用胶水把它们全部粘住?
以“机箱入侵检测”为例——好吧,入侵已被检测到。现在怎么办?你要向某个地方报告吗?如果电缆被拔掉,就很难做到。你必须建立一个队列,让入侵通知一直停留在那里,直到它被传送到你的家庭系统。
你会时不时地去检查机器吗?你可以在上面贴一个大蜡封。我不是开玩笑,也许贴上一张写有你公司名字的特殊胶带就可以了。
也许 Make 的某个人可以帮助您在更大的底盘中制作某种杠杆或严格的机械装置,当底盘打开时,它会将一个非常大的磁铁(标有“防入侵磁铁”)压在硬盘上。钢制硬盘底盘会使除最强大的磁铁之外的所有磁铁都无法达到最佳效果,因此您可以为硬盘底盘制作一个“窗口”(是的,已经有人这样做了)。
最荒谬的情况:用“警告:铝热剂会导致驱动器损坏——请将服务器置于机架底部”的贴纸覆盖机箱。
答案3
您是否考虑过使用加密文件系统?
但是,我想知道您是否仔细考虑过这个问题。服务器出现故障。您不会想因为风扇故障而破坏客户的数据。例如,打开机箱并丢失所有东西。
保护知识产权会给你带来麻烦,很可能会毁掉你公司的声誉。最好让它变得相当困难(即 HARD),但也不是不可能。
呃,夏令时怎么样?