我正在寻找某种方法,在自己的计算机上运行某种命令,将我的 PHP 脚本和某种配置文件“烘焙”到单个文件的黑匣子中,例如My server.abc
,任何人都不可能“窥视”,我只需将其上传到某个公司的网站,然后进入他们的大型“云计算机”或其他地方,然后只要我付账,它就会运行,他们不知道这个加密的“盒子”里面有什么;他们所看到的只是它发送数据包和接收数据包。配置文件只是一个非常抽象的软件列表,我希望在其中包含这些软件,例如:“PHP 8、PostgreSQL 13、nginx 123、sshd”,以及一个简单的登录名/密码,以便我能够通过 SFTP/SSH 访问它。
我完全认识到这一点可能是技术上不可能但根据我对计算机的理解,这听起来是可能的,即使实际上并非如此可用的由于其他原因。
我无法在家里托管服务器。尤其是需要大多数时间都可用的网络服务器。(实际上,我曾经这样做了很多年,但当互联网断线、断电、火灾隐患、硬件损坏或遭受 DDoS 攻击时,这简直就是一场噩梦。)
我不能使用“网络主机”,我付钱给一些公司,让他们允许我使用一个小型 SFTP 登录,我将文件和网络控制面板放在其中。几乎没有一家支持 PostgreSQL(我使用的数据库),但即使他们支持,这种环境也根本不安全。
我不能向一些公司支付我自己的专用服务器的费用,我自己管理和管理。事实上,我可以这样做,但由于我这样做了很多年,几乎因为压力而发疯,所以如果可能的话,我想避免这种情况。另外,即使它是“专用的”,它也不受我的控制,而且他们通常使用非常不安全的远程管理解决方案。此外,如果出于任何原因,我不能在半夜待在服务器旁边照看服务器并应用补丁,它很快就会变得不安全。此外,如果可以的话,我非常希望这辈子再也不会使用 FreeBSD、Linux 或 Windows Server...
(VM 与上述内容相同,但它作为 VM 还存在其他问题,例如时钟漂移和所有那些问题。)
我不能花钱请一些公司提供“托管”专用服务器,让他们处理所有压力。主要是因为我不相信他们有能力,过去我曾多次与 IT“专业人士”打交道,但也因为这当然要花更多的钱。
我不能向某家公司支付模糊的“云”服务费用,因为这同样不安全。我的“服务器”在哪里以及如何存在非常不清楚,它也可能是一个 VM/webhost 帐户。此外,也许我只是运气不好,但几年前我实际上尝试过使用 AWS、Azure 和 IBM 的云解决方案,我甚至无法注册/登录其中两个,而 Azure 是如此糟糕,甚至无法设置测试“服务器”!
我知道存在我听说过“Docker”之类的东西,但一直没搞清楚如何使用它。我确实花了很多时间。它似乎根本不是我想要的。
请不要告诉我,我只能在台式电脑上进行 100% 的数据处理,整天生成静态 HTML 文件,并通过 SFTP 将其同步到网络主机帐户。因为如果我无法安全地运行我的东西,这就是我所想的绝望的“最后手段”。当然,这意味着我的网站将没有交互性,也没有办法“登录”。这样一切都会变得更加困难,但如果我不能以真正安全的方式做到这一点,我根本无法信任其他人保管我和用户的数据。
答案1
普遍接受的简化说法是,无论您在软件中内置了什么样的保护措施和加密技术,它们都无法保护您免受完全控制运行您的软件的硬件的坚决对手的攻击。
如果事实确实如此,那么为什么甚至大公司仍在使用云解决方案,而他们无法控制物理硬件,甚至无法控制他们需要保护的有价值和敏感的应用程序和数据?
他们是否只是相信托管服务提供商能够保证硬件的安全以及最终保证他们的数据和应用程序的安全?
从本质上来说确实如此,但这并不“简单”。
有成本效益和风险分析以及风险管理流程。
一般来说,这些公司技术措施 控制风险(或至少应该尽一切努力)以确保即使对手控制了硬件,也不会轻易或轻而易举地使用该访问权限,例如通过实施(全盘)加密来存储其余数据,对系统和用户之间的所有通信进行传输加密,对交易进行签名和不可否认性等。
然后,他们不再仅仅依赖软件和加密解决方案来进行风险管理;他们尽职调查选择值得信赖的各方来管理硬件,并让他们签署严格的合同,包含 SLA 和罚款条款让他们保持诚实。
而且公司一般审计和核实他们的员工和团队以及他们的供应商是否真正履行了他们的承诺和应该做的事情。