gpt4 book ai didi

ios - 在 iphone 上有什么替代方法可以代替 CommonCrypto?

转载 作者:行者123 更新时间:2023-11-29 13:51:02 26 4
gpt4 key购买 nike

准备将我的应用程序提交到 Apple 的 Itunes 商店并在提交过程中对一个问题感到困惑:“导出法律要求包含加密的产品必须获得适当的导出授权……您的产品是否使用加密? "

我使用 CommonCrypto CommonCryptor.h 对设置文件进行编码以防止其未经授权的修改。所以现在我不确定我是否必须完全删除所有加密并基本上只保留一个 xml 文件,或者我是否应该使用其他方法来保护该文件。我可以使用哪些其他简单的保护机制来保护它,同时不使用任何加密,这样我就可以提交我的应用程序而无需大量额外的文书工作?

最佳答案

您对“加密”的使用不受美国导出规则的约束,因为它不是为了“信息安全”(我认为您回答“是,是,是,否”左右,ICBW,否则他们可能会更改顺序).从本质上讲,如果它不能阻止 NSA 监视你,他们很乐意让你使用它。

但是,传统上加密提供 secret 性,而不是消息完整性。如果您想确保用户没有篡改设置文件(例如,通过编辑 iPhone 备份),只需使用 MAC 将其保存即可。也就是说,

  1. 生成一个 MAC key (从/dev/random 中提取一些字节)。
  2. 保存时计算文件的 MAC(参见 Objective-C sample code for HMAC-SHA1 ;请注意,接受的答案实际上是 HMAC-SHA-256)
  3. 将 MAC 附加到文件末尾(或将其设置为文件属性,或将其粘贴到另一个文件中)。
  4. 阅读时,计算文件上的 MAC 并验证它是您保存的那个。如果它附加到文件中,则必须删除最后几个字节(例如 [NSData dataWithContentsOfFile:path],然后 -subdataWithRange: 两次以获取“消息"和MAC,然后验证MAC,如果验证成功则解析"消息"。

它不会阻止拥有越狱手机的人从您的二进制文件中提取 MAC key ,但不会阻止。它也不会阻止某人阅读明文设置文件,但这可能不是问题。

如果您在您控制的计算机上生成文件(例如,它是从服务器下载的文件),请对其进行签名。从技术上讲,RSA 签名验证等同于加密,但我不认为它算作用于导出目的的加密(如果算作是用于“身份验证”目的,仍然不算数)。 DSA 签名验证不是加密(我想,它背后的数学原理超出了我的理解范围)而且应该没问题。

关于ios - 在 iphone 上有什么替代方法可以代替 CommonCrypto?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4262803/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com