Fra*_*ett 7 php security encryption http distribution
我有一个附带数据文件的程序,我不希望最终用户直接阅读.虽然它位于用户的硬盘上,但它始终是加密的(即使我的程序正在使用它).
但是,我不能将数据文件包含在安装程序中,因为这些文件很容易提取.我尝试过加密功能,但它们看起来效果不正常.
所以我试图找到一种方法来分发文件,以便用户在分发时无法读取它.我想到了通过PHP以加密形式通过PHP下载文件的各种方法,但是如果不发送加密密钥就很难这样做.更何况,我对HTTP问题不是很有经验.
我想出了一些解决这个问题的想法,但要么它们不起作用,要么它们非常复杂.我宁愿想出一个不那么复杂的解决方案.
这不一定太安全,但它应该抵御HTTP嗅探器.实现这一目标的最佳方法是什么?
纯粹用软件来做到这一点基本上是不可能的。如果您在用户计算机上运行的程序可以读取它,那么在用户计算机上运行的另一个程序也可以读取它;用户可以控制其他程序并提取文件的内容。
你可以让它变得困难;人们通常将此功能称为 DRM,并且某些 DRM 方案最终很难破解。如果您使用专门的硬件来处理解密并且不允许任何不安全的组件访问数据,它们就会变得更加强大,并且更难以破解。但最终,总有办法解决这个问题;专门的用户始终可以将逻辑分析仪连接到适当的总线并从中读取数据。
如果你真的想疯狂,你可以构建防篡改硬件;本质上是具有内置自毁功能的硬件,因此如果用户尝试打开计算机,就会破坏数据。这是一种相当敌对用户的行为,但在某些情况下是必要的(带有您不希望敌人能够获得的加密密钥的卡)。
然而,所有这些都非常困难且昂贵,并且使用户的生活变得更加困难。如果某个地方有一个小洞,一个人可以破解,那么他们就可以提取数据并将其发布到某个地方;对于大多数人来说太难绕过并不重要,只要一个人能绕过,游戏就结束了。
当然,所有这些基于硬件的机制都要求您的用户拥有支持它们的专用硬件;如果您正在做一个纯粹基于软件的解决方案,那么游戏已经结束了。用户只需将调试器指向程序的内存,并在读取文件时读出文件的内容。
因此,您可能应该重新评估是否需要这样的功能。这些数据真的那么敏感吗?如果是这样,您能否将其置于您的控制之下,并要求该软件通过互联网与您的服务器进行通信,以提供其功能的网关?
如果您提供有关您的用例的更多信息,我们也许能够为您的特定问题提供更好的解决方案。例如,如果您只是想保护它免受临时用户的侵害,您可以对其进行加密,并混淆解密它的密钥和代码。这不会提供太多保护,但可以防止某人通过查看内容来看到内容。如果是为了许可,您可以考虑使用安全加密狗或许可服务器,以便您的软件进行检查。但没有一种方法是万无一失的。最后,如果您尝试在最终用户的计算机上使用这些数据执行某些操作,他们将能够从您的流程中提取数据。
| 归档时间: |
|
| 查看次数: |
105 次 |
| 最近记录: |