iOS的安全性和越狱
提到越狱,很多人第一反应大概是免费的游戏和 app。
作为软件从业人员,深知中国的大环境的特殊性。内有用户想吃免费午餐的不良付费习惯,外有行业内大头诸如某讯对创新的绞杀。大家对越狱是为了免费、盗版软件的认识,也就不奇怪了。
还有另一派人。越狱对他们来说,意味着开放。个人认为这也是 Hack 精神的精髓之一。事实上,iOS 越狱也有自己的生态圈:Cydia 就是越狱设备上 App Store。
越狱的合法性
数字千年版权法对 iphone 的越狱进行了特赦,直到 2015 年,对 iPhone、iPod touch 的越狱依然有效。但注意,iPad 就没这么幸运了。
详情参见博文《Unlocking A New iPhone Is Now Illegal, But Jailbreaking Is Still Safe — What It All Means For You》
iOS 安全性
由于 iOS 没有开源,学术界和工业界对它的安全机制的论述资料很少。我在网上找到了上交一位学长对 ios 安全机制的分析文章,是他的硕士学位论文。作为参考,我整理了一些关键知识点。
基于信任链的启动
iOS 的信任机制从系统启动那一刻起已经开始。
系统可信启动 trustedboot:启动每一步都会检测签名,构成整个信任链。
还有另一种启动方式,是设备固件升级方式(DFU,Device Firmware Update),也是由签名构建信任链。
程序签名
iOS 应用的 ipa 压缩包中包含可执行文件和数据文件。可执行文件只有在已签名的前提下才能运行。确保应用经过苹果认证。
越狱提升运行权限到 root,修改引用加载策略,接受任意签名的应用。
“通过软件保证软件安全是不可能的”,iOS 使用了硬件来做保护,但硬件部分也遭到了越狱的破解。
沙盒技术
iOS 用沙盒技术实现访问控制
trustedBSD :http://www.trustedbsd.org/
http://www.freebsd.org/doc/zh_CN/books/arch-handbook/mac-synopsis.html
ASLR 和 PIE
使用地址空间布局随机化(ASLR, address space layout randomization)和位置无关可执行代码(PIE,position independent executable)编译用来防止经典的缓冲区溢出攻击。
数据保护机制:
- 硬件加密:AES 协处理器,存储着 UID,GID
- 软件加密:系统中每个文件、数据都用一个唯一的秘钥来加密。秘钥是有 UID、GID 一起产生的,存在 keybag 中,keybag 通过用户的 4 位密码来保护。
越狱
越狱主要就是在信任链的根 bootrom 阶段攻击。由于系统不断升级,攻击的方式也在不断演进,这个链接介绍了其中的一种情况。
越狱后注意
总的来说,越狱打破了 iOS 封闭的生态环境,也打破了它特有的保护壳。手机获得了 root 权限,恶意代码有了可趁之机。不要轻易的使用来源不明的应用和插件。
- 非越狱手机:仅允许用户访问照片、视频数据;通过备份,可在 pc 端获取所有数据
- 越狱手机:拥有 root 权限。可以通过许多渠道如 ssh,ftp 获取系统数据。
更多细节参见
* 《浅谈 iOS 越狱前后的安全问题以及安全风险》
* 《iPad 越狱不安全!安装应用/插件需谨慎》
* 《iOS 完美越狱 - 福利还是阴谋?》
SHSH
iPhone 3GS 出来时候,苹果为加强对 iPhone OS 的控制对恢复(Restore)固件(Firmware)采用了验证过程,每次 iTunes 要恢复固件的时候都要连接苹果的服务器验证。手机的 ECID 和所刷系统版本号一起签名出一个 SHSH 文件,发送给服务器,服务器检测 SHSH 是否为新版本的系统所产生,如果是,则允许继续进行刷机,否则传回组织继续的信号。
SHSH 是存储在苹果公司的服务器上的,用户需要通过备份原来的 SHSH,并伪装一台苹果服务器来协助验证。
网络上 SHSH 备份方法的介绍很多,不了解的朋友自行 Google 吧。
附录
对于想开发 iOS 应用而又没有开发者账号的朋友,可以参考这篇文章《Xcode 4.1~4.6 + iOS 5、iOS 6 免证书(iDP)开发+真机调试+生成 IPA 全攻略》,Xcode4.6 iOS6.0 亲测有效。
原文地址:http://biaobiaoqi.github.com/blog/2013/05/17/jail-break-your-ios/
版权声明:自由转载-非商用-非衍生-保持署名| Creative Commons BY-NC-ND 3.0
iOS的安全性和越狱的更多相关文章
- iOS——数据安全性问题小结
在移动互联网快速发展的今天,iOS应用直接运行在用户的手机上,与运行在服务器后台服务相比,更有可能被黑客攻击. a.网络安全: 1.1 安全地传输用户密码 事先生成一对用于加密的公私钥,客户端登录的时 ...
- iOS安全攻防之越狱设备检测
iOS 越狱(iOS Jailbreaking),是用于获取苹果公司便携装置操作系统iOS最高权限的一种技术手段,用户使用这种技术及软件可以获取到 iOS 的最高权限,甚至可能可以进一步解开运营商对手 ...
- IOS 手机助手及越狱助手推荐
快装系列 1 快装助手(PC版) http://pc.kuaiapp.cn/ 2 快装越狱助手(PC版)http://www.kuaiapp.cn 3 快装商店(手机版)http://yueyu.ku ...
- iOS 判断设备是否越狱
我们在开发过程中,需要知道设备是否越狱,在网上查看很多资料,为此封装一些判断的方法. 上代码,不解释: .h文件 #import <Foundation/Foundation.h> @in ...
- iOS 判断设备是否越狱了
#import "PrisonBreakCheck.h" @implementation PrisonBreakCheck /** * 判断iPhone是否越狱了 */ +(BOO ...
- iOS设备的越狱方法
最近公司的事情很忙,在开发一个类似于微信的App,经常加班,所以也没有时间去更新微信公众账号的内容了.iOSJailbreak, 申请这个账号大概有一个多月了吧,发布的内容不多,更多是针对开发者的内容 ...
- iOS不越狱装收费App——注册iOS设备为开发者工具
额,这篇教程主要是我写下来用于总结注册iOS设备和用iResign安装App的过程,想要不越狱安装App当然有办法,但是有几个前提--你是一个Apple开发者,或者你有个朋友是App的开发者.如果没有 ...
- 极速创建 IOS APP !涛舅舅苹果 IOS APP自助生成系统!不用证书、不用越狱、永久可用
不用签名将网页封装成苹果APP,无需苹果企业签名,IPA签名,ios签名,免越狱安装 (本方法只支持网站封装app,原生的用不了,详细请咨询客服) 近期很多朋友问我把网站变成app的方法,原因很多种, ...
- iOS 11.4.1 正式版越狱
在 2018 年 Electra 最新能支持到 11.3.1 越狱,很长的一段时间 11.4 只能支持 Beta 版本,临近春节给了我们一个大礼物,终于支持 iOS 11.4-11.4.1,目前 iO ...
随机推荐
- CQRS之旅——旅程6(我们系统的版本管理)
旅程6:我们系统的版本管理 准备下一站:升级和迁移 "变化是生活的调味品."威廉·考珀 此阶段的最高目标是了解如何升级包含实现CQRS模式和事件源的限界上下文的系统.团队在这一阶段 ...
- Cannot resolve reference to bean 'entityManagerFactory' while setting constructor argument
spring 5.+jpa 配置类出错: 十二月 20, 2018 5:53:01 下午 org.springframework.web.servlet.DispatcherServlet initS ...
- VS无法访问IIS元数据库 您没有足够的特权访问计算机上的IIS网站
进入windows\regedit.exe下的HKEY_CRRENT_USER\Software\Microsoft\Windows\CurrentVersion\Exploer\User Shell ...
- 【AtCoder ABC 075 D】Axis-Parallel Rectangle
[链接] 我是链接,点我呀:) [题意] 让你找到一个各边和坐标轴平行的矩形.使得这个矩形包含至少K个点. 且这个矩形的面积最小. [题解] 把所有的"关键点""都找出来 ...
- 【z07】机器翻译
[题目链接]:http://noi.qz5z.com/viewtask.asp?id=z07 [题解] 可以理解为一直往一个队列里面加东西: 然后每次查找一个东西在不在队列的最尾部长度为m的区间范围内 ...
- Android 底部TabActivity(0)——开篇(界面分析|系列文章文件夹)
当下主流的软件没有一个统一明白的风格,App框架什么样的都有,但个人钟情于页面底部Tab分签架构,移动设备的屏幕尽管越来越大,可是显示的内容还是有限,为了能展示很多其它的内容,方便简洁的操作习惯中Ta ...
- ZOJ List the Books 水~
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1727 题目大意: 给你书名.出版时间.价格,让你按照一定的顺序排序.. 其中题 ...
- [Ionic2] Device Interaction in an Ionic App with Cordova Plugins
In this lesson, we are going to learn how to interact with native components through Cordova plugins ...
- js进阶 12-2 彻底弄懂JS的事件冒泡和事件捕获
js进阶 12-2 彻底弄懂JS的事件冒泡和事件捕获 一.总结 一句话总结:他们是描述事件触发时序问题的术语.事件捕获指的是从document到触发事件的那个节点,即自上而下的去触发事件.相反的,事件 ...
- UE4制作插件的插件神器pluginCreator
本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/45644007 作者:car ...