一种基于TrustZone技术的安全输入系统与方法与流程

文档序号:11156262阅读:366来源:国知局
一种基于TrustZone技术的安全输入系统与方法与制造工艺

本发明涉及一种基于TrusZone(信任区域)技术的安全输入系统与方法,属于移动终端安全领域。



背景技术:

随着移动互联网技术和移动智能终端的快速发展,移动终端处理的业务从传统的通信、娱乐领域延伸到移动办公、移动支付等高安全、高敏感业务领域。用户需要在移动终端输入越来越多的敏感信息包括登陆用户名和密码、联系人信息、银行卡号等。研究发现大部分第三方输入法软件会在用户输入的过程中发送输入的信息到远程服务器,其中包括用户名和密码等隐私信息,所以需要在这种情况下保障用户在移动终端输入的敏感信息不被第三方恶意截获或被输入法服务提供商恶意利用。

虽然对于数据的加密操作可以防止信息截获,但是输入法服务提供商依然可以获取用户输入的敏感信息。大多数对输入法安全问题的解决方案是在输入法已经获取用户的点击后执行回滚或加密等操作,不能在输入法的代码执行之前采取行动,因此安全问题仍然存在。

为了更好地解决移动终端安全输入的问题,必须从底层硬件架构、操作系统等多个环节设计软硬件结合的整体解决方案。ARM TrustZone硬件隔离技术在移动终端构建普通执行环境和可信执行环境两个独立的运行世界,即普通世界和安全世界,并利用处理器的监控模式提供两个世界的切换与数据传输。普通执行环境与可信执行环境相互隔离,保证了可信执行环境中操作的安全性。有效实现应用系统高敏感业务与普通业务的隔离。

基于TrustZone技术实现安全输入系统需解决以下几个问题:如何识别敏感信息输入场景,如何将用户输入操作切换到可信执行环境,如何将可信执行环境中的输入信息传输到普通执行环境中的普通应用程序。

目前现有技术均未有解决上述问题的技术报导。



技术实现要素:

本发明的技术解决问题:解决用户在移动终端的安全输入问题,提供一种基于TrustZone技术的安全输入系统与方法,从而有效地保证移动终端输入系统的安全性,具有通用性、高效且用户友好、强安全性等优势。

本发明技术解决方案为:一种基于TrustZone技术的安全输入系统与方法,下面简要介绍下本方案的基本思想,本发明在吸取已有解决方案优点的基础之上,提出了自己的设计思想,具体来说,本发明的基于TrustZone技术的安全输入系统包括下列几个方面:

方面一,用户名和密码场景识别模块位于普通执行环境中,利用普通应用程序编辑框的文本域的类型信息判断当前是否位于用户名和密码输入场景,从而判断是否切换到可信执行环境中的隔离初始化模块。当用户在普通应用程序中触摸编辑框调用第三方输入法时,普通执行环境中的用户名和密码检测模块分析编辑框的文本域的类型信息,如果是用户名和密码类型,切换到隔离初始化模块;如果不是用户名和密码类型,用户可以在普通执行环境继续操作。

方面二,键盘布局检测模块检测普通执行环境中显示的第三方输入法软键盘的安全性,在其未经修改的情况下才继续执行隔离初始化模块,从而保证用户在安全的软键盘上进行输入。在上述已经识别出是用户名和密码场景的情况下,用户在第三方输入法的软键盘触摸时,输入法框架通知隔离初始化模块,在隔离初始化模块的开始阶段执行键盘布局检测模块。键盘布局检测模块利用哈希值对比当前普通执行环境中显示的第三方输入法的软键盘布局信息与预存在可信执行环境中该第三方输入法的软键盘布局信息是否一致,如果一致则复用该第三方输入法的软键盘作为可信执行环境中的软键盘,然后继续执行隔离初始化模块,进而用户可以在可信执行环境所复用的软键盘上输入。

