用于验证电子设备的完整性的系统和方法与流程

文档序号:13098982阅读:270来源:国知局
用于验证电子设备的完整性的系统和方法与流程

本发明涉及一种用于验证电子设备的系统完整性的系统和方法。电子设备包含提供于电子设备的安全环境内的验证器模块以及提供于电子设备的正常环境内的扫描器模块,由此安全环境包括与正常环境中的硬件分离的硬件,即,这两个环境是硬件分离的。在电子设备的完整性验证期间,验证器模块验证安装在正常环境中的扫描器模块和操作系统两者的完整性。



背景技术:

在获得超级用户和/或管理员权限或从电子设备清除所有用户限制,例如,支持android操作系统或越狱iphone操作系统的目标下,对电子设备作出未授权修改使电子设备易受安全漏洞攻击并且损害设备的总体安全性。电子设备中的关键或特权模块包含在设备的操作系统(operatingsystem,os)核心内或在设备的系统内执行的系统关键过程或系统管理后台程序。

对电子设备的大部分未授权修改会在设备的操作系统中留下某种踪迹。例如,在linux设备中,当root此设备时,root过程将创建su命令模块(即,使未授权应用程序能够获得较高权限的模块)或将递增给予某些过程的权限。因此,验证是否已root设备的方法涉及扫描用于su命令模块或用于递增某些过程的权限的设备。验证设备的完整性的其它方法涉及检查设备的文件系统,检查用于某些核心代码的固定存储器位置或检查用于具有root/系统权限的未知过程的设备存储器的动态部分。毫无疑问,恶意攻击者将适应这些扫描技术并且将不断地想出新方法来掩盖其踪迹,由此避免检测。

此类反恶意程序解决方案面临的共同问题是检测/保护程序通常安装在待保护的操作系统中。因此,如果攻击者意识到在系统中运行的此类反恶意程序解决方案的存在,攻击者可以实施使反恶意程序解决方案修改的攻击,由此有效地停用所述解决方案的有效性。简而言之,安装在正常操作空间内的反恶意程序解决方案总是易遭受精心设计的攻击。

用于确定设备的完整性的所提出方法涉及相对于原始核心内包含的数据周期性地检查设备核心的数据。执行此方法的模块提供于设备的安全状态内。验证模块通常安装在此类安全区域内,因为理论上仅超级用户或系统管理员可以访问提供于此区域中的模块或对所述模块作出修改。这确保安装在此类安全区域内的模块将与攻击和未授权修改分离。

完成此的本领域中已知的解决方案是基于信任区的完整性测量架构(trustzone-basedintegritymeasurementarchitecture,tima)解决方案。tima解决方案完全在信任环境中运行,因此没有攻击可以修改tima机构。然而,由于在tima解决方案中未利用安装在正常操作系统内的应用程序,因此这表示tima解决方案可以仅检查简单攻击踪迹。例如,所述tima解决方案仅能够检查是否已修改核心代码(即,通过计算已知存储器区域的数字散列并且将结果与预定值相比较),并且仅能够用存储于信任环境中的秘密密钥来验证模块的标志。因此,所述tima解决方案不能够检测设备或设备的操作系统的复杂变化,例如,已修改的数据、已改变的过程权限等。实际上,存在一些已知攻击工具,例如,可以用于在不被检测到的情况下攻击tima实施的设备的“towelroot”、“pingpongroot”和“kingroot”。另外,对安装在信任环境内的应用程序或模块实施更新会困难得多。因此,信任环境中的这些模块不能够处理由于更新这些模块时的低效和困难引起的最新攻击。

用于验证设备的完整性或防止设备受到攻击的其它所提出方法涉及利用由远程服务器不断地更新的信息。通过分析攻击样本,远程服务器能够改进验证/保护过程的准确度和效率,并且此更新信息被周期性地更新到设备中。安全启动/信任启动/dm-verity是依赖于以下想法的其它解决方案:如果仅允许验证组件在系统中加载和运行,可以检测和解决大部分攻击,如果不是全部的话。为了实现此,这些解决方案需要通过预安装模块验证待加载模块;由此预安装模块最初由硬件验证模块验证。另外,安全启动解决方案还确保在系统启动之后使用称为“启动链”的技术执行重要组件。例如,在linux操作系统中,所提出的安全启动链解决方案在设备最初通电时实施以下启动顺序:

1)在制造设备之后,设备的处理器将从不可编辑的预定位置加载引导加载程序;

2)引导加载程序将验证和加载“u-boot”或通用启动引导,所述通用启动引导类似于bios对个人计算机执行的操作来处理设备的基本输入和输出过程;以及

3)u-boot随后将加载核心,所述核心加载android系统。

