P384 · 测试与评估

用独立证据确认任务完成

Independent completion witness

区分外部观察到的行为和被测代码自己声明的完成状态。

编辑审核

以下示例与示意结果由本站编写,用于说明方法,不是模型实测结果。

使用场景

不可信应用可以打印“全部测试通过”并退出0。教学授权修复快照S2需要证明跨租户请求拒绝及合法访问可用,不能让目标控制自己的裁判和凭证。

具体做法

将独立断言、固定夹具与证据写入目标无法修改的验证环境,绑定快照和工具身份。外部检查实际观察跨租户拒绝与合法对照,保存验证器自己的结果;目标项目测试输出另标自行报告。检查目标是否能修改oracle、终止进程或替换证据,能控制则不算独立边界。缺见证列精确缺口。

反例

应用打印全绿且正常退出,所以授权修复已独立验证,另起进程即可保证可信。

改进写法

对S2使用目标不可修改的外部跨租户断言和合法访问对照,记录真实结果及验证身份。项目全测摘要单列self-reported,缺独立完成见证不得升级证明;第二进程共享可写oracle时仍不独立。

为什么这样改

目标控制输出时可伪造完成。将判定与证据移到不可控边界,能支持特定行为而不顺带认证所有目标报告。

如何验证

教学应用即使打印全绿,外部跨租户访问成功仍失败;真正拒绝且合法对照通过才支持这两项。目标可改验证器则证据无独立性。报告范围不扩到未见证的整套测试完成。

适用边界

隔离和来源验证需真实实现,另进程或hash本身不够。独立断言也可能漏边界,项目测试未认证不等于未运行。冻结来源有专属保证状态,应按实际证据使用,不能普遍宣称认证。

原文与版本

如何收录这些方法