2014-10-01 32 views
0

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

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

+0

只是想清楚一些事情:你想让它显示它是否在历史中运行,或者你想在将来检查它吗? – Dave 2014-10-01 11:23:44

+0

该流程是否具有可识别/可审计的输出? – 2014-10-01 11:56:50

+1

这个问题似乎是无关紧要的,因为它不是关于编程。 – 2014-10-01 18:56:19

回答

1

技术上,问题是如果您事先准备好计算机来完成这个任务,以及您是如何严格定义一段“代码”,因为两个程序可以产生由于分支而执行的相同的指令序列。

在“代码段”的丢失定义中,如果您事先更喜欢计算机,则可以创建一个虚拟机,创建已执行指令的历史记录(或者节省空间,执行的程序)并发送此历史记录实时将公钥加密技术用于可信机器,即“历史管理员”,它使用时间戳标记历史流。对于较低的安全级别,您还可以在本地保存该历史记录,而不在虚拟机内用户可访问的内容之外。尽管仍然存在篡改的可能性(例如损害虚拟机),但在虚拟机启动得到合理保护的公司(无法使用USB端口,BIOS锁定,启动顺序不能使用“保存模式”更改)或工作人员因此他们不能修改硬件和移除/切换组件),但这不会给你100%的安全性,但在很多情况下工作得相当好。

合法,这取决于管辖权和情况。至少在德国和美国,刑法需要比民法更高的确定性,所以我认为这对于民法程序来说足够了,但要根据刑法的情况而定。

+0

有趣。让我更具体一些。想象一下,生成包含非常敏感数据的报告的软件。这些报告由可信管理机构签名并加盖时间戳。但是,为了生成有效的报告,该软件必须**进行大量的预处理操作。这里的要点是要证明这些操作已经完成,并且在特定的时间已经执行了特定的二进制文件以生成特定的报告。换句话说,有必要将软件与它生成的报告结合起来。我不知道这是否真的有可能。 – Silas 2014-10-02 12:36:46

+0

当然,只需将报告文件与我的虚拟机建议中的程序或说明一起添加到历史记录中即可。 – 2014-10-02 13:33:57

+0

嗯,在这种情况下,为什么要信任“历史守护者”机器?这不是“鸡与鸡蛋”问题吗? :) – Silas 2014-10-02 17:10:26