上文提出的安全启动解决方案允许使用硬件组件来执行验证。然而,仅当最初加载模块时执行这些验证,并且除此之外不执行其它验证步骤。因此,此解决方案无法保护操作系统免受例如上述攻击工具的运行程序攻击。

出于以上原因,本领域技术人员不断地努力提出一种以高效且可靠的方式验证电子设备的系统完整性的系统和方法。



技术实现要素:

通过根据本发明的实施例提供的系统和方法解决了以上及其它问题并推进了本领域的发展。

根据本发明的系统和方法的实施例的第一优点是在验证电子设备的系统的完整性之前,将由安装在设备的信任环境内的验证模块验证扫描器模块的完整性,所述扫描器模块提供于设备的正常操作系统内。此额外验证层确保不会影响系统的可靠性。

根据本发明的系统和方法的实施例的第二优点是扫描器模块的完整性的验证(此模块由此提供于正常操作系统内)可以与验证设备的系统完整性的步骤组合,由此消除对额外的耗时验证步骤的需求。

根据本发明的系统和方法的实施例的第三优点是在使用仅可以由验证模块解密的加密方法对通过扫描器模块产生的响应进行加密时,不可能窜改、攻击或改变所述响应。

根据本发明的系统和方法的实施例的第四优点是设备的系统完整性的验证可以周期性地执行并且不限于仅当设备通电或启动时。

根据本发明的系统和方法的实施例的第五优点是与验证模块不同,当扫描器模块安装在正常环境中时,扫描器模块可以容易地且不断地与最新反恶意程序、反root或反越狱程序更新。

由通过以下方式操作的根据本发明的方法的实施例提供以上优点。

根据本发明的第一方面,用于验证电子设备的系统完整性的方法包括以下步骤:通过提供于电子设备中的安全环境内的验证器模块产生质询;将所述质询从验证器模块传输到提供于电子设备中的正常环境内的扫描器模块,其中所述质询指示扫描器模块在正常环境中执行完整性验证功能以产生响应;由扫描器模块对所述响应进行加密并且将加密响应传输到验证器模块;以及通过验证器模块验证扫描器模块的完整性,由此响应于确定验证扫描器模块的完整性而由验证器模块确定所述响应是否有效,由此响应于确定所述响应无效而执行缓解措施。

参考第一方面,在第一方面的第一可能实施方式中,验证扫描器模块的完整性的步骤包括由验证器模块对加密响应进行解密,由此响应于加密响应的成功解密而验证扫描器模块的完整性。

参考第一方面或第一方面的第一可能实施方式,在第一方面的第二可能实施方式中,电子设备中的安全环境包括用于电子设备的安全世界虚拟处理器。

参考第一方面、第一方面的第一或第二可能实施方式,在第一方面的第三可能实施方式中,电子设备中的正常环境包括用于电子设备的正常世界虚拟处理器。

参考第一方面、第一方面的第一、第二或第三可能实施方式,在第一方面的第四可能实施方式中,验证功能包括扫描核心代码;扫描进程列表;扫描存储器页表;或检查核心保护机构的状态和参数。

参考第一方面、第一方面的第一、第二、第三或第四可能实施方式,在第一方面的第五可能实施方式中,对响应进行加密包括通过私有或公共密钥对响应进行加密,其中所述私有或公共密钥提供于扫描器和验证器模块中。

参考第一方面、第一方面的第一、第二、第三、第四或第五可能实施方式,在第一方面的第六可能实施方式中,确定响应是否有效包括将响应与提供于安全环境中的安全数据库中包含的数据匹配,其中当未发现匹配时,所述响应确定为无效。

参考第一方面、第一方面的第一、第二、第三、第四、第五或第六可能实施方式,在第一方面的第七可能实施方式中,其中在使用验证器模块产生质询的步骤之前,所述方法包括通过验证器模块验证提供于正常环境内的扫描器模块的完整性。

参考第一方面的第七可能实施方式,在第一方面的第八可能实施方式中,验证提供于正常环境内的扫描器模块的完整性包括:由验证器模块产生验证响应请求并且将所述验证响应请求从验证器模块传输到扫描器模块,其中所述验证响应请求指示扫描器模块产生加密验证响应,并且将所述加密验证响应传输到验证器模块;以及由验证器模块确定所述加密验证响应是否有效,由此响应于确定所述响应无效而执行缓解措施。

参考第一方面的第八可能实施方式,在第一方面的第九可能实施方式中,确定加密验证响应是否有效包括由验证器模块对所述加密验证响应进行解密,由此响应于确定对所述验证响应进行解密而将解密验证响应与提供于安全环境中的安全数据库中包含的验证数据匹配,其中当未发现匹配时,验证响应确定为无效。

