分发文件以便收件人无法阅读
我有一个附带数据文件的程序,我不希望最终用户直接阅读。 虽然它在用户的硬盘上,但它始终是加密的(即使我的程序正在使用它)。
但是,我不能在安装程序中包含数据文件,因为这些文件非常容易提取。 我已经尝试过加密功能,但他们似乎没有正常工作。
所以我试图找到一种分发文件的方式,以便用户在分发时不能读取它。 我想过通过HTTP以加密的形式通过PHP下载文件的各种方式,但如果不发送加密密钥,很难做到这一点。 更何况,我在HTTP方面并不是很有经验。
我提出了解决这个问题的一些想法,但是他们不工作或者他们非常复杂。 我宁愿拿出一个不那么复杂的解决方案。
这不必太安全,但它应该能够抵御HTTP嗅探器。 什么是实现这一目标的最佳方式?
纯粹用软件来完成这是根本不可能的。 如果用户机器上运行的程序可以读取它,则用户机器上运行的另一个程序可以读取它; 用户可以控制其他程序,并提取文件的内容。
你可以努力; 人们通常称这种功能为DRM,而一些DRM方案最终难以打破。 如果您使用专门的硬件来处理解密并且不允许任何非安全组件访问数据,则它们变得更加强大并且更难以破解。 但最终总会有一种解决办法。 专用用户总是可以将逻辑分析仪连接到适当的总线并从中读取数据。
如果你真的想疯了,你可以建立防篡改硬件; 基本上是内置自毁功能的硬件,所以如果用户试图打开计算机,它会破坏数据。 这是一种相当用户敌对的行为,但在某些情况下是必要的(带有加密密钥的卡片,您不希望敌人能够获得这些卡片)。
但是,所有这些都非常困难且昂贵,并且使用户的生活变得更加困难。 如果在某处有一个小洞,那个人可以破解,那么他们就可以提取数据并将其发布到某个地方; 对于大多数人而言,只要有一个人能够绕过这场比赛,就没有关系。
当然,所有这些基于硬件的机制都需要您的用户拥有支持他们的专用硬件; 如果你正在做一个纯粹的基于软件的解决方案,那么游戏已经开始。 用户只需在程序内存中指向一个调试器,并在读取文件时读取该文件的内容。
所以你应该重新评估你是否需要这样的功能。 这些数据真的很敏感吗? 如果是这样,您是否可以将它保存在您的控制之下,并要求软件通过互联网与您的服务器进行通话,从而为您提供的功能提供网关?
如果您提供有关您的用例的更多信息,我们可能能够针对您的特定问题提供更好的解决方案。 例如,如果您只是想保护偶然用户,则可以对其进行加密,并对密钥和解密该密钥的代码进行混淆。 这不会提供太多保护,但它可以防止某人通过查看内容来查看内容。 如果是用于授权许可,则可以考虑使用安全加密狗或许可服务器,以便软件进行检查。 但是没有办法是防弹的; 最后,如果您试图在最终用户的计算机上对这些数据进行操作,他们将能够从您的流程中提取数据。
链接地址: http://www.djcxy.com/p/11597.html