一种利用TrustZone技术防止第三方输入法敏感数据泄露的系统与方法与流程

文档序号:11156170阅读:673来源:国知局
一种利用TrustZone技术防止第三方输入法敏感数据泄露的系统与方法与制造工艺

本发明涉及一种利用TrustZone技术防止第三方输入法敏感数据泄露的系统与方法,属于移动终端设备的数据安全领域。



背景技术:

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

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

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

利用TrustZone技术防止第三方输入法敏感数据泄露需解决以下几个问题:如何判断是否需要切换到可信执行环境;如何在可信执行环境操作;如何将用户的输入数据正确返回给普通执行环境中的普通应用程序。



技术实现要素:

本发明的技术解决问题:解决用户在移动终端输入的敏感数据的安全问题,提供一种利用TrustZone技术防止第三方输入法敏感数据泄露的系统与方法,从而有效地保证用户输入的隐私信息的安全性,具有通用性、高效且用户友好、强安全性等优势。

本发明技术解决方案为:一种利用TrustZone技术防止第三方输入法敏感数据泄露的系统与方法,下面简要介绍下本方案的基本思想,本发明在吸取已有解决方案优点的基础之上,提出了自己的设计思想,具体来说,本发明利用TrustZone技术防止第三方输入法敏感数据泄露的系统包括下列几个方面:

方面一,触摸事件的拦截模块位于普通执行环境中,拦截用户在普通执行环境中的触摸事件并分析事件类型,判断是否切换到可信执行环境的安全键盘供用户输入。从触摸事件驱动接收到触摸事件后,拦截模块利用添加在输入法框架的系统服务中的钩子函数判断事件类型,在已经拦截到键盘显示事件的情况下,又拦截到按键事件,则切换到可信执行环境的安全键盘;否则,将事件通过输入法框架传给普通执行环境的第三方输入法执行响应的操作。

方面二,安全键盘可以让用户在可信执行环境中进行输入,从而防止用户输入的信息被第三方输入法获取。为了减小系统设计的复杂性,安全键盘复用当前普通执行环境中显示的第三方输入法的软键盘并验证布局信息,在验证通过的情况下将第三方输入法的软键盘作为可信执行环境中的安全键盘。本发明只考虑第三方输入法的拉丁语系的软键盘,每个按键对应一个字符,当用户触摸一个按键时,安全键盘可以获得该按键的坐标,然后转换成相应的字符,并交给数据分析模块。

方面三,数据分析模块分析从安全键盘接收的字符的敏感性。为了验证字符的敏感性,对于事先定义好的敏感数据集,使用AC前缀匹配算法进行单向匹配,分析该字符是否属于敏感数据的前缀,如果不是则将该字符交给重放模块;如果是则将该前缀存储到一个缓冲区中,等待用户后续的输入并判断完整输入是否与敏感字符串匹配,如果不匹配则将字符串交给重放模块,如果匹配则将敏感字符串交给敏感数据安全返回模块。

方面四,重放模块将非敏感字符对应的事件通过输入法框架交给第三方输入法进行处理,进而将数据提交给普通应用程序。本发明设计了运行在输入法框架的系统服务进程中的守护线程模仿事件发生器,需要重放的字符坐标被放在可信执行环境和普通执行环境的共享内存中,然后模仿事件发生器被唤醒并从共享内存中获取字符坐标,然后构造字符坐标对应的触摸事件交给输入法框架的系统服务,输入法框架的系统服务调用第三方输入法处理该事件,从而将字符提交给普通应用程序。

方面五,敏感数据安全返回模块将敏感字符串通过可信执行环境和普通执行环境的共享内存提交给普通应用程序,而不经过第三方输入法。数据安全返回模块首先将敏感数据放在可信执行环境和普通执行环境的共享内存中,然后本发明设计的安全返回服务从共享内存中获取敏感数据并利用输入连接接口InputConnection将数据交给普通应用程序。

方面六,本地敏感数据保护模块在应用程序接口中添加钩子函数防止第三方输入法从普通应用程序的缓冲区获取敏感数据。已经提交的数据存放在普通应用程序的数据缓冲区中,我们发现第三方输入法可以通过输入法框架为它提供的通用接口重新从普通应用程序获得这些数据,包括敏感数据。本发明在所有与重获数据相关的应用程序接口中添加钩子函数,当第三方输入法从普通应用程序的缓冲区获取数据时,触发可信执行环境中的数据分析模块分析数据是否敏感,如果敏感则阻止第三方输入法对敏感数据的获取。

一种利用TrustZone技术防止第三方输入法敏感数据泄露的方法,实现步骤如下:

