软件侵权案件的难点,从来不是「像不像」,是「怎么证明像」。
界面可以模仿,功能可以复现,但这些都不必然构成侵权。法律保护的是表达,不是思想。判断的落脚点,是源代码与文档的实质性相似。
一、判断框架:接触加实质性相似
两步走。
第一步,接触。被告有没有机会看到原告的软件。常见的接触情形:曾在原告处任职、曾是原告的客户或者合作方、软件曾公开发布或者销售、通过反向工程获取。
第二步,实质性相似。被告的软件与原告的软件在表达上是否构成实质相同。
两步都成立,才可能认定侵权。只有相似没有接触,可能是独立开发的巧合;只有接触没有相似,不构成侵权。
实务中,接触的举证相对容易,实质性相似的举证是主战场。
二、四个比对层次
第一层,源程序。逐行比对,看代码结构、变量命名、注释、函数划分、错误处理方式是否一致。
第二层,目标程序。在拿不到源代码时,比对编译后的二进制文件,看符号表、字符串、常量、调用关系。
第三层,文档。需求文档、设计文档、用户手册的结构、章节、表述是否高度一致。
第四层,结构、顺序与组织。即使代码改写,如果模块划分、数据流程、接口设计、异常处理逻辑高度一致,也可能构成非文字性相似。
四层里,第一层最有力,第四层最难证明。多数案件靠第一层与第三层取胜。
还有一个辅助层次:界面与交互。界面相似本身不足以认定侵权,但可以作为接触与整体相似的佐证。
三、抽象、过滤、比较三步法
这是常用的分析方法。
第一步,抽象。把软件逐层分解:从整体功能,到模块,到子程序,到具体语句。分解到哪一层,取决于争议的焦点。
第二步,过滤。把不受保护的内容剔除,包括:思想、算法、处理过程、操作方法;公有领域的表达;行业通用的表达;为兼容或者功能所必需的表达。
第三步,比较。对剩下的受保护的表达,逐层比对,判断是否实质相似。
三步法的价值在于避免过度保护。如果直接把两个软件的整体相似度拿来当结论,等于把思想也保护了。
实务中,法院通常委托鉴定机构按这三步做,鉴定报告要说明抽象到哪一层、过滤了哪些内容、比较的方法与结论。
四、源代码怎么取证
三条路径。
第一条,证据保全。起诉时申请法院保全被告的源代码,法院到现场查封服务器、拷贝代码。这是最有效的方式,但需要提供担保,且要说明代码存放位置的线索。
第二条,公证取证。对公开可获取的部分取证,比如网页前端代码、安装包、用户手册。范围有限,但成本低。
第三条,通过离职员工或者合作方获取。这种方式取得的证据,合法性容易被质疑,要谨慎。
还有一个实操细节:保全时要同时封存开发环境、版本管理记录、编译脚本。只看最终代码,被告可以主张是独立开发;有了版本记录,开发过程一目了然。
另外,保全要快。代码可以被删除、覆盖、迁移,晚一步就取不到。
五、被告的五种抗辩
第一种,独立开发。提交自己的开发文档、代码提交记录、设计思路,证明是独立完成的。
第二种,公有领域或者通用表达。主张相似的部分属于行业通用写法、开源代码、标准接口。
第三种,有限表达。主张某种功能只有一种或者极少数几种实现方式,相似是必然的。
第四种,思想与表达二分。主张相似的是功能、流程、算法,属于思想,不受保护。
第五种,合法授权。提交许可合同、开源许可证,证明使用有据。
五种抗辩里,第一种最常见,第三种最难反驳。如果原告的软件本身表达空间很窄,被告的相似就有了合理理由。
六、赔偿怎么算
顺序与专利类似:实际损失、侵权获利、许可费倍数、法定赔偿。
软件案件的特殊之处在于:实际损失可以按正版软件的销售价格乘以侵权复制品的数量计算;侵权获利可以按被告的销售收入乘以利润率计算。
还有一个常用的方法:按研发成本计算。软件被整体抄袭的,原告可以主张研发投入作为损失,包括人力成本、外包费用、测试费用。
法定赔偿的幅度较大,法院会考虑:软件的价值、开发难度、侵权情节、被告的主观恶意、侵权持续时间。
恶意明显、复制程度高的案件,可以主张惩罚性赔偿。
七、一个相似度超九成的案例
某软件公司发现前员工创办的企业销售一款同类型的管理软件,功能模块、界面布局、操作流程高度相似,遂起诉。
起诉同时申请证据保全。法院到被告办公场所,查封服务器三台,拷贝源代码约四十万行,并封存了版本管理记录。
鉴定机构按三步法分析:
抽象层面,将两款软件分解为十二个功能模块、八十六个子程序。
过滤层面,剔除通用框架代码、开源组件、数据库连接等通用部分,剩余受保护的代码约十八万行。
比较层面,剩余代码中,有十六万行在结构、命名、注释、异常处理上高度一致,相似度百分之八十九;其中三个核心模块的相似度超过百分之九十五,包括相同的自定义函数名与相同的注释错别字。
被告抗辩独立开发,提交了部分设计文档,但文档的形成时间晚于代码提交时间,且无法解释注释中的相同错别字。
法院认定构成实质性相似,且被告法定代表人曾在原告处任技术负责人,接触事实成立。
赔偿计算:以原告该软件的正版销售价格与被告的销售数量为基础,结合被告的利润率,确定侵权获利四百二十万元;考虑被告复制程度高、主观恶意明显,按一点五倍确定赔偿六百三十万元,另支持合理开支二十三万元。
判决后被告上诉,二审维持。
这个案子的关键证据,是那些相同的注释错别字。改写代码容易,改写注释里的错字很难。
八、软件维权准备清单
- 已完成软件著作权登记,登记信息与实际情况一致
- 保留完整开发文档与代码提交记录
- 明确被告的接触路径,有任职、合作或者交易证据
- 已完成初步比对,形成相似点清单
- 起诉时同步申请证据保全,提供代码存放线索
- 保全范围包含开发环境、版本记录、编译脚本
- 鉴定委托事项明确,按抽象、过滤、比较三步进行
- 已准备被告可能提出的五种抗辩的应对
- 赔偿主张有销售数据、价格、利润率支撑
- 恶意证据充分,评估惩罚性赔偿的适用
软件侵权的证明,是一场关于细节的较量。功能可以一样,界面可以一样,但代码里的每一个命名习惯、每一处注释,都在说明它从哪里来。