方面三,隔离初始化模块负责可信执行环境中安全输入隔离环境的配置,基于TrustZone技术的安全输入隔离环境包括安全外设(安全触摸屏)和安全帧缓存。在上述键盘布局检测模块检测当前第三方输入法软件盘布局的一致性之后,隔离初始化模块重新配置帧缓存和触摸中断处理。配置帧缓存即将普通执行环境的帧缓存页表和物理地址配置到可信执行环境;配置触摸中断处理即将外设(触摸屏)的中断设置成优先级较高的安全中断,然后将触摸屏设置成安全外设。当安全外设上发生触摸事件,即用户输入时,由可信执行环境处理,然后将用户输入的数据交给键值安全返回模块。

方面四,键值安全返回模块负责将用户在可信执行环境中输入的键值安全提交给普通执行环境中的普通应用程序。在普通执行环境的输入法框架中,键值通过第三方输入法提交给普通应用程序,即键值要经过第三方输入法的地址空间传输,存在敏感信息泄露的风险。基于此问题,本发明设计了键值安全返回模块,将用户在可信执行环境中输入的键值不通过第三方输入法直接提交给普通应用程序。键值安全返回模块包括安全键值提交服务及其与普通应用程序之间的安全通道,安全键值提交服务首先使用安全通道验证普通应用程序的合法性,然后利用可信执行环境和普通执行环境的共享内存向普通应用程序提交键值。

一种基于TrustZone技术的安全输入方法,实现步骤如下:

(1)用户在普通应用程序的编辑框触摸调用第三方输入法时,普通执行环境中的用户名和密码场景检测模块首先利用编辑框的文本域的类型信息检测当前是否位于用户名和密码输入场景,如果是用户名和密码输入场景,就切换到可信执行环境中的隔离初始化模块;如果不是用户名和密码输入场景,则用户在普通执行环境中继续操作。

(2)用户在启动的第三方输入法的软键盘上触摸时,相应的触摸事件被添加在输入法框架的系统服务的触摸输入处理类TouchInputMapper中的钩子函数sync()捕获并通知隔离初始化模块,该模块开始时首先执行键盘布局检测模块,检测当前第三方输入法的软键盘的布局是否与预存在可信执行环境中的信息一致,如果一致则继续进行隔离初始化模块的初始化操作。

(3)隔离初始化模块首先将普通执行环境的帧缓存页表和物理地址配置到可信执行环境,然后把触摸中断设置成可信执行环境中的安全硬件中断,并且设置该中断是不可屏蔽的,最后复用上述经过检测的第三方输入法的软键盘作为可信执行环境中的安全键盘,然后用户可以在可信执行环境进行安全输入,用户输入的键值交给键值安全返回模块。

(4)键值安全返回模块将键值提交给普通应用程序,该模块包括安全通道和安全键值提交服务。其中安全通道负责对普通应用程序的合法性检测,普通应用程序启动第三方输入法时,输入法框架通知隔离初始化模块为普通应用程序产生标识其身份的唯一标识,然后请求安全键值提交服务利用该标识和输入连接接口InputConnection对普通应用程序进行验证,验证通过则普通应用程序和键值安全提交模块完成绑定。在已绑定的情况下,当键值安全返回模块需要向普通应用程序提交数据时,数据首先被放在可信执行环境和普通执行环境之间的共享内存中,然后该模块的安全键值提交服务从共享内存中获取数据,并利用输入连接接口InputConnection调用普通程序中的基本输入连接接口BaseInputConnection,从而把数据不经第三方输入法提交给普通应用程序。

本发明与现有技术相比,具有以下优点:

(1)利用ARM TrustZone硬件隔离技术在系统级保证安全输入,不受第三方输入法和普通应用程序的限制,并通过添加系统服务“安全键值提交服务”保证用户在可信执行环境输入的敏感信息向普通应用程序提交的安全性,所本发明在保证通用性和机密性的同时,不影响用户体验。

