结构 | SFZ JD0403001-2014 软件相似性鉴定实施规范 | SFT0158-2023 软件相似性鉴定技术规范 | 变化解读 |
范围 | 本技术规范规定了软件相似性检验的技术方法和步骤。 本技术规范适用于在电子数据检验鉴定工作中的软件的相似性检验。 | 本文件规定了软件相似性鉴定的总体要求以及仪器设备、鉴定步骤、鉴定记录和鉴定意见的要求。 本文件适用于司法鉴定领域中对软件相似性的鉴定。 | 可以适用于司法诉讼中的软件相似性鉴定,无论是知识产权鉴定还是电子数据鉴定 |
规范性引用文件 | 下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件, 仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本 文件。 GB/T 11457 信息技术 软件工程术语 GB/T 29361 法庭科学 电子数据文件一致性检验规程 SF/T 0105 存储介质数据镜像技术规程 SF/T 0157 移动终端电子数据鉴定技术规范 | 新增,影响不大 | |
术语和定义 | 2.1 检材 software for examination 电子数据检验鉴定中需检验的软件。 | 3.1检材 questioned software/code for examination 电子数据检验鉴定中需检验的软件的程序、代码或开发测试文档等。 注:通常为涉嫌侵权的软件。 | 检材和样本的定义不再只是软件 |
2.2 样本 software for comparison 电子数据检验鉴定中用于同检材进行比对检验的软件。 | 3.2样本 known software/code for comparison 电子数据检验鉴定中用于同检材(3.1)进行比对检验的软件的程序、代码或开发测试文档。 注:通常为被侵权的软件。 | ||
2.3 数字化设备 digital device 存储、处理和传输二进制数据的设备,包括计算机、通信设备、网络设备、电子数据存储设备等。 2.4 源代码 source code 未经编译的、按照一定的程序设计语言规范书写的、人类可读的计算机指令语言指令。 2.5 目标程序 object code 编译器或汇编器处理源代码后所生成的、可被直接被计算机运行的机器码集合。 2.6 运行环境 runtime environment 一种把执行码在目标机器上运行的环境。 2.7 哈希值 hash value 使用安全的哈希算法对数据进行计算获得的数据。常用哈希算法包括MD5、SHA1和SHA256等。 2.8 反编译 decompile 将已编译的程序文件还原成汇编或者高级语言代码的过程。 | 3.3数字水印 digital watermark 一种运用计算机算法嵌入载体文件的保护信息。 [来源:GB/T 36303—2018,3.1] 3.4非原创文件 non-original file 不享有著作权的程序文件。 示例:公共程序库文件、第三方库文件和基于开源许可证的文件等。 GB/T 11457、GB/T 29361、SF/T 0157界定的以及下列术语和定义适用于本文件。 | ||
仪器设备 | 3.1 硬件 电子数据存储设备、保全备份设备、检验设备。 | 4.1硬件 鉴定所用仪器设备硬件宜包括但不限于: a) 电子数据鉴定工作站; b) 数码照相机; c) 数码摄像机; d) 存储介质只读设备; e) 存储介质复制设备。 | 做了详细的说明,影响不大 |
3.2 软件 送检软件所需的运行环境、文件比对工具、反编译工具、源代码分析工具等 | 4.2 软件 鉴定所用仪器设备软件宜包括但不限于: a) 完整性校验值计算软件; b) 电子数据相似性比较软件; c) 安装程序解包软件; d) 计算机/移动终端系统仿真软件; e) 网络数据包分析软件; f) 反汇编分析软件; g) 应用程序功能分析软件; h) 数据库分析软件 | 做了详细的说明,影响不大 | |
总体要求 | 5.1排除非原创:如检材和样本包含非原创文件/内容,软件的相似性比对宜包含排除非原创文件/内容后的比对检验。 5.2对等比对:检材和样本应在对等形态下进行比对检验,如源程序与源程序进行比对、目标程序与目标程序进行比对、文档与文档进行比对、数据库与数据库进行比对。如果检材与样本形态不一致,则应通过编译或者反汇编等手段转换一致后进行比对。 5.3考虑差异:比对过程宜充分考虑名称(如文件名、变量名和函数名等)、语法(如空行、空格和字符大小写等)、注释、顺序以及编译器等差异造成的影响。 5.4操作可追溯:与鉴定有关的情况应及时、客观、全面地记录,对于不可再现情况录像记录,应确保鉴定过程和结果的可追溯性。 | 将4.4.1 的内容调整到了5.1 ,不再要求先排除非原创。 | |
鉴定步骤 | 4.1 记录检材和样本情况 4.1.1 对送检的检材/样本进行唯一性编号,编号方法为 XXXX(年度)-XXX(受理号)-XX(流水号),如 2012-39-2 表示 2012 年受理的编号 39 案件的第 2 个检材。 4.1.2 对检材/样本为数字化设备的,对数字化设备进行拍照,并记录其特征。 | 6.1记录检材/样本的情况 根据检材/样本的载体类型,应选择以下适当方式进行记录。 a) 载体为实物:对检材/样本的实物载体进行唯一性编号后拍照或录像,并记录其类别、品牌型 号、唯一性编号、性状等。 b) 载体位于网络:记录检材/样本的下载网址、远程访问的账号及口令等信息。必要时,通过网 络数据包监测,分析检材/样本的下载来源 | 不再对检材样本的编号方法进行规定。 |
4.2 检材和样本的保全备份 对具备保全条件的检材和样本进行保全备份,并计算保全备份的副本或镜像的哈希值。 | 6.2 提取固定检材/样本 6.2.1 根据检材/样本的载体类型,应选择以下适当方式进行数据提取。 a) 载体为具备复制条件的数字化设备:按照 SF/T 0105 的规定制作镜像并核对其完整性校验值,然后采用只读方式对该镜像进行检材/样本的数据提取。 b) 载体为不具备复制条件的电子设备(非移动终端):使用录像或者录屏的方式记录检材/样本的数据提取过程。 c) 载体为移动终端:按照 SF/T 0157 的规定对检材/样本进行数据提取。 d) 载体为网络:使用录像或者录屏的方式记录检材/样本的数据提取过程,并从可信时间源获取并记录开始时间和结束时间。 6.2.2 对提取的检材/样本应计算完整性校验值。 注:对于使用录像或者录屏的方式记录检材/样本的数据提取过程的,录像或录屏包含检材/样本的完整性校验值的计算过程。 | 提取固定的要求更加详细具体。 | |
4.3 检验项目的选择 分析检材和样本,根据检材和样本的内容选择以下一项或多项内容进行检验: a) 源代码间的比对; b) 目标程序间的比对; c) 源代码和目标程序间的比对; d) 文档的比对(如适用); e) 文档和源代码/目标程序间的比对。 注:文档包括开发文档、需求说明书、总体设计方案、详细设计方案等。 | 6 相似性比对分析 6.3.1 相似性比对 6.3.1.1 基本要求 审查检材和样本的类型,选择合适的鉴定项目进行比对,常见的比对项目应包括但不限于: a) 源程序的比对; b) 目标程序的比对; c) 源程序和目标程序的比对; d) 开发测试文档的比对; e) 开发测试文档和源程序/目标程序的比对。 | 没有变化 | |
4.4 程序的比对检验 4.4.1 要求 对检材和样本进行比对检验时,需先排除影响比对的内容(如公共程序库文件、第三方库文件和GNU 通用公共许可的程序等)。 | 提到了5.1总体要求中,不再要求“先排除” | ||
4.4.2 源代码间的比对 对检材和样本的源代码的目录结构、文件名、文件内容、变量、函数、宏定义等进行比对检验。检验时,应排除自定义的文件名、变量名、函数名等名称被修改的影响,对程序逻辑与结构等内容进行比对检验。 | 6.3.1.2 源程序的比对 应按照GB/T 29361的规定分别对检材和样本中的源程序进行比对检验。若所有对应文件的完整性校验值相同,则软件相同;若对应文件的完整性校验值不同或存在无法对应的文件,则宜在排除非原创的内容后,对检材和样本的源程序的目录结构、文件名、文件内容、变量、函数和宏定义等分别进行比对检验。 | 更详细具体 | |
4.4.3 目标程序间的比对 分别对检材和样本中的目标程序文件计算哈希值。若所有对应文件的哈希值相同,则软件相同。若对应文件的哈希值不相同,按下列步骤进行: a) 安装程序检验(如适用),对检材和样本的安装程序进行下列比对检验: 1) 目录结构及目录名; 2) 各组成文件的文件名、文件哈希值、文件内容、文件结构和文件属性等。 b) 安装过程检验(如适用) 分别运行检材和样本的安装程序,观察安装过程的屏幕显示、软件信息、使用功能键后的屏幕显示以及安装步骤,并进行比对检验 c) 安装后的程序检验,对安装成功的检材和样本的程序进行下列比对检验: 1) 安装后产生的目录结构及目录名; 2) 安装后产生的文件的文件名、文件哈希值、文件内容、文件结构和文件属性等; 3) 安装后的软件的配置过程和运行方式。 d) 程序的使用过程检验:运行该程序,对使用过程中的屏幕显示、功能、功能键和使用方法等进行比对检验。 e) 核心程序的逆向分析:必要时,对目标程序的核心程序进行反编译,对反编译后的代码进行比对检验。 | 6.3.1.3 目标程序的比对 应按照GB/T 29361的规定分别对检材和样本中的目标程序进行比对检验。若检材与样本程序文件相同,则软件相同;若检材与样本程序文件存在不同或存在无法对应的文件,则根据检材与样本的实际情况,选择以下1项或多项进行。 a) 安装程序检验:对检材和样本的安装程序(或解包后)的目录结构、目录名和各组成文件的文件名、文件完整性校验值、文件内容、文件结构、文件属性和文件签名信息等进行比对检验。 b) 安装过程检验:在相同环境下,分别隔离运行检材和样本的安装程序,对安装过程的屏幕显示、 软件信息、安装选项和安装步骤进行比对检验,必要时也可对安装过程中的网络访问情况和调用程序库等进行检验和比对。 c) 安装后的程序检验:对安装成功的检材和样本的程序进行以下比对检验: 1) 安装后产生的目录结构及目录名; 2) 安装后产生的文件的文件名、文件完整性校验值、文件内容、文件结构和文件属性等; 3) 安装后注册表的变动; 4) 安装过程中产生的临时文件; 5) 安装后软件的配置过程和运行方式; 6) 软件使用过程中的屏幕显示、功能、功能键和使用方法等; 7) 软件卸载过程中的屏幕显示和功能键等; 8) 卸载后软件的残留文件; 9) 卸载后注册表的变动; 10) 程序逆向分析:目标程序如具有防检测分析的保护,如加壳和加密等情况,可根据需要先去除保护,再对目标程序进行反汇编,对反汇编后的代码应按照 6.3.1.2 的规定进行比对检验。 | 更详细具体 | |
4.4.4 源代码和目标程序间的比对 将源代码编译成目标程序后再进行比对检验,检验过程按照目标程序间的比对进行。 注:源代码编译过程中,由于编译软件、编译环境等不同,相同的源代码每次编译产生的文件可能会有差异。 | 6.3.1.4 源程序和目标程序的比对 将源程序编译成目标程序后,应按照6.3.1.3的规定进行比对检验,或将目标程序进行反汇编后,按照6.3.1.2的规定进行比对。若目标程序具有防检测分析的保护,如加壳和加密等情况,可根据需要去除保护,再对目标程序进行反汇编。对于源程序编译过程中,由于编译软件和编译环境等不同而导致的文件差异,应进行记录。 | 更详细具体 | |
4.5 文档的比对 对检材和样本的文档的目录结构、内容 | 6.3.1.5 开发测试文档的比对 应对检材和样本中的开发文档、需求说明书、设计方案、操作手册、开发手册和测试手册等相关文档的文本内容、流程图和属性信息等进行比对检验。对于包含文字的非文本形式的文档(如扫描文档), 可进行文字识别并验证后进行比对检验。对于包含图片等多媒体数据的文档,应对多媒体的元数据和内容等进行比对检验。 | 更详细具体 | |
6.3.1.6 源程序/目标程序和开发测试文档的比对 应对检材和样本中源程序/目标程序的作者/开发者和代码等信息与检材和样本中开发文档、需求说 明书、设计方案、操作手册、开发手册和测试手册等相关文档进行比对检验。 | 新增 | ||
6.3.2 相似性分析 6.3.2.1 总体分析 6.3.2.2 特有内容分析 6.3.2.3 资源文件分析 6.3.2.4 结构分析 6.3.2.5 代码分析 6.3.2.6 数据库分析 6.3.2.7 其他内容分析 6.3.3 相似比例计算 6.3.3.1 结构相似比例的计算 6.3.3.2 文件相似比例 6.3.3.2.1 总体文件相似比例 6.3.3.2.2 排除非原创文件后的文件相似比例 6.3.3.3 代码相似比例 6.3.3.3.1 代码总体相似比例 6.3.3.3.2 排除非原创内容后的代码相似比例 6.3.3.3.3 排除非原创内容及注释后的代码相似比例 | 新增,花了大篇幅规定了相似性分析的角度和计算方式。 | ||
鉴定记录 | 5.1 与鉴定活动有关的情况应及时、客观、全面地记录,保证鉴定过程和结果的可追溯性。 5.2 对于检材/样本为数字化设备的,应记录: a) 检材/样本的类别; b) 检材/样本的型号; c) 检材/样本出厂时的唯一性编号(如适用); d) 检材/样本的固件版本号(如适用); e) 检材/样本中软件的名称、版本等属性信息(如适用); f) 检材/样本的照片。 5.3 对于检材/样本为独立于数字化设备的软件的,应记录: a) 软件的名称、版本、大小等属性信息; b) 软件的哈希值; c) 软件的运行环境。 5.4 对于检验的结果,应记录: a) 检材与样本的相同部分,如目录结构、目录名、文件、文件名、文件内容等; b) 检材与样本的相似部分,如安装或使用过程中的屏幕显示等; | 7.1基本要求 与检验有关的情况应及时、客观和全面地记录,保证检验过程和结果的可追溯性。 7.2检材/样本信息 对于检材/样本,宜记录以下信息: a) 软件的来源,如载体电子设备的类别、品牌型号、唯一性编号、性状或下载网址、远程访问的 账号及口令等; b) 软件载体或所处环境的照片; c) 软件的名称、版本和大小等属性信息; d) 软件的数字水印信息或签名信息; e) 软件的完整性校验值; f) 软件的运行环境; g) 附属信息,如账号、密码等。 7.3提取固定过程 对于检材/样本的提取固定过程,应记录以下信息: a) 提取固定过程中所使用的仪器设备信息; b) 远程提取的开始和结束时间(如适用); c) 提取固定结果的文件名和完整性校验值; d) 固定过程录像文件的文件名和完整性校验值(如适用)。 7.4 检验过程 对于检材/样本的相似性检验过程,应记录以下信息: a) 检材与样本在比较前的预处理过程; b) 检材与样本的相同及相似部分; c) 6.3.2.2 中检出的特有内容; d) 6.3.2.5 中的处理规则; e) 6.3.2.7 中检出的其他内容; f) 相似比例的计算过程。 | 对检验过程的记录要求更多了,要求记录的内容不仅包括相同、相似部分,还需要记录预处理过程、特有内容、相似比例计算过程 |
鉴定意见 | 6.1 列出检材与样本的相似比例,并对存在相同或相似的部分进行说明。 6.2 若检材与样本中存在软件署名、开发者的姓名、单位、废程序段、独特的代码序列等相同时,需 在检验结果中单独列出。 | 8.1鉴定意见分类 软件相似性鉴定意见应分为以下四种: a) 软件相同; b) 软件相似; c) 软件不相似; d) 无法判断。 8.2鉴定意见判断依据及表述 8.2.1 软件相同 判断依据:检材与样本(安装文件、代码文件和各组成文件等)使用GB/T 29361比较结果相同。 鉴定意见表述为:检材与样本(列出对应的文件)相同。 8.2.2 软件相似 判断依据:检材与样本中存在部分文件的完整性校验值相同或文件的内容存在相同部分。 鉴定意见表述为:检材与样本相似,并列出相似比例。 附加要求如下: a) 应分别列出以检材为参考对象和以样本为参考对象时,检材与样本的相似比例; b) 如检材与样本包含多种文件类型,可分别列出各类型文件的相似比例; c) 对检材与样本中存在相同或相似的部分应进行说明; d) 不宜出现“实质性相似”表述。 8.2.3 软件不相似 判断依据:检材与样本中不存在完整性校验值相同的文件且文件内容不存在相同部分。 鉴定意见表述为:检材与样本不相似。 8.2.4 无法判断 判断依据:检材与样本不具备检验条件,或在进行了充分的检验后仍无法判断是否相似。 鉴定意见表述为:无法判断检材与样本是否相似。 | 有了很大变化,之前是只需要列出相似比例,新标准要求给出软件是否相同、相似、不相似的结论。 即使软件代码中有5%的相似代码,结论也是软件相似 |
司法部最新发布的《SFT0158-2023 软件相似性鉴定技术规范》与2014版本标准的变化比对
最新推荐文章于 2024-10-16 21:00:08 发布
本文详细解读了SF/T0158-2023软件相似性鉴定技术规范,涵盖鉴定技术方法、步骤、适用范围、术语定义,以及仪器设备、鉴定过程、记录要求和鉴定意见的更新。重点强调了排除非原创内容、对等比对、差异考虑和操作可追溯性等关键点。
摘要由CSDN通过智能技术生成