专业的信息化与通信融合产品选型平台及垂直门户
注册 登陆 设为首页 加入收藏
首页 企业新闻 招标信息 行业应用 厂商专区 活动 商城 中标信息

资讯
中心

新闻中心 人物观点
厂商专区 市场分析
行业
应用
政府机构 能源产业 金融机构
教育科研 医疗卫生 交通运输
应用
分类
统一协作 呼叫客服 IP语音 视频会议 智能管理 数据库
数字监控 信息安全 IP储存 移动应用 云计算 物联网

TOP

系统安全的关键安全技术 Android中的沙箱模型
2012-10-29 10:26:28 来源:比特网 作者:【
关键词:系统安全 安全技术 Android中 沙箱模型
 
沙箱模型是业界保证系统安全的关键安全技术,已经在浏览器等领域得到了成功应用。作为优秀的开源移动平台操作系统,Android也有相应的沙箱模型,本文将对其进行介绍。

  沙箱模型是业界保证系统安全的关键安全技术,已经在浏览器等领域得到了成功应用。作为优秀的开源移动平台操作系统,Android也有相应的沙箱模型,本文将对其进行介绍。

  一、沙箱模型原理简介

  现实中的沙箱(SandBox),是一种儿童玩具,类如KFC中一个装满小球的容器,儿童可以在其中随意玩耍,起到保护儿童的作用。(也可以理解为一种安全环境。)

  近年来,随着网络安全问题的日益突出,人们更多的将沙箱技术应用于网上冲浪方面。从技术实现角度而言,就是从原有的阻止可疑程序对系统访问,转变成将可疑程序对磁盘、注册表等的访问重定向到指定文件夹下,从而消除对系统的危害。

  举个例子,GreenBorder为IE和FireFox构建了一个安全的虚拟执行环境。用户通过浏览器所作的任何写磁盘操作,都将重定向到一个特定的临时文件夹中。这样,即使网页中包含病毒,木马,广告等恶意程序,被强行安装后,也只是安装到了临时文件夹中,不会对用户pc造成危害。

  对于程序开发中的Java技术来说,沙箱也具有很重要的安全意义。沙箱无论何时加载远程网站上代码并在本地执行,安全都是至关重要的问题。点击一个链接可以启动Java Web Start应用程序。访问一个网页时,其中的所有Applet也会自动地启动。如果再点击一个链接,或者访问一个网页时,在用户的机器上能够安装任意的代码,那么犯罪分子就可能在此时窃听机密信息、读取财务数据或者接管用户机器来发送广告。 为了确保Java技术不会被邪恶目的所利用,SUN公司在设计Java的时候,设计了一套精密的安全模型;即安全管理器(Security Manager)将检查有权使用的所有系统资源。在默认的情况下,只允许那些无害的操作,要想允许执行其他操作,代码需得到数字签名,用户必须得到数字认证。

  特别是,在沙箱中的程序有下列限制:

  不能运行任何本地可执行程序。不能从本地计算机文件系统中读取任何信息,也不能往本地计算机文件系统中写入任何信息。不能查看除Java版本信息和少数几个无害的操作系统详细信息外的任何有关本地计算机的信息。特别是,在沙箱中的代码不能查看用户名、E-mail地址等信息。远程加载的程序不能与除下载程序所在的服务器之外的任何主机通信,这个服务器被称为源主机(originating host)。这条规则通常称为“远程代码只能与家人通话”这条规则将会确保用户不会被代码探查到内部网络资源(在Java SE 6 中,Java Web Start 应用程序可以与其他网络连接,但必须得到用户的同意)。

  因此,近年来,沙箱技术非常盛行,如360浏览器等,都宣称采用了沙箱技术来保证上网安全,而对于Android系统来说,也有意识地引入了这样一个概念。

  二、Android中的沙箱模型

  在 Linux 中,一个用户 ID 识别一个给定用户;在 Android 上,一个用户 ID 识别一个应用程序。应用程序在安装时被分配用户 ID,应用程序在设备上的存续期间内,用户 ID 保持不变。权限是关于允许或限制应用程序(而不是用户)访问设备资源。

  从本质上来说,Android 通过使用沙箱的概念来实现应用程序之间的分离和权限,以允许或拒绝一个应用程序访问设备的资源,比如说文件和目录、网络、传感器和 API。为此,Android 使用一些 Linux 实用工具(比如说进程级别的安全性、与应用程序相关的用户和组 ID,以及权限),来实现应用程序被允许执行的操作。

  概念上讲,沙箱可以表示为 图 1 所示。可以清楚地看到,两个 Android 应用程序,各自在其自己的基本沙箱或进程上。

  Android 应用程序运行在它们自己的 Linux 进程上,并被分配一个惟一的用户 ID。默认情况下,运行在基本沙箱进程中的应用程序没有被分配权限,因而防止了此类应用程序访问系统或资源。但是 Android 应用程序可以通过应用程序的 manifest 文件请求权限。

  通过做到以下两点,Android 应用程序可以允许其他应用程序访问它们的资源:

  1) 声明适当的 manifest 权限

  2) 与其他受信任的应用程序运行在同一进程中,从而共享对其数据和代码的访问(如图 2所示)。

  不同的应用程序可以运行在相同的进程中。对于此方法,首先必须使用相同的私钥签署这些应用程序,然后必须使用 manifest 文件给它们分配相同的 Linux 用户 ID,这可以通过用相同的值/名定义 manifest 属性 android:sharedUserId 来做到。具体的私钥签署和权限相关的内容,请参看Android安全专栏中的相关文章,这里不再赘述。

      

责任编辑:admin
免责声明:以上内容转载互联网平台或企业单位自行提供,对内容的真实性、准确性和合法性不负责,Voipchina网对此不承担任何法律责任。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部

上一篇十大NAS存储设备应用功能的概要
下一篇安全沙箱程序:深度防御还是分层..

热门文章

图片主题

最新文章

相关文章

广告位

Copyright@2003-2009 网络通信中国(原VoIP中国) 版权所有
联系方式:503927495@qq.com
  京ICP备05067673号-1 京公网安1101111101259