您的位置:首页 > 移动开发 > IOS开发

iOS应用安全开发总结

2015-11-09 11:30 381 查看
iOS应用由于其直接运行在手机上,相比运行在服务器的后台服务,更有可能被黑客攻击。本文将从网络安全、本地文件和数据安全、源代码安全三个方面,阐述iOS应用在安全性上遇到的挑战。1

一、网络安全

安全地传输用户密码
对密码进行非对称加密,加盐,且在发送时采用`HTTP Post`的方式。


防止通讯协议被轻易破解
选择类似`protobuf`(Google提供的一个开源数据交换格式,其最大的特点是基于二进制,因此比传统的`JSON`格式要短小得多)之类的二进制通讯协议或者自己实现通讯协议,对于传输的内容进行一定程度的加密,以增加黑客破解协议的难度。


验证应用内支付的凭证:越狱后的手机由于没有沙盒作为保护,黑客可以对系统进行任意地修改,所以在支付过程中,苹果返回的已付款成功的凭证可能是伪造的。客户端拿到付款凭证之后,还需要将凭证上传到自己的服务器上,进行二次验证,以保证凭证的真实性。

另外,我们发现越狱用户的手机上,很可能被黑客用中间人攻击技术来劫持支付凭证。
对于应用内支付,开发者除了需要仔细地验证购买凭证外,也需要告知用户在越狱手机上进行支付的风险。


二、本地文件和数据安全

程序文件的安全:随着混合式(Hybrid)编程方式的兴起,很多应用的部分功能也采用内嵌Web浏览器的方式来实现。通过分析应用内包含的javascript文件,黑客可以比较轻松地知道其调用逻辑。在越狱手机上,还可以修改这些javascript代码,达到攻击的目的。
通过将javascript源码进行混淆和加密,可以防止黑客轻易地阅读和篡改相关的逻辑,也可以防止自己的Web端与Native端的通讯协议泄漏。


本地数据安全:iOS应用的数据在本地通常保存在本地文件或本地数据库中。如果对本地的数据不进行加密处理,很可能被黑客篡改。
对于本地的重要数据,我们应该加密存储或者将其保存到 keychain 中,以保证其不被篡改。


三、源代码安全

通过
file
,
class-dump
,
theos
,
otool
等工具,黑客可以分析已经编译之后的二进制程序文件,不过相对于这些工具来说,
IDA
的威胁最大,它使一个收费的反汇编工具,对于
Objective-C
代码,它可以常常可以反汇编到可以方便阅读的程度。通过阅读源码,黑客可以更加方便地分析出应用的网络通讯协议和数据加密方式。黑客可以用来制作软件的注册机,也可以更加方便地破解网络通讯协议,从而制作出机器人(僵尸)帐号。最极端的情况下,黑客可以将反汇编的代码稍加修改,植入木马,然后重新打包发布在一些越狱渠道上,这将对用户产生巨大的危害。
对于`IDA`这类工具,我们的应对措施就比较少了。除了可以用一些宏来简单混淆类名外,我们也可以将关键的逻辑用纯C实现。例如微信的iOS端的通讯底层,就是用C实现的。这样的方式除了能保证通讯协议安全外,也可以在`iOS`和`Android`等多个平台使用同一套底层通讯代码,达到复用的目的。


“iOS应用安全开发概述” http://blog.devtang.com/blog/2014/05/08/ios-security-dev-overview/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: