一种基于可信微域的终端安全防护方法、终端与流程

文档序号:12720748阅读:450来源:国知局
一种基于可信微域的终端安全防护方法、终端与流程

本发明涉及可信计算技术,尤其涉及一种基于可信微域的终端安全防护方法、终端。



背景技术:

多域技术通常指双域,通常用于携带自己的设备办公(BYOD,Bring Your Own Device)场景中。参照图1,以三星产品型号为KNOX的设备为例进行如下说明:

工作域是设备上的一个虚拟安卓(Android)环境,工作域拥有自己独立的界面、浏览器、应用以及组件。通过使用工作域,可以消除由移动办公员工使用个人移动终端工作时出现的数据泄露问题,同时还可以保证用于个人使用的应用及数据的安全。通过个人域与工作域独立的容器设置,达成了企业管理与员工隐私的双赢局面。

可信计算(TC,Trusted Computing)是在计算和通信系统中广泛使用基于硬件安全模块支持下的可信计算平台,以提高系统整体的安全性。三星产品型号为KNOX的设备中,在架构(framework)层为企业的用户提供了一个安全可信的执行环境。从而为手机中的应用提供了一个单独的安全的运行环境,包括独立的主界面、进程空间、应用。

多域技术目前主要用在BYOD场景中,保证了企业敏感数据的安全,为其数据的存储提供独立的安全存储空间。将工作域与个人域分开,给员工提供安全的办公环境;独立的空间也防止了恶意软件被下载到工作域。

多域技术具体实现方法主要分为三类:

(1)参照图2,独立的双操作系统,两套操作系统直接安装在系统的不同 分区,相互独立,两个系统不共享系统内核,两个系统不能同时运行,需要重启才能切换到另一个操作系统,如Android系统和窗口手机系统(Windows Phone)。

(2)参照图3,硬件管理器(Hypervisor)方案的双操作系统,利用虚拟化技术,在单个硬件平台上运行多个操作系统,包括Android系统和非Android系统,这两个操作系统不共享内核完全隔离,两个系统同时运行,采用软切换模式进行切换,不需要重启。

(3)参照图4,内核(Kernel)层隔离方案的双操作系统,两个操作系统共享同一内核,但是两个操作系统使用不同的应用运行时环境,两个操作系统也同时运行,使用时无需重启手机,可一键实现两个系统的无缝切换。

可信计算架构下,终端系统分普通环境和安全环境;普通环境如Android操作系统,可信环境如MobiCore可信操作系统。为保护普通环境中某应用的敏感计算和存储,参照图5,可通过如下方案实现:

1、将要保护的目标应用的敏感函数分离;

2、将敏感函数在可信操作系统上单独实现为可信应用,该实现依赖可信系统和环境,由于不具有通用性,所以成本高,门槛高;

3、通过预置或空中部署的方式,将Trustlet通过空中下载技术(OTA,Over the Air Technology)方式写入终端可信环境中,Trustlet在可信环境中隔离存储,各Trustlet见互不可见,而可信环境空间小,资源紧缺。

现有的多域技术存在如下缺点:

1、现有的多域技术粒度大,无论通过哪种方式实现的隔离技术,都是以域的粒度进行隔离,并将软件进行分类,分别装入不同的域中,隔离粒度不够,一旦安全域中的某应用被恶意利用,则安全域中的其他应用可能遭受攻击;而如果彻底将安全域的软件固定化,则灵活性和用户体验较差,使用不方便;

2、每个域中的应用管理方案均通过Android操作系统框架层进行,无法进行精细化管理和权限控制;

3、实现多域技术复杂,对Android操作系统框架层改动大,需要通过出厂 前预置或刷机或系统升级的方式实现。

现有的可信计算技术存在如下缺点:

1、当前Android系统中,应用的可信计算部分是由其可信计算模块(Trustlet)完成的,而可信计算模块需要预装或通过OTA方式装入可信存储空间中。目前手机中可信存储空间太小,无法满足当前众多应用对可信存储空间和可信计算资源的需求;

