【百一案评】被许可方非法披露源代码构成不正当竞争
反不正当竞争法第九条第一款第三项规定,经营者不得违反约定或者违反权利人有关保守商业秘密的要求,披露、使用或者允许他人使用其所掌握的商业秘密。本案根据优势证据规则和日常生活经验法则,确认了被告违反保密约定,披露了涉案软件源代码,构成不正当竞争。
案号:(2021)最高法知民终2298号
案情简介:
深圳花儿绽放网络科技股份有限公司(以下简称花儿绽放公司)主张其系有客多软件中20个技术点对应的965个源代码文件的权利人。花儿绽放公司曾与浙江盘兴数智科技股份有限公司(以下简称盘兴公司)签订许可合同,并向盘兴公司交付了加密的有客多小程序源代码(以下简称交付代码)及相关文件。
后,上述文件被用户“luxin212121”发布到Github公共存储库,后被Github平台多个用户复制到其公共存储库,造成商业秘密被披露。经比对披露代码与交付代码,花儿绽放公司发现披露代码中增加了多个指向盘兴公司、浙江盘石信息技术股份有限公司(以下简称盘石公司)的信息,故花儿绽放公司认为盘兴公司、盘石公司及其员工非法披露了其公司的技术秘密,因此应承担侵权责任,故诉至法院。
争议焦点及法院观点:
一、花儿绽放公司主张的商业秘密是否成立
反不正当竞争法第九条第三款规定,本法所称的商业秘密,是指不为公众所知悉、具有商业价值并经权利人采取相应保密措施的技术信息和经营信息。
1、花儿绽放公司主张的涉案965个源代码文件是否“不为公众所知悉”。
《最高人民法院关于审理侵犯商业秘密民事案件适用法律若干问题的规定》第三条规定,权利人请求保护的信息在被诉侵权行为发生时不为所属领域的相关人员普遍知悉和容易获得的,人民法院应当认定为反不正当竞争法第九条第四款所称的不为公众所知悉。本案中,花儿绽放公司提交了第30号鉴定意见书以证明涉案965个源代码文件“不为公众所知悉”。盘兴公司、盘石公司认为该鉴定意见书的鉴定结论不应采信,并申请法院组织对涉案源代码是否“不为公众所知悉”进行重新鉴定。
法院认为,首先,《最高人民法院关于民事诉讼证据的若干规定》(2019修正)第四十条第一款规定,当事人申请重新鉴定,存在下列情形之一的,人民法院应当准许:(一)鉴定人不具备相应资格的;(二)鉴定程序严重违法的;(三)鉴定意见明显依据不足的;(四)鉴定意见不能作为证据使用的其他情形。第30号鉴定意见书从涉案源代码文件中提取了类名、方法名、变量名、表达式等作为关键词在百度、谷歌两个知名搜索网站及Github、searchcode两个软件源代码共享网站进行检索,其检索范围为知名、主流的搜索引擎及软件源代码共享网站,是所属软件领域的相关公众最常使用、访问的网站,故第30号鉴定意见书的检索方法、检索范围并无明显不当,且盘兴公司、盘石公司已经单方委托了鉴定机构对涉案技术信息是否具有非公知性进行了鉴定,故对其所提由法院组织重新鉴定的申请,不予支持。
其次,根据盘兴公司、盘石公司委托鉴定的第040号鉴定意见书的鉴定结论,其中3个文件中的代码由且仅由成员变量定义及成员变量对应的geter、seter等方法组成,其中成员变量属于常见命名,该种定义成员变量并生成geXXX、setXXX等方法的形式是Java编程语言推荐的标准写法,属于所述领域的行业惯例。花儿绽放公司针对第040号鉴定意见的上述结论,未合理说明该些变量命名方式及对应生成方法的独特性,故以上3个文件中的代码“为公众所知悉”。
第040号鉴定意见书还认为,其中4个文件中的部分代码在2018年10月18日之前已被开源软件库公开,但均仅涉及该些文件中的部分代码片段,无法证明该些文件中的源代码整体已被公开,且代码中涉及程序的组织结构、调用关系、执行逻辑等,应将一个源代码文件作为一个整体对待,不应将一个完整代码进行部分切分而判断是否“为公众所知悉”。故针对上述4个文件中的部分代码已被公开的鉴定结论不予采信。
最后,软件源代码涉及到特定的变量名、类名及方法的定义、程序的组织结构、调用关系、执行逻辑等,还包括在特定位置对方法、语句和变量的注释文字等,软件源代码也体现了软件开发人员的代码风格、特定字词的独特表达,故即使为开发相同功能的软件,不同开发者可以设计不同的源代码进行表达,盘兴公司、盘石公司有关软件功能相同推论出代码相同的主张没有事实依据,法院不予支持。
故,法院最终认定,花儿绽放公司主张的涉案962个源代码文件“不为公众所知悉”。
2、花儿绽放公司对主张的涉案962个源代码文件是否采取了相应保密措施。
《最高人民法院关于审理侵犯商业秘密民事案件适用法律若干问题的规定》第五条规定,权利人为防止商业秘密泄露,在被诉侵权行为发生以前所采取的合理保密措施,人民法院应当认定为反不正当竞争法第九条第四款所称的相应保密措施。人民法院应当根据商业秘密及其载体的性质、商业秘密的商业价值、保密措施的可识别程度、保密措施与商业秘密的对应程度以及权利人的保密意愿等因素,认定权利人是否采取了相应保密措施。
现有证据表明,花儿绽放公司对内与员工签订了保密协议,约定了员工的保密义务,同时对有客多软件源代码的管理采用VPN统一安全授权、SVN账号密码加密授权,账号密码每人唯一,正常登录VPN后,方能使用SVN账号密码登录;对外,花儿绽放公司与盘兴公司签订的涉案合同中约定了对包含授权软件源码的U盘进行加密及双方对对方标有“保密”字样的信息进行保密的义务,并在交付给盘兴公司有客多小程序源代码时,使用了加密U盘,故应当认定,花儿绽放公司已对涉案软件源代码采取了合理保密措施。
3、花儿绽放公司主张的涉案962个源代码文件是否具有商业价值。
《最高人民法院关于审理侵犯商业秘密民事案件适用法律若干问题的规定》第七条第一款规定,权利人请求保护的信息因不为公众所知悉而具有现实的或者潜在的商业价值的,人民法院经审查可以认定为反不正当竞争法第九条第四款所称的具有商业价值。技术秘密具有价值和使用价值,且用于生产、经营中能给权利人带来经济利益,它既包括现实的经济利益,也包括潜在的竞争优势。
本案中有客多软件为花儿绽放公司开发完成,并为花儿绽放公司吸引了相当数量的客户、带来了现实的经济利益,盘兴公司也实际向花儿绽放公司支付了软件许可使用费,故涉案软件源代码显然具有商业价值。
综上所述,花儿绽放公司在本案中主张的涉案软件源代码不为公众所知悉、具有商业价值并采取了相应保密措施,构成技术秘密。
二、盘兴公司是否构成侵权
反不正当竞争法第九条第一款第三项规定,经营者不得实施下列侵犯商业秘密的行为:(三)违反约定或者违反权利人有关保守商业秘密的要求,披露、使用或者允许他人使用其所掌握的商业秘密。
首先,盘兴公司、盘石公司提交的《代码比对成果报告》虽载明Github共享平台上的公开文件包与花儿绽放公司交付给盘兴公司的文件包有差异,但花儿绽放公司在本案中并未主张交付给盘兴公司的所有源代码文件均构成技术秘密,仅主张其中的部分源代码文件构成技术秘密,盘兴公司在原审庭审后向法院出具的书面意见中确认,花儿绽放公司交付给盘兴公司的源代码包中具有花儿绽放公司主张的965个不为公众所知悉的源代码文件,二审中盘兴公司、盘石公司推翻其在原审期间的陈述且并未提交足以证明其主张的证据。仅凭第30号鉴定意见书中载明的技术点与涉案合同中载明的技术点不同,不能推翻盘兴公司此前的陈述。
其次,涉案软件源代码系花儿绽放公司开发,公司实际经营活动中也主要通过软件对外授权获取许可费而获利,花儿绽放公司及其员工缺乏披露该软件以丧失经营获利机会的动机。尤其是,Github共享平台上披露的有客多软件源代码不仅包含大量诸如盘石公司域名、官网链接、办公地址、客服电话等外部人员可获知的信息,还包含了仅由盘兴公司自身掌控的参数信息,盘兴公司未能就此作出合理解释。而盘石公司作为盘兴公司的唯一股东,有通过盘兴公司实际接触涉案源代码的可能。故结合本案现有证据,根据优势证据规则和日常生活经验法则,法院确认系由盘兴公司或盘石公司的员工实际披露了涉案软件源代码。
最后,盘兴公司在与花儿绽放公司签订的涉案合同中,明确约定了保密条款,盘兴公司负有保密义务,理应采取相应足够的保密措施。即便涉案软件源代码系盘兴公司员工违背盘兴公司意愿而对外披露,因盘兴公司未采取相应足够的保密措施,亦应对披露涉案技术秘密的行为造成的侵权结果承担责任。