打开网易新闻 查看精彩图片

李营营律师:78个函数相似不一定侵权,相似代码必须满足独创性

函数数量和相似率不是侵权结论,只有能够体现独创性表达的代码内容,才可能成为计算机软件著作权法意义上的保护对象。

阅读提示:本案系离职技术人员另行开发同类CAD结构工程软件引发的计算机软件著作权纠纷。权利人主张被诉软件38个文件与权利软件相似,并重点列举分散在8个源文件中的78个函数,认为函数命名、拼写错误、注释习惯及部分设计缺陷具有同源性。最高人民法院指出,在双方均已提交源代码、具备直接比对条件时,应优先对源程序进行比较,不能绕开直接证据,仅凭间接特征推定整体侵权。软件“部分复制”的保护对象一般应当是具有相对独立功能并体现独创性表达的代码文件;零散函数属于程序基本单元,若未证明其表达具有独创性,亦未排除有限表达、通用功能、开发工具限制和公有领域代码,就不能以少量函数相似推及数十个文件乃至整个软件实质性相似。

裁判要旨:

判断计算机软件是否构成实质性相似,应坚持“接触加实质性相似”的基本路径,并根据证据条件选择比较方法。双方源代码均可取得时,源程序之间的直接比较通常最能反映复制关系;只有在源程序无法取得、被诉方拒不提供或直接比对确有困难时,才可能结合目标程序、界面、运行参数、数据库结构、权利管理信息、冗余设计或相同缺陷等间接事实综合推定。主张软件部分复制的一方,应明确受保护的代码范围,证明相关代码具有相对独立功能并体现独创性表达,同时排除思想、算法、标准、通用做法、效率要求、有限表达及公有领域内容。仅以分散的78个函数相似,推导38个文件或整套软件实质性相似,属于以偏概全;相似率本身不能替代保护对象识别和独创性审查。

案情简介:

1.探某某公司主张其对一套3.0版CAD结构工程软件享有计算机软件著作权。凌某某曾于2002年至2005年在该公司担任软件工程师,具有接触权利软件及相关技术资料的可能。

2.凌某某离职后参与开发同类结构设计软件。被诉“老某某某”软件先后形成2013、2014、2015、2017及2019等版本,鑫某某某公司于2012年成立并对外经营、销售相关软件。

3.探某某公司起诉称,被诉软件复制、改编其权利软件,要求停止侵权并赔偿经济损失183.6万元及合理开支16.4万元,合计200万元。

4.诉讼中,双方均提交了2019版软件源代码。权利软件由9个上层ARX库和1个底层库组成,探某某公司最终主张底层库34个文件及CAD4部分4个文件受到侵害,并重点要求比对分散在8个源文件中的78个函数;而底层库函数总量超过1000个。

5.探某某公司还以文件标记、缩写、拼写或命名错误、非驼峰命名习惯、“中式英语”、共同使用的字体与开源文件以及若干设计缺陷相同为由,主张被诉软件与权利软件具有同源性,并申请司法鉴定。

6.一审法院认为现有证据不足以证明实质性相似,驳回探某某公司的全部诉讼请求。2024年7月24日,最高人民法院作出(2023)最高法知民终885号民事判决,驳回上诉,维持原判。

案件争议焦点:

一、分散在8个源文件中的78个相似函数,能否推定38个文件乃至整套软件构成实质性相似?

二、单个函数或函数组合在何种条件下能够成为软件部分复制的受保护对象?

三、命名习惯、拼写错误、文件标记、共同资源及设计缺陷等间接特征,能否证明软件同源和侵权?

四、法院自行组织源代码比对、对被诉源代码采取保密措施并不准许鉴定申请,程序是否适当?

法院裁判观点:

一、比较方法应与证据条件相匹配,源代码可取得时应优先进行源程序直接比较。

最高人民法院指出,认定软件侵权通常遵循“接触加实质性相似”的判断方法。源程序与源程序比较最能直接反映代码表达是否被复制,但并不意味着任何案件都必须取得源代码后才能判断侵权。