2、同时,应用的可信计算部分的开发对开发环境,可信操作系统,开发人员技术都有很高的要求,导致该部分的开发门槛和成本很高。

3、应用实现的可信计算部分可移植性差,开发者需要针对每个可信系统实现可信计算部分,而当前可信系统无标准,实现厂家差异大。



技术实现要素:

为解决上述技术问题,本发明实施例提供了一种基于可信微域的终端安全防护方法、终端。

本发明实施例提供的基于可信微域的终端安全防护方法,包括:

为目标应用设置子微域;

通过所述子微域调用应用程序编程接口(API,Application Programming Interface)以请求进行可信计算,以及通过所述子微域调用微域核心以请求进行签名验证的可信计算;

当通过所述微域核心调用API访问微域可信计算模块时,所述微域可信计算模块从微域可信存储区域中读取密钥,并利用所述密钥进行签名验证的可信计算;

所述微域可信计算模块将计算结果发送至所述微域核心,所述微域核心将所述计算结果发送至所述子微域,所述子微域将所述计算结果发送至所述目标应用。

本发明实施例中,所述为目标应用设置子微域,包括:

当安装所述目标应用时,利用微域核心调用微域孵化器为所述目标应用设 置子微域。

本发明实施例中,所述方法还包括:

当通过所述微域核心调用API访问微域可信计算模块时,所述微域可信计算模块根据调用的API执行以下功能:可信用户交互(UI,User Interface)功能、和/或可信存储功能、和/或可信计算功能。

本发明实施例中,所述方法还包括:

所述微域可信计算模块对所述微域核心的参数进行运算,并将运算结果和存储在所述微域可信存储区域中的数据进行比较,以确认所述微域核心的安全性。

本发明实施例中,所述方法还包括:

通过所述子微域对所述目标应用的请求指令进行权限管理。

本发明实施例提供的终端,包括:

设置单元,用于为目标应用设置子微域;

第一调用单元,用于通过所述子微域调用API以请求进行可信计算,以及通过所述子微域调用微域核心以请求进行签名验证的可信计算;

第二调用单元,用于当通过所述微域核心调用API访问微域可信计算模块时,所述微域可信计算模块从微域可信存储区域中读取密钥,并利用所述密钥进行签名验证的可信计算;

发送单元,用于所述微域可信计算模块将计算结果发送至所述微域核心,所述微域核心将所述计算结果发送至所述子微域,所述子微域将所述计算结果发送至所述目标应用。

本发明实施例中,所述设置单元,还用于当安装所述目标应用时,利用微域核心调用微域孵化器为所述目标应用设置子微域。

本发明实施例中,所述终端还包括:

执行单元,用于当通过所述微域核心调用API访问微域可信计算模块时,所述微域可信计算模块根据调用的API执行以下功能:可信用户交互UI功能、和/或可信存储功能、和/或可信计算功能。

本发明实施例中,所述终端还包括:

验证单元,用于通过所述微域可信计算模块对所述微域核心的参数进行运算,并将运算结果和存储在所述微域可信存储区域中的数据进行比较,以确认所述微域核心的安全性。

本发明实施例中,所述终端还包括:

管理单元,用于通过所述子微域对所述目标应用的请求指令进行权限管理。

