如何确定我的应用程序是否包含加密?
How to determine if my app contains encryption?
在 TestFlight 上为我的 iOS 应用程序部署构建后,Apple 要求我填写 "Export Compliance Information" 以下问题:
Does your app use encryption?
Select Yes even if your app only uses the
standard encryption within Apple’s operating system.
我在 Whosebug 上搜索了一些答案,但我的案例有点具体,还没有找到明确的答案。
- 我正在使用 https 连接到服务器。
- 我正在使用 Apple Keychain 来存储用户凭据。
- 我在后端对 encrypt/decrypt 秘密文件使用加密,并在我的应用发出 https 请求时发送解密内容作为响应(因此对于这种情况,我的应用不直接使用加密)。
我假设第一个问题的答案是肯定的。肯定是因为 Apple Keychain 本身使用了加密。
如果我 select 是,我进入下一个问题:
Does your app qualify for any of the exemptions provided in Category 5,
Part 2 of the U.S. Export Administration Regulations?
Make sure that your app meets the criteria of the exemption listed below.
You are responsible for the proper classification of your product.
Incorrectly classifying your app may lead to you being in violation of
U.S. export laws and could make you subject to penalties,
including your app being removed from the App Store.
You can select Yes for this question if the encryption of your app is:
(a) Specially designed for medical end-use
(b) Limited to intellectual property and copyright protection
(c) Limited to authentication, digital signature, or the decryption of data or files
(d) Specially designed and limited for banking use or “money transactions”; or
(e) Limited to “fixed” data compression or coding techniques
You can also select Yes if your app meets the descriptions provided in Note 4 for Category 5, Part 2 of the U.S. Export Administration Regulations.
我假设我的应用程序是 c))
(c) Limited to authentication, digital signature, or the decryption of data or files
因此这个问题的答案也是肯定的。
但是我不确定这一点,想知道您的意见,最好有一个简短的解释。
谢谢。
PS:我提供了有用的链接,这些链接帮助我了解了如何提交自我分类报告:
https://kitefaster.com/2017/08/10/encryption-export-compliance-ios-apps
https://simonfairbairn.com/bis-year-end-self-classification-report
这是来自Apple's article about Complying with Encryption Export Regulations
Typically, the use of encryption that’s built into the operating
system—for example, when your app makes HTTPS connections using
URLSession—is exempt from export documentation upload requirements,
whereas the use of proprietary encryption is not. To determine whether
your use of encryption is considered exempt, see Determine your export
compliance requirements.
我从这句话中注意到的重要内容是术语 "proprietary" 以及 HTTPS 现在不受监管的事实 。我相信这也意味着钥匙串也不应该包含在其中,因为据我所知它是 public 加密。
但我非常不安地说,您在应用程序后端使用的加密在法规中是安全的,因为它可以被视为专有的,并且可以被视为您的应用程序的扩展,而不是一个单独的实体。从历史上看,Apple 非常愿意删除他们认为不符合其指导方针的应用程序。这是一个很好的堆栈溢出问题和 Reddit link 你应该通读以确保安全堆栈溢出答案似乎非常彻底。 Stack Overflow and Reddit.
抱歉,关于后端加密的第三点,我无法帮助您。我希望你能找到一些我在我提供的 link 中没有看到的答案。
有关 TestFlight 应用程序的规则与 "real" AppStore 版本略有不同,但过程非常相似。
正如您所说,第一个问题是“您的应用程序是否使用加密?”
即使您的应用仅在 iOS 和 macOS / XCode.
中使用标准加密,您也应该在此处 select "Yes"
基本上:
在这种情况下使用加密包括但不限于:
- Making calls over secure channels (i.e. HTTPS, SSL, and so on).
- Using standard encryption algorithms.
- Using crypto functionality from other sources such as iOS or macOS.
- Using proprietary or non-standard encryption algorithms.
U.S。政府将 "non-standard cryptography" 定义为 "cryptography" 的任何实施,涉及合并或使用专有或未发布的加密功能,包括尚未被正式认可的国际标准机构采用或批准的加密算法或协议。
您的应用是否符合类别 5 中提供的任何豁免条件,
U.S 第 2 部分。出口管理条例?
正如您所说,如果您不使用任何专有或非标准算法,选项 C 通常是足够的和正确的选择。
顺便说一下,这是他们提到的 "Note 4 for Category 5" 的 link。
当您将应用程序的最终版本提交到实际的 App Store 时,您将需要在 App Store Connect 中再次回答这些问题。
确定您的出口合规要求,等等……
基本上,在以下情况下你可以说是:
Select "Yes" for this question if the encryption of your app is:
a. Specially designed for medical end-use
b. Limited to intellectual property and copyright protection
c. Limited to authentication, digital signature, or the decryption of data or files
d. Specially designed and limited for banking use or “money transactions”; or
e. Limited to “fixed” data compression or coding techniques
以后一般都没有问题,只要通过内测等即可。
导出/分发到 App Store 时按照提示操作即可。
记得为您的构建更新 Xcode 设置。
顺便说一句:如有疑问,请咨询律师以获得法律指导!这只是我对过程的理解。
在 TestFlight 上为我的 iOS 应用程序部署构建后,Apple 要求我填写 "Export Compliance Information" 以下问题:
Does your app use encryption?
Select Yes even if your app only uses the
standard encryption within Apple’s operating system.
我在 Whosebug 上搜索了一些答案,但我的案例有点具体,还没有找到明确的答案。
- 我正在使用 https 连接到服务器。
- 我正在使用 Apple Keychain 来存储用户凭据。
- 我在后端对 encrypt/decrypt 秘密文件使用加密,并在我的应用发出 https 请求时发送解密内容作为响应(因此对于这种情况,我的应用不直接使用加密)。
我假设第一个问题的答案是肯定的。肯定是因为 Apple Keychain 本身使用了加密。
如果我 select 是,我进入下一个问题:
Does your app qualify for any of the exemptions provided in Category 5,
Part 2 of the U.S. Export Administration Regulations?
Make sure that your app meets the criteria of the exemption listed below.
You are responsible for the proper classification of your product.
Incorrectly classifying your app may lead to you being in violation of
U.S. export laws and could make you subject to penalties,
including your app being removed from the App Store.
You can select Yes for this question if the encryption of your app is:
(a) Specially designed for medical end-use
(b) Limited to intellectual property and copyright protection
(c) Limited to authentication, digital signature, or the decryption of data or files
(d) Specially designed and limited for banking use or “money transactions”; or
(e) Limited to “fixed” data compression or coding techniques
You can also select Yes if your app meets the descriptions provided in Note 4 for Category 5, Part 2 of the U.S. Export Administration Regulations.
我假设我的应用程序是 c))
(c) Limited to authentication, digital signature, or the decryption of data or files
因此这个问题的答案也是肯定的。
但是我不确定这一点,想知道您的意见,最好有一个简短的解释。
谢谢。
PS:我提供了有用的链接,这些链接帮助我了解了如何提交自我分类报告:
https://kitefaster.com/2017/08/10/encryption-export-compliance-ios-apps https://simonfairbairn.com/bis-year-end-self-classification-report
这是来自Apple's article about Complying with Encryption Export Regulations
Typically, the use of encryption that’s built into the operating system—for example, when your app makes HTTPS connections using URLSession—is exempt from export documentation upload requirements, whereas the use of proprietary encryption is not. To determine whether your use of encryption is considered exempt, see Determine your export compliance requirements.
我从这句话中注意到的重要内容是术语 "proprietary" 以及 HTTPS 现在不受监管的事实 。我相信这也意味着钥匙串也不应该包含在其中,因为据我所知它是 public 加密。
但我非常不安地说,您在应用程序后端使用的加密在法规中是安全的,因为它可以被视为专有的,并且可以被视为您的应用程序的扩展,而不是一个单独的实体。从历史上看,Apple 非常愿意删除他们认为不符合其指导方针的应用程序。这是一个很好的堆栈溢出问题和 Reddit link 你应该通读以确保安全堆栈溢出答案似乎非常彻底。 Stack Overflow and Reddit.
抱歉,关于后端加密的第三点,我无法帮助您。我希望你能找到一些我在我提供的 link 中没有看到的答案。
有关 TestFlight 应用程序的规则与 "real" AppStore 版本略有不同,但过程非常相似。
正如您所说,第一个问题是“您的应用程序是否使用加密?” 即使您的应用仅在 iOS 和 macOS / XCode.
中使用标准加密,您也应该在此处 select "Yes"基本上: 在这种情况下使用加密包括但不限于:
- Making calls over secure channels (i.e. HTTPS, SSL, and so on).
- Using standard encryption algorithms.
- Using crypto functionality from other sources such as iOS or macOS.
- Using proprietary or non-standard encryption algorithms.
U.S。政府将 "non-standard cryptography" 定义为 "cryptography" 的任何实施,涉及合并或使用专有或未发布的加密功能,包括尚未被正式认可的国际标准机构采用或批准的加密算法或协议。
您的应用是否符合类别 5 中提供的任何豁免条件, U.S 第 2 部分。出口管理条例?
正如您所说,如果您不使用任何专有或非标准算法,选项 C 通常是足够的和正确的选择。
顺便说一下,这是他们提到的 "Note 4 for Category 5" 的 link。
当您将应用程序的最终版本提交到实际的 App Store 时,您将需要在 App Store Connect 中再次回答这些问题。
确定您的出口合规要求,等等……
基本上,在以下情况下你可以说是:
Select "Yes" for this question if the encryption of your app is:
a. Specially designed for medical end-use
b. Limited to intellectual property and copyright protection
c. Limited to authentication, digital signature, or the decryption of data or files
d. Specially designed and limited for banking use or “money transactions”; or
e. Limited to “fixed” data compression or coding techniques
以后一般都没有问题,只要通过内测等即可。 导出/分发到 App Store 时按照提示操作即可。
记得为您的构建更新 Xcode 设置。
顺便说一句:如有疑问,请咨询律师以获得法律指导!这只是我对过程的理解。