我的 iOS 应用程序使用 crypto++ 作为静态库来保证机密性...
但是,根据美国出口管理条例第 2 部分第 5 类,我的应用似乎没有明确豁免...
正确。出口法规适用于加密技术。
有一些豁免。例如,如果密钥大小为 63 位或更小,则不需要导出许可证,因为 License Exemption is provided。您还可以在没有许可证的情况下构建测试系统和发布测试系统。
如果你属于这一类,你仍然需要自我分类。你只是不需要许可证。当您填写文书工作时,您会写 “NLR - 无需许可证”。但这可能不是你……
如果您只使用加密进行身份验证(而不是加密),那么您不需要出口许可证。或者,如果您通过 TestFlight 将您的应用分发到 beta 测试,那么您不需要出口许可证。但是,Apple 仍然需要许可证,因为他们没有花时间区分加密和身份验证;或 beta 测试与发布...
由于这个库是开源的,因此任何可能做错事的人都可以看到它,常识意味着不应该有麻烦......
您的应用与其使用的底层加密库有不同的要求。底层库需要做什么和你需要做什么是两件不同的事情。
例如,OpenSSL 和 Crypto++ 属于 EAR 734 和 740,它们只需向 BIS 和加密协调员发送一封电子邮件,其中包含指向其网站和源代码的链接。你必须做更多...
我是否需要经历获得 EAR 批准的所有麻烦?
是的。最后,您需要做的就是注册一个 SNAP-R 帐户并进行自我分类。当您进行自我分类时,您会查找一些代码,填写一些文书工作,组装一些额外的文档,然后将其提交给 BIS 和加密协调员。
提交后,BIS 等待加密协调器反对或拒绝申请。在加密协调员沉默 30 天后,BIS 颁发许可证。
顺便说一下,加密协调员是 NSA。这是他们的米德堡邮寄地址。
...我想请教那些在您的应用程序中包含开源加密库的实际经验
我在整个过程中引导了 3 个库和 1 个应用程序。在这些库中,一个库是基于 OpenSSL 的,一个库是基于 Crypto++ 的。没有一个被拒绝。
...我无法确定,因为法律往往是一堆令人费解的例外和随机的头发分裂...
题外话,但是 BIS 的女士们非常好。你拨打这个号码,一个真人接听。他们相当知识渊博。他们是告诉我测试豁免的人。
为了与那些知识渊博的女士交谈,这里是您正在寻找的办公室的名称:出口商服务办公室,加密部门。他们的电话号码会显示在 Google 搜索中(只要您知道办公室名称就很容易了)。
相关,这可能是您寻求的信息:如何去做。 Zetetic 在Mass Market Encryption CCATS Commodity Classification for iPhone Applications in 8 Easy Steps 上有一套很好的说明。这是我一年前第一次使用的。
(评论)如果我想在 Google Play 上发布同一应用的 Android 版本,我可以重复使用许可证吗?还是需要重新做一遍?
是的。许可证是为应用程序而非 Play 商店颁发的。
(评论)如果更新不涉及加密++,但会在 UI 中公开一个额外的算法供用户选择,即首先我只想使用 RSA 进行挖掘。签名,但在下一个版本中我想添加 ECDSA 作为选择?
我不记得了。致电加密部门出口商服务办公室的女士们。他们真的很有帮助。
如果您要添加或修改核心加密例程(这就是本文所涵盖的内容),那么您可能需要更新到现有应用程序或重新分类。
如果您只是更改签名算法,那么它只是实体身份验证,可能不需要更新现有应用程序或重新分类。
我问了一个类似的问题:它是关于命名产品和(重新)品牌化而不更改 crpyto。就我而言,重命名不需要重新分类。