(2)本发明在可信执行环境中复用当前普通执行环境中第三方输入法的软键盘,减少了设计的复杂性,同时通过键盘布局检测模块保证可信执行环境所复用的第三方输入法的软键盘是未经修改的。该安全输入系统还可以防止图形显示攻击,即恶意软件模仿普通应用程序的用户界面来进行钓鱼或触摸劫持,因为键值安全返回模块的安全通道利用可信执行环境为普通应用程序产生的标识验证其安全性,从而保证键值被提交给未经修改的普通应用程序。

(3)利用ARM TrustZone提供的硬件隔离技术将安全输入系统的主要部分运行在可信执行环境,通过在输入法框架的系统服务中添加钩子函数,保证在特定操作下可以触发可信执行环境中相应模块的操作,最终在不影响用户体验的情况下切换到可信执行环境让用户进行输入,通过添加系统服务安全键值提交服务,不经第三方输入法而是使用可信执行环境和普通执行环境的共享内存向普通应用程序提交敏感信息。所以本发明具有较强的安全性。

附图说明

图1为本发明的整体框架示意图;

图2为本发明的用户名和密码检测模块工作示意图;

图3为本发明的安全输入隔离环境初始化模块示意图;

图4为本发明的键值安全返回模块的安全键值提交服务与普通应用程序的绑定示意图。

具体实施方式

本发明利用ARM TrustZone硬件隔离技术和可信执行环境作为基础平台,实现具有通用性的安全输入系统,在用户名和密码输入场景下,普通执行环境的操作通过安全中断切换到可信执行环境执行,用户在与普通执行环境隔离的环境下进行输入,并通过添加系统服务向普通应用程序提交敏感信息;保证对系统最小修改的前提下,在可信执行环境中复用当前第三方输入法的软键盘让用户进行输入,键盘布局检测模块负责检测所复用的软键盘的安全性;本发明的键值安全返回模块通过添加系统服务“安全键值提交服务”而不经过第三方输入法向普通应用程序提交用户在可信执行环境输入的敏感信息,同时可以对普通应用程序进行验证,保证了用户在可信执行环境输入的敏感信息的安全性。基于此,本发明基于TrustZone技术的安全输入系统和方法具有通用性、高效且用户友好、强安全性等优势。

为使本发明的目的、优点以及技术方案更加清楚,以下通过具体实施,并结合附图,对本发明进一步详细说明。

图1从整体上描述了该方案实施的总体架构,主要包括以下四部分内容:

一、普通执行环境中操作系统对用户名和密码场景识别模块的实现方法

当普通应用程序100启用输入法框架102并准备调用第三方输入法103时,用户名和密码场景检测模块101检测当前是否是用户名和密码输入场景,判断是否切换到隔离初始化模块105。

结合图2具体分析用户名和密码场景识别模块在系统中是怎样发挥作用的:

(1)用户需要在普通应用程序100的文本框进行输入操作时,触摸文本框组件调用第三方输入法,从而触发用户名和密码场景识别模块101;

(2)文本域中的类型信息包括用户名、密码、数字等,用户名和密码场景识别模块101判断类型信息是否是用户名和密码200;

(3)如果判断是用户名和密码输入场景,则切换到隔离初始化模块105;

(4)如果判断不是用户名和密码输入场景,普通应用程序100正常调用第三方输入法103,用户可以在普通执行环境中执行正常输入操作。

二、可信执行环境中键盘布局检测模块的实现方法

基于上述(一)中对用户名和密码场景的检测,切换到隔离初始化模块105当用户在第三方输入法103的软键盘触摸时,输入法框架102的系统服务中的钩子函数sync()通知隔离初始化模块105,在隔离初始化模块105开始时要启用键盘布局检测模块104对普通执行环境中显示的第三方输入法103的软键盘进行检测。下面描述键盘布局检测模块104的实现步骤:

(1)从第三方输入法103安装包的xml文件中获取其软键盘布局信息,并将软键盘的哈希值预加载在可信执行环境中。

