iOS

挑战App Store,“传说级漏洞”AltStore来了

AltStore能够让iOS系统认为这是一个始终处于开发状态的APP,用户从中下载其他应用就相当于从开发者的本地服务器中下载AltStore+相应应用的打包文件。

 |  3eLife

文|3eLife

智能手机之所以“智能”,其所依靠的其实是各种种类丰富的应用程序,而这些应用因为“流量”又产生了巨大的价值,因此作为渠道商的各大应用商店,在过去的十年间也

智能手机之所以“智能”,其所依靠的其实是各种种类丰富的应用程序,而这些应用因为“流量”又产生了巨大的价值,因此作为渠道商的各大应用商店,在过去的十年间也取得了不错的收益。在面对这样一个巨大且还会持续增长的蛋糕,显然不会有人无动于衷。

iOS上也有了第三方应用商店

因此所有的开发者也都希望能够从应用商店中分到更多收益,但由于Android端的开放特征,谷歌的Google Play并非他们唯一的选项,因此在Google Play上开发者与平台的分成比例为8.5 : 1.5。但独掌iOS生态的苹果却并不打算改变这一现状,即便是在面对开发者与消费者在欧盟及美国的反垄断诉讼,也并没有修改其7:3的分成比例。

不过在上周出现的一则消息,则可能会让苹果不再稳坐钓鱼台,因为在iOS生态中出现了一个新事物——无需越狱即可使用的第三方应用商店AltStore。所有用过iOS设备的朋友应该都知道,App Store是官方唯一指定的应用市场,因此通常下载APP也无法绕不开这一环。

此前诸如Cydia之类的第三方应用商店是需要越狱之后才能用,很显然这并非官方所允许的途径,而至于所谓的企业版APP,也同样不符合苹果的要求,因为这类APP并不能被分发给该企业员工之外的用户。例如此前Facebook被苹果吊销企业证书,也正是因为Facebook跟踪用户的App违规使用历史、私人消息和位置等相关数据,违反了苹果的数据隐私准则和企业开发者项目协议。

AltStore是如何诞生的呢?

由于很多用户都希望能够在手机上玩到经典游戏,因此在有这种需要的情况下,一位名叫Tiley Testut的开发者制作了Delta模拟器,尽管其可以玩NES、SNES、Game Boy、N64等一大批平台的游戏,但也只能通过越狱来进行安装。因此Tiley Testut也一直在致力于对Delta模拟器的改进上,而AltStore就是其中的成果,因此其最初的目的并非是作为应用分发渠道出现。

AltStore的UI设计基本模仿了App Store,但是两者在内容丰富程度上显然不可同日而语,目前其除了Delta模拟器之外,就只有一款名为Clip的剪切板管理器。然而即便是这样,无疑也成为了iOS生态下的“普罗米修斯”,毕竟iOS生态中建立第三方的应用商店,绝对是个很有诱惑力的选项,而此前之所以只有越狱后才能使用的应用商店,也是因为苹果在规则上堵死了几乎所有的可能。根据官方的规定,为了保证系统的安全性,所有在iOS设备上安装的应用都必须经过授权。

而除了大量消费者常用的App Store之外,在iOS上通过其他渠道下载的APP,也都需要完成签名验证之后才能在设备上运行。而目前苹果所采用的是双层代码签名机制,也就是在固定的一组RSA公私钥基础上,再增加一组属于开发者的私有密钥来进行签验证。

这套验证机制的原理基本是这样的,在苹果提供的固定公私钥A之外,作为APP的开发者通过Xcode开放工具生成一对属于自己的公私钥B。在开发过程中,开发者会利用存储在开发者服务器的私钥B生产APP签名,并且私钥A对公钥B的签名证书打包在一起。在将APP安装进手机时,iOS会使用内置的公钥A去验证公钥B的签名证书是否合法,如果合法就会用公钥B验证APP签名,通过这种间接方式就验证了这个APP是经过苹果的认证。

AltStore代表了一个脆弱的希望

由于APP的开发是个不断变化的过程,因此在双层代码验证流程的最后,系统只是验证安装APP的行为本身是否合法,而不会验证APP中的内容。因此很多开发者都会使用重签名来反复测试APP,而且通过开发者证书搭配iReSign(一种Mac上的重签名工具),可以替换IPA中的证书为自己的开发证书,过去就有开发者利用这一机制,来为自己未越狱的iOS设备安装破解版的付费应用。

这一绕过苹果认证的BUG无疑就是诞生第三方分发渠道的基础,但问题是这种重签名限制了需要通过开发者的本地服务器来实现,因此使得其在很长一段时间里都是属于开发者自己的小福利,与普通用户基本没有太大的关系。

而AltStore的进步,就体现在其解决了远程重签名问题,能够借助Apple ID连接开发者的服务器,诱骗系统将用户认证为开发者,并下载对应的应用。尽管我们暂时不知道其中的技术原理,但根据作者的说法,AltStore只需每周连接到WiFi网络,就可以自动为APP进行重签名。

简而言之,AltStore能够让iOS系统认为这是一个始终处于开发状态的APP,用户从中下载其他应用就相当于从开发者的本地服务器中下载AltStore+相应应用的打包文件。看到这里可能有人会有疑问了,这种分发方式和使用企业证书有什么区别呢?其实答案很简单,企业证书对外发放是违反政策的,年初Facebook和谷歌被吊销证书就是违反这一规则的代价,但这种通过个人开发者证书来分发的模式则是完全合规的,因为AltStore在理论上让每一位用户都拥有了自己的个人开发者证书,而苹果是不能吊销这一类证书的(只能拉黑)。

因此可以说AltStore的出现是具有标志性意义的,随着iOS越狱的衰落,导致Cydia应用商店不再收费,App Store本应是没有任何对手了,而AltStore虽然目前还很弱小,但确实代表了一种摆脱App Store钳制的可能。而我们所担忧的是,一旦AltStore做大并且开始收费的话,苹果方面就很有可能会修改相关规定。

所以AltStore的诞生是合理利用规则的产物,但其能否在未来生存下去,则还有看苹果到底有多“傲慢”了。