我们都知道您不能开源和自由分发软件的情况——我正处于其中一种情况。
我有一个应用程序,它包含许多二进制文件(从 C 源代码编译)和将它们全部包装到系统中的 Python 代码。这个应用程序曾经作为云解决方案工作,因此用户可以通过网络访问应用程序功能,但没有机会接触存储二进制文件和代码的实际服务器。
现在我们要交付我们系统的“本地”版本。该应用程序将在我们的用户实际拥有的 PC 上运行。我们知道一切都可能被破坏,但至少希望尽可能保护应用程序免受可能的复制和逆向工程。
我知道 Docker 是一个很棒的部署工具,所以我想知道:是否可以创建加密的 Docker 容器,让任何人都无法看到存储在容器文件系统中的任何数据?这个问题有已知的解决方案吗?
另外,也许有不基于 Docker 的众所周知的解决方案?
原文由 Aleksei Petrenko 发布,翻译遵循 CC BY-SA 4.0 许可协议
你问的是所谓的 obfuscation 。它与 Docker 无关,是一个非常特定于语言的问题;对于数据,您始终可以随心所欲地进行任何处理,但是尽管您可以希望阻止攻击者,但它永远不会安全。即使是最先进的加密方案也无济于事,因为程序(您提供的)必须包含密钥。
C 通常很难进行逆向工程,对于 Python,您可以尝试 pyobfuscate 和 类似 的 .
对于数据,我发现 了这个问题(关键字: 加密文件游戏)。