参考第一方面,或第一方面的第一、第二、第三、第四、第五、第六或第七可能实施方式,在第一方面的第十可能实施方式中,缓解措施包括防止提供于正常环境中的软件模块的执行。

参考本发明的第一方面,在第一方面的第十一可能实施方式中,安全环境是与正常环境分离的硬件。

参考第一方面,或第一方面的第一、第二、第三或第四可能实施方式,在第一方面的第十二可能实施方式中,混淆扫描器模块中的验证功能。

参考本发明的第一方面,在第一方面的第十三可能实施方式中,其中在使用验证器模块产生质询的步骤之前,所述方法包括通过电子设备检测电子设备的通电;以及在电子设备中的安全环境中加载验证模块。

参考本发明的第一方面或第一方面的第十三可能实施方式,在第一方面的第十四可能实施方式中,所述方法进一步包括:确定是否已经过预设时间间隔;以及当已经过预设时间间隔时重复用于验证电子设备的系统完整性的方法。

根据本发明的第二方面,提供一种用于验证电子设备的系统完整性的系统,所述系统包括:处理单元,所述处理单元具有安全环境和正常环境;以及由处理单元可读的非暂时性媒体,所述媒体存储当由处理单元执行时使处理单元执行以下操作的指令:

使用提供于安全环境内的验证器模块产生质询;

将质询从验证器模块传输到提供于正常环境内的扫描器模块,其中所述质询指示扫描器模块在正常环境中执行完整性验证功能以产生响应;

使用扫描器模块对响应进行加密,并且将加密响应传输到验证器模块;以及

使用验证器模块验证扫描器模块的完整性,由此响应于确定验证扫描器模块的完整性而使用验证器模块确定所述响应是否有效,由此响应于确定所述响应无效而执行缓解措施。

参考第二方面,在第二方面的第一可能实施方式中,其中用于验证扫描器模块的完整性的指令包括:

用于引导处理单元执行以下操作的指令:

使用验证器模块对加密响应进行解密,由此响应于加密响应的成功解密而验证扫描器模块的完整性。

参考第二方面或第二方面的第一可能实施方式,在第二方面的第二可能实施方式中,其中处理单元中的安全环境包括安全世界虚拟处理器。

参考第二方面、第二方面的第一或第二可能实施方式,在第二方面的第三可能实施方式中,其中处理单元中的正常环境包括正常世界虚拟处理器。

参考第二方面、第二方面的第一、第二或第三可能实施方式,在第二方面的第四可能实施方式中,其中验证功能包括:

用于引导处理单元执行以下操作的指令:

扫描核心代码;扫描进程列表;扫描存储器页表;或检查核心保护机构的状态和参数。

参考第二方面,或第二方面的第一、第二、第三或第四可能实施方式,在第二方面的第五可能实施方式中,其中用于对响应进行加密的指令包括:

用于引导处理单元执行以下操作的指令:

用私有或公共密钥对响应进行加密,其中所述私有或公共密钥提供于扫描器和验证器模块中。

参考第二方面、或第二方面的第一、第二、第三、第四或第五可能实施方式,在第二方面的第六可能实施方式中,其中用于确定响应是否有效的指令包括:

用于引导处理单元执行以下操作的指令:

将响应与提供于安全环境中的安全数据库中包含的数据匹配,其中当未发现匹配时,所述响应确定为无效。

参考第二方面或第二方面的第一、第二、第三、第四、第五或第六可能实施方式,在第二方面的第七可能实施方式中,其中在用于使用验证器模块产生质询的指令之前,所述指令包括:

用于引导处理单元执行以下操作的指令:

使用提供于安全环境内的验证器模块验证提供于正常环境内的扫描器模块的完整性。

参考第二方面的第七可能实施方式,在第二方面的第八可能实施方式中,其中用于验证提供于正常环境内的扫描器模块的完整性的指令包括:

用于引导处理单元执行以下操作的指令:

使用验证器模块产生验证响应请求并且将所述验证响应请求从验证器模块传输到扫描器模块,其中所述验证响应请求指示扫描器模块产生加密验证响应,并且将所述加密验证响应传输到验证器模块;以及

使用验证器模块确定加密验证响应是否有效,由此响应于确定所述响应无效而执行缓解措施。

参考第二方面的第八可能实施方式,在第二方面的第九可能实施方式中,其中用于确定加密验证响应是否有效的指令包括:

用于引导处理单元执行以下操作的指令:

使用验证器模块对加密验证响应进行解密,由此响应于确定对验证响应进行解密而将解密验证响应与提供于安全环境中的安全数据库中包含的验证数据匹配,其中当未发现匹配时,所述验证响应确定为无效。

