加入收藏 | 设为首页 | 会员中心 | 我要投稿 大连站长网 (https://www.0411zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

Android移动终端操作系统的安全盘点

发布时间:2021-07-28 04:44:50 所属栏目:安全 来源:互联网
导读:副标题#e# 1、Android移动终端操作系统的架构 Android是一个基于Linux内核并使用Java语言编写应用的开源的移动终端操作系统,主要用于便携设备,如手机、平板电脑等。Android系统采用四层软件叠层的架构例,如图1所示,至下往上分别为: (1)Linux内核层
副标题[/!--empirenews.page--]

  1、Android移动终端操作系统的架构

 

 

    Android是一个基于Linux内核并使用Java语言编写应用的开源的移动终端操作系统,主要用于便携设备,如手机、平板电脑等。Android系统采用四层软件叠层的架构例,如图1所示,至下往上分别为:

 

 

 

   

 

    (1)Linux内核层,以Linux 2.6内核为基础,采用C语言开发,提供了包括内存管理、进程管理、网络管理、安全设置和硬件驱动等在内的基本功能;

 

 

    (2)运行库层,由Android本地函数库(C/C++库文件),包括C标准库、安全套接字协议、2D图像引擎、数据库引擎、浏览器内核等,核心Java库和Dalvik虚拟机组成,采用C++语言开发;

 

 

    (3)应用程序框架层,提供完成应用功能的基本类库,包括丰富而又可扩展的视图、内容提供器、资源管理器、通知管理器和活动管理器,由java语言开发;

 

 

    (4)应用层,包含各种应用软件,如短信、电话、邮件等,以Java作为编程语言。

 

 

    在Android系统中Dalvik虚拟机非常重要,它允钧Android操作系统为每一个应用分配一个进程,更确切的说,Android中每一个应用都运行在一个单独的Dalvik虚拟机中,每一个单独的Dalvik虚拟机都运行在单独的进程中。如果一个应用程序崩溃,它将不会影响到设备上运行的其他应用程序。这样意味着,任何应用程序都不依赖于另一个。

 

 

    另一方面,Android整个操作系统都工作在内核空间,也就意味着设备驱动程序和内核扩展程序(不是所有的)能够完全访问到硬件设备,并且运行在内核空间的程序能够抢占运行在用户空间的程序。例如文件系统运行在用户空间中,而显示驱动运行在内核空间,显示驱动进程能够抢占文件系统进程。

 

 

    2、Android系统安全机制分析

 

 

    Android系统在采用linux 2.6版本的内核安全机制的基础上,使用了谷歌公司专门为移动设备设计的增强安全机制,例如用户标识符(UID)、组别标识符(GID)、permission机制和签名机制,并使用类型安全的Java编程语言及其类库来增强系统的安全性。

 

 

    2.1 Android系统的UID与GID

 

 

    Android是一个权限分离的系统,建立在Linux操作系统已有的权限管理机制的基础上,并对Linux操作系统的相关权限管理机制进行了扩展。具体来说,Android为每一个应用分配不同的UID和GID,使得不同应用之间的访问和私有数据达到相互隔离的目的。

 

 

    Android系统中,每安装一个应用程序,系统就会为它分配一个独特的UID。在Linux系统中,所有用户也都有UID,其中,除了Root用户对所有文件都有读写和执行的权限之外(其UID等于0),每个用户对于每个文件都有不同的权限,分别为R(可读)、W(可写)和X(可执行)。Android系统中的每个应用程序都会被分配给一个属于自己的用户标识,每个应用程序都有自己的UID,只有携带着该UID,才能存取其所涌盖的有关资料。

 

 

    GID也在Android系统的权限管理中发挥重要的作用。GID是一组整饭的集合,由框架在应用安装过程中生成,与应用申请的具体权限相关。应用每申请一个权限,GID就会加人一个对应的整数,因此可以将GID理解为一个应用申请的所有权限的集合。对于普通应用程序来说,其GID等于UID。Android中每个应用都在不同的进程中运行,每个进程都有不同的UID和权限。Android系统使用沙箱的概念来实现应用程序之间的分离和权限限制,系统为每个应用程序创建一个沙箱,以防止它影响其它程序(或者其它程序影响它)。

 

 

    2.2  Android系统的权限管理机制

 

 

    权限许可(permission)是为保障Android系统的安全而设定的安全标识,同时也是程序实现某些特殊操作的基础。Android系统提供的权限管理机制主要是用来对应用可以执行的某些具体操作进行权限细分和访问控制。

 

 

    Android中的一个权限主要包含三个方面的信息:权限的名称、属于的权限组以及保护级别。其中,一个权限组是指把权限按照功能分成的不同集合,例如在 COST_MONEY权限组中包含Android.permission.SEND_SMS, Android.permission.CALL_PHONE等和费用相关的权限,而每个权限通过保护级别(protection Level)来标识。Android定义了四个保护级别:normal、dangerous、signature, signature or system,不同的保护级别代表了程序要使用此权限时的认证方式。比如,normal的权限只要申请了就可以使用;dangerous的权限在安装时需要用户确认才可以使用。signature和signature or system的权限则需要使用者的应用和系统使用同一个数字证书。

 

 

    Android的权限许可机制强制限制应用执行某些操作。目前,Android拥有大约100个内置的权限要求来限制应用的相关操作,包括拨打电话(CALLPHONE)、照相(CAMERA )、使用网络(INTERNET)、发送短信(SEND_SMS)等等。任何Android的应用能够申请默认权限以外的额外权限,当然在安装过程中需要用户确认应用所申请的额外权限。

 

 

    一个基本的Android应用程序如果没有与其相关联的权限,意味着它不能做任何影响用户体验或设备中数据的有害操作,用户的“敏感”数据也就不会被某些未经授权的程序所损害。更进一步,不同的应用程序运行在不同的沙箱中,这样就算运行了恶意代码,也仅仅只能破坏其所在的沙箱,对系统及用户并不能造成很大的影响。

 

 

    2.3 Android系统的签名机制

 

 

(编辑:大连站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!