我们都知道无法开源并自由分发软件的情况 - 而我就处于其中一种情况。
我有一个应用程序,它由许多二进制文件(从 C 源代码编译)和将其全部包装到系统中的 Python 代码组成。该应用程序曾经作为云解决方案工作,因此用户可以通过网络访问应用程序功能,但没有机会接触存储二进制文件和代码的实际服务器。
现在我们想要提供我们系统的“本地”版本。该应用程序将在我们的用户实际拥有的电脑上运行。我们知道一切都可能被破坏,但至少希望尽可能保护应用程序免受可能的复制和逆向工程。
我知道 Docker 是一个很棒的部署工具,所以我想知道:是否可以创建加密的 Docker 容器,让任何人都看不到存储在容器文件系统中的任何数据?这个问题有已知的解决方案吗?
另外,也许有一些众所周知的不基于 Docker 的解决方案?
The root
主机上的用户(其中docker
守护进程运行)具有对主机上运行的所有进程的完全访问权限。这意味着控制主机的人始终可以访问应用程序的 RAM 以及文件系统。这使得隐藏用于解密文件系统或保护 RAM 免遭调试的密钥变得不可能。
在标准 Linux 机器上使用混淆,可以使读取文件系统和 RAM 变得更加困难,但不能使其不可能或容器无法运行。
如果您可以控制运行操作系统的硬件,那么您可能需要查看可信平台模块 http://www.trustedcomputinggroup.org/solutions/authentication系统启动后立即开始系统验证。理论上,您可以在 root 用户访问系统之前执行一些操作来隐藏密钥并对文件系统进行强加密。即便如此,只要对机器进行物理访问,坚定的攻击者总能获得解密的数据。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)