博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于IAP的破解
阅读量:5912 次
发布时间:2019-06-19

本文共 1127 字,大约阅读时间需要 3 分钟。

 

 

介绍

大概在今年7月份,有俄罗斯黑客了苹果的应用内付费(In-App Purchases),设备在不越狱的情况下就可以免费获得来自苹果官网App Store里应用的收费道具。受影响的产品众多,包括著名的Angry Birds,切水果,Mega Jump, Pandora等。有一份受影响的著名的游戏应用列表。

正常的越狱行为还是比较复杂的,需要下载破解软件,并且操作进入DFU模式,所以大部分人并不能够方便地越狱。但该方案不需要越狱就可以破解应用内付费,给用户实施该行为提供了方便。

为了验证破解的有效性,我今天试了一下,确实能够直接绕开苹果的应用内付费就直接完成购买操作。而苹果也在它的官方文档上了该漏洞的存在,截图如下:

从该文档中我们可以知道,iOS6以下的所有设备(包括越狱或非越狱设备),都会受到该漏洞的影响。

攻击原理

我们知道通常的IAP购买行为,从逻辑上就是设备向App Store发起一个购买操作,App Store在验证过用户的密码确认身份后,扣费并返回购买成功的凭证,整个网络操作是通过SSL加密的。

该IAP破解方法,是让设备误以为另一个网站就是AppStore,而向它通讯,而这个假AppStore返回一个假的购买成功的凭证,这样就欺骗设备完成了购买。整个欺骗使用的手段包括:

  1. 用户给自己添加一个受信任的证书以完成SSL通讯的证书校验
  2. 设置一个伪DNS(域名解析服务)地址,把AppStore的域名指向假的地址。

应对措施

现在看来,暂时有效的应对方法是,将该交易凭证上传到我们自己的服务器上,然后让我们自己的服务器与AppStore进行验证,以确认该凭证是否是伪造的,然后将验证结果返回给设备。苹果的官方网站上也是这么介绍的。这样做麻烦的地方是,对于那些游戏和工具类应用,增加了服务器开发和维护的开销。

但是就象苹果自己也意识到的那样(如下图),既然破解者可以欺骗设备来和AppStore通讯,那么同样破解者从原理上,也可以欺骗设备同我们自己的服务器通讯,到头来,设备本身无论如何是无法知道自己的信息的真实性的。

对于这件事,我们只能期望于:因为我们的应用用户量不大,验证协议又不是通用的,所以破解者需要专门针对我们的通讯协议进行破解,这需要他本身有动力做这个事情,并且要花费他一些时间。所以可能他觉得做这个事情没什么挑战和意义,就不破解我们了。在这件事情上,“希望他不要破解”,好象也是我们唯一能做的事情。

乐观一点讲,AppStore上有上百万的应用,如果所有应用都采用服务器验证购买凭证,黑客一一针对破解,确实也太不可能了,所以这件事情还是很有必要的。另外随着iOS6的普及,该漏洞也将被修补掉,所以大家也不用过于悲观。

转载地址:http://sdmpx.baihongyu.com/

你可能感兴趣的文章
微服务落地,我们在考虑什么?\n
查看>>
解决C# 7.2中的结构体性能问题
查看>>
PWA即将推向所有Chrome平台
查看>>
Oracle提议将G1作为Java 9的默认垃圾收集器
查看>>
Raffi Krikorian 为“在运行中进行架构重写”提供了指南
查看>>
理解BERT Transformer:Attention is not all you need!
查看>>
蚂蚁金服开源服务注册中心 SOFARegistry
查看>>
《敏捷时代》作者访谈录
查看>>
云监控状态调查:公有云和混合云的监控成熟度落后于传统数据中心
查看>>
全球区块链支出加速增长,2019年预计将接近29亿美元
查看>>
Facebook开源其Java竞争条件检测工具RacerD
查看>>
golang json 解析器哪家强?
查看>>
一文盘点MWC 2019所有5G设备和研发进展
查看>>
Ooui:在浏览器中运行.NET应用
查看>>
OPPO大数据平台运营研发实践分享
查看>>
OneAPM挂牌新三板,续写ITOM新篇章
查看>>
你的GitHub,怎么和我用的不太一样?
查看>>
终极指南:如何使用Visual Studio Code进行 Java 开发?
查看>>
大规模敏捷之Big Room Planning
查看>>
Bloomberg开源面向OCaml的JavaScript后端BuckleScript
查看>>