本发明实施例的技术方案中,为目标应用设置子微域;通过所述子微域调用API以请求进行可信计算,以及通过所述子微域调用微域核心以请求进行签名验证的可信计算;当通过所述微域核心调用API访问微域可信计算模块时,所述微域可信计算模块从微域可信存储区域中读取密钥,并利用所述密钥进行签名验证的可信计算;所述微域可信计算模块将计算结果发送至所述微域核心,所述微域核心将所述计算结果发送至所述子微域,所述子微域将所述计算结果发送至所述目标应用。本发明实施例的技术方案和多域/多用户技术方案相比:多域和多用户技术方案通过隔离数据和域的方法实现。该方案下每个域或用户空间中的应用权限仍然是集中化管理的,虽然某些方案中能够通过推送策略的方式进行实现,但的方法无法实现部分资源的访问控制,粒度无法更细;而通过微域核心对子微域设置访问条件和动态的检查,则可实现细粒度的资源访问控制。如某个应用无法访问通讯录中某个人或某些分组的人的信息。其次,多域和多用户技术需要对Android系统的框架层做修改才能实现;而通过应用实现的微域框架不需要对Android系统层做任何修改,因此实用性和普适性更广。本发明实施例的技术方案和可信计算方案相比:手机中的可信资源非常有限,可信操作系统,可信计算能力,可信存储空间都非宝贵。现有的可信计算方案中,应用的可信部分都占有该空间的一部分,需要单独实现一些通用的哈希(Hash)算法,分别实现可信输入/输出(I/O,Input/Output)等;通过微域核心代理,将微域可信计算模块的通用计算和存储能力暴露出来,实现通用模块,集中管理安全存储能力,方便进行存储优化,可有效改善资源有限的问题。其次,通过微域核心作代理,应用进行无需进行可信计算部分的单独开发,解决 了可信计算开发门槛高,成本高的问题。同时,只需实现同样的接口,即可将应用安装到不同可信系统和不同硬件的手机中,通过微域方案解决差异化,增加了应用的可移植性。

附图说明

图1为双域技术的示意图;

图2为独立双操作系统的示意图;

图3为硬件Hypervisor双操作系统的示意图;

图4为Kernel层隔离的双操作系统的示意图;

图5为可信计算架构的示意图;

图6为本发明实施例一的基于可信微域的终端安全防护方法的流程示意图;

图7为本发明实施例二的基于可信微域的终端安全防护方法的流程示意图;

图8为本发明实施例的终端的结构组成示意图;

图9为本发明实施例的终端的系统架构示意图;

图10为本发明实施例的微域可信计算模块的示意图;

图11为本发明实施例的微域核心的示意图;

图12为本发明实施例的子微域孵化器的示意图;

图13为本发明实施例的子微域的示意图。

具体实施方式

为了能够更加详尽地了解本发明实施例的特点与技术内容,下面结合附图对本发明实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明实施例。

图6为本发明实施例一的基于可信微域的终端安全防护方法的流程示意图,如图6所示,所述基于可信微域的终端安全防护方法包括以下步骤:

步骤601:为目标应用设置子微域。

本发明实施例中,当安装所述目标应用时,利用微域核心调用微域孵化器为所述目标应用设置子微域。

步骤602:通过所述子微域调用API以请求进行可信计算,以及通过所述子微域调用微域核心以请求进行签名验证的可信计算。

本发明实施例中,当通过所述微域核心调用API访问微域可信计算模块时,所述微域可信计算模块根据调用的API执行以下功能:可信用户交互UI功能、和/或可信存储功能、和/或可信计算功能。

本发明实施例中,所述微域可信计算模块对所述微域核心的参数进行运算,并将运算结果和存储在所述微域可信存储区域中的数据进行比较,以确认所述微域核心的安全性。

本发明实施例中,通过所述子微域对所述目标应用的请求指令进行权限管理。

步骤603:当通过所述微域核心调用API访问微域可信计算模块时,所述微域可信计算模块从微域可信存储区域中读取密钥,并利用所述密钥进行签名验证的可信计算。

步骤604:所述微域可信计算模块将计算结果发送至所述微域核心,所述微域核心将所述计算结果发送至所述子微域,所述子微域将所述计算结果发送至所述目标应用。

本发明实施例中,微域核心和子微域孵化器在一个安装包中,可以通过预置在普通操作系统(OS,Operator System)环境(如Android)中或用户通过应用(App)商店(如Google Play)下载主动安装。

本发明实施例中,微域可信计算模块作为可信应用,可以预置在可信OS环境中,也可以通过可信服务管理(TSM)下载。

本发明实施例中,微域可信存储区域为可信环境中的一块可信存储空间。

结合上述说明,现通过图7对本发明实施例的基于可信微域的终端安全防护方法再进行描述。

