Export Compliance — 是应用商店对带有加密功能的产品施加的出口管制要求。开发者必须指明密码学类别,并根据美国工业和安全局(BIS)的规定提交声明。根据 Apple Export Compliance Documentation, 2026,填写不正确将导致构建被拒。该流程同时适用于 App Store 和 Google Play,并且需要理解 CCAT 类别和大规模市场。
要点
Export Compliance — 是一套监管要求,用于规范带有密码学功能的软件从美国出口。规则由美国商务部工业和安全局(BIS)在 15 CFR Parts 730–774 框架内制定。Apple 和 Google 作为美国公司,有义务检查应用是否符合这些规范。开发者填写声明,指明加密类别和算法类型。
监管的基础是 EAR(出口管理条例),它将所有密码学软件按类别分类。第 5 类第 2 部分涵盖带有加密功能的产品。对于移动应用,适用简化规则 — 大规模市场(mass market)和通知程序(self-classification)。如果应用属于例外情况,开发者无需获得个人许可证。
任何使用加密功能的应用都必须通过检查。例外 — 仅使用操作系统内置加密(iOS URLSession、Android SSLSocket)而不添加自有密码学算法的产品。如果开发者添加了自定义加密、OpenSSL 库或任何 AES/RSA 实现,则声明是强制性的。根据 Google Play Console 的数据,大约 30% 被拒应用因 Export Compliance 错误而被拒绝。
出口管制通过限制密码学技术的传播来保护国家安全。美国要求报告带加密的产品,以防止其被用于非法目的。对于开发者来说,不遵守规则会导致应用被封锁、最高 100 万美元的罚款以及发布禁令。Apple 和 Google 作为管制代理 — 没有正确的声明,它们不会让构建通过。
违反 Export Compliance 可能导致应用从商店中移除以及开发者被列入黑名单。BIS 有权实施行政处罚,包括高额罚款。2024 年,BIS 对三家公司处以超过 200 万美元的罚款,原因是它们发布了带有未认证加密的软件。对于独立开发者来说,主要风险是构建被拒和重新发布的时间损失。
Apple 和 Google 充当开发者和监管者之间的中介。App Store Connect 和 Google Play Console 在上传阶段包含强制性的 Export Compliance 表单。未完成此步骤,提交审核的按钮将被锁定。商店不检查数据的正确性 — 只检查其存在。数据的真实性责任由开发者承担。
加密分类从回答一个问题开始:应用是否使用自己的密码学?如果应用仅依赖操作系统的标准 API(iOS 上的 CommonCrypto,Android 上的 javax.crypto),则属于例外情况,无需声明。如果添加了外部库或实现了自己的算法,则需要确定 CCAT 类别。
CCAT-1 — 符合 EAR 740.17 例外的大规模市场商品(mass market)。这包括使用 AES-128/256、RSA-2048 加密并使用标准 TLS/HTTPS 协议的应用。 CCAT-2 — 具有非标准密码学且需要个人许可证的产品。大多数移动应用属于 CCAT-1。大规模市场类别是最简单的声明形式。
如果应用的密码学功能可供广大受众使用、不需要特殊知识即可使用并且符合开放标准,则该应用被视为大规模市场产品。根据 BIS Supplementary Information(2025),大规模市场包括使用 AES、RSA、ECC 和 TLS 1.2/1.3 实现的应用。如果应用使用密钥长度小于 56 位的非标准算法,则被排除在此类别之外。
App Store 中的 Export Compliance 流程在上传新构建时在 App Store Connect 中开始。系统提出一系列问题:应用是否使用加密、是否属于大规模市场、ERN 是否已注册。开发者回答,根据答案形成出口状态。如果出现错误,状态可以更改 — Apple 不会因更正而罚款,但必须重新上传构建。
ERN(加密注册号)— 在 BIS 的年度注册编号,确认产品已通过通知程序分类。ERN 注册是免费的,有效期一年。申请表格是 BIS 网站上的 SNAP-R。获得 ERN 后,开发者在 App Store Connect 中输入该编号,并在一年内的后续上传中免于重复提问。根据 Apple 的统计数据,60% 的开发者使用 ERN 来简化流程。
如果没有 ERN,开发者通过 App Store Connect 界面进行自行分类。Apple 使用基于答案的算法来分配类别。在选择错误时,系统建议获取 ERN。自行分类适用于具有标准加密的简单应用。对于具有非标准密码学的产品,Apple 建议注册 ERN 以避免错误。
Google Play 通过开发者控制台中的表单进行 Export Compliance 检查。在创建新版本的阶段,系统要求提供有关密码学信息。Google 使用与 Apple 相同的 EAR 类别,但该过程称为 Export Compliance Review。答案被记录并应用于所有未来构建。Google 对大多数应用不要求 ERN — 声明属于大规模市场即可。
在 Google Play Console 中,Export Compliance 部分位于应用设置的 App Content 中。开发者回答三个问题:应用是否包含密码学、是否面向大规模市场、是否符合 740.17 例外。Google 在出现投诉之前不检查答案的真实性。但是,BIS 可以要求提供文件,开发者有义务提供分类的证明。
主要区别 — Apple 对复杂情况要求 ERN,Google 依赖于自我声明。App Store 要求每个新构建提供 Export Compliance,Google Play — 对应用只需一次。Apple 更严格地检查答案并可以拒绝构建,Google 仅记录数据。两家商店都遵循统一的 EAR 监管框架,但实施过程有所不同。开发者只需了解分类一次即可在两个平台上发布。
Export Compliance 中的错误分为三类:加密分类错误、遗漏必填字段和 ERN 无效。最常见的 — 开发者表示未使用加密,而应用调用了 CommonCrypto 或 javax.crypto 方法。第二种最常见的 — 当具有 TLS 1.3 的应用被标记为非标准密码学时选择了错误的 CCAT 类别。第三种 — 输入未通过 BIS 数据库验证的无效 ERN。
建议在填写表单之前列出所有应用的密码学功能。检查导入了哪些库、调用了哪些加密 API。对于 iOS — 检查 CommonCrypto、Security.framework、OpenSSL 的存在。对于 Android — javax.crypto、android.security、Conscrypt。如果应用仅通过标准网络请求使用 HTTPS,则免于声明。如有任何疑问,请选择带声明的选项。
定期 Export Compliance 审计有助于在更新应用时避免处罚。如果在新版本中添加了密码学,必须重新填写声明。Apple 和 Google 会在应用类别发生变化时通知开发者。建议每年检查 ERN 的有效性并根据需要续期。对于拥有数十个应用的大型项目,通过 CI/CD 自动化审计可降低人为错误的风险。
常见问题
不需要,如果 HTTPS 是通过操作系统的内置 API(iOS 上的 URLSession,Android 上的 HttpURLConnection)实现的,没有添加自己的证书或自定义密码学算法,则无需声明。例外 — 使用 OpenSSL 或其他第三方 TLS 库。
ERN(加密注册号)— 在 BIS 的年度注册标识符。可以通过 bis.gov 网站上的 SNAP-R 系统免费获取,填写分类通知表格。编号有效期为 1 年,涵盖应用的所有版本。
是的,如果对 Export Compliance 问题的回答存在矛盾或不符应用功能,Apple 可能会拒绝构建。在这种情况下,开发者会收到来自 App Store Review 的消息,说明原因,并可以使用更正后的数据重新上传构建。
EAR 监管框架是统一的,但流程不同:Apple 检查每个构建,Google — 对应用只需一次。Apple 要求非标准密码学提供 ERN,Google 接受自我声明。两家商店都遵循 CCAT 类别和 BIS 规则。
App Store 和 Google Play 会阻止未填写 Export Compliance 表单的构建上传。应用将无法通过审核,发布将不可能。对于已发布的应用,更改出口状态需要新编译和重新审核。
总结
我们将开发一款交钥匙移动应用程序
IT Sectr自2017年以来为初创企业和企业打造iOS和Android应用程序。我们将为您提供咨询并提出最佳解决方案。