作家
登录

iOS 的围栏花园

作者: 来源: 2012-06-12 18:08:32 阅读 我要评论

 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)中,应用只看到沙箱容器目录,不可见系统的其他目录和整个文件系统,沙箱中关键子目录,例如,/AppName.app、/Documents/、/Documents/Inbox、/Library/等目录,每个子目录使用方法有严格规定。沙箱严格控制文件目录访问,每个应用仅能访问自身的文件和数据,严格控制了硬件、系统共用数据、网络等资源的使用权限。如果应用不遵循设计规格,应用或者不能正常运作,或者在审核环节被废弃,或者上市之后被下架。

有深入探究者会好奇,严格的沙箱结构下,应用只能访问沙箱的容器目录,应用之间的文件共享究竟需要多大的代价?举一个例子来帮助理解(非开发步骤),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 以及其他内容传送平台)的组合运营,逐步吸引和驯化用户,平台的应用和内容丰富了,成为用户获取应用和内容的主流渠道,因此用户也逐渐忠诚,于是,聚集了海量高商业价值用户的平台成为苹果公司的筹码,得以要求逐利的应用开发商遵循苛刻的安全准则,平台安全性则反过来增加用户对平台的信赖程度,使整个生态系统呈正反馈方向健康的发展。

在平台运营中,需要有足够的技术装备,还需要巨额的人力成本和资源。在应用上架之前以及任何时候对静态代码进行扫描,逆向工程,运行时检查,杜绝恶意的应用毁坏平台的安全根基。

【编辑推荐】

  1. 苹果iOS软件主管抛售95%股份
  2. 微软OS劲敌!服务器上升级Ubuntu新装备
  3. 苹果拒绝用Dropbox新开发包创建的iOS应用

  推荐阅读

  Windows Phone开发者大会能给微软带来什么?

虽然Windows Phone市场份额小到可以忽略不计,应用也没有苹果和Andriod那么多,不过从种种迹象来看,微软最终还是能成功吸引更多的开发者从而重发新生。为此,微软特意于6月21和22在旧金山举行Windows Phone开发者峰>>>详细阅读


本文标题:iOS 的围栏花园

地址:http://www.17bianji.com/kaifa/yejie/1361.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)