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

如何保障iOS应用的安全

2016-11-09 14:39 344 查看


如何保障iOS应用的安全

大部分的iOS应用都需要连网,通过和服务器端进行通信,获得最新的信息并且将内容展现给用户。由于网络传输过程中有可能经过不安全的中间节点,所以应该对敏感数据加密,用于保证用户信息的安全。

  事先生成一对用于加密的公私钥,客户端在登录时,使用公钥将用户的密码加密后,将密文传输到服务器。服务器使用私钥将密码解密,然后加盐(Salt,在密码学中是指,通过在密码任意固定位置插入特定的字符串,让散列后的结果和使用原始密码的散列结果不相符,这个过程称之为“加盐”),之后再多次求MD5,然后再和服务器原来存储的用同样方法处理过的密码匹配,如果一致,则登录成功。这样,黑客即使截获了加密后的密文,由于没有私钥,也无法还原出原始的密码。而服务器即使被黑客攻陷,黑客除了暴力尝试,也无法从加盐和多次MD5后的密码中还原出原始的密码。这样就保证了使用苹果iOS应用用户密码的安全。


防止通信协议被轻易破解

  苹果移动端iOS应用经常面临黑客对于通信协议破解的威胁。

  在成功破解了通信协议后,黑客可以模拟苹果iOS应用客户端登录,进而伪造一些用户行为,对用户数据造成危害。通信协议被破解除了对于移动端游戏有严重危害外,对于iOS应用也有很大的危害。例如针对微信,黑客可以制作一些僵尸账号,通过向微信公共账号后台发送垃圾广告,达到赢利的目的。而iPhone设备上的iMessage通信协议居然也被破解了,所以很多iPhone用户会收到来自iMessage的垃圾广告。

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


验证应用内支付的凭证

  iOS应用内支付(IAP)是众多苹果iOS应用赢利的方式,通过先让用户免费试用或试玩,然后提供iOS应用内支付来为愿意付费的用户提供更强大的功能,这种模式特别适合不习惯一开始就掏钱的中国用户。但由于国内拼过手机越狱用户的比例比较大,所以我们也需要注意iOS应用内支付环节中的安全问题。简单来说,越狱后的苹果手机由于没有沙盒作为保护,黑客可以对系统进行任意地修改,所以在支付过程中,苹果返回的已付款成功的凭证可能是伪造的。客户端拿到付款凭证之后,还需要将凭证上传到自己的服务器上,进行二次验证,以保证凭证的真实性。

  对于苹果iOS应用内支付,iOS应用开发者除了需要仔细地验证购买凭证外,也需要告知苹果手机用户在越狱手机上用iOS应用进行支付的风险。


iOS应用加密

  加密后的iOS应用更加安全,所以在App Store上架的时候审核也会更快,让iOS开发者毫无后顾之忧。

  由于移动互联网的快速发展,人们的购物、理财等需求也在移动端出现,这使得移动Android、iOS应用的安全性越来越重要。由于部署在用户终端上,移动Android、iOS应用比服务器应用更容易被攻击,因此,需要在Android、iOS应用的网络通信、本地文件和数据、源代码三方面做好防范,只有这样才能保证苹果iOS应用安全。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息