在我们的应用程序中,我们有几个API密钥(又名共享或私人密钥)。那些是需要运行时除了我/我的组织之外,这些字符串永远不会落入任何其他人的手中,这一点至关重要。编写/提交iOS应用程序,字符串/文本应该永远达不到黑客
尝试1 - 什么也不做
NSString *privateKey = @"a6dedb6096973e4576e1dfc9d048075d;
如果任何人得到这个应用程序的手,并得到通过签订-东西,他们可以运行二进制strings
,容易retreive所有字符串。 (FAIL)
尝试2 - 做一些聪明
这是你的StackOverflow,你们是最棒的。给我看一些魔法!
拆分/混淆密钥 – Volker
这是一个棘手的问题,没有简单的解决方案。我过去使用的一种解决方案是建立一个单独的,专用的内部Web服务器,其唯一目的是(a)存储私钥,并且(b)提供内部Web服务(在PHP中使用简单的CURL调用)用私钥执行任何必要的功能。只有允许访问私钥的用户才允许访问* this *服务器上的源代码。 –
如果钥匙从不落入其他人的手中至关重要,那么没有安全的方式来分配他们,你应该找出一种不同的方式来实现你的目标。通过默默无闻的安全(正如Volker所建议的)根本就没有安全保障。 如果问题的关键是通过Internet访问服务,那么根本无法保护它。任何人都可以从您的应用程序中嗅探网络流量,以确定使用的密钥。 对于您希望保护的密钥的使用情况,您尚未提供足够的信息,以便更详细地解答您的困境。 –