众所周知,互联网公司倾尽心血研发的计算机软件(计算机软件是指计算机程序及其有关文档。尽管不符合法律定义,但为方便读者理解,以下笔者将计算机软件统称为“源代码”)是互联网企业的核心竞争力,“源代码”一旦泄露或将对企业造成毁灭性地打击。近一段时间来,笔者陆续处理了几起互联网公司“源代码”泄露的案件,在处理案件的过程中对企业的“源代码”保护有了更深刻的理解。接下来,笔者将对“源代码”保护的思考写成系列文章,分别为:“源代码”的商业秘密属性篇、泄露风险篇、侵权篇及合规设计篇,系列文章将陆续在公众号推送。
本篇为系列文章第四篇:“源代码”研发存在对外侵权的法律风险。
在前几篇文章中,笔者主要介绍互联网企业自研的“源代码”性质、泄露风险及其维权措施,给人感觉互联网企业的“源代码”似乎只有被侵权的风险,而无对外侵权的可能性。其实不然,互联网企业在研发“源代码”的过程中,也存在着对外侵权的风险。这种风险来源于互联网企业的程序员所使用的代码如果是开源代码,需要受到开源代码所附带的开源许可证的约束。有些开源许可证要求使用该开源代码进行二次开源的,二次开源的代码需要对外公开,而不得闭源。一旦闭源,将违反开源许可证的规定,存在侵权的潜在风险。
一、开源运动的来龙去脉
在讲解“源代码”为何存在对外侵权的潜在风险时,笔者认为有必要向读者介绍下开源运动的来龙去脉,以便让读者对侵权风险有更具体的认识。
开源运动最早起源于20世纪50年代60年代的美国,那时候计算机限于军用和学校研究。1965年贝尔实验室(隶属于AT&T公司)合作开发出Unix操作系统,由于AT&T公司受限于反垄断的压力,于1958年和美国司法部签订和解协议,承诺AT&T公司不进入计算机领域,于是AT&T公司将Unix操作系统以近乎免费的形式授权各高校使用。
20世纪70年代80年代,家用电脑开始普及,计算机市场逐渐爆发,软件也被列入著作权登记的范畴。1982年,AT&T公司被拆分为8家公司,意味着前期与商务部签署的和解协议不再生效,AT&T公司顺势进入计算机行业,并要求各高校今后须按期付费才能使用Unix操作系统。
AT&T公司的上述行为被认为违反了“黑客精神”(自由开放的精神),以理查德·马修·斯托曼(Richard Mattew Stallman)的先驱们,开启了开源软件运动。他们以重现软件界合作互助的团结精神为名,在net.unix-wizards新闻组发表了著名的GNU宣言,目标是创建一套完全自由的操作系统,(GNU是GNU`s not unix的缩写)。该套操作系统要遵循如下几个原则:第一个是使用软件的自由;第二个是开源软件可根据使用者的需要进行修改;第三个是可重新分发拷贝,与他人分享的自由;第四个改进程序,为使他人受益而散发软件的自由。
在理查德·马修·斯托曼(Richard Mattew Stallman)等人的共同努力下,Linux操作系统应运而生,并对外免费开源使用。受开源运动的影响,目前有不少软件都做了开源,但这些软件在开源的同时,也规定程序员如果要使用这些开源软件必须遵照该开源软件所附的开源许可证的要求,例如修改的地方需要放置修改说明;新增代码需要再次开源等。
二、开源许可证的类型
根据上文所述,当前有不少开源软件在允许他人使用时要求他人遵循开源许可证上的要求。经研究,笔者总结目前市面上几种开源许可证的类型,并对此作简单的分析。
实际上开源许可证是由开放源代码促进会(open source Initiative,简称OSI)的组织颁发的,目前市面上经过该组织认证的许可证有83种,但80%的开源软件使用的许可证不超过10种,开源许可证的类型主要就是上图所示的这六种。
从上图可以看出,MIT许可证应该是六种许可证类型中最宽松的许可证了。实际上,MIT许可证也是市面上最受欢迎的许可证,有接近一般的开源软件都采用MIT许可证。使用MIT许可证的开源软件允许闭源,只需要满足两个条件:第一、必须明确指出该软件的版权人;第二、必须包含MIT的License原文。
BSD许可证与MIT唯一的区别是它不能使用原始创作者及贡献者的信息做二次宣传,比如我们使用了谷歌BSD许可的开源软件改造之后做成自己的软件,不能使用谷歌及二次开源者进行促销宣传。
Apache许可证则允许永久授权他人版权和专利权,但商标权仍归属Apache许可证所有人。另外,根据上图所示,Apache许可证要求程序员在每次修改及每个修改处都标注清楚修改人,修改内容和修改时间。
GPL许可证应该算是上述许可证中最严格的一种了。GPL许可证要求使用该软件的必须再次开源,并且二次开源的软件必须再使用GPL许可证,以保持开源的持续性和稳定性。此类典型的软件即是上文提及的Linux,迫于GPL的规定,Linux的所有变种,比如Redhat,Centos,Ubuntu等都必须免费开源。
LGPL许可证跟GPL许可证类似,但该许可证属于弱传染性的许可证,它规定通过类库引用的方式使用开源软件,则我们的软件可以不用开源,这样的话商业软件可以使用LGPL软件,且不用开源自己的代码。[1]Mozilla许可证和LGPL许可证类似,也是属于弱传染性的许可证。
三、开源许可证的法律效力
根据前文的分析,我们知道市面上开源软件大抵都附有开源许可证的要求,且不同的开源许可证有不同的限制要求。实际上,该开源许可证类似于我们第一次注册淘宝账号时所附带的以弹窗形式或者链接形式提示用户注意阅读的注册协议。对于普通人来说,多数人都不会阅读冗长乏味的电子协议,况且大部分的开源许可证都是英文协议,更加深了程序员阅读协议的障碍。那么,该类开源许可证是否具有法律上的拘束力呢?实际上开源许可证在美国已经得到了法院的判决支持。
2008年Bob Jacobsen V. Matt Katzer 案件中[2],鲍勃·雅各布森(Bob Jacobsen )和其团队开发了⼀个名为JMRI (Java Modell RailroadInterface) 的模型⽕车控制软件,并把它放在了著名的开源软件⽹站Source Forge 上供公众免费下载。JMRI使用了Artistic 开源许可协议。该许可证允许他⼈自由的复制,分发和修改软件,但必须注明原作者的名字并说明源代码来源,将所开发的新版本软件放在指定的开源⽹站上供公众下载,以及在软件包中说明该版本软件与雅各布森开发的JMRI标准版之间的区别等等。之后,该项目的部分源代码被马特·卡泽(Matt Katzer )与其公司KAMIND并⼊了其开发的产品“Decoder Commander”中,但卡泽和KAMIND并没有遵循Artistic 许可证的条款。基于这些理由,雅各布森于2006年向旧⾦⼭联邦法院提起了诉讼,控告卡泽与KAMIND公司侵犯了其著作权。此外,他还向法院提出了临时禁令的申请,要求法院下令禁⽌卡泽与KAMIND继续发布、销售侵害著作权的产品。
法院认为,该案的核⼼问题在于卡泽和KAMIND违反的条款究竟是许可的条件(condition),还是合同上的契约(covenant)。法院发现,Artistic许可所使用的表述⽅式清楚地表明了其条款构成复制,修改和发布该软件的条件(如使用“provided that ”等)。同时,这些条件对于使版权所有者能够保留从下游用户的作品中获益的能⼒⾄关重要(通过要求修改或分发该软件的用户保留对源⽂件的引用,其他用户就可以从“下游”的发布中了解到“上游”项目,进⽽参与到JMRI的改良⼯作中)。虽然许可⼈仅仅是要求被许可⼈遵循Artictic许可的条款(包括附上版权声明等),⽽不是向被许可⼈收取许可使用费,这种⽅式有权得到同样的法律认可。因此,在没有版权声明和未标注对原始⽂件的修改的情况下修改和分发受版权保护的材料的⾏为超出了Artistic许可的范围,因此可能构成侵犯版权。
实际上,开源许可证的法律效力不仅在美国得到了法院的认可,中国“柚子(北京)移动技术有限公司等与数字天堂(北京)网络技术有限公司侵犯著作权纠纷案”中,法院也侧面认可了开源许可证GPL协议的法律效力:“根据GPL协议的相关规定,GPL协议的许可客体是在GPL协议许可下批准的受版权保护的程序以及基于该程序的衍生产品或修订版本。对于原告涉案三个插件而言,在其所处文件夹中并无GPL开源协议文件,而HBuilder软件的根目录下亦不存在GPL开源协议文件的情况下,尽管HBuilder软件其他文件夹中包含GPL开源协议文件,但该协议对于涉案三个插件并无拘束力,据此,涉案三个插件并不属于该协议中所指应被开源的衍生产品或修订版本,二被告认为原告软件为开源软件的相关抗辩理由不能成立。”
四、总结
综上所述,互联网企业的程序员所使用的代码如果是开源代码,需要受到开源代码所附带的开源许可证的约束。市面上最常见的开源许可证主要有MIT许可证、BSD许可证、Apache许可证、GPL许可证、Mozilla许可证和LGPL许可证,不同的许可证有不同的约束要求,且开源许可证的法律效力已被美国法院正面认可,中国法院也从侧面认可了开源许可证的法律效力。因此,如果互联网企业的程序员使用了GPL许可证、Mozilla许可证或LGPL许可证进行二次开源,开源后选择闭源并采取保密措施进行保护,则违反了开源许可证的要求,有侵权的潜在风险。
注释:
[1] 参见《漫谈开源许可证》一文,访问时间:2020年1月3日:
https://mp.weixin.qq.com/s/rZ5BMvot8hFJTrRYmvhTFQ。
[2] 参见顾紫翚:《影响互联⽹发展的 20 个⼤案》