电子数据鉴定论文笔记|ECo-Bag,基于哈希树的通用电子证据包

论文
💡
Han, J., Han, M. L., Lee, S., & Park, J. (2024). ECo-Bag: An elastic container based on merkle tree as a universal digital evidence bag. Forensic Science International: Digital Investigation, 49, 301725.
论文创新点
- 一种新型的基于哈希树(“Merkle tree”)的逻辑证据存储容器。
- 在处理搜查得来的电子证据时,在保留数据完整性的同时,提供封存或销毁与案件无关的个人隐私信息的功能。
什么是电子证据包
电子证据包指从不同来源获取的证据的集合汇总,在案件调查过程中提供证据来源记录并保持证据的连续性。
ECo-Bag的设计
设计动机
在电子数据证据获取过程中,会有大量的非案件相关信息也被搜查固定。例如在手机提取的过程中,会有大量的非案件相关、涉及个人隐私的文件、相片及聊天记录等内容,也都被做入了手机阅读器报告、放入了证据盘。一旦放入了证据盘,这些个人隐私的内容无法在保持证据盘完整的情况下删除或封存,也就导致了对个体隐私权的侵犯。
设计理念
在侦查初期、证据收集的阶段,分辨哪些信息是与案件相关与否肯定是不现实,所以理想的情况是,在调查过程中,当调查人员发现与案件无关的个人隐私信息时,有能力将其封存删除(加密)的同时,不影响其他证据的完整性。
ECo-Bag的构成
ECo-Bag其实就是一个以压缩包为容器的证据盘,里面同时存放【证据文件】和【StateInfo文件】即所谓【证据文件的“元数据”】。
它和鉴定流程中常见的压缩证据文件至一个压缩包,并将压缩包复制刻盘的过程几乎一致,但在证据盘中新增了一个元数据文件StateInfo,理解该文件需要先理解的概念如下:
- "State Info":存储元数据的文件载体
- “Attribute”:State Info 文件中的键值对,记录了每个Item的属性。
- “Item”:即证据文件,可以是打的镜像,也可以是取证工具导出的报告或者是二次处理过后的csv等表格文件。
简单来说,StateInfo文件中包含了以下信息:
- StateInfo自身文件的哈希(hash)
- 基于UUID的唯一标识符(urn)
- 记录证据包内更新次数的值(state)
- StateInfo文件生成时间(birth)
- StateInfo文件更新时间(operated)
- 哈希树根所使用的计算函数(function)
- 每个证据的信息(items)
- 证据类型(type:镜像、文件、二次输出等等)
- 证据状态(itemState:正常、删除、加密、压缩)
- 证据名称(itemName:证据路径)
- 证据哈希(itemHash)
- 证据包修改记录(history:记录所有对证据包修改更新的操作及证据包哈希树的根)

内部证据管理的操作类型
- Generate:在证据收集完毕后,通过生成操作,生成一个包含证据文件及stateinfo文件的逻辑证据容器。
- 生成的“State Info”文件放在压缩包的根目录下
- 生成每个证据文件的“meta data”如哈希、路径、状态等。
- Update:对证据文件的销毁、加密或压缩等操作。
- “Destruction”:对证据文件的永久性删除。
- “Sealing”:对证据文件的封存,防止未授权人员查看。
- Verify:验证哈希树中特定的证据文件或所有文件的完整性。
- “Full mode”:在全验证的模式下,会对证据容器内所有可恢复至“正常”状态下的文件都进行验证
- 首先会校验StateInfo内记录的StateInfo文件的哈希,查看StateInfo文件的哈希是否匹配,以确认StateInfo文件未被篡改
- 将证据盘内所有文件(包括加密或压缩的文件,但不包括删除文件)恢复至正常状态
- 计算哈希树根的值,用于验证证据包内所有文件。
- “Preview mode”:在预览模式下,只会对特定的少数几个文件进行验证,减少计算开销的同时保护其他证据。
- “Full mode”:在全验证的模式下,会对证据容器内所有可恢复至“正常”状态下的文件都进行验证
以上三种证据管理操作中,缺少了补充证据的操作类型,即如果生成了一个证据包后有新证据需要添加进去怎么办,作者给出的方法是套娃,即把旧证据包作为一个证据文件和新证据再一同压缩至新证据包,这就解决了新增证据的问题。
个人理解
- 作者在原有证据文件压包的基础上,在根目录下新增了一个StateInfo文件,该文件记录了压缩包内所有证据文件的哈希、路径、名称等信息的同时,基于这些个体文件的哈希利用哈希树生成总哈希根,在修改证据包内的文件时,也会在StateInfo元数据中留存物品状态修改记录等日志。
- 新增了在保持原有证据链完整的同时删除或加密证据文件的功能。
- 但感觉这一证据容器比较适合长期归档而并非作为证据盘所用。