跨境合规观察|开源软件出⼝管制合规政策与管控策略
⾛出去智库观察
随着俄乌局势升级,美国科技巨头相继宣布制裁俄罗斯。在全球最⼤的开源及私有软件项⽬托管平台Github宣布遵守美国政府制裁规定之后,全球最⼤的独⽴开源软件公司SUSE、美国开源软件巨头红帽、主流开源容器引擎Docker等纷纷宣布停⽌与俄罗斯的业务,这三家加⼊封禁阵营的消息,再次震动了⼀向推崇“⾃由、平等、相互尊重”的开源界。
⾛出去智库(CGGT)观察到,此次俄乌冲突下的科技制裁,给国内开源界再次敲响了警钟。由于开源的⾼度开放性,可以不断复制、修改、再开源社区的源代码,使得开放源代码涉及到知识产权的归属、许可、授权等法律问题,⽽按照国际通⾏做法,知识产权会受到各国出⼝管制的限制。对此,我国已⾼度重视开源的推动,“⼗四五”规划和2035年远景⽬标纲要提出,要“⽀持数字技术开源社区等创新联合体发展,完善开源知识产权和法律体系,⿎励企业开放软件源代码、硬件设计和应⽤服务”。
如何做好开源软件的跨境合规管理?今天,⾛出去智库(CGGT)刊发相关分析⽂章,供关注开源软件出⼝管制应对的读者参阅。
要点
CGGT,CHINA GOING GLOBAL THINKTANK
1、从对四⼤经济体的出⼝管制法规分析看,只有美国《出⼝管制条例》(ERA)提及了开源软件的概念,并提出了对开源软件进⾏管控的细则。在⽇本的管控清单中,甚⾄没有提及软件;中国和欧盟的法规虽然提及了软件,但是却没有提及开源软件的概念,也就没有专门针对开源软件的管控制度。
2、正确识别研发活动中使⽤的所有开源软件是识别受EAR管辖开源软件的基础,但⽬前业界尚⽆⼀个100%正确识别的成熟可靠的⽅案,实践证明采⽤⼯具识别与⼈⼯确认相结合的⽅式,既提⾼了开源软件识别效率和准确性,避免了纯⼈⼯识别差错问题,同时也解决了因扫描⼯具数据库更新不及时⽽可能产⽣的识别不全的问题。
3、虽然开源软件的使⽤已完全遵循了美国的出⼝管制,但并不代表没有风险。⼀旦美国修改 EAR,将⾼性能软件、EDA 软件等⼀些核⼼基础软件加⼊到管制中,并且将⽬前“备案即不被管制”修改为“备案且需要被管制”,那就意味着⼤量核⼼开源项⽬将受到出⼝管制。
正⽂
CGGT,CHINA GOING GLOBAL THINKTANK
⼀、概述
开源软件是源代码可以任意获取的计算机软件。在获取开源软件源代码的基础上,任何⼈都能查看、修改和分发他们认为合适的代码。开源是信息社会的⽣产⽅式之⼀,特点是⼤维度的协作与⽹络服务化,全球范围的源代码开放,是开源软件的⼀个特征。我国的开源软件技术已经全⾯进军操作系统、云原⽣、⼈⼯智能、⼤数据等主要领域,例如在容器技术、微服务技术、DevOps技术上,均有中国的开源贡献。开源软件已在各⾏各业得到⼴泛应⽤。作为托管于开源社区的开源软件,必须受到相关开源社区的管理约束。由于各国的法律法规存在差异,基于社区由不同国家发起、托管平台存在于不同国家、以及这些开源软件的版本归属差异,这些开源项⽬还会受制于不同的“其它外部的法律法规”,⽐如“出⼝管制要求”。美国曾将中国某公司及其附属公司列⼊出⼝管制“实体名单”,随后美国⾕歌公司宣布将停⽌为其提供安卓(Andriod)系统的技术⽀持与服务,⽽安卓系统⼀直是世界知名的开源项⽬。
软件产品是作为当今⼤部分⾼科技企业最为重要的产品形态之⼀,已⼤量涉及开源软件,进⾏开源软件相关合规政策和合规遵循的研究显得尤为重要。本⽂主要从出⼝管制的⾓度,研究开源软件相关的法规政策和及其影响,通过对企业当前的合规管控实践,分析开源软件的管控现状和差距,提出改进措施,并说明开源软件在未来的使⽤过程中可能⾯临的风险。
⼆、各国针对开源软件的出⼝管制政策
国家出于政治、经济、军事和对外政策的需要,制定限制产品出⼝的法律和规章,以对出⼝活动实⾏控制。在开源软件
国家出于政治、经济、军事和对外政策的需要,制定限制产品出⼝的法律和规章,以对出⼝活动实⾏控制。在开源软件的研究过程中,我们针对世界主要的四个经济体进⾏了扫描,汇总其对开源软件进⾏管控的要求。这四个主要经济体分别是美国、⽇本、欧盟和中国。这四个经济体的主要出⼝管制法规如下:
△表1 四⼤经济体的出⼝管制法规和条例名称
(⼀)美国出⼝管制法规对于开源软件的管控
在美国,开源软件是否受出⼝管制的限制?⼀个⼴为流传的观点是,软件的源代码因受到⾔论⾃由的保护⽽不被管制。根据1995年伯恩斯坦诉美国司法部(Bernstein v. Department of Justice)案,软件源代码属于⾔论⾃由的范畴,不能被政府部门管制。但很少有⼈提到,该案的裁决未⽣效。因此,伯恩斯坦案并⾮有法律效⼒的判例,不能简单地得出结论认为软件的源代码因受到⾔论⾃由的保护⽽不能被管制。实际上恰恰相反,软件的源代码只要没有实现“公开可获得”(Publicly available),仍然要受到美国出⼝管理条例(Export Administration Regulations,以下简称“EAR”)的管辖。
美国对于开源软件的管辖基于“已公开”(Published)或者“公开可获得”(Publicly available)的概念。已公开的信息可以任意复制、传播,对于已公开的信息再进⾏管控是不可能做到的,因此⽴法者将已公开的信息排除出了EAR的管辖范围,即根据EAR 734.3(b)(3),“已公开”的信息和软件不受EAR管辖。源代码下载开源社区
开源软件由于其源代码已经在互联⽹上的⽹站或者⽹络社区进⾏了公开,可以任意下载和传播,因此开源软件在原则上由于其公开的特性不受EAR管辖。
但同时美国出⼝管制法对于加密技术⾮常重视,美国⽴法者认为加密技术有可能会被利⽤来危害美国的国家安全,因此他们将包含加密功能的开源软件进⾏特别对待。含有加密功能的软件,如果属于美国开发的代码或者来源于美国管辖的开源社区,且按照功能性能被分类为5D002,那么即使该软件的源代码即使已经在⽹络上进⾏公开,这个软件仍然是受EAR管辖的。如果美国以外的⼈员想要下载和使⽤这个软件,则必须要获取出⼝授权。但是美国商务部⼯业与安全局(Bureau of Industry and Security,以下简称“BIS”)提供了⼀个途径,来使这样的开源软件不受EAR管辖。软件作者或者使⽤者可以将这个软件的源代码发往BIS和美国国家安全局(National Security Agency,以下简称“NSA”)的特定邮箱进⾏备案,这样这个软件就不再受EAR管辖。如果软件的源代码变动频繁,软件作者或者使⽤者也可以将下载该软件源代码的⽹址以及软件名称发送给BIS和NSA的特定邮箱进⾏备案,就⽆须重复性的将不断变更的软件源代码发送给BIS和NSA的特定邮箱。此外,对于含有加密功能的⽬标代码(即源代码经过编译后形成机器码),如果来源于美国,必须要在将其对应的已公开源代码进⾏备案后,此⽬标代码才能不受EAR管辖。
(⼆)中国、欧盟和⽇本出⼝管制法规对于开源软件的管控
从对四⼤经济体的出⼝管制法规分析看,只有美国的EAR提及了开源软件的概念,并提出了对开源软件进⾏管控的细则。在⽇本的管控清单中,甚⾄没有提及软件;中国和欧盟的法规虽然提及了软件,但是却没有提及开源软件的概念,也就没有专门针对开源软件的管控制度。下⾯说明中国出⼝管制法对软件的管控将如何影响开源软件:
中国出⼝管制法对软件的管控仍集中在软件的功能、性能上,开源软件的本⾝公开的性质,并不能使其免于中国出⼝管制法的管辖。只要软件本⾝在中国出⼝管制法下辖的清单中,如两⽤物项清单,那么该软件即使是开源软件,出⼝也可能需要出⼝授权。特别的,根据《中华⼈民共和国出⼝管制法》第⼆条的规定,从中华⼈民共和国境内向转移管制物项,属于“出⼝”;中华⼈民共和国公民、法⼈和⾮法⼈组织向外国组织和个⼈提供管制物项也属于“出⼝”(也称之
为“视同出⼝”(Deemed export))。
因此中国出⼝管制法定义下的开源软件“出⼝”或者“视同出⼝”涵盖的范围将⾮常之⼴,运营于中国境内的不管是企业还是个⼈都需要对此特别注意。下⾯对于涉及开源软件出⼝或者⾮出⼝的场景进⾏举例说明。
可能被认定为开源软件出⼝的场景:
(1)国内某企业决定开源其研发的⼀个软件,在选定开源许可证后,将GitHub作为代码托管和后续协作的平台。我们知道在2018年6⽉,微软宣布75亿美元收购GitHub,微软是⼀家美国公司,⽽GitHub的具体运营公司也是位于旧⾦⼭的美国公司,均属于外国组织,⽽GitHub的代码存储空间主要也在美国。实际上,GitHub也提及了GitHub⽹站、企业服务器以及⽤户上传的产品、信息可能受贸易管制法规包括EAR的约束,并详细规定了⽤户只能根据适⽤法律(包括美国出⼝管制和制裁法律)访问、使⽤GitHub。因此,这种形式的源代码开源,如果涉及禁⽌或者限制出⼝的软件技术,有很⼤可能被主管部门认定属于“出⼝”。
(2)国内某企业决定将其研发的机器学习程序捐赠给Linux基⾦会。假设这项机器学习程序有着先进的算法,属于禁⽌出⼝的技术,⽽Linux基⾦会是根据美国联邦税法501(c)(3)成⽴的⾮盈利机构,属于外国组织,则该企业向Linux基⾦会捐赠源代码及相关材料的⾏为,也有很⼤的可能被主管部门认定属于“出⼝”。
捐赠源代码及相关材料的⾏为,也有很⼤的可能被主管部门认定属于“出⼝”。
(3)国内某企业对通⽤性公开(General Public License,以下简称“GPL”)许可证项下的Linux内核作出了重⼤技术贡献,该项创新属于禁⽌出⼝的技术。根据GPL开源许可证,该企业应当在相应的国外社区公开源代码,那么这种情况下,也有很⼤的可能被主管部门认定属于“出⼝”。这⾥涉及到的国内法与开源许可证的冲突及解决,不是本⽂的研究范围,本⽂不展开论述。
可能不会被认定为开源软件出⼝的场景:
国内某企业决定将其软件开源到gitee上,但该软件属于限制出⼝技术。gitee运营公司是位于深圳的中国注册公司,⽽源代码的存储空间也应在我国境内,虽然⽹络具有全球可访问性,但不应认定为“出⼝”。需要指出的是,如果该软件涉及国家保密规定的,应遵守相关的要求。
由于在⽴法时没有提及开源软件的概念,欧盟同样存在类似问题,有可能对于开源软件存在过度管辖。⽽⽇本由于其管控清单中没有将软件单独列出,因此⽇本在开源软件的出⼝和转移⽅⾯要宽松的多,不存在法律上的障碍。
三、重要开源社区的出⼝管制策略
(⼀)国际开源组织项⽬出⼝管制政策
⼀个完整的开源⽣态包含开源基⾦会(组织)、开源项⽬、开源许可证和代码托管平台等多⽅⾯要素,它们各⾃的条款声明和受到的法律制约都不尽相同。
1. 开源基⾦会
开源基⾦会管理开源项⽬,但基⾦会的管理办法差异较⼤,⽽基⾦会旗下的开源项⽬也可以选择不同管理办法。举例:
·Linux 基⾦会⾃⾝的管理办法不受美国出⼝管制,其旗下的项⽬包括Linux Kernel等默认遵循该管理办法,但其分布式存储项⽬Ceph明确指定司法管辖权归属美国加州,并要求使⽤并出⼝者遵循美国出⼝管制,就属于Linux基⾦会中的特例;
·Apache基⾦会的管理办法明确说明遵循美国出⼝管制,旗下绝⼤多数项⽬如 Hadoop、Spark等,在备案(5D002)后即不受EAR出⼝管制;
·Mozilla基⾦会明确声明司法管辖权归属加州。根据前述司法管辖区与出⼝管制的关系,Mozallia基⾦会声明司法管辖权,只是表⽰出现各类纠纷都将以加州Santa Clara的法庭裁决为准。如前所述,这并不表⽰其管理的开源项⽬默认受到出⼝管制;
·RISC-V基⾦会⾪属于Linux基⾦会,没有特别声明受美国出⼝管制,因此RISC-V基⾦会拥有的RISC-V开放指令集标准并不会受美国出⼝管制。值得注意的是,RISC-V 基⾦会的会员条款中也指明了其司法管辖权在美国特拉华州。根据前述司法管辖权与出⼝管制的关系,RISC-V基⾦会声明司法管辖权,表⽰所有围绕会员条款产⽣的纠纷都将交由指定法庭裁决,但并不表⽰其管理的开源项⽬默认受到出⼝管制。
2. 开源许可证
常⽤开源许可证如GPL、LGPL、BSD、MIT、Mozilla、Apache,均未涉及与政府出⼝管制⽆关的声明。⽽且开源项⽬对于许可证条款的遵循与变更⽐较容易,所以开源许可证⽅⾯的出⼝管制风险⽐较⼩。
3. 代码托管平台
从对GitHub、SourceForge和Google Code三个代码托管平台的研究来看,该三个平台均明确声明遵守美国出⼝管制条例,并且司法管辖权均在加州(即需按加州法律解决纠纷)。
以GitHub为例,GitHub明确声明其GitHub Enterprise Server被出⼝管制,不能出⼝到被制裁国家。⾄于GitHub⽹站的普通功能,由于架设在美国的GitHub服务器的上传和下载的⾏为都需要遵从出⼝管制和美国法律,所以其正常使⽤是可能会被管制的。亦即,GitHub上的开源项⽬代码在遵守项⽬⾃⾝的开源许可证的同时, 也可能作为GitHub上的信息(Information)遵从出⼝管制和美国法律。概述中提到的事件,也很可能因为GitHub因素使其访问开源项⽬受到影响。
(Information)遵从出⼝管制和美国法律。概述中提到的事件,也很可能因为GitHub因素使其访问开源项⽬受到影响。开源项⽬如何规避出⼝管制风险?存在四种情况,但都需要开源项⽬发起⼈或开发者⽀持与配合:
·
对于已存放于GitHub的开源项⽬,若同时存放于美国以外其他托管平台,且开发者分别独⽴提交更新到GitHub与其他
托管平台,且开发过程中不从GitHub下载任何信息,那么从美国以外的托管平台获取开源项⽬不受美国出⼝管制;·对于已存放于GitHub的开源项⽬,若发起⼈本地拥有副本,且未从GitHub上下载更新,那么发起⼈可在美国以外其他
托管平台创建开源项⽬,并将副本上传到该托管平台。此后开发者分别独⽴提交更新到GitHub与美国以外的托管平台,且开发过程中不从GitHub下载任何信息,那么从美国以外的托管平台获取开源项⽬不受美国出⼝管制;
·对于新启动的开源项⽬,发起者可在美国以外的托管平台和GitHub上同时创建项⽬,且开发者分别独⽴提交更新到美国以外的托管平台与GitHub,且开发过程中不从GitHub 下载任何信息,那么从美国以外的托管平台获取开源项⽬不受美国出⼝管制;
·对于新启动的开源项⽬,发起者可直接在美国以外的托管平台创建项⽬,其后开发者向该托管平台更新,那么从该托管平台获取开源项⽬不受美国出⼝管制。
从以上分析可以看出,虽然并⾮所有的开源基⾦会、开源社区管理的源代码都受到美国出⼝管制的管辖,但⼏乎所有位于美国的国际开源组织或项⽬,⽆⼀例外地遵守美国的出⼝管制政策。
(⼆)社区声明对开源软件使⽤的影响
在实际使⽤开源软件时,为了增强我们对该开源软件具备⾜够的驾驭能⼒,选择开源软件项⽬时,需要考虑能够随时不受限制地引⽤其全⽣命周期过程中的版本、技术,以满⾜引⽤开源软件产品全⽣命周期经营管理需要:
·选择开源软件时,需要仔细阅读所属开源社区/开源基⾦会的声明、项⽬本⾝的声明、所⽤的开源许可证声明等三个声明,以了解受各国出⼝管制管辖及约束的情况。对所⽤开源软件相关的上述声明需要进⾏全⽣命周期的跟踪,若其条款有所变更需要进⾏快速响应,分析其出⼝管制影响;
·在同样条件下,优先选择国内开源基⾦会和开源社区下的开源软件;
·开源托管平台同时受EAR出⼝管制和美国司法管辖权的限制,是开源最⼤的风险。在同样条件下,优先选择国内开源社区下的开源软件;
·同时做好受出⼝管制后,是否有其它应对⼿段,如开源软件替代、具备开源软件守护能⼒等;
·做好所使⽤开源软件的开源基准库,最好是所⽤开源组件的全版本库。
对所选开源软件的许可证进⾏全⽣命周期管控,预防遵循许可证变更,甚⾄引⼊新的受出⼝管制影响的许可证等情况。
四、开源软件出⼝管制合规管控实践
(⼀)开源软件应⽤管控
在当前的⾼科技研发研发公司中,开源软件⼏乎涉⼊了每⼀个软件研究项⽬。近年来,业界各企业纷纷开始进⾏开源合规治理,通过不断完善,部分企业⽬前已形成⼀套开源软件的管理体系,管理系统主要包括开源的安全、许可证和出⼝管制三部分。这⾥主要讨论在出⼝管制⽅⾯的合规管控实践。尽管如上⾯所述,四⼤主要经济体中的⽇本、欧盟和中国的出⼝管制或没有提及软件,或是没有开源软件的概念,⽐如中国的出⼝管制政策主要通过对最终产品的功能性能来确认是否进⾏关注,但实质上都有对使⽤开源软件的“隐形”出⼝管控。这⾥笔者以国内某企业对开源软件的合规管控实践,讨论对开源软件管控有更明确和严格要求的美国EAR法条的遵从。
按照 EAR 的规定(734.3(b)(3)、734.7(b) 和 742.15(b)),即ECCN为5D002的加密开源软件仍受EAR管辖,除⾮其⽬标代码和源代码按要求向BIS和ENC Encryption Request Coordinator进⾏了备案(notification)。尽管进⾏备案不是EAR的强制要求,但企业为减少出⼝管制合规风险⽽选择了对ECCN为5D002的加密开源软件进⾏备案管理要求,对研发过程中使⽤的受EAR管辖开源软件采取了管控措施。
1.受EAR管辖开源软件识别
正确识别研发活动中使⽤的所有开源软件是识别受EAR管辖开源软件的基础,但⽬前业界尚⽆⼀个100%正确识别的成熟可靠的⽅案,实践证明采⽤⼯具识别与⼈⼯确认相结合的⽅式,既提⾼了开源软件识别效率和准确性,避免了纯⼈⼯识别差错问题,同时也解决了因扫描⼯具数据库更新不及时⽽可能产⽣的识别不全的问题。
识别出开源软件后,就需要对这些开源软件进⾏分析,判断其是否受EAR管辖。为此,总结了⼀个科学可⾏的判别的⽅法,我们称之为受EAR管辖开源软件识别四要素法,如下图所⽰:
简单地说如果⼀个开源软件同时满⾜以上4个条件,我们就认为这个开源软件是受EAR管辖的开源软件。
2.受EAR管辖开源软件备案
该实践中要求对识别为受EAR管辖的开源软件在软件版本对外发布前必须完成向BIS备案,通过备案将受EAR管辖的开源软件变为不受管辖开源软件,从⽽减少出⼝管制合规风险。具体做法是通过email通知BIS和ENC Encryption Request Coordinator,告之加密源代码所在的URL或⽹络地址,每次URL发⽣变化,均需再通知BIS和ENC Encryption Request Coordinator,但源代码更新或修改不需再次通知。
企业从公司维度对开源软件的备案⼯作进⾏集中管理,⼀⽅⾯能够确保来源的可靠性和可信性;另⼀⽅⾯,实现了资源共享,避免了不同研发单位对同⼀个受EAR管辖开源软件的重复备案,减少了资源消耗,提⾼了效率。
(⼆)开源对外贡献管控
作为开源软件应⽤者,同时也是开源软件的贡献者。常见的开源对外贡献有两种⽅式,⼀种是直接向开源社区贡献⾃研代码,还有⼀种在在开源社区主导建设项⽬。
1.⾃研代码贡献
为了实现开源社区的共建,实现技术和代码的共享,某些情况下,研发项⽬在从开源社区获取开源项⽬的同时,也需要向开源社区共享源代码。为了遵循出⼝管制的政策,对于涉及受EAR管控的技术或软件的软件不能作为开源软件公开到开源社区中。该实践中对开源代码对外贡献管控要求是:项⽬组在向开源社区提交源代码前,需要识别是否包含受控软件,受控软件不能作为开源软件发布;涉及受控技术的受控项⽬的软件源代码也不能对外贡献代码。
2.开源项⽬建设
我国⽬前有很多企业都有其主导的开源软件建设项⽬,代码托管在Linux基⾦会,同时,在开源中国社
区上建设了镜像。开源中国是⽬前最⼤的开源技术社区。虽然,开源项⽬在托管平台的选择上有⾃主权,但是绝⼤部分中国项⽬组在国际⼤平台托管代码时,都会选择同时在国内建⽴镜像,不仅中国项⽬,开源中国也同国际上很多⼤的平台签署了相关协议,⼀⽅⾯能不断发展开源社区,同时也是对国内开源代码使⽤的安全性的⼀个长远保障措施。
五、开源软件管控改进措施和风险分析
(⼀)开源软件管控差距和改进
在上⽂的开源软件管控实践中,企业对开源软件已制定⽐较全⾯的管控措施,出⼝管控合规的风险已完全被管控。但就执⾏与现有政策要求还存在⼀定差异,体现在⽬前EAR法条中仅管控涉及⾮标准加密算法的开源软件,也就是说,只有涉及⾮标准加密算法的开源软件才是美国出⼝管制关注的对象,其他都不在其管辖范围内,⽆需向其备案,这个政策在2021年3⽉份变更。但是⽬前如果依然按照原有的要求进⾏备案,对所有加密的开源软件都进⾏备案,管控的尺度更⾼。虽然这种差距虽然并不带来合规风险,但却会加重备案⼯作量。
为了消除这种差距,企业合规部门与业务单位不断讨论改进措施和⽅案,⽬标是完全遵循EAR的要求,仅针对涉及⾮标准加密算法的开源软件向BIS备案。这个⽅案中,最关键的⼀点是如何确定加密算法是否为标准算法,执⾏落地⽅案建议如下:
·⾸先依据法条中对标准加密算法的说明,确定⽬前已使⽤的标准加密清单,但此清单并不涵盖所有的标准加密算法,仅供使⽤⼈员参考;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论