使用 Apple 推送通知服务是不是会使应用“使用加密”?

Posted

技术标签:

【中文标题】使用 Apple 推送通知服务是不是会使应用“使用加密”?【英文标题】:Does using Apples Push Notification service make the app "use encryption"?使用 Apple 推送通知服务是否会使应用“使用加密”? 【发布时间】:2014-01-30 22:30:01 【问题描述】:

我的应用程序使用 Apple 推送通知服务来接收来自我的服务器的推送。尝试将应用添加到应用商店的问题之一:

您的产品是否设计为使用加密技术,或者它是否包含或 加入密码学?

这是肯定的,直接因为他们的推送服务生成和分发密钥。

接着是:

您的产品是否符合 第 5 类第 2 部分?

您有责任对您的产品进行正确分类; 确保它符合豁免标准(列出 这里)。否则您可能会违反美国出口法律和 可能会受到处罚,包括将您的应用从 应用商店。请在尝试之前彻底浏览常见问题解答页面 回答问题。

如果您的应用中的加密是:您可以对问题 #2 回答“是”: (a) 专为医疗最终用途而设计; (b) 限于 知识产权或版权保护; (c) 限于 身份验证、数字签名或数据或文件的解密; (d) 专为银行用途或“货币”而设计和限制 交易”; (e) 仅限于“固定”数据压缩或编码 技术;或 (f) 如果您的应用符合备注中提供的描述 4 至 5 类第 2 部分。

而且,老实说,我不知道 Apple 是如何向您提供设备令牌的。可能的例外可能属于 (c) 条款,但我不知道苹果如何使用他们的加密。他们的docs 说“已建立认可和加密的 IP 连接”,但没有说它是如何使用的。或者它可能属于 (e) 条款,但他们没有记录他们的加密方法是什么。他们的FAQ(你需要一个 iTunes 连接帐户才能看到它)列出了这些例外的加密方法:

(iii) 您的应用使用、访问、实施或合并加密 密钥长度不超过 56 位对称,512 位非对称 和/或 112 位椭圆曲线

(iv) 您的应用是大众市场产品,密钥长度不超过 64 位对称,或者如果没有对称算法,则不超过 768 位不对称和/或 128 位椭圆曲线。

我不明白,但我希望 Apple 会遵守这样的规定?

也可能是:

(vi) 你的应用程序的源代码是“公开的”,你的应用程序 免费分发给公众,并且您已经遇到了 根据 740.13.(e) 提供的通知要求。

Urban airship 引用的使用他们的服务的原因与密钥长度一起被视为例外。但是……Apple 绝不是开源的。

你们是怎么解决这个问题的?

【问题讨论】:

警告:我不是律师 (IANAL)。但是,我听说(这对我来说很有意义)这个问题主要针对您的应用程序中包含的 Apple 未提供的代码。不知道这是否属实,但对我来说似乎很合理。在这种解释中,答案是“不”。 这不是问的正确地方,但只要您不向用户提供加密,您就不必过分担心。 这肯定是问的正确地方,因为没有其他地方了哈哈,这个问题 (***.com/q/2135081/1709073) 说 SSL 连接属于“使用加密”,APS 肯定使用 SSL 来获取密钥以及来自他们的服务和您的应用程序的通知,但这就是我的应用程序中的所有 SSL 问你自己一个问题:我是否在加密任何东西?除非您明确加密某些内容或使用正在加密某些内容的第 3 方库,否则答案应该是否。请注意,MD5 和 SHA 等哈希函数不是加密。最后需要注意的是:请教律师,就像萨金特·舒尔茨 (Sargent Shultz) 常说的那样:“我什么都不知道”。 为什么它属于加密货币?争论不在于是否使用了密码学,它是,或者关于正在使用的密码学方法。这是一个关于 APPLE 提供的推送服务的编码使用对 APPLE 的出口合规协议的影响以及 SO 社区中的其他人如何处理它的问题。 【参考方案1】:

您的产品是否设计为使用加密技术,或者它是否包含或 加入密码学?

这里的关键是“你的产品”......你的应用没有设计 APNS,Apple 设计了,你只需实现他们的协议。

使用 Apple 的推送通知服务不是第 3 方,因此不适用于此处适用的加密方法,因为归根结底,他们完全控制它并可以随时撤销访问权限。

除非您的应用中有其他加密技术,否则您可以放心地回答“否”。

【讨论】:

谁设计了代码没有区别,重要的是设备上的使用情况。服务器上发生的事情无关紧要,因为该代码没有在应用程序中导出。这完全是关于“弹药”的出口管制,而苹果是出口商。违反出口管制会产生非常严重的后果,而苹果是出口商,因此他们必须确保他们为开发者销售的应用程序没有违规。 但它被设计为使用使用密码学的 apns。服务器代码不会被导出,但设备会根据在设备上创建设备令牌时提供的密钥对服务器提供的数据进行解密,并将其导出。苹果明确表示,他们不负责向出口当局注册应用程序的凭据。这是我的应用程序,带有使用他们的服务的代码,因此使用他们的解密属于我的产品责任

以上是关于使用 Apple 推送通知服务是不是会使应用“使用加密”?的主要内容,如果未能解决你的问题,请参考以下文章

使用 APNS 的 Apple 推送通知是不是免费?

我可以使用 Apple 的推送通知服务发送图像吗? [关闭]

Apple 向特定用户推送通知

使用 Apple 的推送通知服务 (APNS) 避免重复

如何在没有 iPhone 的情况下测试 Apple 推送通知服务?

Apple 推送通知令牌