当源代码客观上无法取得或控制代码的一方拒不提供时,法院可以结合目标程序、界面、权利管理信息、运行参数、数据库结构、冗余设计及相同缺陷等证据综合推定。本案双方均已提交2019版源代码,直接比对条件已经具备,故没有必要舍近求远,以间接特征替代源代码比较。

二、软件部分复制应先确定受保护对象,零散函数并不当然构成独立的著作权客体。

软件可以整体受到保护,也可能因部分复制而构成侵权。但在部分复制情形下,所主张的代码内容一般应当形成具有相对独立功能的代码文件,并能够体现作者的独创性选择与安排。函数虽是程序的基本组成单元,却不因其可被命名或调用就当然具有独立的可版权性。

探某某公司将分散在8个文件中的78个函数作为主要比对对象,却主张38个文件受到侵害;78个函数占底层库1000余个函数的比例不足10%。在没有说明这些函数如何形成相对独立功能、如何代表相关文件核心表达的情况下,以少量局部相似推及文件整体或整套软件实质性相似,属于以偏概全。

三、著作权只保护独创性表达,相似内容应先排除思想、有限表达、通用规则和公有领域素材。

软件实质性相似不是单纯的技术事实,而是需要适用著作权法规则作出的法律判断。比对时应区分思想与表达,并过滤因功能、效率、开发工具、行业标准、技术规范或用户习惯所决定的内容,以及开源代码、公共字体和其他公有领域素材。

本案78个函数多涉及CAD绘图中的通用功能、简单封装或基础操作,部分表达受ObjectARX等开发工具和技术要求限制。探某某公司没有具体说明每一函数中哪些表达体现个性化选择,也未证明相似部分达到最低独创性要求。函数名称、参数及实现方式即使相近,也不能在未完成过滤分析的情况下直接认定复制。

四、源代码直接比对可行时,命名、错误和缺陷等间接特征不能替代独创性与实质性相似证明。

特有标记、罕见错误、冗余设计或一致缺陷,在源代码缺失且其他证据相互印证时,可能成为判断同源的重要线索。但这些因素本身仍须指向受保护的独创性表达,并排除巧合、行业惯例、共同工具或第三方资源等合理解释。

本案所涉文件标记、缩写、拼写或命名错误、非驼峰命名习惯及所谓“中式英语”,不足以证明其属于权利人独有表达;双方共同出现的字体、开源文件和公共资源亦不能归权利人专有。既然已经能够直接比较源代码,不能仅凭上述间接特征推翻直接比对所得结论。

五、法院组织比对、保护被诉源代码秘密并驳回缺乏初步依据的鉴定申请,并无程序不当。

一审采用Beyond Compare等常用工具,对同名文件及跨文件内容进行了比较,并非仅机械核对同名文件。法院向当事人披露比对结果和裁判分析,同时避免向对方直接展示可能构成商业秘密的被诉源代码,兼顾了质证权与技术秘密保护,未实质妨碍权利人的知情、辩论权利。

探某某公司申请鉴定时仅推测被诉方可能通过改名、拆分、合并或调整顺序隐藏复制,但没有提交足以支持该推测的初步证据,也未提出能够超出现有比较结果的明确鉴定事项。法院认为现有比对足以查明争议事实,不准许鉴定申请并无不当;其他2013、2014、2015、2017版软件亦因缺乏实质性相似证据而不能认定侵权。

综上,最高人民法院认为探某某公司未能证明其所主张的78个函数属于受著作权法保护的独创性表达,也不能据此推定38个文件或整套被诉软件实质性相似,遂驳回上诉,维持一审驳回全部诉讼请求的判决。

案例来源:

《北京某某软件股份有限公司与北京某某科技有限公司、凌某某侵害计算机软件著作权纠纷二审判决书》〔案号:(2023)最高法知民终885号,裁判日期:2024年7月24日〕。

实战指南:

一、起诉前应锁定权利软件与被诉软件的具体版本,并把保护范围落实到文件和代码段。

权利人应建立版本对应表,固定登记版本、实际交付版本、员工接触版本和被诉版本的代码哈希、编译时间、仓库提交及发布记录。主张部分复制时,不宜笼统指向整套系统,应说明具体文件、类、函数或代码段的功能关系、所在版本、相似位置以及其对软件整体的技术意义,避免诉讼中不断缩减或变换比对范围。

二、对每一项相似内容制作“表达—独创性—过滤因素”分析表。

代码相同或相似只是分析起点。权利人应逐项解释其开发背景、可替代实现方式、结构选择、变量与流程安排,并提交需求文档、设计稿、代码提交记录及开发人员说明,证明表达源自自主创作;同时主动排除算法思想、功能要求、行业标准、工具自动生成、常用库、开源组件、有限表达和公共资源。被诉方则可围绕上述过滤因素提出反证。

三、根据证据可得性安排直接比对与间接推定的证明层级。

双方源代码均可取得时,应优先形成目录、文件、类、函数和具体代码行的分层比对,并分别统计过滤前后相似内容。只有源代码确实无法取得时,才宜加强目标程序、界面、参数、数据库结构、接口输出、权利标记、罕见错误及冗余设计等间接证据;使用间接证据时,还要证明这些特征具有识别力并能排除独立开发。

四、源代码提交和质证应同步设计保密措施,确保程序权利与商业秘密保护相平衡。

当事人可申请签署保密承诺、限定查阅人员和场所、采用隔离设备、禁止复制外带、仅披露比对结果或由双方认可的技术人员核验,并对庭审笔录、附件和裁判文书作必要隐匿。要求查阅对方全部源代码的一方,应说明具体质证目的及必要范围;持有代码的一方也不应以保密为由拒绝任何可验证的比较。

五、申请司法鉴定应提出明确问题并先提交足以启动鉴定的初步证据。

鉴定申请应说明待鉴定版本、检材来源、代码完整性、具体比较对象、过滤规则和拟解决的技术问题,避免只提出“是否侵权”这一法律判断。若怀疑对方通过改名、拆分、合并、重排或混淆代码规避比对,应先以目录差异、调用关系、反编译结果、编译特征或抽样代码证明该可能性,使法院能够判断鉴定的必要性与范围。

打开网易新闻 查看精彩图片

李营营律师团队专业介绍:
李营营律师团队长期专注于商业秘密、计算机软件及企业技术保护领域的争议解决与专项合规服务,能够围绕技术成果从形成、确权、使用、许可到维权的全生命周期提供法律支持。团队服务事项涵盖技术秘密、经营秘密侵权,员工及核心技术人员离职带走资料,竞业限制与人才争夺,软件著作权确权及侵权诉讼,源代码、目标程序、数据库结构和接口调用比对,开源软件合规,技术合作、委托开发、许可实施及成果归属争议。团队注重法律与技术事实的交叉验证,可结合代码仓库、研发文档、版本记录、编译部署信息、服务器日志、邮件及即时通信、访问权限和下载记录,设计电子数据取证、证据保全、行为保全及司法鉴定方案;针对鉴定意见,能够从检材来源、提取过程、哈希校验、版本对应、非公知性、同一性、实质性相似及因果关系等方面开展审查和质证。除诉讼案件外,团队还可协助科技企业建立分级分类的技术秘密保护体系,完善保密制度、涉密载体管理、员工入职在职离职流程、合作伙伴权限控制、研发及代码管理、开源组件审计和技术合同机制,并结合产品形态和商业模式开展风险排查与应急响应。团队坚持以权利基础、技术载体、接触路径、使用行为、损害结果和责任主体为主线构建证据体系,根据委托人的诉讼地位制定权利稳定性论证、侵权链条证明、技术抗辩、损害赔偿计算及谈判解决方案,努力将专业法律服务转化为可执行的技术保护措施。