(2)当用户在第三方输入法103的软键盘触摸时,相应的触摸事件被输入法框架的系统服务中的钩子函数showSoftInput()通知隔离初始化模块105,该模块最开始阶段执行键盘布局检测模块104,键盘布局检测模块104将当前普通执行环境中显示的第三方输入法103的软键盘的哈希值与可信执行环境中预存的该第三方输入法的软键盘的哈希值进行对比,如果一致则继续执行隔离初始化模块105。

三、可信执行环境中安全输入隔离环境的初始化的实现方法

下面结合图3描述本发明中隔离初始化模块105的实现步骤:

(1)配置帧缓存包括两部分:

①配置帧缓存页表到可信执行环境300,即从Linux驱动中获得帧缓存的页表,然后更新这些页的内存管理单元表;

②利用TrustZone地址控制器配置帧缓存安全物理地址301,TrustZone地址控制器是符合高级微控制器总线架构的片上芯片外设,能够把地址空间分成具有可编程安全权限的连续区域,这里把帧缓存的物理地址空间设置成具有RWNN权限的区域,使得可信执行环境对它具有读写权限,却没有执行权限。

(2)配置触摸中断处理包括四部分:

①当硬件中断被设置成安全的,非可信执行环境的代码将不能访问相关的中断配置寄存器,所以本发明设置触摸屏的通用中断控制器为安全中断302;

②IRQ和FIQ都可以作为安全中断源,但是IRQ作为安全中断时存在被非安全代码屏蔽中断的风险,这可以通过改变当前程序状态寄存器的I位实现,所以本发明设置触摸中断为FIQ中断303;

③TrustZone为中断提供可配置路由策略,本发明使用FIQ监视异常和触摸事件304,使得它比其他IRQ中断有更高优先级,这样可信执行环境中的触摸事件被优先响应;

④通过TrustZone保护控制器将触摸屏设置成安全外设305,当触摸事件发生时,监控异常处理器将调用上述的TrustZone配置。

四、键值安全返回模块的实现方法

经过键盘布局检测模块104和隔离初始化模块105后,可信执行环境中复用的第三方输入法103的软键盘可以供用户在可信执行环境中进行输入操作,用户输入的敏感数据交给键值安全返回模块106,然后键值安全返回模块106通过添加的系统服务安全键值提交服务将敏感数据提交给已绑定的普通应用程序。下面结合图4描述本发明的键值安全返回模块106中普通应用程序和安全键值提交服务的绑定,然后介绍安全键值提交服务从可信执行环境和普通执行环境的共享内存获取敏感数据并提交给已绑定的普通应用程序的过程:

(1)用户在普通应用程序100点击文本框,普通应用程序100启用第三方输入法103,同时触发输入法框架102的系统服务中的钩子函数startInput(),该钩子函数通知隔离初始化模块105,为相应的普通应用程序100产生“标识”400,即与该普通应用程序的签名信息相关的随机数。该“标识”被发送给键值安全返回模块106的“安全键值提交服务”,目的是请求“安全键值提交服务”绑定普通应用程序401,然后安全键值提交服务验证并绑定普通应用程序402,完后绑定的普通应用程序100才可以接收键值安全返回模块106提交的敏感数据。

(2)用户在可信执行环境中输入的键值通过键值安全返回模块106提交给已完成绑定的普通应用程序100。键值首先放在可信执行环境和普通执行环境的共享内存中,键值安全返回模块106的安全键值提交服务被唤醒并从共享内存中获取键值,然后该服务通过输入连接接口InputConnection调用普通应用程序100中的基本输入连接接口BaseInputConnection,从而在不经过第三方输入法103的情况下把键值提交给普通应用程序100,从而完成可信执行环境中输入的敏感信息向普通应用程序100的安全提交。

提供以上实施例仅仅是为了描述本发明的目的,而并非要限制本发明的范围。本发明的范围由所附权利要求限定。不脱离本发明的精神和原理而做出的各种等同替换和修改,均应涵盖在本发明的范围之内。

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