软件代码:涉嫌侵犯商业秘密罪?谈谈GPL等开源许可证
程序代码:涉嫌侵犯商业秘密罪?谈谈无罪辩护思路之反向工程
作者:何国铭律师 (专注于商标犯罪与商业秘密犯罪案件控告及辩护)
关键词:软件代码 商业秘密 侵犯商业秘密罪 开源许可证 GPL BSD MPL
众所周知,商业秘密的其中一个构成要件是该商业信息具有非公知性,假定被害人所主张的秘点是已为公众所知悉的,则不能主张他人侵犯了其商业秘密。在涉软件代码的侵犯商业秘密罪案件中,若被害人所主张构成秘点是某个商业软件的代码,即使被害人称该软件闭源,但基于该软件在开发过程中,违反开源许可证协议,此时是否还能够主张部分源代码为商业秘密?今天,我们谈谈在涉软件代码类的侵犯商业秘密罪案件中,如何看待开源许可证对案件的影响。
若对软件不太熟悉,则对GPL协议等开源许可证也应是不太了解的。其实,早在2021年,抖音海外版TikTok的桌面平台直播软件TikTok Live Studio,因使用开源软件OBS的源代码,却未遵守GPL协议,在OBS项目组没有对抖音进行起诉维权的情况下,抖音在该直播软件上线不久后,将桌面平台直播软件TikTok Live Studio下架。该事件启发了我国软件行业对开源许可证的广泛讨论与深度思考。
溯源开源许可证协议,就不得不提起开源软件的鼻祖理查德·斯托曼,美国麻省理工大学的理查德·斯托曼在20世纪80年代创建了自由软件基金会(Free Software Foundation,FSF),呼吁授权人遵循某种开源许可证,将源代码在不同程度上向公众公开,并允许用户在许可证约定的条件下自由使用、修改和分发计算机软件。由此得到许多软件程序员的响应,在全世界掀起自由软件运动。不得不说,这种倡导“自由共享、开放协作”的精神为软件行业的发展提供了良好的生态环境,同时也推动着人工智能、大数据、区块链等领域的进步。
开源软件许可证的验证需要经过开放源代码倡议组织、法律专业学者以及BBS论坛这三个步骤才能被认证为开源软件许可证。开源协议发展至今,已产生出许许多多、各种各样的许可证。目前,形成了主要七大类共六十三种不同的软件许可证,根据开源许可证限制条件的强弱,可以将其分为强copyleft许可证、弱copyleft许可证以及宽松型许可证。比较常见的有GPL许可证、MPL许可证以及BSD许可证。
以GPL协议为例,GPL协议主要有以下四项权利,一是不管是为了任何目的而运行该程序;二是用户可以对自由获取的程序进行处理,可以研究程序的运行方式,或者是为了私人目的而修改该程序;三是具有自由散发该复制件的权利;四是用户可以对该程序进行任意的修改,并将修改后的程序向公众继续发放。当然,权利与义务是对等的,GPL协议规定了三项基本义务,一是被许可人必须在修改的文档中列明修改的这一开源软件的具体修改日期以及修改的内容;二是被许可人发布或出版的作品(无论是整体还是衍生的作品)允许第三方作为整体按许可证条款免费使用;三是必须显示适当的版权声明以及免担保条款。
就GPL协议而言,其最大的特点是具有“传染性”,这也是影响某个软件代码是否能够成为商业秘密的主要因素。因为根据GPL许可证的宗旨,其是要将源代码转让给使用者免费使用和修改的,故对被许可人修改后的产品有一定的限制,其要求被许可人对修改后的代码亦要继续开源,向社会公众继续开放。所以,只要在一个软件中使用了GPL协议下的源代码,那么这个软件的衍生作品也必须采用GPL协议,做到开源且免费的。此外,受到GPL保护的软件所有部件亦要必须遵守GPL,换言之,如果用户在受GPL许可证下的软件中添加专有软件,那么新组合的软件同样也适用GPL协议。所以,应当来说,对于意图用作商业用途的软件,或者是对源代码具有保密需要的,就不适合使用GPL许可证了。
如上所述,GPL协议中的每一个代码都是在GPL许可证下进行的,但假定是在MPL许可证下,开源代码可以与私有的源代码进行混合。但是,MPL许可证下的代码不允许存在受专利保护的代码,唯一的许可方式就是让专利权人书面同意免费向社会公众允许使用源代码。
若是在BSD许可证下,被许可人使用开源代码需准许以下三个条件,一是BSD许可证必须出现在包含BSD代码的程序中;二是如果再发布的只是二进制类库/软件,则需要在类库/软件中的文档或版权声明中包含原来代码中的BSD协议;三是源代码的作者名字及原来产品的名字不能出现在市场推广上。从一定程度上来说,如果想要将开源软件进行修改,在改进后,有意将自己的源代码以商业秘密来保护的,那么可以选择适用BSD许可证。
上述的GPL、MPL及BSD等开源许可证绝大多数是根据美国法律起草的,那么,这在我国是否具有法律效力呢?放在侵犯商业秘密罪案件中,这一点尤为重要。
当前,我国法院在法律文书上,并未直截了当地肯定开源许可证的法律效力,但总体上对开源许可证的法律效力均采用默认的态度。以北京市高级人民法院二审的数字天堂(北京)网络技术有限公司与柚子(北京)科技有限公司一案为例,该案是我国首例涉及GPL开源许可协议的诉讼案件,即使在该案中,法院并未明确GPL许可证的法律效力,但在判决的论述中已默认了GPL许可证具有法律约束力。对此,在司法界及理论界已达成共识,该案亦为开源许可协议在我国司法程序中的效力认定起到非常重要的借鉴意义。
回归到本文首段所提出的问题,假定被害人应遵守GPL协议,应将其开发的软件代码开源,但其在违反协议之余,又主张其开发软件中的部分源代码构成商业秘密。此时,这种诉求是否应得到支持。
这涉及到商业秘密的合法性,以及秘点的权属问题。所谓的被害人本身是使用了他人的开源代码而开发涉诉软件,根据GPL协议,开发的软件中的其他部分源代码(衍生作品)亦是应当开源的。选择闭源,将之作为商业软件发售,且提出该软件源代码为商业秘密,这种本身是违反了GPL协议,无疑是在拿到好处后,既不想再付出,又想再获益。要知,开源许可证是具有法律效力的,被害人向司法机关提出保护其本应开源的代码之行为是不正当的,这本身不应具有合法性的根基。从法律伦理上而言,让法律去保护一个违约行为,这显然是违背了法之初衷。当然,若该衍生软件中的包含的算法、架构及设计思路等则可提取出来,也许可以作为技术秘密予以保护。
总的来说,企业在下载使用开源软件时,应需注意所附带的开源许可证,以全球最大的开源软件托管平台GitHub举例,用户在预览下载开源软件源代码页面时,在预览页面即可知晓该软件包含有“LICENSE”文件,当用户将该软件打包下载后,在相关根目录文件中点击“LICENSE”文件可知晓该开源软件所具体适用的开源许可证。因此,对于企业来说,选择更适合自己商业需求的许可证,这对往后是否要将软件源代码作为商业秘密予以保护十分关键。