我要求从我们正在构建的应用程序的源代码中删除所有API密钥和应用程序机密。理想情况下,密钥和应用程序机密应通过MDM解决方案作为配置文件带外发送到应用程序。
这可能,如果是这样的话怎么样?如果没有,那么存储此类信息的建议方法是什么,以便无法在源中查看或从二进制文件中提取?
编辑:更新
可以使用托管应用配置通过MDM解决方案向应用发送NSUserDefaults
。但是,NSUserDefaults
不安全,不便于临时用户查看和修改。
我的计划是加密NSUserDefaults
以使用iOS中包含的公共加密库来防止这种情况。这是解决这个问题的最佳方法吗?我是否还应该将证书作为MDM配置的一部分发送?
在我沿着这条路走得太远之前,任何想法,评论和建议都会受到赞赏。
答案 0 :(得分:1)
我知道已经有一段时间了,但我最近调查了这个(不是用于MDM应用程序)。我对MDM没有任何经验,可能有其他解决方案。我选择的路线是使用CloudKit。这是第一方解决方案,无论用户是否登录到iCloud,您始终都可以使用,并且您可以与Apple的服务器安全通信,只有您的应用程序可以访问这些密钥。 根据您的设置方式,您可以轻松旋出键。 查看更多信息here