版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Android操作系统平安机制研究Andrid操作系统平安机制研究Andrid是一个开放的挪动设备操作系统。根据ID2022年11月份的数据统计1,Andrid的市场份额为80%。丰富的Andrid应用程序简称应用极大方便了我们的生活,同时系统的平安性也越来越引起用户的关注。Andrid应用可以操作设备上的各种硬件、软件以及本地数据和效劳器数据,并可以访问网络。因此,Andrid操作系统为了保护数据、程序、设备和网络等资源,必须为程序提供一个平安的运行环境。该文首先介绍Andrid平安体系构造,然后重点介绍系统内核层的采用的平安技术和应用框架层为开发者开发平安的应用程序提供的各种平安措施。该文
2、为程序开发人员理解系统平安及开发平安应用提供有用的参考。1Andrid平安体系构造操作系统的平安性目的就是为了保护挪动设备软件、硬件资源,包括PU、内存、外部设备、文件系统和网络等。Andrid系统为了平安性,提供如下主要平安特征:操作系统严格的分层构造、应用沙盒、平安进程通信、受权和签名等。Andrid作为开放平台,它的设计和实现细节完全暴露,因此对平安性要求更加严格,设计时首先要重点考虑的就是平台构造设计问题,Andrid系统的体系构造设计为多层构造2,如图1所示。这种构造在给用户提供平安保护的同时还保持了开放平台的灵敏性。图1Andrid操作系统分层的平安体系构造Andrid系统构造由4
3、层组成,从上到下分别是:应用层Appliatins、应用框架层AppliatinFraerk、运行时AndridRuntie、类库层Libraries和Linux内核LinuxKernel组成。应用层由运行在Andrid设备上的所有应用构成,包括预装的系统应用和用户自己安装的第三方应用。大局部应用是由Java语言编写并运行在Dalvik虚拟机中;另一局部应用是通过/+语言编写的本地应用。不管采用何种编程语言,两类应用运行的平安环境一样,都在应用沙箱中运行。应用框架层集中表达Andrid系统的组件设计思想。框架层由多个系统效劳SysteServie组成。Andrid应用由假设干个组件构成,组件和
4、组件之间的通信是通过框架层提供的效劳集中调度和传递消息实现的,而不是组件之间直接进展的。框架层协调应用层的应用工作提升了系统的整体平安性。类库本文由论文联盟搜集整理层主要由类库和Andrid运行时两局部组成。其中类库由一系列的二进制动态库构成,大局部来源于优秀的第三方类库,另一局部是系统原生类库;通常使用/+语言开发。Andrid运行时由Java核心类库和Andrid虚拟机Dalvik共同构成。Java核心类库包括框架层和应用层所用到根本Java库。Dalvik是为Andrid量身打造的Java虚拟机,它与标准Java虚拟机JV主要差异在于Dalvik是基于存放器设计的,而JV是基于数据栈的,
5、前者可以更快的编译较大的应用程序。Dalvik允许在有限的内存中同时运行多个虚拟机的实例,每一个Dalvik应用作为一个独立的Linux进程执行,可防止在某一虚拟机崩溃时所有应用都被关闭。最后一层是Linux内核层,该层提供核心系统效劳包括平安、内存、进程、网络和设备驱动等功能。2系统内核平安在操作系统层Andrid充分利用已有的Linux内核平安机制,并在此根底上进展改良如应用沙盒和平安IPinter-pressuniatin,进程通信,这些平安机制可以保证即使本地代码程序也被限制在应用沙盒中平安运行。2.1Linux平安性Andrid平台的根底是Linux内核。Linux操作系统经过多年的
6、开展,已经成为一个稳定的平安的被许多公司和平安专家信任的平安平台3。作为挪动平台的根底,Linux内核为Andrid提供了如下平安功能:基于用户受权的形式、进程隔离、可扩展的平安IP和移除不必要的不平安的内核代码。作为多用户操作系统,Linux内核提供了互相隔离用户资源的功能。通过隔离功能,一个用户不能使用另一个用户的文件、内存、PU和设备等。2.2应用沙盒Andrid平台把Linux基于用户的受权形式作为标识和隔离应用程序资源的方式。系统为每个应用分配一个用户IDUID,并在该设备上一直保持这个数值;运行时,把应用当作编号为UID的用户在一个单独的进程运行。简而言之,Andrid系统中一个U
7、ID对应一个进程。这一点与其它操作系统不同,在其它操作系统中,一个UID可以拥有多个进程。Andrid采用这种方式作为内核层的应用沙盒AppliatinSandbx。通过分配UID给应用程序这种方式,增强了系统的平安性。默认情况下,应用之间不能互相操作,应用访问操作系统的功能也受到限制。例如,在没有受权的情况下应用A想要读取应用B的数据或想要使用 功能都会被操作系统回绝。由于应用沙盒位于内核层,所以这种平安形式可以作用到图1所示的Linux内核之上的所有层。在有的平台上,为了增强平安性,开发者被限制在指定的开发框架、API集或开发语言上。但在Andrid平台中,采用/+与采用Java编写的应用
8、其平安性都一样,因为最终都运行在沙盒中。在有的操作系统中内存错误会导致系统平安性降低。但在Andrid中由于应用及其数据存在于沙盒中,内存错误至多影响当前应用而不会影响其它应用。2.3文件系统答应/加密在Linux环境中,文件系统答应perissin可以保证一个用户不能修改或读取另一个用户的文件。Andrid系统中每个应用都分配一个用户ID,应用作为一个用户存在,因此除非开发者明确指定某文件可以供其它应用访问,否那么一个应用创立的文件其它应用不能读取或修改。文件系统加密功能可以对整个文件系统进展加密。内核利用d-rypt技术创立加密文件系统。d-rypt技术是建立在Linux内核2.6版本的d
9、evie-apper特性之上的。devie-apper是在实际的块设备之上虚拟层可以方便开发人员实现镜像、快照、级联和加密等处理。为了防止系统口令攻击例如通过彩虹表或暴力破解等方法,口令采用SHA1加密算法进展保存。为了防止口令字典攻击,系统提供口令复杂性规那么,规那么由设备管理员制定,由操作系统施行。2.4其它内核平安措施还包括丰富的数据加密函数、内存平安管理增强、刷机时保护用户数据等。Andrid系统为应用开发提供了一组实现加密功能的API函数,包括标准的加密算法4如AES,RSA,DSA,和SHA等;及更高层的平安网络协议如SSL和HTTPS。据统计,操作系统中超过50%的平安破绽都是由
10、内存溢出引起的。为此,Andrid系统提供的SDK、编译器和工具可以增强保护内存的力度,更大程度防止内存溢出。随着更高版本的Andrid系统推出,内存管理的功能也不断增强,包括PrPlie、safe_ip、增强的dlall、AddressSpaeLayutRandizatinASLR、PIEPsitinIndependentExeutable、desg_restrit等。其中ASLR是一种针对缓冲区溢出的平安保护技术,通过对堆、栈、共享库映射等线性区布局的随机化增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,到达阻止溢出攻击的目的。ASLR可以有效的降低缓冲区溢出攻击的成功率。3
11、Andrid应用平安Andrid系统为挪动设备提供了一个开源的平台和应用程序开发环境。通常程序开发语言采用Java,并运行在Dalvik虚拟机中,对于游戏等性能要求较高的程序也可以采用/+编写。程序安装包以.apk为扩展名。一个应用程序通常由配置文件Andridanifest.xl、活动Ativity、效劳Servie和播送接收器BradastReEiver组成等组成。3.1Andrid权限形式所有的应用程序都运行在应用沙盒中,默认情况下,应用只能存取受限的系统资源。这种受限机制的实现方式有多种,包括不提供获取敏感功能的API函数、采用角色别离技术和采用权限形式。权限形式最常用,通过这种方式把
12、用于存取敏感资源的API函数只受权给值得信任的应用程序,这些函数主要涉及的功能包括摄像头、GPS、蓝牙、 、短信和网络等。应用程序为了可以存取这些敏感资源,必须在它的配置文件中声明存取所需资源的才能。当用户安装这种程序时,系统会显示对话框提示程序需要的权限并询问用户是否需要继续安装。假如用户继续安装,系统就把这些权限授予对应的程序。安装过程中,针对用户只想受权其中的某些权限的情况系统是不支持的。安装完毕后,用户可以通过系统设置功能允许或回绝某些权限。对于系统自带的应用程序,系统不会提示恳求用户受权。假如程序的配置文件中没有指定受保护资源的受权,但程序中调用了资源对应的API函数,那么系统抛出平
13、安异常。程序的配置文件中还可以定义平安级别prtetinLevel属性,这个属性告诉系统其它哪些应用可以访问此应用。3.2平安进程通信尽管Linux内核提供了多种进程通信IP机制,包括管道、信号、报文、信号量、共享内存和套接字等。但出于平安性考虑Andrid增加了新的平安IP机制,主要包括Binder、Servie,Intent和ntentPrvider。Binder是一个轻量级的远程过程调用机制,它可以高效平安地实现进程内和进程间调用5。Servie运行在后台并通过Binder向外提供接口效劳,通常不具有可见的用户界面。Intent是一个简单的消息对象,此对象表示想要做某事的意向。ntent
14、Prvider是一个数据仓库,通过它可以向外提供数据。例如一个程序可以获取另一个应用通过ntentPrvider向外公布的数据。在编写程序时假如需要进程通信,虽然可以使用Linux提供的传统的方式,但还是推荐使用Andrid提供的平安IP框架,这样可以防止传统方式存在的通信平安缺陷。3.3应用程序安装包签名所有的Andrid应用程序安装包apk文件必须进展签名,否那么程序不能安装在Andrid设备或模拟器中。签名的目的用于标识程序作者、晋级应用程序。当没有签名的应用在安装时,包管理器就会回绝安装。签名的应用在安装时,包管理器首先验证APK文件中的签名证书是否正确,假如正确,首先把应用放置在应用
15、沙盒中,然后系统为它分配一个UID,不现的应用有不同的UID;假如证书签名与设备中其它签名的应用一样,表示是同一个应用,那么提示用户是否用新的应用更新老的相应。该签名证书可以由开发者自己设定称之为自签名self-signed证书,也可以由第三方的认证机构受权。系统提供自签名证书功能使得开发者不再需要借助外部的帮助或受权即可以自己进展签名。Ggle公司提供了完好方便的签名工具为用户开发提供便利。4结论Andrid系统作一个平安开源的挪动平台,在系统内核层次与应用开发方面都提供了强大的平安措施。在系统内核层次,应用沙盒可以实现应用之间的隔离,防止一个应用的数据和代码被其它没有受权的应用存取;随着系统版本的晋级,内存管理功能随之丰富;加密的文件系统可以保护丧失设备上的数据不被泄漏。在应用开发方面同,采用加密、受权和平安IP等措施构建的应用程序框架具有强大的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智慧研究:知识产权驱动-本科研究中的知识产权保护
- 2026 减脂期答疑解惑课件
- 2025年小学英语毕业考试模拟试卷:语法专项突破句子结构分析
- 肿瘤内科健康教育处方
- 医学26年:高颅压性头痛诊疗 查房课件
- 26年NCCN国内适配指引
- 2026 减脂期个性化课件
- 食道癌患者的营养支持护理
- 镇痛护理案例分析
- 高血压患者的压力管理技巧
- 上海会展展览行业劳动合同模板
- 循环流化床锅炉启动调试导则
- 下基层调研工作制度
- JJG 621-2012 液压千斤顶行业标准
- T-GDWCA 0035-2018 HDMI 连接线标准规范
- 小升初语文文言文阅读历年真题50题(含答案解析)
- 头晕教学讲解课件
- 电气化铁路有关人员电气安全规则2023年新版
- GB/T 23853-2022卤水碳酸锂
- GB/T 16823.3-2010紧固件扭矩-夹紧力试验
- 2023年深圳市南山区事业单位招聘笔试题库及答案解析
评论
0/150
提交评论