参考第二方面、或第二方面的第一、第二、第三、第四、第五、第六或第七可能实施方式,在第二方面的第十可能实施方式中,其中缓解措施包括::

用于引导处理单元阻止提供于正常环境中的软件模块的执行的指令。

参考本发明的第二方面,在第二方面的第十一可能实施方式中,其中安全环境是与正常环境分离的硬件。

参考第二方面,或第二方面的第一、第二、第三或第四可能实施方式,在第二方面的第十二可能实施方式中,其中混淆扫描器模块中的验证功能。

参考本发明的第二方面,在第二方面的第十三可能实施方式中,其中在用于使用验证器模块产生质询的指令之前,所述系统包括:

用于引导处理单元执行以下操作的指令:

检测电子设备的通电;以及

在电子设备中的安全环境中加载验证模块。

参考本发明的第二方面,或第二方面的第十三可能实施方式,在第二方面的第十四可能实施方式中,混淆扫描器模块。

附图说明

在以下详细描述中描述并在以下图式中示出根据本发明的以上优点和特征:

图1说明根据本发明的实施例的表示用于实施实施例的电子设备中的组件的框图;

图2说明根据本发明的实施例的处理器的安全环境和正常环境的示例性框图;

图3说明根据本发明的实施例的用于验证电子设备的完整性的时序图;

图4说明根据本发明的实施例的在用于电子设备的完整性验证的验证模块处执行的过程的流程图;

图5说明根据本发明的实施例的用于验证提供于正常环境内的扫描器模块的完整性的过程的流程图;以及

图6说明根据本发明的实施例的在用于产生验证扫描器模块和电子设备的完整性的加密响应的扫描器模块处执行的过程的流程图。

具体实施方式

本发明涉及一种用于验证电子设备的系统完整性的系统和方法。电子设备配备有安装在电子设备的安全环境内的验证器模块以及安装在电子设备的正常环境内的扫描器模块,由此安全环境包括与正常环境中的硬件分离的硬件,即,这两个环境是硬件分离的。

图1说明根据本发明的实施例的示出用于实施实施例的可以包含在电子设备100中的处理系统和处理系统的组件的框图。电子设备100可以包含但不限于,能够执行通信功能的任何设备,例如,智能手机、平板电脑、移动计算机、上网本、例如智能手表的可穿戴式电子设备等。本领域技术人员将认识到,每个电子设备的准确配置可以不同且每个电子设备的准确配置可以改变,并且图1仅通过实例方式提供。

在本发明的实施例中,电子设备100包括控制器101和用户接口102。用户接口102被布置成实现用户与电子设备100之间的手动交互,并且出于此目的包含用户输入指令以控制电子设备100所需的输入/输出组件。本领域技术人员将认识到,用户接口102的组件在实施例之间可以不同,但是通常将包含显示器140、键盘135和触控板136中的一个或多个。

控制器101通过总线115与用户接口102进行数据通信并且包含存储器120;安装在电路板上的中央处理单元(centralprocessingunit,cpu)105,所述cpu处理用于执行此实施例的方法的指令和数据;操作系统106;在此实施例中采用网卡150形式的输入/输出(input/output,i/o)接口130,用于与用户接口102和通信接口通信。网卡150可以例如用于通过有线或无线网络将数据从电子设备100发送到其它处理设备或通过有线或无线网络接收数据。网卡150可以使用的无线网络包含但不限于,无线保真(wireless-fidelity,wi-fi)、蓝牙、近场通信(nearfieldcommunication,nfc)、蜂窝网络、卫星网络、电信网络、广域网(wideareanetwork,wan)等。

存储器120和操作系统106通过总线110与cpu105进行数据通信。存储器组件包含易失性和非易失性存储器两者以及每种类型的存储器中的多于一个存储器,包含随机存取存储器(randomaccessmemory,ram)120、只读存储器(readonlymemory,rom)125和大容量存储设备145,最后一个包括一个或多个固态驱动器(solid-statedrive,ssd)。本领域技术人员将认识到,存储器组件包括非暂时性计算机可读媒体并且应视为除了暂时性传播信号之外包括所有计算机可读媒体。通常,指令作为程序代码存储于存储器组件中,但还可以硬接线。存储器120可以包含核心和/或编程模块,例如,可以存储于易失性或非易失性存储器中的软件应用程序。

本文中的术语“cpu”用于一般指代可以处理此类指令的任何设备或组件,并且可以包含:微处理器、微控制器、可编程逻辑设备或其它计算设备。也就是说,cpu105可以由任何合适的逻辑电路提供,用于接收输入,根据存储于存储器中的指令处理所述输入并且产生输出(例如,到达存储器组件或在显示器140上)。在此实施例中,cpu105可以是具有存储器可寻址空间的单核或多核处理器。在一个实例中,cpu105可以是多核cpu,包括例如8核cpu。

