我正在构建一个反应本机应用程序,我在其中将凭据硬编码到应用程序中。这就是为什么我想知道在与本机模块的通信和/或反向工程应用程序之间是否存在任何安全隐患。如果是这样,我可以采取哪些预防性措施来仍然可以访问这些凭证并将其置于本地。如果您能想到本机在安全性方面的任何其他影响,请告诉我。
谢谢!
对于我在我创建的企业应用上使用渗透测试人员时所学到的部分问题,我得到了一个小答案。当您对字符串文字进行硬编码时,很容易退出您的应用。因此,为了混淆我得到的一点建议是将多个字符串附加在一起以获取加密密码。因此,当黑客从你的应用程序中拉出字符串时,他不知道哪些一起去,以及以什么顺序获得正确的密码。
如果你想更进一步,他建议我在密码字符串中使用[SomeBuiltInClass class]
,这样即使黑客从我的应用程序中提取所有字符串文字,也没有任何组合会得到正确的密码。
[NSString stringWithFormat:@"%@%@%@",[NSString class],@"SomeIntermediateSomething",[NSData class]];
但即使您完成了所有这些并且黑客将您的应用程序放在越狱设备中,他仍然可以看到您的应用程序推送的所有调用和所有参数,因此如果您在任何方法或函数中传递它们,它们仍然可以获取凭据。因此,当您想要使用它时,准确地提取密码也是关键。他们还可以使用他们希望的任何数据在您的应用程序中运行任何方法或功能,因此他们可以获得密码,就像他们知道要调用哪些函数一样。
我确信那里有其他人比我知道更多,但这些是我过去所做的一些事情。
第一条规则 - 永远不会在移动应用中存储凭据。底线。认为这已被提及但值得重复,请参阅https://security.stackexchange.com/questions/20294/how-should-an-application-store-its-credentials