论文部分内容阅读
智能手机已经成为人们生活必不可少的信息交流工具,如购物,社交,浏览最新资讯等各方面都在悄无声息的改变着人们的日常行为。而Google推出的Android系统作为现如今最为流行的智能终端系统之一,其在市面上的份额和用户使用量是逐年增加。然而,Android系统由于其开放的平台,吸引着各大手机厂商,他们根据自身和用户的需求定制化Android系统手机,以此同时,随即带来的安全威胁也越来越突出。这对人们的日常生活,个人隐私和财产安全等导致了很大的困扰,所以智能手机的安全问题也越来越受到大家的关注与重视。本文主要是针对Android系统中四大组件的通信机制以及存在的安全威胁进行研究,并提出合理可行的设计方案和做出具体实现。本文首先是对四大组件之间的通信原理进行深入的分析,再针对已经出现的Android系统上的安全威胁进行研究:组件劫持的数据泄露威胁和特权提升攻击。根据组件通信的原理和安全威胁存在的特性制定了以下方案:基于组件签名和数据加密保证组件通信的安全。1.首先利用Android中已有的对应用程序的签名机制运用到组件签名中,更加细粒度的保护组件通信的安全。利用密钥生成工具KeyTool生成签名所需的公私钥对,并对“包名+组件名”作为唯一标识进行签名,并配置在AndroidManifest.xml中.访问者访问之前需要请求签名,访问过程中需要经过用户授权和系统验证才能进行访问。此方案是对权限的更加细粒度的操作,进一步保证组件的安全访问。2.在组件签名的基础上,双方经过认证后,使用数据加密对四大组件在通信的过程中传输的数据进行安全保护。并根据源码中组件通信的原理,实现数据安全传输的方案。增添Key StoreManagerService服务,提供加密解密等一系列API和密钥管理服务,对组件通信中正在传输的数据以密文的形式传输,双方通信是在相互依赖的基础上才能获取明文数据。对于敏感组件之间的访问,首先需要完成组件签名,双方在相互信任的基础上,对传输的数据进行加密,这样即使恶意攻击者拦截意图或者通过脆弱组件去访问敏感组件并获取敏感信息,在没有通过系统有效验证和没有正确的私钥的解密的情况下,恶意攻击者是无法获取正确有效的信息的。本文实现的方案是基于Android Framework层源码,为开发者提供各种所需的接口,开发者可以根据自身的需要对App中的组件进行安全防护,更加细粒度保护组件安全并更好的保证用户的信息和财产安全。