图7为本发明实施例二的基于可信微域的终端安全防护方法的流程示意图,如图7所示,所述基于可信微域的终端安全防护方法包括以下步骤:

步骤701:用户安装应用时,选择通过微域核心实现安装。

步骤702:微域核心启动或调用子微域孵化器,实现对应用的子微域注入。

步骤703:应用启动运行,通过子微域调用系统API请求进行可信计算。

步骤704:子微域调用微域核心,请求进行签名验证的可信计算。

步骤705:微域核心调用API访问微域可信计算模块。

步骤706:微域可信计算模块访问其微域可信存储区域,请求读取密钥。

步骤707:微域可信计算模块从其微域可信存储区域中读取到计算所用密钥。

步骤708:微域可信计算模块进行签名验证的可信计算。

步骤709:微域可信计算模块将计算结果返回给微域核心。

步骤710:微域核心将计算结果返回给子微域。

步骤711:子微域将计算结果返回给应用。

图8为本发明实施例的终端的结构组成示意图,如图8所示,所述终端包括:

设置单元81,用于为目标应用设置子微域;

第一调用单元82,用于通过所述子微域调用API以请求进行可信计算,以及通过所述子微域调用微域核心以请求进行签名验证的可信计算;

第二调用单元83,用于当通过所述微域核心调用API访问微域可信计算模块时,所述微域可信计算模块从微域可信存储区域中读取密钥,并利用所述密钥进行签名验证的可信计算;

发送单元84,用于所述微域可信计算模块将计算结果发送至所述微域核心,所述微域核心将所述计算结果发送至所述子微域,所述子微域将所述计算结果发送至所述目标应用。

所述设置单元81,还用于当安装所述目标应用时,利用微域核心调用微域孵化器为所述目标应用设置子微域。

所述终端还包括:

执行单元85,用于当通过所述微域核心调用API访问微域可信计算模块时,所述微域可信计算模块根据调用的API执行以下功能:可信用户交互UI功能、和/或可信存储功能、和/或可信计算功能。

所述终端还包括:

验证单元86,用于通过所述微域可信计算模块对所述微域核心的参数进行运算,并将运算结果和存储在所述微域可信存储区域中的数据进行比较,以确认所述微域核心的安全性。

所述终端还包括:

管理单元87,用于通过所述子微域对所述目标应用的请求指令进行权限管理。

本领域技术人员应当理解,图8所示的终端中的各单元的实现功能可参照前述基于可信微域的终端安全防护方法的相关描述而理解。图8所示的终端中的各单元的功能可通过运行于处理器上的程序而实现,也可通过具体的逻辑电路而实现。

下面结合具体应用场景对本发明实施例的终端中的各个单元模块的功能进行详细说明。

图9为本发明实施例的终端的系统架构示意图,如图9所示,终端的系统包括:普通的操作系统,本发明实施例以Android系统为例;可信操作系统。

其中,Android系统中,安装了多个应用,例如,支付宝、微信、企业办公软件。每个应用均对应一个子微域。Android系统中具有子微域孵化器和微域核心。

可信操作系统中具有微域可信计算模块和微域可信存储区域。

可见,本发明实施例的微域的实现由4部分组成:子微域、子微域孵化器、微域核心、微域可信计算模块(微域可信存储区域)。

参照图10,图10为微域可信计算模块的示意图,微域可信计算模块基于可信操作系统开发,是一个标准的Trustlet。微域可信计算模块通过API的形式, 对外提供通用的可信UI组件功能。具体地:

①微域可信计算模块API,由微域核心调用,以API的形式提供微域可信计算模块的功能服务,功能服务包括:可信UI功能、可信存储功能、可信计算功能;

②可信界面(TUI)功能:当微域核心需要保证UI操作安全的时候,调用组件中的API,通过通用可信UI接口接受用户输入(如支付密码的输入等操作);可信UI的编码实现按照可信系统要求实现即可;