图2说明根据本发明的实施例的用于提供安全环境虚拟处理器210(下文称为“安全环境”)和正常环境虚拟处理器205(下文称为“正常环境”)的处理器105的示例性框图。正常环境205可以包含用于以最少安全设置在正常模式下操作的操作系统206、核心222、应用程序224和扫描器220。相反地,安全环境210可以配备有安全操作系统、安全核心、安全数据库235和安全验证器模块230。

安全环境210可以与普通环境205硬件分离,由此确保位于正常环境内的应用程序、核心、模块和操作系统可以不接入提供于安全环境内的应用程序、核心、模块和操作系统。此基于硬件的分离可以通过,但不限于,处理器架构提供,所述处理器架构由高级精简指令集机器(advancedriscmachine,arm)提供。在arm处理器中,此基于硬件的分离被实施为信任区技术。arm处理器的信任区技术实现基于硬件的分离以将在单个物理处理器核心上执行的代码分成两个环境,即,安全环境和正常环境。本领域技术人员将认识到,图2中所说明的软件或模块,例如,安装在安全环境210和正常环境205中的模块可以使用用于此类操作系统的开发代码写入,或可以从针对此类操作系统编码的现有种类或组件修改以执行如下所述的每个模块所需的过程,并且数据或信息可以按需要在这些模块之间传送。

安装在安全环境内的组件受到严格的安全要求,并且因此可以执行受限功能且仅可以由设备的制造商或设备的超级用户接入或修改。这使更新安全环境内的应用程序、模块或核心变成冗长且不切实际的选项。

提供于正常环境205内的操作系统206可以包含任意操作系统,例如,android、linux、iphoneos(ios)或适合用于电子设备100或移动设备中的任何其它操作系统。核心222和/或应用程序224可以执行用于管理电子设备100的资源的指令。提供于正常环境205内的扫描器模块220可以用于将指令或命令提供到操作系统206、核心222或应用程序224,并且还可以用于从这些组件中的每一个接收响应。然而,应注意,正常环境205中的组件可以不接入或控制提供于安全环境210内的组件,例如,数据库235或验证器230。然而,安装在正常环境中的组件可以将数据发送到安装在安全环境210中的组件或从所述组件接收指令。从正常环境205的组件传输的数据可以不包含命令或指令,因为此本质的数据不会由安全环境210中的组件来处理。

图3说明根据本发明的实施例的用于验证电子设备100的完整性的时序图。如先前在图2中所说明,验证器模块230提供于安全环境210内。验证器模块210可以包括用于产生指令(下文中称为“质询”)或各种类型的请求,例如验证请求的应用程序或安全应用程序,所述指令或请求随后传输到正常环境205中的组件。图2中所说明的系统通过以下方式操作。验证器230首先将产生包含将由扫描器模块220执行的特定指令的质询。在本发明的实施例中,可以使用公共密钥或私有密钥加密对此质询进行加密,由此对应公共或私有密钥先前已提供到扫描器模块220。在步骤305处,所产生质询随后传输到扫描器模块220。在接收质询之后,扫描器模块220将执行质询内包含的指令。如果已对质询进行加密,扫描器模块220将使用合适的解密密钥对质询进行解密并且随后将执行质询内包含的指令。这样确保质询、质询中包含的指令以及指令中指定的扫描功能/目标保持对所有其它模块和/或过程保密。

所述指令可以包含用于扫描器模块220执行用于验证操作系统206的完整性的步骤的命令,并且此指令可以使用由操作系统206提供的默认特征和功能来完成。在本发明的实施例中,指令可以包含但不限于,用于扫描器模块220执行算法的命令,以针对已知恶意代码扫描核心222中的代码、扫描进程列表、检查存储器120以root或越狱踪迹、扫描存储器120的页表、检查核心222或应用程序224的状态和权限参数。所有这些完整性验证算法可以存储于扫描器模块220内。在本发明的实施例中,扫描器模块220内包含的完整性验证算法和/或扫描器模块220可以混淆,由此阻止扫描器模块220和这些代码由恶意攻击者检索和/或分析。应注意,混淆的扫描器模块220仍可以执行从验证器模块210接收的指令。换句话说,在扫描器模块220能够执行所接收指令之前所扫描模块220不需要是未混淆的。因此,混淆的扫描器模块220将一直总保持混淆。通过使验证指令加密以及通过使扫描器模块220混淆,这确保双倍地保护提供于正常操作环境205内的扫描器模块220,以免受正常环境205中的其它模块的未授权访问。本领域技术人员将认识到,在不脱离本发明的情况下,当开发新更新以寻址新发现的恶意代码或攻击时可以将新验证算法提供到扫描器模块220。在扫描器模块安装在正常操作环境205内时,这些更新可以容易地安装在扫描器模块220中。在步骤310处,通过扫描器模块220进行完整性验证算法的执行。