(1)拦截模块通过添加在输入法框架的系统服务中的钩子函数拦截触摸事件驱动传来的相应事件,在通过输入法管理服务类InputMethodManagerService中的showSoftInput()钩子函数拦截到键盘显示事件的前提下,又通过触摸输入处理类TouchInputMapper中的钩子函数sync()拦截到按键事件时,切换到可信执行环境对当前普通执行环境显示的第三方输入法的软键盘进行完整性检验,然后进行相应的设置从而复用第三方输入法的软键盘作为可信执行环境的安全键盘,之后用户执行的按键操作发生在安全键盘上。

(2)用户在安全键盘的输入通过按键坐标转换成字符,字符被交给数据分析模块。基于用户预定义的敏感数据集,数据分析模块使用AC前缀匹配算法来区分字符是否属于敏感数据前缀,如果不是则将字符坐标交给重放模块,如果是将该前缀存储到一个缓冲区中,等待用户的完整输入以判断用户的输入是否敏感,一旦确认该前缀是非敏感数据,则将其每一个字符的坐标交给重放模块,如果是敏感数据,则将字符串交给敏感数据安全返回模块。

(3)重放模块中,非敏感按键坐标首先被放在可信执行环境和普通执行环境的共享内存,添加在系统服务进程中的守护线程模仿事件发生器被唤醒并从共享内存取出触摸事件坐标。模仿事件发生器把事件以正确的格式放在输入法框架系统服务的事件队列,然后系统服务中的输入调度线程inputDispatcher被唤醒并从队列中取事件,选择调度相应的组件或服务,即调用第三方输入法来处理相应事件,最终通过第三方输入法向普通应用程序提交字符。

(4)敏感数据安全返回模块的主要部分是安全返回服务。敏感字符串被存放在可信执行环境和普通执行环境的共享内存中,安全返回服务被唤醒并从共享内存中获取字符串,安全返回服务复用输入法框架中的输入连接接口InputConnection,然后通过调用普通应用程序的基本输入连接接口BaseInputConnection直接向应用程序提交数据。

(5)普通应用程序接收到重放模块和敏感数据安全返回模块提交的数据后,将数据存放在普通应用程序的缓冲区。为了防止第三方输入法从普通应用程序缓冲区中获取敏感数据,本发明在基本输入连接接口BaseInputConnection中添加钩子函数getTextBeforeCursor()和getSelectedText(),当第三方书输入法通过应用程序接口访问普通应用程序缓冲区时,钩子函数通知可信执行环境中的数据分析模块对第三方输入法企图获取的数据进行分析,如果是敏感数据则阻止第三方输入法对数据的获取。

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

(1)本发明利用ARM TrustZone硬件隔离技术将按键操作隔离在可信执行环境中,在系统服务中添加钩子函数拦截相应的事件并判断是否进行可信执行环境和普通执行环境的切换,使用户在可信执行环境的安全键盘输入数据,并以服务的形式向普通应用程序提交敏感数据。由于在系统级结合硬件技术防止第三方输入法敏感数据泄露,具有较强的安全性,同时本发明适用于所有的第三方输入法,即具有通用性。

(2)本发明的安全键盘复用普通操作系统的第三方输入法的软键盘,减少了系统的复杂性,而且不影响用户体验,并通过在可信执行环境中对第三方输入法的键盘布局进行完整性验证来保证键盘布局未经修改,从而有效防止伪造键盘布局的攻击。

(3)敏感数据安全返回模块通过添加的系统服务——安全返回服务直接将敏感数据提交给普通应用程序,不通过第三方输入法,因此敏感数据不会被第三方输入法发送到云端存储,保证了用户敏感信息的隐私性。

(4)已经提交给普通应用程序的数据被第三方输入法重新访问时,被添加在应用程序接口中的钩子函数捕获并通知可信执行环境中的数据分析模块进行数据分析,如果分析得出是敏感字符串,则阻止输入法获取该数据,从而保证存储在手机本地的敏感数据的安全性。

附图说明

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

图2为本发明的拦截模块及切换到安全键盘的示意图;

图3为本发明的数据分析模块的示意图;

图4为本发明对非敏感字符的重放模块的示意图;

图5为本发明防止第三方输入法从普通应用程序缓冲区中获取敏感数据的实现方法示意图。

具体实施方式

本发明利用ARM TrustZone硬件隔离技术和可信执行环境作为基础平台,实现可以有效防止第三方输入法泄露敏感数据的系统。保证对操作系统最小修改的前提下,在输入法框架的系统服务中添加钩子函数,捕获用户的触摸事件,判断是否切换到可信执行环境使用安全键盘进行输入。对于用户在安全键盘输入的字符,数据分析模块利用AC模式匹配算法分析字符的敏感性,非敏感字符的坐标通过重放模块交给输入法框架,然后由第三方输入法处理;敏感字符串直接由敏感数据安全返回模块交给普通应用程序,从而绕过第三方输入法对敏感数据的泄露。基于此,本发明利用TrustZone技术防止第三方输入法敏感数据泄露的系统和方法具有通用性、高效且用户友好、强安全性等优势。

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

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

