【问题标题】:Proof of code execution代码执行证明
【发布时间】:2014-10-01 11:21:34
【问题描述】:

有没有办法证明,我的意思是从技术上和法律上证明,一段代码已经在某个时间在计算机上运行?

我认为这可以通过涉及校验和和可信时间戳等加密技术来实现,您怎么看?

【问题讨论】:

  • 只是为了澄清一些事情:你希望它显示它是否在历史中运行,还是你想在将来检查它?
  • 流程是否有可识别/可审计的输出?
  • 这个问题似乎跑题了,因为它与编程无关。
  • @Dave 如果我理解正确你的问题,我希望它显示它是否已在历史中运行。
  • @Silas 啊,好吧,已经这么想了。对不起,在那种情况下我不知道该怎么做

标签: cryptography execution proof


【解决方案1】:

技术上,问题是您是否事先为该任务准备计算机,以及您对“一段代码”的定义有多严格,因为两个程序可以产生相同的执行指令序列到分支机构。

在“一段代码”的模糊定义中,如果您事先更喜欢计算机,您可以创建一个虚拟机来创建执行指令的历史记录(或者节省空间,执行的程序)并将此历史记录发送到实时使用公钥加密到受信任的机器“历史记录器”,它用时间戳标记历史流。对于较低的安全级别,您还可以在本地保存该历史记录,在虚拟机内用户可访问的内容之外。虽然仍然存在篡改的可能性(例如破坏虚拟机),但在虚拟机启动得到合理保护(没有可用的 USB 端口、BIOS 锁定、无法使用“保存模式”或其他方式更改启动顺序)的公司中,员工处于监督,因此他们无法修改硬件和删除/切换组件),这不会为您提供 100% 的安全性,但在许多情况下工作得相当好。

法律上,这取决于司法管辖区和情况。至少在德国和美国,刑法需要比民法更高的确定性,所以我认为这对于民法程序来说已经足够了,但取决于刑法程序的具体情况。

【讨论】:

  • 有趣。让我更具体一点。想象一个软件可以生成包含非常敏感数据的报告。这些报告由受信任的机构签名并加盖时间戳。但是,为了生成有效的报告,该软件必须进行大量的预处理操作。这里的重点是证明已经进行了这些操作,并且 particular 二进制文件已在 particular 时间执行以生成 particular报告。换句话说,需要将软件与其生成的报告结合起来。不知道是不是真的可以。
  • 好的,只需将报告文件与我的虚拟机建议中的程序或指令一起添加到历史记录中即可。
  • 嗯,既然如此,为什么要相信“历史守护者”机器呢?这不是“鸡和蛋”的问题吗? :)
  • 不,因为历史记录器是你自己房间里的机器,只有你可以访问,而其他机器由工人使用。
猜你喜欢
  • 2018-01-25
  • 2015-01-05
  • 1970-01-01
  • 2013-10-24
  • 2019-09-02
  • 1970-01-01
  • 2017-01-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多