在已执行验证功能之后,验证结果和来自相应核心、应用程序和/或模块的响应随后将返回到扫描器模块220。这在步骤315处发生。所述响应都在扫描器模块220处整理,所述扫描器模块随后继续使用提供于扫描器模块220内的公共或私有密钥对所整理响应进行加密。本领域技术人员将认识到,在不脱离本发明的情况下,其它加密或可能甚至混淆技术可以用于对所整理响应进行加密。在步骤320处,加密的所整理响应随后传输到验证器模块230。

验证器模块230随后将使用加密响应来验证扫描器模块220的完整性。在本发明的实施例中,如果验证器模块230成功地对加密响应进行解密,这表示在相同加密密钥和/或算法用于对响应进行加密时扫描器模块220的完整性尚未受损。为了对加密响应进行解密,验证器模块230将必须从安全数据库235检索秘密公共/私有密钥。这在步骤325中发生。

数据库235将通过验证器模块230分析请求以确定所述请求是否是有效请求,即,所请求的秘密密钥是否包含在所述数据库的记录内。如果所请求的秘密密不可用,这可以触发系统的完整性已受损的警告。相反地,如果可以成功地检索秘密密钥,在步骤330处此秘密密钥随后转发到验证器模块230。

验证器模块230随后将利用秘密密钥来对加密响应进行解密。如果响应不可以进行解密或如果解密产生无意义结果,这将强在很大程度上暗示扫描器模块220已受损并且随后将通过验证器模块230执行缓解措施。在本发明的实施例中,缓解措施可以包含:锁住电子设备,由此防止其它应用程序运行;使电子设备断电;和/或将通知服务器缓解措施已在电子设备上起始的警报发送到远程服务器。本领域技术人员将认识到,在不脱离本发明的情况下可以获取其它缓解步骤。或者,如果响应成功地进行解密,这表示扫描器模块220的完整性完好并且响应随后由验证器模块230进一步分析。

基于早期产生的质询内包含的命令,验证器模块230随后将从安全数据库235检索预期的一组结果。随后将从数据库235检索的结果与解密响应中包含的结果相比较。如果两组结果匹配或满足内部检查表,响应随后确定为有效并且验证模块230随后确定电子设备100的完整性尚未受损。或者,如果结果不匹配或如果不符合检查表的所有内容,这表示电子设备100的完整性已损坏并且随后必须由验证器模块230执行缓解措施。如上文所提及,可以通过验证器模块230获取的缓解措施包含但不限于:锁住电子设备,由此防止其它应用程序运行;使电子设备断电;和/或将通知服务器缓解措施已在电子设备上起始的警报发送到远程服务器。

在本发明的示例性实施例中,本发明的系统可以实施为用于个人自带设备(bring-your-own-device,byod)系统中的设备的反root检测系统。在byod系统中,允许员工使用自己的电子设备来查看公司的机密数据。为了确保不损坏这些数据的机密性,公司需要确保电子设备具有完好的操作系统(operatingsystem,os),也就是说,尚未root或越狱的os。总而言之,公司需要确保由设备的操作系统实施的安全措施保持完好,由此用户仅授予受限访问控制权限。

在本发明的此实施例中,当员工将其设备添加到byod系统时,两个程序或模块首先安装在电子设备中。第一程序或模块是将安装在设备的信任执行环境(trustedexecutionenvironment,tee)或其等效安全环境中的验证器模块,并且第二程序是将安装在设备的丰富执行环境(richexecutionenvironment,ree)或其等效正常环境中的扫描器模块。

验证器模块将包含验证器模块可以要求扫描器模块执行的任务的列表,例如,扫描核心代码、扫描进程列表、检查su模块、扫描存储器页表、检查核心保护机构的状态和参数等等。可以使用提供于验证器模块内的请求发送方程序来选择这些任务,由此此程序将验证请求或包含目标/命令的集合的质询发送到扫描器模块。在本发明的实施例中,请求发送方程序可以配备有计时器和函数回调处理器,使得请求发送方程序可以周期性地或在重要byod功能将启动时开始。

验证器模块还可以包含私有密钥(所述私有密钥也可以是对称解密密钥),验证算法可以使用所述私有密钥来解密和验证由扫描器模块发送回的响应。除了上述内容之外,验证器模块还包含用于执行缓解措施的响应处理器,所述缓解措施例如,锁住手机,关闭手机和/或响应于接收失效响应或响应的不成功解密而通知响应授权。

