原文标题:《Linux 基金会发布白皮书,解释如何应对美国对开源项目的出口管制》
原文来源:Unitimes
近日,Linux 基金会发布了一份白皮书,介绍了开源社区该如何了解并遵循与美国出口管制要求及开源加密相关的一般性原则。这个消息是以中英文两种语言一同发布的,白皮书还用了中英文并列的方式展现了内容。
以下是 Linux 基金会的发布消息全文。
简介
开源开发的最大优势之一是它实现了整个世界的协作。然而,由于开源开发是一项全球性的活动,它必然涉及跨国界提供可用的软件。一些国家的出口管制条例,例如美国,可能需要采取额外的步骤来确保一个开源项目符合当地条例规定的义务。
本文概述了开源社区应该了解并遵循的与美国出口管制要求和开源加密相关的一般性原则。
美国和其他国家的出口管制
(Export Administration Regulations)(以下简称「EAR」)是美国联邦政府限制出口的主要条例,由美国商务部 (US Department of Commerce) 下的产业与安全局 (Bureau of Industry and Security)(以下简称「BIS」)发布并定期修订。《出口管制条例》适用于所有「受《出口管制条例》管制的物品,并可管制这些物品的出口、再出口或 (在国内) 转让。」
EAR 下「出口」的定义较为宽泛。出口不仅包括从美国境内向境外输送实物产品,还包括其他行为,例如向在美国居住的非美国公民或非美国合法永久居民传送技术,以及向美国境外人员提供用于电子传输的软件。
这 EAR 似乎给开源社区敲响了警钟,但是好消息是,公开发布给全世界享用的开源技术是不受制于 EAR 的。因此,开源至今仍然是一个最为便利的全球协作的模式。
为了符合 EAR 的要求,如果开源技术是公开的,不受进一步传播的限制,那么它是「已发布的」,因此「不受制」于 EAR。
除美国外,欧盟在其出口管制条例中也有类似规定。
什么样的开源项目不受 EAR 和欧盟出口限制?
所有。Linux 基金会以及与我们合作的项目社区制作的开源软件均已发布,并且在没有任何传播限制的前提下供公众通过公开渠道获取。
以下情形(但不仅限于此)不受到 EAR 限制,因为「开源」「已发布」:
◈ 已公开发布的开源软件不受制于 EAR
◈ 已公开发布的开源规范不受制于 EAR
◈ 已公开发布的,说明硬件设计的开源文档不受制于 EAR
◈ 已公开发布的开源软件二进制不受制于 EAR
然而,若项目涉及加密技术,则开源社区可能需要采取一些其他的措施以满足 EAR「已发布」的要求。
使用加密技术的项目
EAR 规范了特定加密软件和技术的出口。「加密软件」的定义非常广泛,并可能包括仅激活或启用其他软硬件产品的加密功能的软件。
但是,与已发布的软件不受制于 EAR 一样,使用加密技术的软件即如符合以下两个条件,则不受制于 EAR:(1)该源代码是「可公开获取」的,以及(2)已向第 742.15(b)部分所提供的电子邮箱地址发送了邮件以示通知。
为符合第一项豁免要求,「可公开获取」指的是在 EAR 法下「已发布」的定义,这包括通过公共站点进行发布(即公开传播)。只要完全公开的开源软件项目达到该标准,则应当视为通过了衡量标准的第一部分要求:如果项目的源代码可在互联网上公开获取,则应被视为「可公开获取」。
为满足上述衡量标准的第二部分要求,还需要向两个指定的邮箱地址发送邮件(一个是 BIS 的邮箱地址:crypt@bis.doc.gov,另外一个是国家安全局 (National Security Agency)(简称「NSA」)的邮箱地址:enc@nsa.gov)。邮件内容需要包括可公开获取的源代码的 URL 地址(或源代码本身)。如 URL 或源代码发生任何变更,则需要再次以邮件形式通知上述邮箱地址。
当该可公开获取的加密源代码通过了上述两项衡量标准后,那么相应的目标代码也将不受 EAR 管辖。
Linux 基金会的所有项目源代码,包括加密软件,均可公开获取,我们也已经提供了如上所述的电子邮件通知。我们也在 LF 官网上公开了上述电子邮件通知的副本。所以,Linux 基金会的项目源代码及对应的物件代码均不受制于 EAR 关于加密的限制。
请注意,上述情况只适用于开源项目本身。如源代码并未公开,修改了项目代码的下游分销商或其衍生产品的下游分销商仍然需要自行评估是否符合 EAR 的规定(和其出口的其他软件一样)。
除了使用加密技术的项目外,EAR 还在 2020 年 1 月为采用神经网络驱动的地理空间分析培训的系统增加了一项新法规。与其他公开提供的开源技术一样,公开发布的开源软件,即使是在神经网络驱动的地理空间分析培训这一类别中,也不会受到 EAR 的约束。
开源软件社区的最佳实践
虽然开源项目不受 EAR 限制,但我们已经学习或者掌握了一些可能对所有开源社区有所助益的实践,都与出口管理条例相关。
我们经常用「公开」这个词来形容许多事情:开源许可、公开和透明的讨论、公开的社区、公共智库里储存的可公开获取的源代码。对于开源社区来说,「公开」似乎是显而易见的做法,但以下是一些社区需要考虑的具体建议。
开放,公开
首先,社区应该尽量保持技术对话的开放和公开。如果私人技术对话在社区内发生,这是正常的,但建议将社区决策和结果公开。对于我们的项目来说,使信息公开透明是很重要的,因为技术或技术信息的私人交流可能不符合 EAR 的「公开可得」标准。
出现的一个问题与在安全披露过程中交换与安全问题有关的信息有关。作为一种最佳实践,项目可能会考虑在修复程序可用时公开此类交换,而不是将此信息限制在一个机密的公开列表中。
向 BIS 和 NSA 发送加密通知
如果您的开源软件项目实施或使用属于 ECCN 5D002 规定的加密功能,那么根据 EAR 的要求,您将需要向 BIS 和 NSA 发送加密通知。EAR 的具体要求如下:
◈ 发送电邮至 crypt@bis.doc.gov 及 enc@nsa.gov。如果您的项目是 LF 的项目,并且您的通知没有出现在我们的出口管理页面上,请发送通知至 legal@linuxfoundation.org。
◈ 邮件应该包括含有可公开获取加密源代码的网站地址,或源代码本身。
◈ 如果您提供的是网站地址,那么每次更换网站地址时,您都必须通过电子邮件发送通知,但是您不需要通知有关源代码本身的更新或者变更。
◈ 如果您提供的是源代码本身,那么每当加密功能进行更新或者变更后,您都必须提供最新的源代码。
Linux 基金会建议将其他的一些细节作为最佳实践:
◈ 为了加强透明度和展现合规性,将提交给 BIS 和 NSA 的通知公开化。这也有助于解决下游用户对社区是否发送了通知的疑惑。通过公开通知的方式,您可以避免这些困扰。
◈ 附加联系方式和负责项目的法人实体的名称。
◈ 设计一个保留中期至长期证据的系统(证明发送给 BIS 和 NSA 的通知电邮实际上已经送达)。因为如果将来发生问题,或者如果个人无法访问该「已发送」邮箱,仅依靠「已发送」邮箱记录不是个好办法(例如发件人跳槽了)。
此外,如果您正在以目标代码的形式分发公开可用的加密软件,那么您还需要确保它也以源代码的形式公开可用。
如果必须以二进制或目标代码形式分发加密软件,那么就必须确定相应的源代码是可公开获取的。最简便的方式就是自主将该加密软件版本的源代码公开,作为项目本身的源代码。(事实上,根据适用的开源许可,这对遵守开源许可可能也是必要的,或者至少是有用的。)
除人工审核外,还有一些性能各异的扫描工具 (例如 Fossology 和 exportctl),可以扫描源代码并探测加密功能的应用。没有一种自动扫描工具能够完美地检测出所有的应用,但这些工具可能有助于识别大型代码库中的加密软件。