近日,禅道创始人王春生在开源中国发布的一篇文章引起了众多同行的围观,原因是他分享了一个开源协议在中国面临的 bug:开源软件许可协议通常会表明作者不对用户使用该开源软件所造成的任何问题负责。但是!这种条款,在中国,是违法的 ——
网络产品、服务应当符合相关国家标准的强制性要求。网络产品、服务的提供者不得设置恶意程序;发现其网络产品、服务存在安全缺陷、漏洞等风险时,应当立即采取补救措施,按照规定及时告知用户并向有关主管部门报告。
网络产品、服务的提供者应当为其产品、服务持续提供安全维护;在规定或者当事人约定的期限内,不得终止提供安全维护。
网络产品、服务具有收集用户信息功能的,其提供者应当向用户明示并取得同意;涉及用户个人信息的,还应当遵守本法和有关法律、行政法规关于个人信息保护的规定。
违反本法第二十二条第一款、第二款和第四十八条第一款规定,有下列行为之一的,由有关主管部门责令改正,给予警告;拒不改正或者导致危害网络安全等后果的,处五万元以上五十万元以下罚款,对直接负责的主管人员处一万元以上十万元以下罚款:
(一)设置恶意程序的;
(二)对其产品、服务存在的安全缺陷、漏洞等风险未立即采取补救措施,或者未按照规定及时告知用户并向有关主管部门报告的;
(三)擅自终止为其产品、服务提供安全维护的。
也就是说,不管你写的这个是不是开源软件,只要你提供给别人用了,那你就得负责到底。
这无疑是跟我们熟悉的开源协议相违背了,也跟我们习惯的开源规则相抵触:
作为开源软件,我本身就没收你钱了,开源出来纯属做公益,怎么你还要我给你免费搞售后啊?那岂不是让我打白工吗?
这样的条款,让人还敢参与开源吗?
对于这样的担忧,开源中国特地邀请了软件行业的专业律师邓超,来听听他的分享和解读~
Q:《网络安全法》第二十二条规定是出于怎样的考量?
邓超:在我国,建设、运营和使用网络,都要受到网络安全法的约束。小到普通人的上网安全,大到国家的信息安全,都是网络安全法的维护目标。这就要求我们的网络产品和网络服务、各种程序,都不能有安全漏洞。
对于开源软件的话,一般它都会有一些免责条款,声明如果软件出了问题作者会免责之类的。但是,它这个免责条款,是平等主体之间的免责条款。比如说开源软件的提供者和开源软件的使用者,他们是平等的主体,所以在民事意义上,他是免责的。但是网络安全法,它瞄准的不是平等主体之间的责任,它是站在国家层面、政府层面,对所有的网络产品 / 服务运营商提出的要求,这个跟开源协议的免责条款,并不冲突。
举个例子,假设现在有个开源软件存在漏洞,把 100 个用户的信息泄露了。这时候由于免责条款,你用户不能按照这个开源许可证,来追究我的责任,不能起诉我让我赔钱。但是没有民法的责任,不代表没有行政法、甚至是刑法的责任。你把用户的信息泄露了,那国家肯定是要处罚你的,罚款或者督促整改,或者把你关停,都有可能。所以这两者之间并不矛盾。
在网络安全法这里,它并没有给开源软件什么豁免权。退一步来说,开源软件,只是免费提供代码而已,并不代表它在整个过程中不获利。就好像微信也免费,可是它卖广告赚钱。开源软件也一样,它也有自己的盈利模式的。反正从法律上来讲,开源跟其他形式的软件比没有任何的特殊性,最终还是要受到网络安全法的监管。
Q:假设只是免费开源一个项目,例如工具库,放在码云,被另一家公司用来做商业产品了,现在产品找到一个漏洞和这个工具库有关,请问是谁来负责呢?
邓超:根据工信部、互联网办公室、公安部《网络产品安全漏洞管理规定》的通知第 7 条规定,负责任的应该是网络产品提供者。包括我刚才提到的网络安全法,它们主要针对的还是运行网络产品和提供网络服务的这些人。你说我只写了一个中间件,我给它传到网上,它能提供网络服务吗?从我个人的观点来讲,我可能会认为它是一种半成品或者是零部件儿的东西,不是最终产品。从这个角度上来讲,你单独开发一个中间件,它不能单独使用,你也没有对外提供产品和服务的可能,那这个责任就会小很多。
回到《网络产品安全漏洞管理规定》的通知第 7 条,它规定了如果发生安全漏洞方面的问题,首先是网络产品的运营者来负责,还要通知你的上下游,及时上报工信部。
所以说我觉得对于咱们开发者来讲,可能需要理清一下,咱们开发的究竟是一个完整的网络产品,提供完整的网络服务,还是咱们仅仅是作为一个个人开发者,开发的是无法提供完整服务的一个网络组件。
在前种情况下,受到网络安全法和相关规定的约束肯定更重一点。虽然说咱不直接收费,但是在法律上讲抗辩很难成立,除非说你是非盈利性组织运营的。但这里是一个公司行为,公司,它本身就是以盈利为目的的。哪怕你说你现在是亏钱的,或者说这个软件本身你没有收费,但是不影响它的盈利方式呀,它将来有可能挣钱,你也有可能通过其他的方式挣钱,所以抗辩很难成立。
相反,如果你是提供一个中间件,没有提供完整的网络服务,只是提供一个插件或者一段代码,那我觉得可能这个责任要更轻一点,有可能不构成网络安全法里面描述的提供网络服务或者提供网络产品。
Q:举个例子,假如现在出了个国产开源系统,被手机厂商拿来做商业产品了,这个系统出了问题先找谁呢?
邓超:找手机厂商,然后手机厂商肯定要联系开源系统让他们处理。开源系统属于上游。但反正第一责任人是手机厂商。谁离用户更近,责任更靠前。
Q:如果开源软件中有 bug,一般是谁来监管这样的 bug ?
邓超:会有网警负责不定期地对一些网络产品进行抽查,不会说等到出事儿了才去追究。
Q:如果是对于非盈利的个人开源者的话,没有收费还要负责维护这个软件一辈子,负担是不是太重了,会不会有点不公平?
邓超:这其实是一件有价值取向的事儿。虽然大家觉得说我是在用爱发电,没有收费。但至少从咱们现在的法律条款来看,国家肯定还是把安全放在更重要的位置。不能因为我做的东西是免费的,就能获得一些豁免,或者拥有一些特权。万一造成一些什么信息安全的事故,那肯定就因小失大了。所以说,对咱们开源业界来讲,即使是开源开发者,如果你提供一种完整的网络服务,提供完整的网络产品,那同时也就有义务,维护网络安全。
Q:你觉得这样的条款对开源这个行业来说,提出了什么样的要求?有什么样的影响?
邓超:我觉得只要大家尽到一些基础的义务,避免发生网络安全的事故,我觉得就够了。虽说这样一来有了限制,肯定是比没限制的时候,要 “阻碍” 一点,最好就什么限制什么义务都没有,这样利于开源的发展。但咱们刚才讲了,这毕竟不是现实。而且,维护网络安全,也不是特别严苛的义务,提供了完整的网络产品和网络服务,才受网络安全法的约束。所以我觉得对于这些公司来讲,进行安全漏洞的审查、提高网络安全的等级也并不是一个特别严苛的要求。相反,对于个人开发者,他可能没有能力提供完整的网络服务或网络产品,可能也不会受到网络安全法的约束。
对于开源的发展,我们从网络安全的角度讲,这确保了大家的信息不会被盗取,公司的商业秘密也不会被泄露,这样对整个社会都有好处。具体到开源,你说这样做对开源施加了义务,那我觉得这也是一个好的义务。可能有一种想法是 —— 施加义务会有一些负面的影响。但我要说,这要看是从小的图景看还是从大的图景看:从小图景看,人家使用者也要注意网络安全,使用开源软件也一样会有顾虑的;从大的图景看,确保了网络安全之后,我们整个网络社会都会受益,对开源的推广说不定更友好。