安装在ree环境中的扫描器模块包含公共密钥(所述公共密钥也可以是对称加密密钥),所述公共密钥可以用于对将发送到验证器模块的响应进行加密并且所述公共密钥可以通过混淆和白盒技术保护。扫描器模块还包含用于执行从验证器模块接收的指令或命令的一组扫描算法,并且还可以混淆这些算法。扫描器模块还包含响应算法,所述响应算法在将加密结果发送回验证器之前利用公开密钥对扫描算法的结果进行加密。在本发明的实施例中,扫描器模块实施为操作系统的系统模块,例如,如果操作系统是android操作系统;扫描器模块将实施为可以由android核心加载的android系统模块。

在本发明的实施例中,每当电子设备启动或通电时(在加载通用启动之前或刚好在加载通用启动之后)可以自动地加载验证器模块。此启动顺序类似于本领域中已知的安全启动链技术。在已加载验证器模块之后,所述验证器模块保持在设备的tee中,并且由此通过硬件隔离免受安装在ree中的应用程序的影响。这表示在验证器模块正运行时,恶意攻击者无法卸载模块或修改模块的设置。类似地,在安全启动链加载ree中的核心之后,安全启动链将加载ree或正常环境中的扫描器模块。刚好在已加载扫描器模块之后以及在加载操作系统之前,扫描器模块将扫描核心并且将正确核心的参考发送到验证器。此后,加载ree中的操作系统并且所述操作系统照常执行。

在本发明的其它实施例中,可以用5分钟至1小时之间的随机时间间隔周期性地执行验证器模块。这表示验证器模块将周期性地请求扫描器模块执行系统完整性扫描。在此系统完整性扫描期间执行如图3中所示的步骤305至330。调节随机间隔以实现设备的性能与设备的安全性之间的平衡。为了进一步改进效率,验证器模块可以基于设备的电源状态、设备的电荷状态、设备的cpu工作负载、日期时间等而调节执行时间间隔。应注意,可以从设备的tee或安全环境内包含的核心和应用程序中获得验证器模块所需的所有必需信息。

在本发明的另一示例性实施例中,本发明的系统可以实施为在可以在电子设备与金融机构之间执行在线交易应用之前验证设备的完整性的预在线交易系统。在此实施例中,系统确保在在线交易期间保护敏感数据,例如,设备中包含的财务数据。此外,系统还将确保交易实际上由用户授权。再者,在此实施例中,系统还会验证密钥记录器应用程序不在设备的系统中运行以试图窃取用户的密码或任何其它敏感信息。

类似地,验证器模块安装在设备的信任执行环境(trustedexecutionenvironment,tee)或其等效安全环境中,并且扫描器模块安装在设备的丰富执行环境(richexecutionenvironment,ree)或其等效正常环境中。

在此实施例中,在验证器产生质询并将质询传输到扫描器模块之前,即在步骤305之前,验证器模块将首先验证扫描器模块的完整性。这可以通过验证扫描器模块的数字签名,或通过检查扫描器模块的存储器内容来完成。例如,对应金融机构将具有用于计算批准的扫描器模块的数字签名的私有密钥,并且验证器模块将具有用于验证扫描器模块实际上是已由银行数字签名的正确版本的对应公共密钥。公共密钥通常存储于在tee中提供的安全数据库中。每当与金融机构相关联的程序需要更新扫描器模块(例如,以支持新功能,或编辑允许的进程列表等)时,金融机构将发布扫描器模块的新版本以及对应数字签名(例如,通过在线门户)。用户随后将必须下载更新并且将所述更新安装在其设备上。验证器将使用模块的数字签名周期性地检查扫描器模块的完整性,以便防止通过新的恶意程序/攻击记录或捕获用户的机密数据(例如,密码)。由于验证器模块更新起来困难得多,因此将新验证目标添加到扫描器模块,其方式为使得原始验证器模块仍能够验证由扫描器模块执行的更新扫描动作的响应。关于可以如何实现此的一个实例是来自扫描器模块的响应将包含已使用银行私有密钥数字签名的预期结果。

在扫描器模块的完整性已受损的情况下或如果通过扫描器模块产生的响应尚未得到验证,即,已损坏系统,验证器模块将执行缓解措施,例如,通知金融机构对应模块或系统的完整性已损坏。在一些情形下,即使在从设备接收此通知之后,如果金融机构确定风险可接受,仍可以允许交易进行。因此,为了金融机构执行适当的威胁评估分析,验证器模块还必须提供关于在将通知传输到金融机构时完整性验证误差的细节,即,关于正运行的应用程序、不符合的目标、从扫描器模块返回的结果等的细节。

