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 ...
随机推荐
- loadrunne-- Analysis 分析器
本文转自:https://www.cnblogs.com/Chilam007/p/6445165.html Analysis简介 分析器就是对测试结果数据进行分析的组件,它是LR三大组件之一,保存着大 ...
- Oracle10g中阻塞锁查询更简单
http://blog.itpub.net/195110/viewspace-677572/ http://blog.sina.com.cn/s/blog_636415010100khcl.html
- 去哪网实习总结:用到的easyui组件总结(JavaWeb)
本来是以做数据挖掘的目的进去哪网的,结构却成了系统开发... 只是还是比較认真的做了三个月,老师非常认同我的工作态度和成果.. . 实习立即就要结束了,总结一下几点之前没有注意过的变成习惯和问题,分享 ...
- bootstrap 时间控件带(时分秒)选择器(需要修改才能显示,请按照参数说明后面的步骤进行修改)
1.控件下载地址:http://www.bootcss.com/p/bootstrap-datetimepicker/index.htm,参数设置说明也在这个链接下面: 2.具体参数说明(复制原链接) ...
- 为什么一款优秀的移动工具类应用必须开发PCclient?
移动大潮气势汹汹,PC端似乎已经一条腿跨进了坟墓. 作为一个windows开发者.难免有些焦灼. windows真的已死吗?真的无用武之地了吗? 或许是人云亦云吧. 突然看到了这篇文章,感触颇深. 文 ...
- jQuery和CSS3炫酷GOOGLE样式的用户登录界面
这是一款使用jQuery和CSS3打造的GOOGLE样式的用户登录界面特效.该登录界面特效中,右上角的小问号和错误提示小图标使用SVG来制作.username和password输入框採用浮动标签特效. ...
- swift项目第八天:自定义转场动画以及设置titleView的状态
如图效果: 一:Home控制器 /* 总结:1:设置登陆状态下的导航栏的左右按钮:1:在viewDidLoad里用三目运算根据从父类继承的islogin的登陆标识来判断用户是否登陆来显示不同的界面.未 ...
- 【solr基础教程之二】索引 分类: H4_SOLR/LUCENCE 2014-07-18 21:06 3331人阅读 评论(0) 收藏
一.向Solr提交索引的方式 1.使用post.jar进行索引 (1)创建文档xml文件 <add> <doc> <field name="id"&g ...
- html css div img垂直居中
<head> <meta charset="UTF-8"> <meta name="Generator" content=&quo ...
- xp2p系统的10点技术创新和经验总结
最近在开发完善九天鸟的xp2p系统,解决了很多技术问题,特此总结下. 第一个项目开发,非常重要,它对建立开发规范.团队协作.开发效率,有很重大的意义. 1.分页前台AJAX异步分页,用咱们自己的fup ...