A公司、B公司与C公司侵害技术秘密纠纷案
一、案情简介
2018年10月18日,A公司与B公司签订《源代码使用许可合同》,约定:A公司授权B公司非专有不可转让使用“有客多小程序源码”,许可使用期限为合同签订日起20个自然年度。B公司应要求接触涉案源代码的员工遵守保密约定,不得对外透漏涉案源代码。若员工违反保密约定,B公司应承担连带责任。
2018年10月24日,A公司按许可合同约定向B公司交付了加密的涉案源代码及相关文件。2019年4月,A公司接到客户投诉,称在全球源代码共享平台Github上发现涉案源代码被公开发布。经查,涉案源代码于2018年12月31日被用户名为“luXin212121”发布到Github全球源代码开源网站的公共存储库,后被Github平台多个用户复制。虽无法获悉用户名“luxin212121”的具体身份信息,但被披露的涉案源代码中有众多信息指向B公司与C公司,这些信息包括两公司的版权信息、域名、客服电话、logo、支付宝账号以及内部研发系统的链接、默认签名、与第三方平台的配置参数等。C公司是B公司的唯一股东。
A公司遂向广东省深圳市中级人民法院提起诉讼,A公司起诉请求:1、B公司、C公司连带赔偿A公司经济损失及维权合理费用共计5076.916万元。2、B公司、C公司在《法制日报》刊登声明消除影响。3、诉讼费由B公司、C公司承担。
一审法院判决如下:一、B公司应在判决生效之日起十日内赔偿A公司经济损失及合理维权费用共计500万元,C公司对前述赔偿金额承担连带责任;二、驳回A公司的其他诉讼请求。
A公司不服一审判决,向最高人民法院提起上诉。
A公司在一审时提供了第30号鉴定意见书,记载:1.委托人为A公司,委托事项为A公司的有客多软件部分源代码在2018年12月31日前是否为公众所知悉,受理日期为2019年6月27日。2.鉴定材料包括①源代码光盘,一式一份,内含源代码压缩包“gongzhi.zip”和“shal.txt”,经查验gongzhi.zip的SHAI校验值与shal.txt中记载的一致。②《有客多软件技术点说明》,一式一份,共28页。依据《有客多软件技术点说明》可知,有客多软件是一款微信小程序开发工具,提供小程序行业解决方案让用户快速拥有自己的微信行业小程序。软件采用java语言,基于SpringMVC+Mybatis架构开发,软件是通过打包编译生成war包部署在阿里云平台提供服务。整个软件从业务架构上分为三层,包括业务前台、服务中台和底层架构。其中业务前台包含建站业务、电商业务、餐饮业务、名片业务、多门店业务、分销业务、互动业务、知识付费业务、社区服务等模块;服务中台包含商品SKU服务、订单服务、会员及优惠券服务、积分服务、奖品服务、活动服务、微信接口服务、短信服务、多媒体服务、资讯论坛服务、资源调度服务等模块;底层架构包含分布式部署架构、缓存架构、数据存储架构、日志整体架构、消息队列架构等。A公司主张的20个技术点对应的979个源代码文件,涵盖了实现上述业务前台和服务中台的全部功能模块的部分源代码。3.检索结果。2019年6月28日至7月22日,鉴定组依据《有客多软件技术点说明》,针对有客多软件中的20个技术点对应的979个源代码文件,在谷歌、百度2个知名搜索网站,Github、searchcode2个软件源代码共享网站进行了搜索,检索到与上述有客多软件中14个源代码文件内容相近似的内容,未检索到与其他源代码文件内容相近似的内容。4.鉴定意见。有客多软件中20个技术点对应的965个源代码文件在2018年12月31日之前不为公众所知悉。
被告在二审期间提供了第040号鉴定意见书,拟证明涉案965个源代码文件并非“不为公众所知悉”,第30号鉴定意见书检索范围和检索方法存在明显错误。
经审理,最高人民法院驳回上诉,维持原判。
二、裁判信息
01、争议焦点
(1) A公司主张的商业秘密是否成立;
(2) B公司是否构成侵权;
(3) 侵权责任应当如何承担;
(4) C公司是否应承担连带责任。
02、裁判要点:
(一)A公司主张的商业秘密是否成立
反不正当竞争法第九条第三款规定,本法所称的商业秘密,是指不为公众所知悉、具有商业价值并经权利人采取相应保密措施的技术信息和经营信息。本案中A公司主张的涉案965个源代码文件构成技术秘密,其主张的20个技术点是对源代码功能进行的概括,仅为了便于鉴定机构理解源代码的逻辑,故本案实际应判定A公司主张的涉案965个源代码是否构成技术秘密。
1.关于A公司主张的涉案965个源代码文件是否“不为公众所知悉”。《最高人民法院关于审理侵犯商业秘密民事案件适用法律若干问题的规定》第三条规定,权利人请求保护的信息在被诉侵权行为发生时不为所属领域的相关人员普遍知悉和容易获得的,人民法院应当认定为反不正当竞争法第九条第四款所称的不为公众所知悉。本案中,A公司提交了第30号鉴定意见书以证明涉案965个源代码文件“不为公众所知悉”。B公司、C公司认为第30号鉴定意见书检索范围、检索方法有重大瑕疵,第040号鉴定意见书的鉴定结论显示其中3个源代码文件属于行业惯例、在公开的代码文件中可以检索到4个与A公司主张的涉案源代码部分相同的代码,且在2018年10月18日前,已经在开源领域存在多种与A公司有客多软件功能相同的软件,因此第30号鉴定意见书的鉴定结论不应采信,并申请法院组织对涉案源代码是否“不为公众所知悉”进行重新鉴定。
对此本院认为,首先,《最高人民法院关于民事诉讼证据的若干规定》(2019修正)第四十条第一款规定,当事人申请重新鉴定,存在下列情形之一的,人民法院应当准许:(一)鉴定人不具备相应资格的;(二)鉴定程序严重违法的;(三)鉴定意见明显依据不足的;(四)鉴定意见不能作为证据使用的其他情形。第30号鉴定意见书从涉案源代码文件中提取了类名、方法名、变量名、表达式等作为关键词在百度、谷歌两个知名搜索网站及Github、searchcode两个软件源代码共享网站进行检索,其检索范围为知名、主流的搜索引擎及软件源代码共享网站,是所属软件领域的相关公众最常使用、访问的网站,故第30号鉴定意见书的检索方法、检索范围并无明显不当,且B公司、C公司在二审期间,已经单方委托了鉴定机构对涉案技术信息是否具有非公知性进行了鉴定,故对其所提由法院组织重新鉴定的申请,本院不予支持。
其次,根据B公司、C公司二审期间委托鉴定的第040号鉴定意见书的鉴定结论,“GoodsBuyDetail.java”“Area.java”“CusmallStatisticsInfo.java”3个文件中的代码由且仅由成员变量定义及成员变量对应的geter、seter等方法组成,其中成员变量属于常见命名,该种定义成员变量并生成geXXX、setXXX等方法的形式是Java编程语言推荐的标准写法,属于所属领域的行业惯例。A公司针对第040号鉴定意见的上述结论,未合理说明该些变量命名方式及对应生成方法的独特性,故本院采信第040号鉴定意见的上述意见,认定“GoodsBuyDetail.java”“Area.java”“CusmallStatisticsInfo.java”3个文件中的代码“为公众所知悉”。第040号鉴定意见书还认为,“AppletWxPayController.java”“AppletKoulingRedpackMobileController.java”“EmailServiceImpl.java”“HttpUtils.java”4个文件中的部分代码在2018年10月18日之前已被开源软件库公开,但均仅涉及该些文件中的部分代码片段,无法证明该些文件中的源代码整体已被公开,且代码中涉及程序的组织结构、调用关系、执行逻辑等,应将一个源代码文件作为一个整体对待,不应将一个完整代码进行部分切分而判断是否“为公众所知悉”。故本院对第040号鉴定意见书中关于4个文件中的部分代码已被公开的鉴定结论不予采信。
最后,软件源代码涉及到特定的变量名、类名及方法的定义、程序的组织结构、调用关系、执行逻辑等,还包括在特定位置对方法、语句和变量的注释文字等,软件源代码也体现了软件开发人员的代码风格、特定字词的独特表达,故即使为开发相同功能的软件,不同开发者可以设计不同的源代码进行表达,B公司、C公司有关软件功能相同推论出代码相同的主张没有事实依据,本院不予支持。
综合上述情况,鉴于第040号鉴定意见书亦认为涉案其他源代码“不为公众所知悉”,结合双方各自单独委托的第30号鉴定意见书和第040号鉴定意见书的意见,在B公司、C公司未能再提出其他相反证据的情况下,本院认定,本案中A公司主张的涉案962个源代码文件“不为公众所知悉”。
2.关于A公司对主张的涉案962个源代码文件是否采取了相应保密措施。《最高人民法院关于审理侵犯商业秘密民事案件适用法律若干问题的规定》第五条规定,权利人为防止商业秘密泄露,在被诉侵权行为发生以前所采取的合理保密措施,人民法院应当认定为反不正当竞争法第九条第四款所称的相应保密措施。人民法院应当根据商业秘密及其载体的性质、商业秘密的商业价值、保密措施的可识别程度、保密措施与商业秘密的对应程度以及权利人的保密意愿等因素,认定权利人是否采取了相应保密措施。现有证据表明,A公司对内与员工签订了保密协议,约定了员工的保密义务,同时对有客多软件源代码的管理采用VPN统一安全授权、SVN账号密码加密授权,账号密码每人唯一,正常登录VPN后,方能使用SVN账号密码登录;对外,A公司与B公司签订的涉案合同中约定了对包含授权软件源码的U盘进行加密及双方对对方标有“保密”字样的信息进行保密的义务,并在交付给B公司有客多小程序源代码时,使用了加密U盘,故应当认定,A公司已对涉案软件源代码采取了合理保密措施。B公司、C公司主张根据A公司提交的计算机软件著作权登记证,可证明软件发表就已经公开全部技术秘密,但计算机软件著作权登记证登记的客体是软件,计算机软件著作权登记时所登记的源代码并非全部源代码,并不会导致A公司本案中所主张的相关技术信息被公开。B公司、C公司另主张A公司将涉案软件源代码存储于阿里云服务器,但并未进行IP及设备限制,其保密措施不到位;但登录阿里云服务器需要账号密码,将涉案软件源代码存储于阿里云服务器,并不意味着该源代码处于社会公众可任意获得的状态。故B公司、C公司关于涉案技术信息未采取合理保密措施的主张不能成立,本院不予支持。
3.关于A公司主张的涉案962个源代码文件是否具有商业价值。《最高人民法院关于审理侵犯商业秘密民事案件适用法律若干问题的规定》第七条第一款规定,权利人请求保护的信息因不为公众所知悉而具有现实的或者潜在的商业价值的,人民法院经审查可以认定为反不正当竞争法第九条第四款所称的具有商业价值。技术秘密具有价值和使用价值,且用于生产、经营中能给权利人带来经济利益,它既包括现实的经济利益,也包括潜在的竞争优势。本案中有客多软件为A公司开发完成,并为A公司吸引了相当数量的客户、带来了现实的经济利益,B公司也实际向A公司支付了软件许可使用费,故涉案软件源代码显然具有商业价值。
综上所述,A公司在本案中主张的涉案软件源代码不为公众所知悉、具有商业价值并采取了相应保密措施,构成技术秘密。
(二)B公司是否构成侵权
反不正当竞争法第九条第一款第三项规定,经营者不得实施下列侵犯商业秘密的行为:(三)违反约定或者违反权利人有关保守商业秘密的要求,披露、使用或者允许他人使用其所掌握的商业秘密。
本案中B公司主张涉案源代码并非B公司员工披露,理由为第30号鉴定意见书中载明的技术点与涉案合同中载明的技术点不同,可见被泄露的源代码文件与交付给B公司的源代码文件不同,同时《代码比对成果报告》中也显示A公司交付的文件与被泄露的源代码文件不同;即使是B公司员工行为,B公司也不应承担相应的侵权责任。
对此本院认为,首先,B公司、C公司提交的《代码比对成果报告》虽载明Github共享平台上的公开文件包与A公司交付给B公司的文件包有差异,但A公司在本案中并未主张交付给B公司的所有源代码文件均构成技术秘密,仅主张其中的部分源代码文件构成技术秘密,B公司在原审庭审后向法院出具的书面意见中确认,A公司交付给B公司的源代码包中具有A公司主张的965个不为公众所知悉的源代码文件,二审中B公司、C公司推翻其在原审期间的陈述且并未提交足以证明其主张的证据。
其次,基于前述,A公司主张的20个技术点是对源代码功能的概括,仅为了便于鉴定机构对源代码的理解,故仅凭第30号鉴定意见书中载明的技术点与涉案合同中载明的技术点不同,亦不能推翻B公司此前的陈述。
再次,Github共享平台上披露的有客多软件源代码修改了原来的第三方平台的配置参数(该参数为发起微信功能所需密钥,由用户在微信第三方平台私密获取)、目标数据库的访问地址data.db.url参数(该参数为数据库存储路径,修改后的参数显示为在阿里云购买的rds数据库链接地址)及目标redis缓存的访问地址data.db.url参数(该参数为redis缓存储路径,为在阿里云购买的rds的redis缓存连接地址),对该些参数的修改及修改后的信息不为外人所知,同时Github共享平台上披露的源代码中将A公司交付代码中的平台注释和系统平台名称由“有客多小程序”修改为“C微店”,将交付代码中的“默认签名”修改为“浙江B”,将交付代码中的“微俱聚logo”修改为“C微店logo”,且披露的代码中增加了“C科技”的版权信息,亦有C公司内部研发管理系统链接、域名、官网链接、办公地址、支付宝收款账户信息等,将交付代码中的客服电话400-××××-925修改为C官网客服电话400****-1110。B公司辩称A公司一直掌控涉案源代码文件,B公司在部署和更新涉案软件过程中向A公司提供了小程序账号、密码、相应参数,微信开放平台账号、密码,小程序支付账号、密码,及C公司域名、C公司logo、web服务器IP等信息,不能排除涉案软件源代码系由A公司披露于Github共享平台。对此本院认为,涉案软件源代码系A公司开发,公司实际经营活动中也主要通过软件对外授权获取许可费而获利,A公司及其员工缺乏披露该软件以丧失经营获利机会的动机。尤其是,Github共享平台上披露的有客多软件源代码不仅包含大量诸如C公司域名、官网链接、办公地址、客服电话等外部人员可获知的信息,还包含了前述仅由B公司自身掌控的参数信息,B公司未能就此作出合理解释。而C公司作为B公司的唯一股东,有通过B公司实际接触涉案源代码的可能。故结合本案现有证据,根据优势证据规则和日常生活经验法则,本院确认系由B公司或C公司的员工实际披露了涉案软件源代码。B公司、C公司有关涉案软件源代码由A公司员工或其他被许可使用有客多软件的公司的员工披露的主张,并无任何事实依据,也不符合常理,本院不予支持。
最后,B公司在与A公司签订的涉案合同中,明确约定了保密条款,B公司负有保密义务,理应采取相应足够的保密措施。即便涉案软件源代码系B公司员工违背B公司意愿而对外披露,因B公司未采取相应足够的保密措施,亦应对披露涉案技术秘密的行为造成的侵权结果承担责任。
进一步而言,A公司既可以依据双方涉案合同的约定,向B公司主张违约责任,也可选择依据侵权责任的相关法律规定,要求B公司承担侵害技术秘密的侵权责任,B公司有关A公司混淆合同纠纷与侵权纠纷的主张不能成立,本院亦不予支持。
(三)侵权责任应当如何承担
反不正当竞争法第十七条第一款规定,经营者违反本法规定,给他人造成损害的,应当依法承担民事责任。第三款规定,因不正当竞争行为受到损害的经营者的赔偿数额,按照其因被侵权所受到的实际损失确定;实际损失难以计算的,按照侵权人因侵权所获得的利益确定。赔偿数额还应当包括经营者为制止侵权行为所支付的合理开支。第四款规定,经营者违反本法第六条、第九条规定,权利人因被侵权所受到的实际损失、侵权人因侵权所获得的利益难以确定的,由人民法院根据侵权行为的情节判决给予权利人三百万元以下的赔偿。
本案中,A公司诉请B公司、C公司承担消除影响和赔偿损失的侵权责任。关于消除影响,因未有证据证明披露涉案技术秘密的侵权行为给A公司造成了必须消除的不良影响,故对该项诉请本院不予支持。B公司披露涉案技术秘密的行为,必然给A公司造成损害,故应当承担赔偿损失的责任。
关于赔偿金额,A公司主张根据价值评估鉴定,涉案源代码的商业价值在2018年12月31日为1012万元,主张以涉案源代码的商业价值为基础认定A公司损失数额,并主张本案应适用惩罚性赔偿,以涉案技术秘密的商业价值1012万元为惩罚性赔偿的损失基数,乘以4.94倍数计算最终的赔偿金额。
对此本院认为,因本案被诉侵权行为发生于2017年反不正当竞争法施行期间,2017年反不正当竞争法未规定惩罚性赔偿,故本案不适用惩罚性赔偿。
《最高人民法院关于审理侵犯商业秘密民事案件适用法律若干问题的规定》第十九条规定,因侵权行为导致商业秘密为公众所知悉的,人民法院依法确定赔偿数额时,可以考虑商业秘密的商业价值。人民法院认定前款所称的商业价值,应当考虑研究开发成本、实施该项商业秘密的收益、可得利益、可保持竞争优势的时间等因素。本案中因涉案技术秘密已在Github网站上被公开,故可以涉案技术秘密的商业价值作为A公司损失赔偿的依据。但经审查,基于以下理由,本院对A公司单方委托评估机构所作的评估结论不予认可:第一,价值评估鉴定记载,2019年—2024年涉案技术秘密分成率均为23.77%,并未有因涉案技术秘密价值衰减导致分成率逐步降低,理由是涉案有客多软件已为成熟产品,软件代码后续更新迭代仅是常规升级维护,并已在费用部分进行了相应调整;同时该价值评估鉴定中记载,有客多软件V1.0的开发期间为2017年10月16日-2018年1月31日,在此基础上,有客多软件V2.0于2018年8月27日完成开发;涉案技术秘密2019年、2020年研发费用均为635.58万元,2021年研发费用为476.68万元。而根据A公司原审提交的深圳永信瑞和会计师事务所出具的《审计报告》,涉案有客多软件2018年1月1日至2018年10月31日项目投入金额为3595635.74元(其中V1.0版本的研发投入为737657.68元,V2.0版本的研发投入为2857978.06元);据前所述,A公司主张涉案有客多软件在2018年技术业已成熟、2018年以后仅是对技术的常规更新迭代,根据常理推知,基于对技术的常规更新迭代需要的研发费用一般不应高于软件完成开发所需的研发费用,但涉案价值评估鉴定中2019年—2021年研发费用均远高于2018年的研发费用,明显不合常理;同时还需考虑到本案中A公司主张构成技术秘密的仅为有客多软件中部分代码,故针对涉案技术秘密的研发费用显然应低于整个有客多软件的研发费用。第二,涉案有客多软件主要是为企业客户快速搭建微信小程序提供便捷工具,其价值随用户对微信小程序的开发需求而波动,但互联网新技术、新应用的需求均有其爆发期、衰减期,且根据B公司、C公司提交的证据可见,在2018年前后均有多家公司从事微信小程序的研发业务,且微信平台于2020年提供官方的微信小程序开发渠道,必然会对第三方微信小程序开发业务产生巨大影响,涉案价值评估鉴定中2020年预估销售收入与2019年预估销售收入相同,有违市场规律。综上,价值评估鉴定多项数据难以令人信服,不应采信;A公司主张以价值评估鉴定认定的商业价值作为赔偿依据的主张,本院不予支持。
鉴定机构经评估作出的商业价值鉴定仅是确定知识产权商业价值的一种方式。在本案经审查不宜直接依据价值评估鉴定意见认定涉案技术秘密商业价值的情况下,依据本案现有证据情况,可以综合考虑涉案技术秘密的研究开发成本、实施该项技术秘密的收益、可得利益、可保持竞争优势的时间等因素酌情确定涉案技术秘密的商业价值,进而作为确定赔偿数额的依据之一。
如前已述,本案中,A公司开发涉案软件的研发费用至少包括2017年至2018年的研发费用,依据审计报告,仅2018年1月至10月末的研发费用为近360万元。A公司以对外许可使用方式获取涉案软件的经营利润,涉案软件在2017年的销售收入为51万余元,2018年的销售收入为1140万余元,上述销售收入的增长状况与涉案软件于2017年开始研发、2018年1月完成V1.0版本研发、2018年8月完成V2.0版本研发的过程相契合。涉案软件部分源代码在Github网站上被披露后,2019年涉案软件销售收入下滑为530万余元,其中不排除有商业运营以及技术更迭、同类竞争等因素带来的影响,但软件源代码的公开披露客观上势必会导致该软件商业价值的贬损,给权利人造成较为严重的损失。同时,在市场上存在多个同类软件,尤其是2020年微信平台提供官方微信小程序开发渠道后,涉案软件保持竞争优势的时间以及可期待的许可收益难以避免会受到一定影响。综合上述因素,本院认定涉案技术秘密的商业价值应高于2017年反不正当竞争法规定的法定赔偿额最高限300万元,故对本案不宜适用法定赔偿方式确定赔偿数额,而应综合案件具体情况予以裁量。
关于本案合理开支。经审查,A公司在原审庭审中变更诉讼请求,将合理开支由76万余元变更为95万元,其中律师费50万元,其他合理支出40万元,其增加的合理开支为评估鉴定费用15万,原审判决未列明A公司修改后的诉讼请求,确有不当。本院综合考虑本案的具体情节、A公司的维权难度以及对其诉讼请求的支持比例等因素,酌情予以支持。
对于具体赔偿金额和合理开支数额的确定,综合考虑本案的被诉侵权行为的性质、情节,涉案技术秘密的商业价值、A公司的维权合理开支等因素,本院认为原审判决适用法定赔偿方式酌定B公司赔偿经济损失及合理费用共计500万元,适用法律虽确有错误,但判赔金额较为合理,可予维持。本院进一步分别酌定B公司应承担的赔偿责任为赔偿经济损失450万元、合理开支50万元。
(四)C公司是否应承担连带责任
《中华人民共和国公司法》(2018年修正)第六十三条规定,一人有限责任公司的股东不能证明公司财产独立于股东自己的财产的,应当对公司债务承担连带责任。
本案中被诉侵权行为发生时,C公司仍是B公司的唯一股东,但C公司未提交二者财务独立的证据,不能证明B公司的财产独立于自己的财产,依法应对B公司的债务承担连带责任。
综上,二审法院判决如下:驳回上诉,维持原裁定。
三、法律依据
《中华人民共和国反不正当竞争法》
四、法律知识总结
商业秘密是指不为公众所知悉、具有商业价值并经权利人采取相应保密措施的技术信息和经营信息等商业信息。本案中,涉案源代码符合商业秘密的三性,即秘密性、价值性、保密性,构成商业秘密,依法受到法律保护。
本案属于侵害商业秘密疑难复杂、前沿案件。本案原告将其研发的源代码授权给被告使用,并约定被告承担保密义务。但被告违反保密承诺,将原告授权使用的源代码上传到Github全球开源网站共享平台上,使原告的源代码成为向全球公开的开源代码,任何人均可以对该源代码进行复制、使用、修改、传播,被告行为构成对原告源代码商业秘密权益的侵犯。本案依据我国反不正当竞争法顶格酌定判决两被告连带赔偿原告经济损失及维权合理费用500万元,体现了司法保护知识产权的决心和力度。同时,本案判决既制止了被告的商业秘密侵权行为,还有效预防了软件开源社区因发布侵权源代码而引发的后续著作权侵权纠纷。
注释:参见(2021)最高法知民终2298号民事判决书。
商业秘密案例分享(五十三)
作者:君泽君商法札记来源:君泽君商法札记

A公司、B公司与C公司侵害技术秘密纠纷案 一、案情简介 2018年10月18日,A公司与B公司签订《源代码使用许可合同》,约定:A公司授权B公司非专有不可转让使用“有客多小程序源码”,许可使用期限为合