在 AppStore Connect 中选择啥?我的应用程序是不是使用加密?

Posted

技术标签:

【中文标题】在 AppStore Connect 中选择啥?我的应用程序是不是使用加密?【英文标题】:What to choose in AppStore Connect ? Does my app use encryption?在 AppStore Connect 中选择什么?我的应用程序是否使用加密? 【发布时间】:2021-03-11 18:45:37 【问题描述】:

下午好。

我有这样一个问题。当我在应用商店下载应用时,我会被问到: “您的应用是为使用加密而设计的,还是包含或包含加密?”。

我有一个私有库,我为每个单独的项目授权。

我获得了项目参数(应用程序名称、BundleID 等)。 我生成(独立、手动)几个密钥,用于 base64AES256。 然后我将这些常量插入到库中。

图书馆有一个安全机制。 每次启动使用我的库的应用程序时,它都会提取一些项目参数,将它们转换为 AES256/base64,并将它们与其常量进行比较。

如果它们不同,则意味着框架被插入到我没有许可使用框架的项目中。

我应该在 iTunes 连接中选择什么?我的应用程序(使用具有盗版保护机制的库)是否使用加密?

附言 我在库中还有一个类,其中包含将 NSString 转换为 NSData 的不同方法,反之亦然。 下面是 .h 文件。我只使用其中的一部分,只是为了检查许可证。

在设备上本地检查许可证!我不会将数据发送到任何地方。

/*-------------------------------------------------
 CommonHMAC
 --------------------------------------------------*/
@interface NSData (CommonHMAC)
- (NSData*) HMACWithAlgorithm:(CCHmacAlgorithm) algorithm;
- (NSData*) HMACWithAlgorithm:(CCHmacAlgorithm) algorithm key:(id)key;
@end

/*---------------------------------------------------------
 CommonCryptor
 ---------------------------------------------------------*/
@interface NSData (CommonCryptor)
- (NSData*) AES256EncryptedDataUsingKey:(id)key error:(NSError **) error;
- (NSData*) decryptedAES256DataUsingKey:(id)key error:(NSError **) error;
- (NSData*) DESEncryptedDataUsingKey:(id)key    error:(NSError **) error;
- (NSData*) decryptedDESDataUsingKey:(id)key    error:(NSError **) error;
- (NSData*) CASTEncryptedDataUsingKey:(id)key   error:(NSError **) error;
- (NSData*) decryptedCASTDataUsingKey:(id)key   error:(NSError **) error;
@end

/*--------------------------------------------------------
 CommonDigest
 ---------------------------------------------------------*/
@interface NSData (CommonDigest)
- (NSData*) MD2Sum;
- (NSData*) MD4Sum;
- (NSData*) MD5Sum;
- (NSData*) SHA1Hash;
- (NSData*) SHA224Hash;
- (NSData*) SHA256Hash;
- (NSData*) SHA384Hash;
- (NSData*) SHA512Hash;
@end

【问题讨论】:

【参考方案1】:

Apple 在这里提供了很好的指导:https://help.apple.com/app-store-connect/#/dev88f5c7bf9

如果您在美国,还可以在此处查看美国商务部信息:https://www.bis.doc.gov/index.php/documents/regulations-docs/445-category-5-part-2-information-security

Apple 指南中的 TLDR 是: 加密的使用包括但不限于:

通过安全通道(即 HTTPS、SSL 等)进行调用。 使用标准加密算法。 使用来自其他来源(例如 ios 或 macOS)的加密功能。 使用专有或非标准加密算法。

因此,我们所有构建对 API 进行 HTTPS 调用的应用程序的人都应该对这个问题回答 Yes

【讨论】:

以上是关于在 AppStore Connect 中选择啥?我的应用程序是不是使用加密?的主要内容,如果未能解决你的问题,请参考以下文章

AppStore Connect 是不是应该打开 Unrestricted Web Access?

在 appstore connect 中上传的应用程序未在 testflight 中显示

如何在 iTunes Connect 地区选择孟加拉国国家?

Codemagic 未在 Appstore Connect 中卸载颤振应用程序集

AppStore Connect - 无法为试飞构建提供信息

iOS 应用程序已在 iTunes Connect 中可供销售,但在 Appstore 中不可用 [重复]