一、基于普通执行环境的拦截模块的实现方法

拦截模块101中的钩子函数捕获触摸事件驱动传来的触摸事件,根据事件类型判断是否切换到可信执行环境的安全键盘105接收用户的输入。下面结合图2具体分析拦截模块是怎样发挥作用并切换到安全键盘的:

(1)用户在普通执行环境执行操作时,触摸事件驱动100产生相应的触摸事件,拦截模块101首先通过输入法管理服务类InputMethodManagerService中的钩子函数showSoftInput()判断是否键盘显示事件200,如果不是则在普通执行环境201继续操作;

(2)如果是键盘显示事件,且用户触摸软键盘202,拦截模块101利用输入法框架的触摸输入处理类TouchInputMapper中的钩子函数sync()拦截相应的事件,通知可信执行环境检测当前普通执行环境显示的第三方输入法的键盘布局的完整性,然后进行相应的设置,复用第三方输入法的软键盘作为可信执行环境中的安全键盘105。(3)对上述软键盘触摸事件和之后在安全键盘上产生的触摸事件,拦截模块判断是否按键事件203,如果不是就切换回普通执行环境201,是则将按键坐标204通过转换成字符205。

二、可信执行环境中数据分析模块的实现方法

用户在安全键盘105的输入被交给数据分析模块106进行敏感性分析,非敏感字符交给重放模块107,敏感数据交给敏感数据安全返回模块108。下面结合图3具体介绍数据分析模块106的实现方式:

(1)基于用户自定义的敏感数据集300,使用AC前缀匹配算法对字符204进行单向匹配,判断该字符是否属于敏感数据前缀301,如果不是,将该字符交给重放模块107,是则将敏感数据前缀存放到缓冲区302;

(2)等待用户继续输入并重复字符判断303,如果到某字符时发现与缓冲区中的字符串一起构成敏感数据304,则将该敏感字符串交给敏感数据安全返回模块108,一旦出现某个字符不属于敏感数据前缀,即不会与之后的字符一起构成敏感数据304,则将缓冲区中的每一个字符的坐标交给重放模块107。

三、非敏感数据的重放模块的实现方法

从数据分析模块106接收到非敏感字符坐标,重放模块107通过输入法框架102中添加的模仿事件发生器线程和原有的输入法框架中的系统服务将事件交给第三方输入法103处理并提交相应字符给普通应用程序104。下面通过图4具体介绍重放模块107的实现方法:

(1)数据分析模块106传来的字符坐标400被放在可信执行环境和普通执行环境的共享内存401中;

(2)本发明添加的守护线程模仿事件发生器402运行在输入法框架的系统服务进程中,它被唤醒并从共享内存401获取字符坐标400;

(3)模仿事件发生器402将字符坐标组织成输入法框架的系统服务中事件队列403需要的事件格式,将触摸事件放入事件队列403并唤醒系统服务中的输入调度线程,即inputDispatcher线程404;

(4)inputDispatcher线程404从事件队列403中获取事件,并选择调度第三方输入法103进行处理事件并将按键事件对应的字符提交给普通应用程序104。

四、敏感数据安全返回模块的实现方法

对从数据分析模块106接收到的敏感字符串,敏感数据安全返回模块108将数据放在可信执行环境和普通执行环境的共享内存中,然后安全返回服务从共享内存中获取数据,并通过复用的输入法框架中的输入连接接口InputConnection调用普通应用程序的基本输入连接接口BaseInputConnection直接向应用程序提交数据。

五、防止第三方输入法从普通应用程序中获取敏感数据的实现方法

普通应用程序104将接收到的敏感数据存放在数据缓冲区,第三方输入法103可以通过输入法框架102中的基本输入连接接口BaseInputConnection提供的功能访问缓冲区,从而造成本地敏感数据泄露。下面通过图5详细介绍防止本地敏感数据泄露的方法:

(1)第三方输入法103通过基本输入连接接口BaseInputConnection提供的功能访问普通应用程数据序缓冲区500时,添加在基本输入连接接口BaseInputConnection中的钩子函数501getTextBeforeCursor()和getSelectedText()通知可信执行环境中的数据分析模块;

(2)数据分析模块106使用AC前缀匹配算法判断第三方输入法103企图获取的数据是否敏感502,如果非敏感,切换回普通执行环境503继续执行;如果是敏感字符串,则阻止敏感数据获取504。

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

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