一年前,GitHub修改用户协议,表明GitHub接受美国法律监管,包括《美国出口管制条例》,对违反条例的企业和个人,有权拒绝提供代码和服务,此事件在“码农”界引起了轩然大波。不久前,受“实体名单”影响,哈工大、哈工程被禁用“工科神器”MATLAB,再一次引起社会的极大关注。
近日,软件容器平台 Docker 的服务也受到了影响。
8 月 13 日,Docker 更新网站服务协议,禁止“禁运国家”和被列入美国“实体清单”的组织和个人使用遵循该服务协议的Docker网站及其所有相关网站与服务。
Docker
Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。
Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。
美国“实体清单”
所谓的实体清单,是美国维护其国家安全利益进行出口管制采取的最终用户(End User)管制手段。
1997年2月,美国商务部首次发布实体清单,以此明确告知美国出口商,在未得到许可证时,不得帮助这些实体获取受本条例管辖的任何物项。而有关许可证的申请应按照《美国出口管制条例》(Export Administration Regulations,EAR)第744部分规定的审查标准接受审查,且向此类实体出口或再出口有关物项不适用任何许可例外的规定。
此外,根据EAR规定,实体清单内容的增加、删除和更改都必须经“最终用户审查委员会”投票决定。该委员会由美国商务部牵头,包括国务院、国防部、财政部等部门代表。确定增加实体清单需要多数委员会成员投票通过,而确定删除或更改实体清单则需要全体成员投票通过。
中国商务部研究院程慧在论文《“实体清单”中国企业须防范》中指出,实际上,进入实体清单即意味着进入了一个“黑名单”。虽然EAR为进入清单的实体,提供了申请取消实体清单的程序,但具体评价标准和条件却非常模糊,美国政府更多地基于国家安全利益和外交政策需求去考虑删减的问题。而删除实体需经“最终用户审查委员会”全体成员一致同意,这无疑又构成了一道程序性障碍,限制了企业为脱离清单而采取的行动。
1997年6月,中国工程物理研究院被列入实体清单,成为第一家进入实体清单的中国实体。
Docker使用受到的影响
摘取本次条款需要注意的地方:
译:Docker, Inc 向您提供可通过 docker 网站以及所有带有「Terms of Service」链接的其他关联网站获取的 Docker 内容和 Docker 服务(统称为「服务」)。本服务协议管理所有服务的获取和使用,但在单独的许可条款下获取和使用 Docker 软件的情况除外。
译:该服务受美国商务部和美国财政部海外资产控制办公室管理的美国出口管制的约束。您承认并同意,您访问的服务和任何用户内容或第三方内容不得被使用、转移或以其他方式出口或再出口到美国实施禁运的国家(统称为「禁运国家」),或被其国民或居民使用,或美国财政部特别指定国民清单或美国商务部实体清单、被拒绝人清单或未核实清单或美国国务院防扩散清单上的任何个人或实体(统称为「指定国民」)。
禁运国家和指定国民清单如有变更,恕不另行通知。如果使用本服务,包括但不限于上传或访问任何用户内容或第三方内容,您声明并保证您不在禁运国家,不受禁运国家或指定国民的控制,不是禁运国家或指定国民的国民或居民。您同意严格遵守所有美国出口法律,并承担获得美国政府出口或再出口许可证的全部责任。您需保证和维护 Docker 及其供应商和许可方免受您或您的任何代理人、高级职员、董事或员工违反此类法律或法规行为的影响。
从条款中可以明确的是, 受限制的是 Docker 商业版及 Docker 的其它服务,比如 Docker Hub ,但是关于 Docker 开源项目还能否使用,引发了担忧。
其实,过去一年来,美国政府以贸易战、禁售、限购、签证新令等一项又一项匪夷所思的举措,打压中国的科技发展。在今年7月,全球最大的开源社区Linux基金会发布中英文版的《了解开源科技和美国出口管制》白皮书,报告中明确表示,开源技术属于全人类,不受制于《美国出口管理条例》( EAR)。
在白皮书中,Linux基金会开宗明义的指出“开源至今仍然是一个最为便利的全球协作的模式”。
在详细分析《美国出口管理条例》的基础上,白皮书中指出,根据EAR第734.7条中“已发布”的要求,“当可被公众获取且无进一步传播限制时,未被归类为密级事项的‘技术’或‘软件’属于‘已发布’,因此不属于受EAR管辖的‘技术’或‘软件’”。EAR的这项规定实际上是明确豁免了大多数以开源形式呈现的软件和技术。
该白皮书中明确列举了一些典型不受EAR限制的事项:
已公开发布的开源软件不受制于EAR;
已公开发布的开源规格不受制于EAR;
已公开发布的,说明硬件设计的开源文档不受制于EAR;
已公开发布的开源软件二进制不受制于EAR;
从上述事项中可以看出, “已发布” 在其中占据着关键位置。
Docker能否被替代
如前文所述,容器技术最早产生于linux,Docker更重要的角色是工具层面的封装。而且,Docker属于典型的“前浪”,虽然目前市场所占据的份额较大,但是从报告来看,市场份额呈现出逐年下降的趋势,后来者虎视眈眈,如果有“适当”的契机,反超不是没有可能。
2019年容器运行时市场份额
另外从技术层面上看,Docker本身也是逐渐被“排挤”的对象。以运行时容器技术为例:工业上如果规模化的使用了容器,一般离不开大名鼎鼎的kubernetes,在kubernetes 1.6版本之前kubelet是直接调用 Docker 的 API 来创建和管理容器的,但在kubernetes 1.7版本,将对容器的操作抽象成一系列接口的定义,即CRI(Container Runtime Interface),这样一来,支持了更多类型的容器可供大家选择,如“2019年容器运行时市场份额”一图中,排名二、三的containerd与cri-o。
containerd 是从 Docker 中剥离出来的容器虚拟化技术,containerd 是一个工业级标准的容器运行时,它强调简单性、健壮性和可移植性。containerd 可以在宿主机中管理完整的容器生命周期:容器镜像的传输和存储、容器的执行和管理、存储和网络等。
cri-o 是 Kubernetes 的轻量级运行时,最初是由 Red Hat 启动,目前由 CNCF 托管。Sysdig 预测未来 cri-o 的使用率会不断升高,尤其是当 Red Hat OpenShift 的客户从 v3 迁移到 v4 时,因为在 v4 版本中,cri-o 取代了原来的 Docker 引擎。
除上述运行时容器,其他的工具部分也有更“优秀”的开源选择:Podman, Buildah。
等等,好像有些事情不对!这些不都是米国的开源么?
未来,开源技术会受到美国管制吗?
由于美国出口管制的特殊性和复杂性,对于目前开源的 Docker Engine 等,不能只看 LICENSE 就认为高枕无忧,还要查阅美国法律(也很好理解,许可证是基于版权法做出的演绎,而出口禁运则涉及所谓“国家安全”)。
Python 、OpenSSL和 Apache 软件基金会软件均为开源项目,但均在官网上明确声明自己受到美国出口管制条款约束。
根据Apache基金会显示,Golang 加密套件与 OpenSSL 项目均为美国出口管制分类号 5D002 (ECCN号为5D002的加密软件即使公开发表,仍受到EAR的管制)项目之“Controlled Source”,即让项目受 EAR 的管制的上游受管制项目(可以类比理解为 GPL 许可证的传染性来源)。Docker 则使用了这两者的相关代码。
依照最新的美国法律 15 CFR § 742.15 (b) 规定,开源的 5D002 软件须经报备方可豁免 EAR 美国出口禁令(Linux 基金会和 Apache 基金会明确表示已遵照执行)。不过,这一豁免仅限于开源软件且使用开源软件再开发的软件须单独申请豁免(意味着“Fork 后修改并闭源”战术的失效),而且出口管制会在软件“出口、再出口和转交”时传递(即所谓“长臂管辖”,意味着不能通过转口贸易来试图闭源)。
此外,美国曾多次修订 EAR 规章,关于开源软件豁免的条款也是 2016 年才新加入的。值得一提的是,今年1月,美国曾修改 EAR 以限制地理识别 AI 出口给“实体清单”中的企业和个人。因而,尽管目前看来似乎不受太大影响,仍有 Docker CE 及自改派生版本(如开源且报备)可用,仍不排除未来的政策风险。
以下节选自中科院计算所和 CRVA 联合发布的《<开源项目风险分析与对策建议>报告解读》(建议阅读:
当下常用的开源许可证保护的是知识产权,其自身与出口管制和司法管辖权并无关联。所在基金会声明、开源项目声明和开源许可证,任意一个出现了出口管制和司法管辖权的相关条款,都将约束该开源项目。
打铁还需自身硬
2020年,随着“新冠”疫情在世界蔓延,全球的政治,经济,文化都受到了不同程度的冲击,现在又波及到了技术。英诺森作为一家全球化的公司,在深耕行业,关注业务价值的同时,也时刻关心技术的发展。我们一方面积极的参与开源和技术的共享,另一方面也随时关注和规避其中的风险。英诺森IAC创新中心通过持续的关注行业内技术的发展,熟悉关键技术的条款、许可和约束,支撑公司业务发展。
参考链接:
Docker禁止美国“实体清单”主体使用,Docker开源项目应不受影响
开源软件脱险!Linux硬核回应美实体清单:软件已开源属于全人类!
作者:财新网
作者:流清商