App Store 或 Google Play 应用的加密和出口许可证

Encryption and export license for an App Store or Google Play app

我的 iOS 应用程序使用 crypto++ 作为保密的静态库。 由于这个库是开源的,因此对于任何可能的不法行为者都是可见的,常识意味着应该没有麻烦。 但是,基于第 5 类第 2 部分 U.S。出口管理条例,我的应用程序似乎没有明确豁免,但我不能确定,因为法律往往是一团混乱的例外情况和随机的头发分裂,所以我想问问你们中那些有实际经验的人,包括在您的应用程序中使用开源加密库(Android 建议也可以):

我需要经历所有获得 EAR 批准的麻烦吗?

My iOS app uses crypto++ as a static library for confidentiality...
However, based on Category 5, Part 2 of the U.S. Export Administration Regulations, my app does NOT seem to be exempt explicitly...

正确。出口法规适用于加密技术。

有一些豁免。例如,如果密钥大小为 63 位或更小,则您不需要出口许可证,因为 License Exemption is provided。您还可以在没有许可证的情况下构建测试系统并运送测试系统。

如果你属于这一类,你还是要自己归类。你只是不需要许可证。当你填写文书时,你写"NLR - No License Required"。但这可能不是你...

如果您仅使用加密技术进行身份验证(而不是加密),那么您将不需要出口许可证。或者,如果您通过 TestFlight 将您的应用分发到 Beta 测试,则您不需要出口许可证。但是,Apple 仍然需要许可证,因为他们没有花时间区分加密和身份验证;或 Beta 测试与发布...


Since this library is open-sourced, and thus visible to any would-be wrong-doers as it is, common sense implies that there should be no hassle...

您的应用与其使用的底层加密库有不同的要求。要求底层库做什么和要求你做什么是两件不同的事情。

例如,OpenSSL 和 Crypto++ 属于 EAR 734 和 740,他们只需要向 BIS 和加密协调员发送一封电子邮件,并附上 link 到他们的网站和源代码。你必须做更多...


Do I need to go through all that hassle of getting an EAR approval?

是的。最后,您需要做的就是注册一个 SNAP-R 帐户并进行自我分类。当你自我分类时,你会查找一些代码,填写一些文书工作,收集一些额外的文件,然后将其提交给 BIS 和加密协调员。

提交后,BIS等待加密协调员反对或拒绝申请。在加密协调员沉默 30 天后,BIS 颁发了许可证。

顺便说一句,加密协调员是国家安全局。那是他们的米德堡邮寄地址。


... I wish to ask those of you with actual experience with including an open-source encryption library in your apps

我在整个过程中管理了 3 个图书馆和 1 个应用程序。在这些库中,一个库是基于 OpenSSL 的,一个库是基于 Crypto++ 的。 None 被拒。


... I cannot tell for sure as law tends to be a convoluted mess of exceptions and random hair-splitting...

跑题了,不过 BIS 的女士们都很好。你拨打这个号码,一个真人接听。他们相当知识渊博。他们是告诉我测试豁免的人。

为了与那些知识渊博的女士交谈,这里是您正在寻找的办公室的名称:出口商服务办公室,加密部门 .他们的 phone 号码会出现在 Google 搜索中(知道办公室名称后就很容易了)。


相关,这可能就是你要找的信息:怎么做。 Zetetic 在 Mass Market Encryption CCATS Commodity Classification for iPhone Applications in 8 Easy Steps 上有一套很好的说明可以做到这一点。这是我一年前第一次用的。


(comment) and if I want to publish an Android version of the same app on Google Play, can I reuse the license, or do I need to do it over?

是的。许可证是为应用程序而非 Play 商店颁发的。


(comment) What about updates that do not touch crypto++, but expose an additional algorithm for the user to choose from in the UI, i.e. first I want to use only RSA for dig. signatures, but in the next version I want to add ECDSA as choice?

我不记得了。给 出口商服务办公室加密司 的女士们打电话。他们真的很有帮助。

如果您要添加或修改核心加密例程(这就是本文所涵盖的内容),那么您可能需要更新到现有应用程序或重新分类。

如果您只是更改签名算法,那么它只是实体身份验证,可能不需要更新现有应用程序或重新分类。

我问了一个类似的问题:它是关于在没有 crpyto 更改的情况下命名产品和(重新)品牌。就我而言,重命名不需要重新分类。