iOS 是一种严格的 Walled Garden
在维基百科中:
a “walled garden” refers to a carrier or service provider’s control over applications, content, and media src="http://images.51cto.com/files/uploadimg/20120503/1046050.gif?e6adba" width="462" height="233" />
换一种严谨的技术语言来审视 iOS 上的应用安全性特性,苹果平台中的应用,被限制在沙箱(sandbox)中,应用只看到沙箱容器目录,不可见系统的其他目录和整个文件系统,沙箱中关键子目录,例如,

有深入探究者会好奇,严格的沙箱结构下,应用只能访问沙箱的容器目录,应用之间的文件共享究竟需要多大的代价?举一个例子来帮助理解(非开发步骤),EMail 应用和 TXT 编辑应用严格隔离,如果 EMail 的应用需要 TXT 文本编辑器打开和显示一个文本的附件,TXT 文本编辑器需要声明自身能处理的文档类型,当用户点击 EMail 的附件并选择了TXT文件编辑器的时候,EMail的TXT附件被 iOS 系统机制传送到 TXT 文本编辑应用的 /Documents/Inbox 目录下,TXT 文本应用读取这个附件文件展现给用户,当用户编辑这个文本附件,TXT 文本编辑应用应该将这个文件移动到本应用的数据目录下,因为沙箱规定/Documents/Inbox只有读取和删除文件的权限,并没有写文件的权限。这是严格的沙箱结构的特例流程,苹果公司官方开发文档中需要专门文档进行阐述。
iOS 的沙箱不是Unix的应用隔离机制
iOS 和 Android 有一定的亲缘血统,这个血统来自于 Unix ,具有类似的进程账号绑定机制。Android 上使用不同的用户账号来运行进程,以此进行应用隔离,iOS 与此不同,所有应用使用相同的用户账号来运行进程, 使用沙箱内核扩展来实施安全隔离机制,iOS 内置了 35 个沙箱配置文件对应不同类别应用的运行。iOS 的沙箱机制可以参看 iOS 的同源兄弟 Mac OS X上的 “sandbox-exec” 命令,其运作机制可以参见下图(来自“技术奇异点”博客),在操作系统内核对应用访问权限进行强制检查,图中的 Access Control List 相当于 sandbox-exec 命令中的沙箱配置文件profile。
sandbox- exec [- f profile- file] [ - n profile- name] [ - p profile- string] [- D key=value ...]
command [arguments ...]

$ sandbox-exec -f /usr/share/sandbox/bsd.sb /bin/ls
使用沙箱环境运行程序/bin/ls程序,其沙箱配置文件为/usr/share/sandbox/bsd.sb。想体验一下沙箱的限制作用,可以运行下面的命令:
$ sandbox-exec -n no-internet ping www.google.com
PING www.l.google.com (209.85.148.106): 56 data bytes
ping: sendto: Operation not permitted
……
可以看到限制了网络的访问权限之后,ping 程序将不能正常运行。
Mac OS X上用户可以运行 sandbox-exec 命令,可以看到文件系统,以及控制沙箱,然而,iOS 上的沙箱则是无所不在的幕后黑手,沙箱就像是一方井水,应用就像是坐井观天的青蛙。
围栏花园是运营出来的
尽管 iOS 上具有严密的机制隔离以及控制应用,然而,再完备的操作系统也难免有漏洞,并非牢不可破。整个 iOS 围栏花园的应用安全不仅仅靠 iOS 操作系统本身的架构以及防卫体系,更加依靠苹果公司对整个平台生态系统的经营。
苹果公司通过终端(iPhone)与平台(应用商城 App Store 以及其他内容传送平台)的组合运营,逐步吸引和驯化用户,平台的应用和内容丰富了,成为用户获取应用和内容的主流渠道,因此用户也逐渐忠诚,于是,聚集了海量高商业价值用户的平台成为苹果公司的筹码,得以要求逐利的应用开发商遵循苛刻的安全准则,平台安全性则反过来增加用户对平台的信赖程度,使整个生态系统呈正反馈方向健康的发展。
在平台运营中,需要有足够的技术装备,还需要巨额的人力成本和资源。在应用上架之前以及任何时候对静态代码进行扫描,逆向工程,运行时检查,杜绝恶意的应用毁坏平台的安全根基。
【编辑推荐】
- 苹果iOS软件主管抛售95%股份
- 微软OS劲敌!服务器上升级Ubuntu新装备
- 苹果拒绝用Dropbox新开发包创建的iOS应用
推荐阅读
虽然Windows Phone市场份额小到可以忽略不计,应用也没有苹果和Andriod那么多,不过从种种迹象来看,微软最终还是能成功吸引更多的开发者从而重发新生。为此,微软特意于6月21和22在旧金山举行Windows Phone开发者峰>>>详细阅读
本文标题:iOS 的围栏花园
地址:http://www.17bianji.com/kaifa/yejie/1361.html
1/2 1