根据本发明的实施例,用于验证电子设备的系统完整性的方法包括以下四个步骤:

步骤1,通过提供于电子设备中的安全环境内的验证器模块产生质询;

步骤2,将质询从验证器模块传输到提供于电子设备中的正常环境内的扫描器模块,其中质询指示扫描器模块在正常环境中执行完整性验证功能以产生响应;

步骤3,通过扫描器模块对响应进行加密并将加密响应传输到验证器模块;以及

步骤4,通过验证器模块验证扫描器模块的完整性,由此响应于确定验证扫描器模块的完整性而通过验证器模块确定所述响应是否有效,由此响应于确定所述响应无效而执行缓解措施。

为了提供此系统或方法,需要用于使用安装在设备的安全环境内的验证器模块以及安装在设备的正常环境内的扫描器模块验证电子设备的系统完整性的过程。以下描述以及图4至6描述提供根据本发明的过程的过程的实施例。

图4说明根据本发明的实施例的由安装在电子设备的安全环境内的验证器模块执行以验证设备的系统完整性的过程400。通过产生将传输到提供于电子设备的正常环境内的扫描器模块的质询,过程400开始于步骤405。质询将包含待由扫描器模块执行以验证系统的完整性的特定指令。在已产生质询之后,所述质询随后由扫描器模块传输和执行。在步骤410处,过程400随后从扫描器模块接收加密响应。在步骤415处,随后通过过程400对所述响应进行解密。过程400可以使用存储于验证器模块内的私有和/或公共密钥对加密响应进行解密,或过程400可以从提供于安全环境内的安全数据库检索必需的秘密密钥。如果未成功地对加密响应进行解密,过程400前进到步骤420,由此过程400随后前进以执行必需的缓解措施。过程400随后结束。

或者,如果在步骤415处已成功地对响应进行解密,过程400将前进到步骤425。在步骤425处,过程400将检查响应以确定将从安全数据库检索的所需数据或检查表。过程400随后将所检索数据与解密响应中包含的数据相比较,以确定响应的有效性。这在步骤430处发生。如果过程400确定响应有效,这表示系统的完整性完好并且过程400前进到步骤a。相反地,如果响应确定为无效,过程400替代地前进到步骤420,由此通过过程400执行缓解措施。过程400随后结束。

在本发明的其它实施例中,如果验证器模块在步骤a处接收电子设备已断电且正通电(即,启动)的指示,验证器模块首先将在执行任何其它过程之前启动并且将执行过程400。在可以启动正常环境中的核心或操作系统之前,过程400随后将使步骤405至430重复。在本发明的又另一个实施例中,在步骤a处,在已经过预设时间间隔或周期之后,过程400将使步骤405至430重复以验证电子设备的系统完整性。

在本发明的另一实施例中,在过程400在步骤405处产生质询之前,过程400将首先验证安装在正常环境中的扫描器模块的完整性。在图4中,此预质询验证在步骤b处发生。图5说明根据本发明的实施例的由验证器模块执行以验证扫描器模块的完整性的过程500。过程500开始于步骤505处,由此产生验证响应请求。验证响应请求将使扫描器模块使用验证器和扫描器模块两者已知的秘密密钥(例如,私有或公共密钥)来产生加密响应。在已产生请求之后,请求随后传输到扫描器模块。扫描器模块随后将执行所接收请求内包含的指令。在步骤510处,过程500随后从扫描器模块接收加密验证响应。在步骤515处,过程500随后继续验证所接收响应。响应的验证可以涉及加密响应的解密,由此如果成功地解密响应,这向过程500意味着响应有效。相反地,如果无法成功地对响应进行解密,这指示响应无效。如果在步骤515处过程500确定响应有效,过程500随后结束。然而,如果在步骤515处确定响应无效,过程500将前进到步骤520,由此将执行缓解措施。过程500随后结束。

图6说明根据本发明的实施例的通过安装在电子设备的正常环境内的扫描器模块执行以产生用于验证扫描器模块和电子设备的完整性的加密响应的过程600。过程600开始于步骤605处,由此过程600从验证器模块接收质询。扼要重述一下,质询将包含将由过程600执行的所有验证步骤。在步骤610处,过程600随后继续执行如在质询中所指示的所有验证功能。在已完成每个功能之后,过程600将手机针对每个特定功能产生的响应并且将所有响应整理成单个通用响应。在步骤615处,随后使用秘密密钥(例如,私有密钥或公共密钥)对通用响应进行加密。此加密响应随后在步骤620处传输到验证器模块,并且过程600随后结束。

以上是如在所附权利要求书中阐述的根据本发明的系统和过程的实施例的描述。设想可以设计并将设计落入所附权利要求书的范围内的替代方案。

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