出口管制与加密:EAR 与开源双重用途限制
出口管制与加密:EAR 与开源双重用途限制
教程介绍
本教程面向开发者、开源项目维护者以及合规初学者,系统讲解美国《出口管理条例》(EAR)如何约束加密技术,并重点剖析开源软件面临的双重用途管制挑战。你将理解:为什么一段公开发布在 GitHub 上的加密代码仍可能受出口管制、如何合法利用“公开可获取”例外,以及如何构建开源项目的出口合规基线。
第一部分:理解美国出口管制条例(EAR)
什么是EAR?
EAR(Export Administration Regulations)由美国商务部工业与安全局(BIS)负责执行,管辖具有双重用途(即可同时用于民用与军事目的)物项的出口、再出口和境内转移。加密技术因其对国家安全和信息安全的敏感性,被明确列为受控物项。
管制物项与ECCN分类
所有受EAR管辖的物项都被分配一个出口管制分类编码(ECCN)。加密相关技术主要集中在 Category 5 Part 2(电信与信息安全),常见ECCN包括:
- 5A002:含加密功能的系统、设备和组件(硬件)
- 5B002:加密开发或生产设备(软件)
- 5D002:加密软件(包括源代码和目标码)
- 5E002:加密技术(如开发技术、安装指南)
即使你的软件是免费分发的,只要其功能涉及加密且非属公开可获取的例外,就可能需要申请出口许可或符合许可证例外的条件。
加密技术的管制范畴
EAR对“加密”的定义宽泛,涵盖:
- 对称密钥算法(如AES)
- 非对称算法(如RSA、ECC)
- 哈希算法本身虽然不直接是加密,但与数字签名结合使用时可能被纳入
- 密钥交换协议、数字证书管理
- 加密库、加密工具包、带有加密功能的应用
因此,一个提供HTTPS连接的Web服务器、一个使用端到端加密的消息App,乃至一个内嵌AES加密的数据备份脚本,均可能触及出口管制。
第二部分:开源加密源码的特别规定
公开可获取的含义
EAR在§734.3(b)中明确,已公开发布且可公开获取的信息和软件不受EAR管辖。具体条件包括:
- 已公开发布(如通过在线仓库、书店、公开广告渠道销售)
- 对所有人开放,没有访问限制(无需付费或签署协议)
- 不包含受专有权利控制的进一步分发限制
重要警示:单纯上传到私有GitHub仓库或其访问需要审批,不满足“公开可获取”要求。
TSU例外:公开加密源代码的条件
“技术与软件——无限制”(TSU)例外(§740.13)是豁免公开加密源代码的关键机制。按TSU例外,同时满足以下所有条件的加密源代码可免于许可要求:
- 源代码已“公开可获取”(上述定义);
- 属于ECCN 5D002的软件源代码,且其加密功能仅限于:
- 执行加密或解密操作以支持数据的机密性或完整性(如SSL/TLS、IPsec、文件加密);
- 不包含对密码分析功能(如破解工具)的源代码;
- 不被用于开发或生产受控的、非公开的加密技术(例如不提供后门、不用于军事最终用户);
- 在首次出口(如上传至全球可访问的公共仓库)前,必须向BIS发送加密登记通知(encryption registration),或者该源代码已通过其他方式被授权(例如归属已登记的加密项)。
关键注意:TSU例外不涵盖ECCN 5E002的技术(如设计原理文档、开发指南),仅针对源代码本身。
开源不等于自动豁免
许多开发者误认为“开源许可证 = 出口豁免”,这是危险的混淆。事实是:
- 只有符合EAR定义的公开可获取的开源软件,才因§734.3(b)豁免于EAR管辖。
- 如果你在发布前需要接受贡献者协议(CLA)或签署出口管制声明,可能构成限制访问,从而使软件失去豁免资格。
- 通过物理介质(如U盘)分发给特定接收者的软件,即使包含开源代码,仍需视作出口,须审查接收方和目的地。
出口与“视同出口”
“出口”不仅包括将软件实际运出美国国境,还包括向外国人在美国境内披露技术(所谓“视同出口”)。例如,一个美国公司允许外国同事(非永久居民)查看内部加密源代码,就可能构成出口。对于开源项目,如果你在私有Slack频道向外国贡献者提供未公开的加密设计细节,也属于EAR管辖的出口行为。
第三部分:双重用途挑战:当开源遇上出口合规
双重用途物项定义
双重用途物项指同时具有商业与军事或扩散应用的物品。加密技术天然地处于这一灰色地带——它既能保护用户隐私、支撑电子商务,也能被用于武器系统加密通信或规避制裁。
加密在商用和军用之间的界限
BIS使用加密技术评估矩阵来区分商用和军用,但开源项目难以简单归类:
- 提供强加密(如256位AES)的开源库,可能被归类为ECCN 5D002,受到大众市场加密(Mass Market)分类的约束。
- 如果你的开源软件设计用于军事、情报或执法最终用户,或被集成到武器系统中,即便源代码是公开的,也可能需要额外许可。
开源项目如何应对EAR要求
开源项目应对双重用途管制的核心策略是:
- 保持真正的公开可获取性:确保无需任何点击接受协议(clickwrap)即可下载;如果使用GitHub,仓库必须公开且不设置访问控制。
- 限制受控技术的非公开传播:内部讨论、设计文档、漏洞利用细节均属于可能受控的技术,不要轻易在非公开渠道与未授权外国人士分享。
- 进行自分类(self-classification):项目维护者应审查加密功能,确认ECCN和适用的例外。
- 如适用,完成BIS加密登记:某些开源加密软件在发布前需要提交一次性的加密注册通知(通过SNAP-R系统),或者确认符合ENC许可证例外的条件。
第四部分:合规实践指南
项目分类与自分类
- 确认加密功能范围:列出所有使用加密的模块、调用的加密库以及它们提供的功能。
- 查阅CCL(Commerce Control List):判断加密功能是否满足5D002的定义。若加密仅是用于用户认证(如口令哈希)且不保护数据流量,可能不归入5D002。
- 大众市场判断:如果软件面向一般公众销售或免费分发,且加密功能符合“大众市场”标准(例如符合特定加密算法和密钥长度),可能适用放松管制的规定。
应该如何记录和标记
- 在项目的README或合规声明中,注明:“本软件包含受美国出口管制条例(EAR)管辖的加密技术。通过公开发布,本软件被视为公开可获取,不受EAR管辖。”
- 保留发布日志,记录每一个公开发布版本的日期、发布方式(GitHub public repo)和加密功能摘要,以备审计。
- 如果项目需要向BIS提交加密注册,请保存提交确认号。
发布到开源社区的步骤
- 确保代码合规:清除任何密码分析、后门或军事专用功能。
- 使用公共平台:仅通过GitHub公共仓库、官方镜像等无访问限制渠道发布。
- 避免附加额外限制:不要在下载页面强制用户同意出口管制声明(这会破坏“公开可获取”),若确实需要告知,可放置非阻塞性提示。
- 如适用ENC例外:某些加密出口可依据许可证例外ENC(§740.17)自动授权,但仍要求首次出口前自我分类并可能提交加密注册。
接收贡献与跨国合作时的注意事项
- Pull Request审核:检查贡献者是否提交了新的加密功能,可能改变项目的ECCN分类。
- 不要私下索取加密技术细节:如需讨论设计,应使用公开的邮件列表或公共论坛,避免视同出口风险。
- 限制受制裁国家参与:虽然公开可获取软件不受EAR管辖,但如果你与位于古巴、伊朗、朝鲜、叙利亚、克里米亚地区等受制裁目的地的个人有了“服务”或“支持”性质的互动(即使只提供技术支持),则可能触犯其他制裁法规。保持社区互动透明、公开,并拒绝提供一对一援助。
通知与许可证例外(ENC)
- 许可证例外ENC:授权出口特定的加密软件、技术和组件给非政府最终用户。多数开源加密软件可通过ENC例外出口,但须满足条件:面向一般公众分发,且不用于政府最终用户(除少数友好政府外)。
- 加密注册要求:即使是公开可获取的代码,如果使用TSU例外,许多情形下仍需向BIS提交加密注册(仅声明分类,不是申请许可)。自2016年规则改革后,大多数开源加密项目只需一次性电子邮件通知,说明ECCN和适用例外,每年更新即可。
避免常见陷阱
- 以为非美国公司无须遵守EAR:EAR具有域外效力,再出口(例如从德国向中国出口原产美国技术的产品)同样受管制。只要你的软件包含受控的美国原产加密代码,无论你在哪里,都可能受到约束。
- 使用第三方加密库不自动合规:集成OpenSSL并不意味着你的应用自动豁免;你需要评估整体加密功能。
- 忘记更新登记信息:如果你的软件加密功能发生重大变化(如增加了量子安全算法),可能需要更新BIS通知或重新自我分类。
第五部分:总结与资源
要点总结
- 加密技术受EAR严格管制,但真正公开可获取的开源加密源代码享有豁免。
- “公开可获取”要求无访问限制、无需签约,普通GitHub公共仓库通常满足条件。
- TSU例外和ENC例外是开源加密项目最常用的合规路径,但通常需要向BIS提交一次性加密注册。
- 双重用途属性意味着开源维护者必须警惕军事用途,并保持开发活动的公开性,避免“视同出口”违规。
- 合规是动态的:代码变更、新贡献、发布方式改变都可能影响出口状态。
官方资源链接
- BIS出口管制条例全文:https://www.bis.doc.gov/index.php/regulations/export-administration-regulations-ear
- 加密与出口管理:https://www.bis.doc.gov/index.php/policy-guidance/encryption
- SNAP-R出口申请与注册系统:https://snapr.bis.doc.gov/
- 大众市场加密分类指引:https://www.bis.doc.gov/index.php/documents/encryption/2561-mass-market-encryption-commodity-and-software
下一步
- 自我审查你的开源项目,完成加密功能清单与ECCN初步分类。
- 如果你的项目符合TSU例外且未曾注册,请访问BIS网站,提交一份加密注册通知(约需15分钟)。
- 在项目文档中增加合规声明,并制定公开协作准则。
- 持续关注BIS法规更新,特别是“新兴技术”对加密算法的新增管控。
通过主动理解和运用现有规则,开源社区完全可以在合法框架下继续自由创新,同时保护国家安全与全球协作。