如何证明服务器正在运行特定代码

问题描述 投票:0回答:1

如果有人可以澄清,我将不胜感激。

如何证明某段代码正在服务器中运行?

[一个人可以创建并发布部署在服务器上的代码的哈希,但是,另一方面,我似乎没有找到证明的任何机制。

[我相信,像Heroku或Amazon之类的PaaS至少可以部分解决该问题。在部署应用程序时,Heroku返回引用已部署代码的git commit哈希。当然,运行可能不会有效的代码是所公开的代码。

我们是否有一种机制可以返回部署的哈希值,某种带有代码和元数据的摘要,而不一定是提交哈希值?

谢谢!

security hash deployment devops
1个回答
0
投票

不可能。这是一个场景:

  1. 服务器正在运行X。
  2. 客户要求服务器提供代码证明。
  3. 服务器提供证明正在运行的代码为X。客户端接受该证明。
  4. 恶意代理使用代码Y重新部署服务器。
  5. 会话继续,攻击者窃取数据。
  6. 会话结束。
  7. 攻击者使用代码X重新部署服务器。

请注意,服务器端的TCP会话通常是nginx或类似的设备,它们也处理TLS终止,因此重新部署甚至不会中断客户端的TCP或TLS会话。

此外,服务器具有运行时,无论是C标准库,node.js还是JVM-您如何知道that不会受到损害?

此外,即使服务器代码正确,服务器也会使用网络,磁盘等操作系统资源。-您怎么知道那些没有受到损害?

服务器很难知道它已经受到威胁,对于客户端来说这是完全不可能的。

© www.soinside.com 2019 - 2024. All rights reserved.