一种对按键输入信息进行防窃听处理的方法和装置技术领域
本发明涉及通信技术领域,尤其涉及一种对按键输入信息进行防窃听处理的方法
和装置。
背景技术
随着移动终端上可供下载的应用程序的不断增加,终端用户经常会下载各种各样
的应用程序到移动终端中,但是在终端用户使用各类应用程序的过程中也存在着一些安全
隐患。例如,一些社交应用程序和一些金融应用程序,经常需要终端用户先通过键盘输入账
户和密码,经确认后再提供相应的服务。然而在终端用户通过键盘或虚拟键盘输入信息时,
很多安全隐患随之而来。很多非法服务会窃取终端用户通过键盘或虚拟键盘输入的信息,
并对窃取到的信息加以利用。这些非法服务在终端用户毫不知情的情况下,通过隐蔽的方
式记录下终端用户敲击键盘的每一次操作行为,如果一些非法服务通过该种方式获得到终
端用户的银行信息,将严重影响到终端用户的财产安全。
发明内容
本发明的主要目的在于提出一种对按键输入信息进行防窃听处理的方法和装置,
提高了移动终端信息交互的安全性,防止非法程序窃取用户信息。
为实现上述目的,本发明提供的一种对按键输入信息进行防窃听处理的装置,包
括:
加密模块,用于按照设定算法对按键输入信息进行加密;
分析模块,用于根据加密的按键输入信息的转发处理路径,确定窃听所述加密的
按键输入信息的窃听程序;
解密模块,用于当所述窃听程序请求对所述加密的按键输入信息进行解密时,拒
绝响应所述窃听程序的请求。
进一步的,所述装置还包括:
获取模块,用于在对所述按键输入信息进行加密之前,通过输入阅读程序input
reader获取所述按键输入信息。
进一步的,所述分析模块,具体包括:
记录单元,用于记录所述加密的按键输入信息在应用程序框架层中的转发处理路
径;
对比单元,用于判断所述加密的按键输入信息的转发处理路径是否与标准的转发
处理路径一致,若否,则根据所述按键输入信息的转发处理路径查找到窃听所述加密的按
键输入信息的窃听程序。
进一步的,所述对比单元还用于将所述窃听程序添加到黑名单中;
所述解密模块还用于判断请求对所述加密的按键输入信息进行解密的应用程序
是否存在于所述黑名单中,若是,则判断所述应用程序为窃听程序。
进一步的,所述解密模块还用于当所述窃听程序请求对所述加密的按键输入信息
进行解密时,发送提醒消息。
此外,为实现上述目的,本发明还提出一种对按键输入信息进行防窃听处理的方
法,包括:
按照设定算法对按键输入信息进行加密;
根据加密的按键输入信息的转发处理路径,确定窃听所述加密的按键输入信息的
窃听程序;
当所述窃听程序请求对所述加密的按键输入信息进行解密时,拒绝响应所述窃听
程序的请求。
进一步的,所述方法还包括:
在对所述按键输入信息进行加密之前,通过输入阅读程序input reader获取所述
按键输入信息。
进一步的,所述根据加密的按键输入信息的转发处理路径,确定窃听所述加密的
按键输入信息的窃听程序,包括:
记录所述加密的按键输入信息在应用程序框架层中的转发处理路径;
判断所述加密的按键输入信息的转发处理路径是否与标准的转发处理路径一致,
若否,则根据所述按键输入信息的转发处理路径查找到窃听所述加密的按键输入信息的窃
听程序。
进一步的,所述方法还包括:
将所述窃听程序添加到黑名单中;
判断请求对所述加密的按键输入信息进行解密的应用程序是否存在于所述黑名
单中,若是,则判断所述应用程序为窃听程序。
进一步的,所述方法还包括:
当所述窃听程序请求对所述加密的按键输入信息进行解密时,发送提醒消息。
本发明提出的对按键输入信息进行防窃听处理的方法和装置,从系统的底层框架
层面,对原始的按键输入信息进行加密处理,以防止窃听程序先于加密程序进行窃听。在按
键事件向应用层分发时,进行行为分析,如果发现了非法窃听行为,则追溯产生所述非法窃
听行为的窃听程序,并将所述窃听程序添加至黑名单中;当处于黑名单中的窃听程序请求
对已加密的按键事件进行解密时,拒绝来自黑名单的解密请求。通过该方法,即便窃听程序
获得到了按键事件,也无法对所述按键事件进行解密,从而提高了移动终端交互的安全性,
防止非法程序窃取用户信息。
附图说明
图1为实现本发明各个实施例的一种可选的移动终端的硬件结构示意图;
图2为如图1所示的移动终端的无线通信系统示意图;
图3为本发明第一实施例的对按键输入信息进行防窃听处理的装置的组成结构示
意图;
图4为本发明第二实施例的对按键输入信息进行防窃听处理的装置的组成结构示
意图;
图5为本发明第三实施例的对按键输入信息进行防窃听处理的方法的流程图;
图6为本发明第四实施例的对按键输入信息进行防窃听处理的方法的流程图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
现在将参考附图描述实现本发明各个实施例的移动终端。在后续的描述中,使用
用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身
并没有特定的意义。因此,"模块"与"部件"可以混合地使用。
移动终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如移动
电话、智能电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP
(便携式多媒体播放器)、导航装置等等的移动终端以及诸如数字TV、台式计算机等等的固
定终端。下面,假设终端是移动终端。然而,本领域技术人员将理解的是,除了特别用于移动
目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。
图1为实现本发明各个实施例的一种可选的移动终端的硬件结构示意。
移动终端100可以包括无线通信单元110、A/V(音频/视频)输入单元120、用户输入
单元130、感测单元140、输出单元150、存储器160、接口单元170、控制器180和电源单元190
等等。图1示出了具有各种组件的移动终端,但是应理解的是,并不要求实施所有示出的组
件。可以替代地实施更多或更少的组件。将在下面详细描述移动终端的元件。
无线通信单元110通常包括一个或多个组件,其允许移动终端100与无线通信系统
或网络之间的无线电通信。例如,无线通信单元可以包括广播接收模块111、移动通信模块
112、无线互联网模块113、短程通信模块114和位置信息模块115中的至少一个。
广播接收模块111经由广播信道从外部广播管理服务器接收广播信号和/或广播
相关信息。广播信道可以包括卫星信道和/或地面信道。广播管理服务器可以是生成并发送
广播信号和/或广播相关信息的服务器或者接收之前生成的广播信号和/或广播相关信息
并且将其发送给终端的服务器。广播信号可以包括TV广播信号、无线电广播信号、数据广播
信号等等。而且,广播信号可以进一步包括与TV或无线电广播信号组合的广播信号。广播相
关信息也可以经由移动通信网络提供,并且在该情况下,广播相关信息可以由移动通信模
块112来接收。广播信号可以以各种形式存在,例如,其可以以数字多媒体广播(DMB)的电子
节目指南(EPG)、数字视频广播手持(DVB-H)的电子服务指南(ESG)等等的形式而存在。广播
接收模块111可以通过使用各种类型的广播系统接收信号广播。特别地,广播接收模块111
可以通过使用诸如多媒体广播-地面(DMB-T)、数字多媒体广播-卫星(DMB-S)、数字视频广
播-手持(DVB-H),前向链路媒体(MediaFLO@)的数据广播系统、地面数字广播综合服务
(ISDB-T)等等的数字广播系统接收数字广播。广播接收模块111可以被构造为适合提供广
播信号的各种广播系统以及上述数字广播系统。经由广播接收模块111接收的广播信号和/
或广播相关信息可以存储在存储器160(或者其它类型的存储介质)中。
移动通信模块112将无线电信号发送到基站(例如,接入点、节点B等等)、外部终端
以及服务器中的至少一个和/或从其接收无线电信号。这样的无线电信号可以包括语音通
话信号、视频通话信号、或者根据文本和/或多媒体消息发送和/或接收的各种类型的数据。
无线互联网模块113支持移动终端的无线互联网接入。该模块可以内部或外部地
耦接到终端。该模块所涉及的无线互联网接入技术可以包括WLAN(无线LAN)(Wi-Fi)、Wibro
(无线宽带)、Wimax(全球微波互联接入)、HSDPA(高速下行链路分组接入)等等。
短程通信模块114是用于支持短程通信的模块。短程通信技术的一些示例包括蓝
牙TM、射频识别(RFID)、红外数据协会(IrDA)、超宽带(UWB)、紫蜂TM等等。
位置信息模块115是用于检查或获取移动终端的位置信息的模块。位置信息模块
的典型示例是GPS(全球定位系统)。根据当前的技术,GPS模块115计算来自三个或更多卫星
的距离信息和准确的时间信息并且对于计算的信息应用三角测量法,从而根据经度、纬度
和高度准确地计算三维当前位置信息。当前,用于计算位置和时间信息的方法使用三颗卫
星并且通过使用另外的一颗卫星校正计算出的位置和时间信息的误差。此外,GPS模块115
能够通过实时地连续计算当前位置信息来计算速度信息。
A/V输入单元120用于接收音频或视频信号。A/V输入单元120可以包括相机121和
麦克风122,相机121对在视频捕获模式或图像捕获模式中由图像捕获装置获得的静态图片
或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元151上。经相机121处理
后的图像帧可以存储在存储器160(或其它存储介质)中或者经由无线通信单元110进行发
送,可以根据移动终端的构造提供两个或更多相机121。麦克风122可以在电话通话模式、记
录模式、语音识别模式等等运行模式中经由麦克风接收声音(音频数据),并且能够将这样
的声音处理为音频数据。处理后的音频(语音)数据可以在电话通话模式的情况下转换为可
经由移动通信模块112发送到移动通信基站的格式输出。麦克风122可以实施各种类型的噪
声消除(或抑制)算法以消除(或抑制)在接收和发送音频信号的过程中产生的噪声或者干
扰。
用户输入单元130可以根据用户输入的命令生成键输入数据以控制移动终端的各
种操作。用户输入单元130允许用户输入各种类型的信息,并且可以包括键盘、锅仔片、触摸
板(例如,检测由于被接触而导致的电阻、压力、电容等等的变化的触敏组件)、滚轮、摇杆等
等。特别地,当触摸板以层的形式叠加在显示单元151上时,可以形成触摸屏。
感测单元140检测移动终端100的当前状态,(例如,移动终端100的打开或关闭状
态)、移动终端100的位置、用户对于移动终端100的接触(即,触摸输入)的有无、移动终端
100的取向、移动终端100的加速或减速移动和方向等等,并且生成用于控制移动终端100的
操作的命令或信号。例如,当移动终端100实施为滑动型移动电话时,感测单元140可以感测
该滑动型电话是打开还是关闭。另外,感测单元140能够检测电源单元190是否提供电力或
者接口单元170是否与外部装置耦接。
接口单元170用作至少一个外部装置与移动终端100连接可以通过的接口。例如,
外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无
线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端
口、视频I/O端口、耳机端口等等。识别模块可以是存储用于验证用户使用移动终端100的各
种信息并且可以包括用户识别模块(UIM)、客户识别模块(SIM)、通用客户识别模块(USIM)
等等。另外,具有识别模块的装置(下面称为"识别装置")可以采取智能卡的形式,因此,识
别装置可以经由端口或其它连接装置与移动终端100连接。接口单元170可以用于接收来自
外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到移动终端100内的
一个或多个元件或者可以用于在移动终端和外部装置之间传输数据。
另外,当移动终端100与外部底座连接时,接口单元170可以用作允许通过其将电
力从底座提供到移动终端100的路径或者可以用作允许从底座输入的各种命令信号通过其
传输到移动终端的路径。从底座输入的各种命令信号或电力可以用作用于识别移动终端是
否准确地安装在底座上的信号。输出单元150被构造为以视觉、音频和/或触觉方式提供输
出信号(例如,音频信号、视频信号、警报信号、振动信号等等)。输出单元150可以包括显示
单元151、音频输出模块152、警报单元153等等。
显示单元151可以显示在移动终端100中处理的信息。例如,当移动终端100处于电
话通话模式时,显示单元151可以显示与通话或其它通信(例如,文本消息收发、多媒体文件
下载等等)相关的用户界面(UI)或图形用户界面(GUI)。当移动终端100处于视频通话模式
或者图像捕获模式时,显示单元151可以显示捕获的图像和/或接收的图像、示出视频或图
像以及相关功能的UI或GUI等等。
同时,当显示单元151和触摸板以层的形式彼此叠加以形成触摸屏时,显示单元
151可以用作输入装置和输出装置。显示单元151可以包括液晶显示器(LCD)、薄膜晶体管
LCD(TFT-LCD)、有机发光二极管(OLED)显示器、柔性显示器、三维(3D)显示器等等中的至少
一种。这些显示器中的一些可以被构造为透明状以允许用户从外部观看,这可以称为透明
显示器,典型的透明显示器可以例如为TOLED(透明有机发光二极管)显示器等等。根据特定
想要的实施方式,移动终端100可以包括两个或更多显示单元(或其它显示装置),例如,移
动终端可以包括外部显示单元(未示出)和内部显示单元(未示出)。触摸屏可用于检测触摸
输入压力以及触摸输入位置和触摸输入面积。
音频输出模块152可以在移动终端处于呼叫信号接收模式、通话模式、记录模式、
语音识别模式、广播接收模式等等模式下时,将无线通信单元110接收的或者在存储器160
中存储的音频数据转换音频信号并且输出为声音。而且,音频输出模块152可以提供与移动
终端100执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。
音频输出模块152可以包括扬声器、蜂鸣器等等。
警报单元153可以提供输出以将事件的发生通知给移动终端100。典型的事件可以
包括呼叫接收、消息接收、键信号输入、触摸输入等等。除了音频或视频输出之外,警报单元
153可以以不同的方式提供输出以通知事件的发生。例如,警报单元153可以以振动的形式
提供输出,当接收到呼叫、消息或一些其它进入通信(incoming communication)时,警报单
元153可以提供触觉输出(即,振动)以将其通知给用户。通过提供这样的触觉输出,即使在
用户的移动电话处于用户的口袋中时,用户也能够识别出各种事件的发生。警报单元153也
可以经由显示单元151或音频输出模块152提供通知事件的发生的输出。
存储器160可以存储由控制器180执行的处理和控制操作的软件程序等等,或者可
以暂时地存储己经输出或将要输出的数据(例如,电话簿、消息、静态图像、视频等等)。而
且,存储器160可以存储关于当触摸施加到触摸屏时输出的各种方式的振动和音频信号的
数据。
存储器160可以包括至少一种类型的存储介质,所述存储介质包括闪存、硬盘、多
媒体卡、卡型存储器(例如,SD或DX存储器等等)、随机访问存储器(RAM)、静态随机访问存储
器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器
(PROM)、磁性存储器、磁盘、光盘等等。而且,移动终端100可以与通过网络连接执行存储器
160的存储功能的网络存储装置协作。
控制器180通常控制移动终端的总体操作。例如,控制器180执行与语音通话、数据
通信、视频通话等等相关的控制和处理。另外,控制器180可以包括用于再现(或回放)多媒
体数据的多媒体模块181,多媒体模块181可以构造在控制器180内,或者可以构造为与控制
器180分离。控制器180可以执行模式识别处理,以将在触摸屏上执行的手写输入或者图片
绘制输入识别为字符或图像。
电源单元190在控制器180的控制下接收外部电力或内部电力并且提供操作各元
件和组件所需的适当的电力。
这里描述的各种实施方式可以以使用例如计算机软件、硬件或其任何组合的计算
机可读介质来实施。对于硬件实施,这里描述的实施方式可以通过使用特定用途集成电路
(ASIC)、数字信号处理器(DSP)、数字信号处理装置(DSPD)、可编程逻辑装置(PLD)、现场可
编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、被设计为执行这里描述的功能的
电子单元中的至少一种来实施,在一些情况下,这样的实施方式可以在控制器180中实施。
对于软件实施,诸如过程或功能的实施方式可以与允许执行至少一种功能或操作的单独的
软件模块来实施。软件代码可以由以任何适当的编程语言编写的软件应用程序(或程序)来
实施,软件代码可以存储在存储器160中并且由控制器180执行。
至此,己经按照其功能描述了移动终端。下面,为了简要起见,将描述诸如折叠型、
直板型、摆动型、滑动型移动终端等等的各种类型的移动终端中的滑动型移动终端作为示
例。因此,本发明能够应用于任何类型的移动终端,并且不限于滑动型移动终端。
如图1中所示的移动终端100可以被构造为利用经由帧或分组发送数据的诸如有
线和无线通信系统以及基于卫星的通信系统来操作。
现在将参考图2描述其中根据本发明的移动终端能够操作的通信系统。
这样的通信系统可以使用不同的空中接口和/或物理层。例如,由通信系统使用的
空中接口包括例如频分多址(FDMA)、时分多址(TDMA)、码分多址(CDMA)和通用移动通信系
统(UMTS)(特别地,长期演进(LTE))、全球移动通信系统(GSM)等等。作为非限制性示例,下
面的描述涉及CDMA通信系统,但是这样的教导同样适用于其它类型的系统。
参考图2,CDMA无线通信系统可以包括多个移动终端100、多个基站(BS)270、基站
控制器(BSC)275和移动交换中心(MSC)280。MSC280被构造为与公共电话交换网络(PSTN)
290形成接口。MSC280还被构造为与可以经由回程线路耦接到基站270的BSC275形成接口。
回程线路可以根据若干己知的接口中的任一种来构造,所述接口包括例如E1/T1、ATM,IP、
PPP、帧中继、HDSL、ADSL或xDSL。将理解的是,如图2中所示的系统可以包括多个BSC275。
每个BS270可以服务一个或多个分区(或区域),由多向天线或指向特定方向的天
线覆盖的每个分区放射状地远离BS270。或者,每个分区可以由用于分集接收的两个或更多
天线覆盖。每个BS270可以被构造为支持多个频率分配,并且每个频率分配具有特定频谱
(例如,1.25MHz,5MHz等等)。
分区与频率分配的交叉可以被称为CDMA信道。BS270也可以被称为基站收发器子
系统(BTS)或者其它等效术语。在这样的情况下,术语"基站"可以用于笼统地表示单个
BSC275和至少一个BS270。基站也可以被称为"蜂窝站"。或者,特定BS270的各分区可以被称
为多个蜂窝站。
如图2中所示,广播发射器(BT)295将广播信号发送给在系统内操作的移动终端
100。如图1中所示的广播接收模块111被设置在移动终端100处以接收由BT295发送的广播
信号。在图2中,示出了几个全球定位系统(GPS)卫星300。卫星300帮助定位多个移动终端
100中的至少一个。
在图2中,描绘了多个卫星300,但是理解的是,可以利用任何数目的卫星获得有用
的定位信息。如图1中所示的GPS模块115通常被构造为与卫星300配合以获得想要的定位信
息。替代GPS跟踪技术或者在GPS跟踪技术之外,可以使用可以跟踪移动终端的位置的其它
技术。另外,至少一个GPS卫星300可以选择性地或者额外地处理卫星DMB传输。
作为无线通信系统的一个典型操作,BS270接收来自各种移动终端100的反向链路
信号。移动终端100通常参与通话、消息收发和其它类型的通信。特定基站270接收的每个反
向链路信号被在特定BS270内进行处理。获得的数据被转发给相关的BSC275。BSC提供通话
资源分配和包括BS270之间的软切换过程的协调的移动管理功能。BSC275还将接收到的数
据路由到MSC280,其提供用于与PSTN290形成接口的额外的路由服务。类似地,PSTN290与
MSC280形成接口,MSC与BSC275形成接口,并且BSC275相应地控制BS270以将正向链路信号
发送到移动终端100。
基于上述移动终端硬件结构以及通信系统,提出本发明方法各个实施例。
如图3所示,本发明第一实施例提出一种对按键输入信息进行防窃听处理的装置,
所述装置具体包括以下组成部分:
1)加密模块301,用于按照设定算法对按键输入信息进行加密。
具体的,所述按键输入信息为通过输入设备输入的信息,所述输入设备包括:触摸
屏、键盘或鼠标等等。
为了避免窃听程序获取所述按键输入信息,当用户通过所述输入设备输入所述按
键输入信息时,利用设定算法对所述按键输入信息进行加密处理,所述设定算法包括:DES
(Data Encryption Standard,数据加密标准)算法、RSA公钥加密算法和AES(Advanced
Encryption Standard,高级加密标准)算法等。
2)分析模块302,用于根据加密的按键输入信息的转发处理路径,确定窃听所述加
密的按键输入信息的窃听程序。
具体的,分析模块302包括:
记录单元,用于记录所述加密的按键输入信息的转发处理路径。
所述记录单元用于依次记录对所述加密的按键输入信息进行处理操作和转发操
作的应用程序,形成所述加密的按键输入信息的完整的转发处理路径记录。
对比单元,用于判断所述加密的按键输入信息的转发处理路径是否与标准的转发
处理路径一致,若否,则根据所述按键输入信息的转发处理路径查找到窃听所述加密的按
键输入信息的窃听程序。
所述加密的按键输入信息会从系统的底层通过层层转发,到达目标应用程序,但
是在所述加密的按键输入信息转发给目标应用程序的过程中,窃听程序会获取所述加密的
按键输入信息,从而使所述加密的按键输入信息的转发处理路径发生了改变。由于记录单
元已将所述加密的按键输入信息的转发处理路径进行了详细记录,所以通过所述转发处理
路径记录,查找到导致转发处理路径不一致的应用程序,所述应用程序即为窃听程序。
3)解密模块303,用于当所述窃听程序请求对所述加密的按键输入信息进行解密
时,拒绝响应所述窃听程序的请求。
具体的,当所述目标应用程序或所述窃听程序获得到所述加密的按键输入信息
时,都会向解密模块303发送解密请求,以请求对加密的按键输入信息进行解密处理。
当解密模块303接收到任一应用程序发送来的解密请求时,解密模块303首先判断
所述任一应用程序是否为窃听程序,
若是,则不向所述任一应用程序反馈解密信息,以使所述任一应用程序不能对所
述加密的按键输入信息进行解密处理;
若否,则向所述任一应用程序反馈解密信息,以使所述任一应用程序对所述加密
的按键输入信息进行解密处理。
进一步的,解密模块303,还用于当所述窃听程序请求对所述加密的按键输入信息
进行解密时,发送提醒消息。
如图4所示,本发明第二实施例提出一种对按键输入信息进行防窃听处理的装置,
所述装置具体包括以下组成部分:
1)事件获取模块401,用于获取移动终端中的按键事件。
具体的,所述移动终端采用Android安卓系统,在Android的Event Input System
事件输入系统中,Input Reader输入阅读程序负责从硬件获取终端用户通过所述移动终端
的按键或触摸屏输入的按键输入信息,将所述按键输入信息转换为按键事件,并将所述按
键事件分发给Input Dispatcher输入转发程序。所述Input Dispatcher将所述Input
Reader传送来的按键事件转发给连接到Window Manager Service窗口管理服务的客户端。
所述Input Reader和Input Dispatcher均位于Android系统的应用程序框架层
中。
事件获取模块401,具体用于从所述移动终端的Input Reader中获取按键事件。
2)事件加密模块402,用于按照设定算法对所述按键事件进行加密处理。
具体的,事件加密模块402只对所述按键事件中的按键输入信息进行加密处理,所
述按键输入信息为终端用户通过敲击所述移动终端的按键或触摸屏输入的字符信息。事件
加密模块402按照设定算法对终端用户输入的所述字符信息进行加密处理。所述设定算法
包括:DES(Data Encryption Standard,数据加密标准)算法、RSA公钥加密算法和AES
(Advanced Encryption Standard,高级加密标准)算法等。
事件加密模块402从Android系统的底部的应用程序框架层就对按键事件进行加
密处理,以防止窃听程序对按键事件进行窃听。
3)路径记录模块403,用于对所述按键事件的处理流程和转发路径进行记录,并形
成所述按键事件的处理转发记录。
4)路径分析模块404,用于基于所述按键事件的处理转发记录,判断所述按键事件
的转发路径是否与预设路径一致,若否,则通过路径追溯找到导致路径不一致的窃听程序,
并将所述窃听程序添加到窃听程序名单中。
Android系统的应用程序框架层中的Input Dispatcher将加密后的按键事件从
Android系统的应用程序框架层转发到应用程序层的目标应用程序。在转发过程中,窃听程
序会获取所述加密的按键输入信息,从而使所述加密的按键输入信息的转发路径发生了改
变。路径分析模块404在对按键事件向应用程序层转发的过程中对所述按键事件的转发路
径进行分析,如果发现了窃听行为,则追溯到窃听程序,并将窃听程序添加到窃听程序名单
中。
5)事件解密模块405,用于当所述移动终端中的任一应用程序请求对加密的按键
事件进行解密时,判断所述任一应用程序是否属于窃听程序名单,若是,则拒绝响应所述任
一应用程序的请求。
具体的,当所述目标应用程序或所述窃听程序获得到所述加密的按键输入信息
时,都会向事件解密模块405发送解密请求,以请求对加密的按键输入信息进行解密处理。
当事件解密模块405接收到所述移动终端中的任一应用程序发送来的解密请求
时,事件解密模块405首先判断所述任一应用程序是否存在于所述窃听程序名单中,
若是,则不向所述任一应用程序反馈解密信息,以使所述任一应用程序不能对所
述加密后的按键事件进行解密处理;
若否,则向所述任一应用程序反馈解密信息,以使所述任一应用程序对所述加密
后的按键事件进行解密处理。
通过事件解密模块405,可以防止窃听程序获取所述按键事件中的按键输入信息,
即便窃听程序得到了按键事件,也是被加密的按键事件,窃听程序无法对加密过的按键事
件进行解密处理,从而提高了移动终端的信息交互的安全性,防止窃听程序窃取用户信息。
进一步的,事件获取模块401、事件加密模块402、路径记录模块403、路径分析模块
404和事件解密模块405均设置于Android系统的应用程序框架层中。
如图5所示,本发明第三实施例提出一种对按键输入信息进行防窃听处理的方法,
所述方法具体包括以下步骤:
步骤S501,按照设定算法对按键输入信息进行加密。
具体的,所述按键输入信息为通过输入设备输入的信息,所述输入设备包括:触摸
屏、键盘或鼠标等等。
为了避免窃听程序获取所述按键输入信息,用户通过所述输入设备输入所述按键
输入信息时,利用设定算法对所述按键输入信息进行加密处理,所述设定算法包括:DES
(Data Encryption Standard,数据加密标准)算法、RSA公钥加密算法和AES(Advanced
Encryption Standard,高级加密标准)算法等。
步骤S502,根据加密的按键输入信息的转发处理路径,确定窃听所述加密的按键
输入信息的窃听程序。
具体的,步骤S502,包括:
步骤A1:记录所述加密的按键输入信息的转发处理路径。
依次记录对所述加密的按键输入信息进行处理操作和转发操作的应用程序,形成
所述加密的按键输入信息的完整的转发处理路径记录。
步骤A2:判断所述加密的按键输入信息的转发处理路径是否与标准的转发处理路
径一致,若否,则根据所述按键输入信息的转发处理路径查找到窃听所述加密的按键输入
信息的窃听程序。
所述加密的按键输入信息会从系统的底层通过层层转发,到达目标应用程序,但
是在所述加密的按键输入信息转发给目标应用程序的过程中,窃听程序会获取所述加密的
按键输入信息,从而使所述加密的按键输入信息的转发处理路径发生了改变。由于已将所
述加密的按键输入信息的转发处理路径进行了详细记录,所以通过所述转发处理路径记
录,查找到导致转发处理路径不一致的应用程序,所述应用程序即为窃听程序。
步骤S503,当所述窃听程序请求对所述加密的按键输入信息进行解密时,拒绝响
应所述窃听程序的请求。
具体的,当所述目标应用程序或所述窃听程序获得到所述加密的按键输入信息
时,都会请求对加密的按键输入信息进行解密处理。
当接收到任一应用程序发送来的解密请求时,首先判断所述任一应用程序是否为
窃听程序,
若是,则不向所述任一应用程序反馈解密信息,以使所述任一应用程序不能对所
述加密的按键输入信息进行解密处理;
若否,则向所述任一应用程序反馈解密信息,以使所述任一应用程序对所述加密
的按键输入信息进行解密处理。
进一步的,所述方法还包括:当所述窃听程序请求对所述加密的按键输入信息进
行解密时,发送提醒消息。
如图6所示,本发明第四实施例提出一种对按键输入信息进行防窃听处理的方法,
所述方法具体包括以下步骤:
步骤S601:获取移动终端中的按键事件。
具体的,所述移动终端采用Android安卓系统,在Android的Event Input System
事件输入系统中,Input Reader输入阅读程序负责从硬件获取终端用户通过所述移动终端
的按键或触摸屏输入的按键输入信息,将所述按键输入信息转换为按键事件,并将所述按
键事件分发给Input Dispatcher输入转发程序。所述Input Dispatcher将所述Input
Reader传送来的按键事件转发给连接到Window Manager Service窗口管理服务的客户端。
所述Input Reader和Input Dispatcher均位于Android系统的应用程序框架层
中。
进一步的,步骤S601,具体包括:从所述移动终端的Input Reader中获取按键事
件。
步骤S602:按照设定算法对所述按键事件进行加密处理。
具体的,步骤S602,包括:
按照设定算法对所述按键事件中的按键输入信息进行加密处理;所述设定算法包
括:DES(Data Encryption Standard,数据加密标准)算法、RSA公钥加密算法和AES
(Advanced Encryption Standard,高级加密标准)算法。
所述按键输入信息为终端用户通过敲击所述移动终端的按键或触摸屏输入的字
符信息。
步骤S603:对所述按键事件的处理流程和转发路径进行记录,并形成所述按键事
件的处理转发记录。
步骤S604:基于所述按键事件的处理转发记录,判断所述按键事件的转发路径是
否与预设路径一致,若否,则通过路径追溯找到导致路径不一致的窃听程序,并将所述窃听
程序添加到窃听程序名单中。
具体的,Android系统的应用程序框架层中的Input Dispatcher将加密后的按键
事件从Android系统的应用程序框架层转发到应用程序层的目标应用程序。在转发过程中,
窃听程序会获取所述加密的按键输入信息,从而使所述加密的按键输入信息的转发路径发
生了改变。
步骤S605:当所述移动终端中的任一应用程序请求对加密的按键事件进行解密
时,判断所述任一应用程序是否属于窃听程序名单,若是,则拒绝响应所述任一应用程序的
请求。
具体的,当所述目标应用程序或所述窃听程序获得到所述加密后的按键事件时,
都会请求对加密后的按键事件进行解密处理。
当接收到所述移动终端中的任一应用程序发送来的解密请求时,首先判断所述任
一应用程序是否存在于所述窃听程序名单中,
若是,则不向所述任一应用程序反馈解密信息,以使所述任一应用程序不能对所
述加密后的按键事件进行解密处理;
若否,则向所述任一应用程序反馈解密信息,以使所述任一应用程序对所述加密
后的按键事件进行解密处理。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排
他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而
且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有
的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该
要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方
法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下
前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做
出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质
(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服
务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发
明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技
术领域,均同理包括在本发明的专利保护范围内。