③可信计算功能具体实现是:实现通用的Hash和加解密算法,按照可信操作系统平台要求进行编码实现;结合可信存储功能的实现,对外提供跟敏感数据相关的通用加解密和Hash运算。

④可信存储IO功能具体实现是:应用程序,如支付宝或微信,需要存储和读取用户的手势、用户名和密码、密钥或指纹等信息。应用程序将这些信息通过调用子微域的API,经过微域核心,最终通过微域核心将这些敏感信息进行读取和存储。要实现此功能,微域核心需要记录密钥信息,指纹信息等关键性敏感信息时,在其所能操作的微域可信存储区域内,根据请求所带的应用信息(如应用的签名),对关键性敏感信息进行基于索引的读取和存储。其中索引是基于应用信息建立的,应用信息包括包名,签名,版本等。

参照图11,图11为微域核心的示意图,微域核心有如下2个功能:①提供子微域和微域可信计算模块间的接口,建立两者间的调用通道;②生成和管理子微域孵化器;具体地:

①微域核心提供API供子微域调用;

②验证的实现:可信组件将核心的包名,签名,版本号等信息在可信硬件中进行运算,运算可以是Hash或其他类似算法,并将结果和存储在微域可信存储区中的数据进行对比,如符合预期,则确认微域核心的安全性;

③通道接口的实现:核心调用微域可信计算模块提供的API,通过支持可信计算的Android手机提供的系统接口实现,具体实现依赖于所采用的可信操作系统;

④生成和管理子微域孵化器的实现:孵化器由核心通过生成子进程的方式生成。核心通过实现Android系统安装器和应用包APK重打包的功能,使孵化器能在应用安装时或进行安全请求时,为该应用生成特定子微域。

安全性分析:核心经过可信组件验证后,生成的子微域孵化器及由子微域孵化器生成的子微域均可保证可信性,最后通过子微域对应用进行验证,从而将信任链延伸至应用。

参照图12,图12为子微域孵化器的示意图,子微域孵化器作为微域核心的子进程,负责为单个应用定制出特定的子微域。具体地:

①应用注入和打包器具体实现是:当微域核心触发启用的防护机制时,孵化器读取和解压目标应用的安装包,并将子微域注入到安装包中,而后重新进行打包。

这里,除上述通过子微域孵化器生成子微域的方法外,可采用重新打包并签名的方法实现同样的效果,有3种实现方法:A、通过线下打包后将包发给APK开发者签名;B、在线发送包HASH数据给合作方,合作方签名验证请求者的身份后,将签名数据发回,子微域孵化器在线接收签名数据并添加到APK的签名位置中。C、通过和开发者合作,将HASH后签名的数据缓存到子微域中加密存储或子微域的云端,注入子微域后直接添加签名数据。

②孵化进程管理器:作为微域核心的子进程,同微域核心交互,并运行和管理应用注入和打包器。

参照图13,图13为子微域的示意图,子微域以二进制和字节码的形式注入到每个应用安装包中,在应用的进程中运行,并负责和微域核心通信。具体地:

①将I/O、设备资源申请、网络传输、数据库和内容提供tContentProvider等相关的系统调用,采用Hook的方法先在子微域的调用分析和控制模块中进行权限和资源的审核,通过后方可进行系统API的调用,否则按照规则对其进行资源访问限制

②系统调用子微域提供的可信API,可在实现了微域方案的任何机器上进 行可信API的调用,从而实现了对可信平台无关的特性;

③调用分析和控制模块:微域核心对资源申请的合理性做分析和控制后,以决定是否在某种条件下对资源的访问进行某种限制;分析和控制的方法是:A、通过云端动态分析应用行为的恶意性及权限和行为的异常(参考杀毒软件的APP动态分析方法);B、用户开关,用户通过子微域的APP资源开关对APP进行资源管控,C、策略分发,云端推送到子微域相关权限策略文件,对子微域进行基于策略的细粒度访问控制。

本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。

在本发明所提供的几个实施例中,应该理解到,所揭露的方法和智能设备,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个第二处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1