加密且安全的 Docker 容器

2024-03-17

我们都知道无法开源并自由分发软件的情况 - 而我就处于其中一种情况。

我有一个应用程序,它由许多二进制文件(从 C 源代码编译)和将其全部包装到系统中的 Python 代码组成。该应用程序曾经作为云解决方案工作,因此用户可以通过网络访问应用程序功能,但没有机会接触存储二进制文件和代码的实际服务器。

现在我们想要提供我们系统的“本地”版本。该应用程序将在我们的用户实际拥有的电脑上运行。我们知道一切都可能被破坏,但至少希望尽可能保护应用程序免受可能的复制和逆向工程。

我知道 Docker 是一个很棒的部署工具,所以我想知道:是否可以创建加密的 Docker 容器,让任何人都看不到存储在容器文件系统中的任何数据?这个问题有已知的解决方案吗?

另外,也许有一些众所周知的不基于 Docker 的解决方案?


The root主机上的用户(其中docker守护进程运行)具有对主机上运行的所有进程的完全访问权限。这意味着控制主机的人始终可以访问应用程序的 RAM 以及文件系统。这使得隐藏用于解密文件系统或保护 RAM 免遭调试的密钥变得不可能。

在标准 Linux 机器上使用混淆,可以使读取文件系统和 RAM 变得更加困难,但不能使其不可能或容器无法运行。

如果您可以控制运行操作系统的硬件,那么您可能需要查看可信平台模块 http://www.trustedcomputinggroup.org/solutions/authentication系统启动后立即开始系统验证。理论上,您可以在 root 用户访问系统之前执行一些操作来隐藏密钥并对文件系统进行强加密。即便如此,只要对机器进行物理访问,坚定的攻击者总能获得解密的数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

加密且安全的 Docker 容器 的相关文章

随机推荐

  • Oracle 包定义内的用户定义类型

    Oracle 包定义中是否可以有用户定义类型 当我尝试跟随时 CREATE OR REPLACE PACKAGE AF CONTRACT AS spec PROCEDURE my rpcedure emp id NUMBER TYPE DT
  • 当可执行文件丢失时,为什么 Open3.popen3 返回错误错误?

    我正在围绕 CLI 制作 Ruby 包装器 我发现了一个巧妙的方法 Open3 capture3 内部使用Open3 popen3 它允许我执行命令并捕获 stdout stderr 和退出代码 我想要检测的一件事是是否未找到 CLI 可执
  • 动态选择 jquery-ui-dialog 上的关闭效果

    我正在使用这个对话框 myDialog dialog hide effect fade duration 3000 buttons Save function post someurl function myDialog dialog cl
  • 如何使用 PyScripter 调试 Google App Engine 脚本

    情况如下 我已经下载了Google App Engine SDK 我已经编写了在我的计算机本地运行的 helloworld 应用程序 我必须使用 PyScripter 作为 IDE 我无法使用 Eclipse 这不是解决我的问题的有效方法
  • 如何创建自定义事件处理类(如 EventArgs)

    如何编写自定义事件处理类 如果有人知道如何创建它 或者您知道任何关于此的好文章 请帮助我 提前致谢 我不完全确定你的意思 但如果你谈论的是 EventArgs 派生类 public class MyEventArgs EventArgs p
  • 如何声明 DLL 导入签名?

    这是后续帖子使用 NET 中的 pHash https stackoverflow com questions 6254447 using phash from net 您将如何在 NET 中声明以下 C 声明 int ph dct ima
  • 如何在android库gradle项目中包含依赖项?

    我正在使用 Android Studio 使用 Gradle 构建一个 android 库项目 它有一些本地依赖项 compile project androidlibrary 具有嵌套的附加外部依赖项 compile group com
  • 如何在 xsl:apply-templates 中使用 XSL 变量?

    我对 xsl apply templates 有一个相当复杂的调用
  • PHP 用一个 HTML Break 替换双行 [重复]

    这个问题在这里已经有答案了 我正在尝试将我的服务器上的所有 n n 替换为 br 标记 以便单个 n 不会变成 br Example Hello n nThis is an nexample n nThanks goes to Hello
  • 交换 jQuery 中的两个元素

    我正在尝试使用向上和向下箭头交换两个元素 JSFiddle 解决方案会很棒 My HTML div class item div class content Some text div div class move div class mo
  • 如何使用双括号初始化 Map of Map

    我确实明白双括号初始化有其自己的隐藏成本 仍然有可能的初始化方法Map
  • 如何判断库是使用 C++11 编译的

    如何判断某个 C 库是否已使用链接 c 11 标准 elf 二进制文件默认包含所使用的编译器版本的签名 现在 关于使用的编译器标志 如果 frecord gcc switches在编译时使用 然后 您可以在ELF可执行文件中找到签名 g f
  • 如何使用单点触摸更改 UISlider 值?

    我正在开发我的第一个 iOS 应用程序 其中包含UISlider 我知道当UISlider被拖拽 但对于我的应用程序 我需要通过一次触摸获取滑块的值 即如果我触摸某处UISlider a UILabel应该显示其正确的值 这样子可以吗 任何
  • 选择源代码控制系统:VSS 之后的逻辑下一步

    过去几个月我一直在使用 Git 并且很喜欢它 我研究了如何在企业环境中托管它 考虑到一个 10 人团队使用 Visual SourceSafe 使用 Coldfusion Powerbuilder PHP 和一些 NET 进行编程 令我惊讶
  • 如何使用 Apache POI 在 Word .docx 文件中正确生成 RSID 属性?

    我一直在使用 Apache POI 来操作 Microsoft Word docx 文件 即打开最初在 Microsoft Word 中创建的文档 对其进行修改 然后将其保存到新文档中 我注意到 Apache POI 创建的新段落缺少修订保
  • CVS:列出标签(或日期)之间更改的所有文件

    有没有办法列出CVS中两个标签之间发生更改的所有文件 每次我们发布版本时 我们都会向该版本中的所有文件应用一个标签 我想找到版本之间更改的所有文件 如果我能找到两个日期之间更改的所有文件 它也会起作用 我想这个命令会有帮助 cvs diff
  • 使用项目反应器 mergeWith() 运算符来实现“if/elseif/else”分支逻辑

    我正在尝试使用项目反应堆 mergeWith运算符以实现if elseif else分支逻辑如下所述 RxJS If Else 运算符在哪里 https rangle io blog rxjs where is the if else op
  • 来自两个派生类的多重继承

    我有一个充当接口的抽象基类 我有两个派生类 集 它们实现了抽象类的一半 一个 集合 定义与初始化相关的抽象虚拟方法 另一个 集合 定义与实际 工作 相关的方法 然后 我有派生类 它们使用多重继承来构造完全定义的类 并且本身不添加任何内容 所
  • 大虾:在PDF中打印unicode字符串

    我正在使用 Prawn 在 Rails 3 应用程序中生成 PDF 是否可以像在 HTML 视图中一样将 Unicode 字符串打印到 PDF 中 例如 in show html erb结果字形 同时 pdf text raw unicod
  • 加密且安全的 Docker 容器

    我们都知道无法开源并自由分发软件的情况 而我就处于其中一种情况 我有一个应用程序 它由许多二进制文件 从 C 源代码编译 和将其全部包装到系统中的 Python 代码组成 该应用程序曾经作为云解决方案工作 因此用户可以通过网络访问应用程序功