一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种检测内核数据完整性的终端和方法与流程

2021-10-23 00:39:00 来源:中国专利 TAG:终端 内核 完整性 检测 特别


1.本发明涉及计算机技术领域,特别涉及一种检测内核数据完整性的终端和方法。


背景技术:

2.内核数据完整性检测是为了检测加载到内存中的内核镜像是否被恶意篡改,如果加载到内存中的内核镜像被恶意篡改,则会导致运行结果发生改变。
3.目前,检测内核数据完整性时,通过运行在内核空间的内核度量模块周期性检测。
4.然而,由于内核空间容易被攻击,因此无法保证内核数据检测的安全性。


技术实现要素:

5.本发明提供一种检测内核数据完整性的终端和方法,用以解决现有技术中存在的无法保证内核数据检测的安全性的问题。
6.第一方面,本发明实施例提供一种检测内核数据完整性的终端,应用于可信空间,该终端包括存储器和处理器:
7.所述存储器用于存储终端设备运行时所使用的数据或程序代码;
8.所述处理器用于执行所述程序代码,以实现如下过程:
9.接收到运行在内核空间的kimm(kernel integration meature module,内核完整性度量模块)发送的度量完整性请求后,对内存中的内核镜像进行哈希运算,得到哈希值;
10.将运算得到的哈希值与第一基准值进行比对,根据比对结果确定内核数据的完整性,其中,所述第一基准值为终端的系统首次启动时kimm-ta(kernel integration meature module-trusted application,内核完整性度量可信应用)对内存中的内核镜像进行哈希运算得到的。
11.上述终端,首先在可信空间接收运行在内核空间的内核完整性度量模块kimm发送的度量完整性请求,然后对内核中的内核镜像进行哈希运算,得到哈希值,最后将运算得到的哈希值与第一基准值进行比对,根据比对结果确定内核数据的完整性,其中,第一基准值为终端的系统首次启动时kimm-ta对内存中的内核镜像进行哈希运算得到的。由于在可信空间进行内核数据的完整性检测,可信空间是移动设备主处理器上的一个安全的区域,从而能够提高检测内核数据完整的安全性。
12.在一种可能的实现方式中,所述将哈希运算得到的哈希值作为所述第一基准值之后,将运算得到的哈希值与第一基准值进行比对之前,所述处理器还用于:
13.若所述度量完整性请求中包含kimm标识,则将内存中的kimm镜像进行哈希运算得到的哈希值与第二基准值进行比对,并根据比对结果确定所述kimm的数据完整,其中,所述第二基准值为所述终端的系统首次启动时,所述kimm-ta对内存中的kimm镜像进行哈希运算得到的;或
14.若所述度量完整性请求中包含kimm-client(kernel integration meature module-client,内核完整性度量客户端)标识,则将内存中的kimm-client镜像进行哈希运
算得到的哈希值与第三基准值进行比对,并根据比对结果确定所述kimm-client的数据完整,其中,所述第三基准值为所述终端的系统首次启动时,所述kimm-ta对内存中的kimm-client镜像进行哈希运算得到的。
15.上述终端,在确定内核数据的完整性之前,确定kimm的数据完整或确定kimm-client的数据完整,从而能够进一步提高检测内核数据完整的安全性。
16.在一种可能的实现方式中,所述将内存中的kimm镜像进行哈希运算得到的哈希值与第二基准值进行比对之后,所述处理器还用于:
17.根据比对结果确定所述kimm的数据不完整,则向所述kimm-client发送停止已启动的所述系统的消息;或
18.根据比对结果确定所述kimm-ta的数据不完整,则向所述kimm-client发送停止已启动的所述系统的消息。
19.上述终端,在确定kimm的数据不完整或kimm-ta的数据不完整时,向kimm-client发送停止已启动的所述系统的消息,从而减小内核被篡改的风险。
20.在一种可能的实现方式中,所述处理器还用于:
21.周期接收所述kimm发送的包含kimm标识的度量完整性请求。
22.上述终端,周期接收kimm发送的包含kimm标识的度量完整性请求,周期检测内核数据的完整性,从而进一步减小内核被篡改的风险。
23.第二方面,本发明实施例提供一种检测内核数据完整性的终端,应用于内核空间,该终端包括存储器和处理器:
24.所述存储器用于存储终端设备运行时所使用的数据或程序代码;
25.所述处理器用于执行所述程序代码,以实现如下过程:
26.确定满足触发条件;
27.向运行在可信空间的内核完整性度量可信应用kimm-ta发送度量完整性请求,以使所述kimm-ta确定内核数据的完整性。
28.上述终端,在内核空间确定满足触发条件后,向运行在可信空间的内核完整性度量应用kimm-ta发送度量完整性请求,以使所述kimm-ta确定内核数据的完整性。由于在可信空间进行内核数据的完整性检测,可信空间是移动设备主处理器上的一个安全的区域,从而能够提高检测内核数据完整的安全性。
29.在一种可能的实现方式中,若所述触发条件为启动所述终端的系统,则所述处理器具体用于:
30.向所述kimm-ta发送携带所述kimm标识的度量完整性请求。
31.上述终端,向kimm-ta发送携带所述kimm标识的度量完整性请求,以使kimm-ta根据kimm标识确定检测kimm的数据完整后,再检测内核数据的完整性,从而能够进一步提高检测内核数据完整的安全性。
32.在一种可能的实现方式中,所述处理器还用于:
33.周期向所述kimm-ta发送携带所述kimm标识的度量完整性请求,其中,所述周期为所述处理器根据处理器的占用率与周期的对应关系确定的。
34.上述终端,确定发送度量完整性请求的周期,从而周期性向kimm-ta发送度量完整性请求,使kimm-ta周期性检测内核数据完整性,进一步减小内核被篡改的风险。
35.在一种可能的实现方式中,若所述触发条件为所述kimm接收kimm-client发送的处理度量请求,则所述处理器具体用于:
36.向所述kimm-ta发送携带所述kimm-client标识的度量完整性请求。
37.上述终端,向kimm-ta发送携带所述kimm-client标识的度量完整性请求,以使kimm-ta根据kimm-client标识确定检测kimm-client的数据完整后,再检测内核数据的完整性,从而能够进一步提高检测内核数据完整的安全性。
38.第三方面,本发明实施例提供一种检测内核数据完整性的方法,应用于终端中,该方法包括:
39.运行在可信空间的内核完整性度量可信应用kimm-ta接收到运行在内核空间的内核完整性度量模块kimm发送的度量完整性请求后,对内存中的内核镜像进行哈希运算,得到哈希值;
40.所述kimm-ta将运算得到的哈希值与第一基准值进行比对,根据比对结果确定内核数据的完整性,其中,所述第一基准值为终端的系统首次启动时所述kimm-ta对内存中的内核镜像进行哈希运算得到的。
41.在一种可能的实现方式中,所述kimm-ta将哈希运算得到的哈希值作为所述第一基准值之后,将运算得到的哈希值与第一基准值进行比对之前,还包括:
42.若所述度量完整性请求中包含kimm标识,则所述kimm-ta将内存中的kimm镜像进行哈希运算得到的哈希值与第二基准值进行比对,并根据比对结果确定所述kimm的数据完整,其中,所述第二基准值为所述终端的系统首次启动时,所述kimm-ta对内存中的kimm镜像进行哈希运算得到的;或
43.若所述度量完整性请求中包含kimm-client标识,则所述kimm-ta将内存中的kimm-client镜像进行哈希运算得到的哈希值与第三基准值进行比对,并根据比对结果确定所述kimm-client的数据完整,其中,所述第三基准值为所述终端的系统首次启动时,所述kimm-ta对内存中的kimm-client镜像进行哈希运算得到的。
44.在一种可能的实现方式中,所述kimm-ta将内存中的kimm镜像进行哈希运算得到的哈希值与第二基准值进行比对之后,还包括:
45.所述kimm-ta根据比对结果确定所述kimm的数据不完整,则向所述kimm-client发送停止已启动的所述系统的消息;或
46.所述kimm-ta根据比对结果确定所述kimm-ta的数据不完整,则向所述kimm-client发送停止已启动的所述系统的消息。
47.在一种可能的实现方式中,该方法还包括:
48.所述kimm-ta周期接收所述kimm发送的包含kimm标识的度量完整性请求。
49.第四方面,本发明实施例提供一种检测内核数据完整性的方法,应用于终端中,该方法包括:
50.运行在内核空间的内核完整性度量模块kimm确定满足触发条件;
51.所述kimm向运行在可信空间的内核完整性度量可信应用kimm-ta发送度量完整性请求,以使所述kimm-ta确定内核数据的完整性。
52.在一种可能的实现方式中,若所述触发条件为启动所述终端的系统,则所述kimm向所述kimm-ta发送携带所述kimm标识的度量完整性请求。
53.在一种可能的实现方式中,该方法还包括:
54.所述kimm周期向所述kimm-ta发送携带所述kimm标识的度量完整性请求,其中,所述周期为所述kimm根据所述终端的处理器的占用率与周期的对应关系确定的。
55.在一种可能的实现方式中,若所述触发条件为所述kimm接收kimm-client发送的处理度量请求,则所述kimm向所述kimm-ta发送携带所述kimm-client标识的度量完整性请求。
56.第五方面,本技术还提供一种计算机存储介质,其上存储有计算机程序,该程序被处理单元执行时实现第三方面至第四方面中任一项所述检测内核完整性的步骤。
57.另外,第三方面至第四方面中任一种实现方式所带来的技术效果可参见第一方面中不同实现方式所带来的技术效果,此处不再赘述。
58.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
59.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
60.图1为本发明实施例提供的一种检测内核数据完整性的终端的结构示意图;
61.图2为本发明实施例提供的一种检测内核数据完整性的终端的软件结构框图;
62.图3为本发明实施例提供的一种检测内核数据完整性的终端用户界面的示意图;
63.图4为本发明实施例一种检测内核数据完整性的系统结构示意图;
64.图5为在终端的显示界面显示重启系统的示意图;
65.图6为本发明实施例提供的一种确定内核完整性度量基准值的方法流程示意图;
66.图7为本发明实施例提供的一种检测内核数据完整性的完整方法流程示意图;
67.图8为本发明实施例提供的kimm模块确定向kimm-ta发送携带kimm-client标识的完整性度量请求的方法的流程示意图;
68.图9为本发明实施例提供的一种检测内核数据完整性的方法流程示意图;
69.图10为本发明实施例提供的另一种检测内核数据完整性的方法流程示意图。
具体实施方式
70.为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
71.需要说明的是,本发明中的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相
一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
72.本发明实施例中“根据a确定b”并不意味着仅仅根据a确定b,还可以根据a和其它信息确定b。“a包括b”并不意味着a仅仅包括b,a还可能包括其他信息,如c、d等。
73.下面对文中出现的一些词语进行解释:
74.1、本发明实施例中术语tee,可信执行环境,也可称为可信空间,是移动设备主处理器上的一个安全区域,其可以保证加载到该环境内部的代码和数据的安全性、机密性以及完整性。tee是一个隔离的安全执行环境,提供的安全特性包含:隔离执行、可信应用的完整性、可信数据的机密性、安全存储等。
75.2、本发明实施例中术语rpmb,replay protected memory block,重放保护内存块,是emmc中的一个具有安全特性的分区。写入数据到rpmb时,会校验数据的合法性,只有指定的host才能写入;同时在读数据时,也提供了签名机制,保证host读取到的数据时rpmb中的内部数据,而不是攻击者伪造的数据。
76.需要说明的是,以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的终端设备和方法的例子。
77.本发明实施例描述的应用场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。其中,在本发明的描述中,除非另有说明,“多个”的含义。
78.图1示出了终端100的结构示意图。
79.下面以终端100为例对实施例进行具体说明。应该理解的是,图1所示终端100仅是一个范例,并且终端100可以具有如图1中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图1中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
80.图1中示例性示出了根据示例性实施例中终端100的硬件配置框图。如图1所示,终端100包括:存储器110、显示单元120、传感器130、音频电路140、无线保真(wireless fidelity,wi-fi)模块150、全球定位系统(global positioning system,gps)模块160、处理器170、蓝牙模块151、射频(radio frequency,rf)电路180、摄像头190以及电源210等部件。
81.存储器110可用于终端100运行时所使用的数据或程序代码。处理器170通过运行存储在存储器110的数据或程序代码,从而执行终端100的各种功能以及数据处理。存储器110可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。存储器110存储有使得终端100能运行的操作系统。本技术中存储器110可以存储操作系统及各种应用程序,还可以存储执行本技术实施例所述方法的代码。
82.显示单元120可用于接收输入的数字或字符信息,产生与终端100的用户设置以及功能控制有关的信号输入,具体地,显示单元120可以包括设置在终端100正面的触摸屏121,可收集用户在其上或附近的触摸操作,例如点击按钮,拖动滚动框等。
83.显示单元120还可用于显示由用户输入的信息或提供给用户的信息以及终端100的各种菜单的图形用户界面(graphical user interface,gui)。具体地,显示单元120可以包括设置在终端100正面的显示屏122。其中,显示屏122可以采用液晶显示器、发光二极管等形式来配置。显示单元120可以用于显示本技术中所述的各种图形用户界面。
84.其中,触摸屏121可以覆盖在显示屏122之上,也可以将触摸屏121与显示屏122集成而实现终端100的输入和输出功能,集成后可以简称触摸显示屏。本技术中显示单元120可以显示应用程序以及对应的操作步骤。
85.终端100还可以包括至少一种传感器130,比如温度传感器131、湿度传感器132、风速传感器133。终端100还可配置有陀螺仪、气压计、红外线传感器、光传感器、运动传感器等其他传感器。
86.音频电路140、扬声器141、麦克风142可提供用户与终端100之间的音频接口。音频电路140可将接收到的音频数据转换后的电信号,传输到扬声器141,由扬声器141转换为声音信号输出。终端100还可配置音量按钮,用于调节声音信号的音量。另一方面,麦克风142将收集的声音信号转换为电信号,由音频电路140接收后转换为音频数据,可以将音频数据输出至存储器110以便进一步处理。本技术中麦克风142可以获取用户的语音。
87.wi-fi属于短距离无线传输技术,终端100可以通过wi-fi模块150帮助用户收发电子邮件、浏览网页和访问流媒体等,它为用户提供了无线的宽带互联网访问。
88.gps模块160可以获取终端100的地理位置信息。
89.处理器170是终端100的控制中心,利用各种接口和线路连接整个设备的各个部分,通过运行或执行存储在存储器110内的软件程序,以及调用存储在存储器110内的数据,执行终端100的各种功能和处理数据。在一些实施例中,处理器170可包括一个或多个处理单元;处理器170还可以集成应用处理器和基带处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,基带处理器主要处理无线通信。可以理解的是,上述基带处理器也可以不集成到处理器170中。本技术中处理器170可以运行操作系统、应用程序、用户界面显示及触控响应,以及本技术实施例所述的处理方法。另外,处理器170与显示单元120耦接。
90.本技术实施例中,在可信空间,处理器170用于接收到运行在内核空间的内核完整性度量模块kimm发送的度量完整性请求后,对内存中的内核镜像进行哈希运算,得到哈希值;
91.将运算得到的哈希值与第一基准值进行比对,根据比对结果确定内核数据的完整性,其中,所述第一基准值为终端的系统首次启动时kimm-ta对内存中的内核镜像进行哈希运算得到的。
92.所述将哈希运算得到的哈希值作为所述第一基准值之后,将运算得到的哈希值与第一基准值进行比对之前,所述处理器170还用于:
93.若所述度量完整性请求中包含kimm标识,则将内存中的kimm镜像进行哈希运算得到的哈希值与第二基准值进行比对,并根据比对结果确定所述kimm的数据完整,其中,所述第二基准值为所述终端的系统首次启动时,所述kimm-ta对内存中的kimm镜像进行哈希运算得到的;或
94.若所述度量完整性请求中包含kimm-client标识,则将内存中的kimm-client镜像
进行哈希运算得到的哈希值与第三基准值进行比对,并根据比对结果确定所述kimm-client的数据完整,其中,所述第三基准值为所述终端的系统首次启动时,所述kimm-ta对内存中的kimm-client镜像进行哈希运算得到的。
95.所述将内存中的kimm镜像进行哈希运算得到的哈希值与第二基准值进行比对之后,所述处理器170还用于:
96.根据比对结果确定所述kimm的数据不完整,则向所述kimm-client发送停止已启动的所述系统的消息;或
97.根据比对结果确定所述kimm-ta的数据不完整,则向所述kimm-client发送停止已启动的所述系统的消息。
98.所述处理器170还用于:
99.周期接收所述kimm发送的包含kimm标识的度量完整性请求。
100.本技术实施例中,在内核空间,处理器170用于确定满足触发条件;
101.向运行在可信空间的内核完整性度量可信应用kimm-ta发送度量完整性请求,以使所述kimm-ta确定内核数据的完整性。
102.若所述触发条件为启动所述终端的系统,则所述处理器170具体用于:
103.向所述kimm-ta发送携带所述kimm标识的度量完整性请求。
104.所述处理器170还用于:
105.周期向所述kimm-ta发送携带所述kimm标识的度量完整性请求,其中,所述周期为所述处理器根据处理器的占用率与周期的对应关系确定的。
106.若所述触发条件为所述kimm接收kimm-client发送的处理度量请求,则所述处理器170具体用于:
107.向所述kimm-ta发送携带所述kimm-client标识的度量完整性请求。
108.蓝牙模块151,用于通过蓝牙协议来与其他具有蓝牙模块的蓝牙设备进行信息交互。例如,终端100可以通过蓝牙模块151与同样具备蓝牙模块的可穿戴电子设备(例如智能手表)建立蓝牙连接,从而进行数据交互。
109.rf电路180可用于在收发信息或通话过程中信号的接收和发送,可以接收基站的下行数据后交给处理器170处理;可以将上行数据发送给基站。通常,rf电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等器件。
110.摄像头190可用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,ccd)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,cmos)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给处理器170转换成数字图像信号。
111.终端100还包括给各个部件供电的电源180(比如电池)。电源180可以通过电源管理系统与处理器170逻辑相连,从而通过电源管理系统实现管理充电、放电以及功耗等功能。终端100还可配置有电源按钮,用于终端设备的开机和关机,以及锁屏等功能。
112.图2是本发明实施例的终端100的软件结构框图。
113.分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(android runtime)和系统库,以及内核层。
114.应用程序层可以包括一系列应用程序包。
115.如图2所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,wlan,蓝牙,音乐,视频,短信息等应用程序。
116.应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。
117.如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
118.窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
119.内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
120.视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
121.电话管理器用于提供终端设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
122.资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
123.通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,通信终端振动,指示灯闪烁等。
124.android runtime包括核心库和虚拟机。android runtime负责安卓系统的调度和管理。
125.核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
126.应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
127.系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(media libraries),三维图形处理库(例如:opengl es),2d图形引擎(例如:sgl)等。
128.表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2d和3d图层的融合。
129.媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:mpeg4,h.264,mp3,aac,amr,jpg,png等。
130.三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
131.2d图形引擎是2d绘图的绘图引擎。
132.内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱
动,传感器驱动。
133.下面结合捕获拍照场景,示例性说明终端100软件以及硬件的工作流程。
134.当触摸屏121接收到触摸操作,相应的硬件中断被发给内核层。内核层将触摸操作加工成原始输入事件(包括触摸坐标,触摸操作的时间戳等信息)。原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,识别该输入事件所对应的控件。以该触摸操作是触摸单击操作,该单击操作所对应的控件为相机应用图标的控件为例,相机应用调用应用框架层的接口,启动相机应用,进而通过调用内核层启动摄像头驱动,通过摄像头190捕获静态图像或视频。
135.本技术实施例中的终端100可以为手机、平板电脑、可穿戴设备、笔记本电脑、电视以及存在内核空间、用户空间和tee空间等运行环境的设备等。
136.图3是用于示出终端(例如图1的通信终端100)上的用户界面的示意图。在一些具体实施中,用户通过触摸用户界面上的应用图标可以打开相应的应用程序,或者通过触摸用户界面上的文件夹图标可以打开相应的文件夹,然后触摸文件夹中的图标打开相应的应用程序。
137.本发明实施例中,当用户打开第三方应用程序时,运行在用户空间的kimm-client会检测到启动的程序为存在潜在威胁的应用程序;然后kimm-client通过ioctl方式给运行在内核空间的kimm发送“内核完整性度量请求”,使kimm向运行在可信空间的kimm-ta发送检测内核数据完整性的请求,kimm-ta检测内核数据的完整性。
138.具体的,kimm-ta检测内核数据的完整性时,首先在可信空间接收运行在内核空间的内核完整性度量模块kimm发送的度量完整性请求,然后对内核中的内核镜像进行哈希运算,得到哈希值,最后将运算得到的哈希值与第一基准值进行比对,根据比对结果确定内核数据的完整性,其中,第一基准值为终端的系统首次启动时kimm-ta对内存中的内核镜像进行哈希运算得到的。由于在可信空间进行内核数据的完整性检测,可信空间是移动设备主处理器上的一个安全的区域,从而能够提高检测内核数据完整的安全性。
139.下面以具体实施例对检测内核数据完整性的方法进行说明。
140.结合图4所示,本发明实施例一种检测内核数据完整性的系统包括:内核完整性度量可信应用(kimm-ta)10、内核完整性度量模块(kimm)20。
141.内核完整性度量可信应用(kimm-ta)10,用于接收到运行在内核空间的内核完整性度量模块kimm发送的度量完整性请求后,对内存中的内核镜像进行哈希运算,得到哈希值;将运算得到的哈希值与第一基准值进行比对,根据比对结果确定内核数据的完整性,其中,所述第一基准值为终端的系统首次启动时所述kimm-ta对内存中的内核镜像进行哈希运算得到的。
142.内核完整性度量模块(kimm)20,用于确定满足触发条件;向运行在可信空间的内核完整性度量可信应用kimm-ta发送度量完整性请求,以使所述kimm-ta确定内核数据的完整性。
143.本发明实施例,运行在内核空间的kimm确定满足触发条件后,向运行在可信空间的kimm-ta发送度量完整性请求,kimm-ta接收到kimm发送的完整性度量请求后,对内存中的内核镜像进行哈希运算,得到哈希值,然后将哈希运算得到的哈希值与第一基准值进行比对,根据比对结果确定内核数据的完整性,其中,第一基准值为终端的系统首次启动时
kimm-ta对内存中的内核镜像进行哈希运算得到的。由于在可信空间进行内核数据的完整性检测,可信空间是移动设备主处理器上的一个安全的区域,从而能够提高检测内核数据完整的安全性。
144.这里的触发条件,可以为启动该终端的系统,还可以为kimm接收运行在用户空间的kimm-client发送的处理度量请求,下面分别进行说明。
145.如果触发条件为启动终端的系统,则kimm会向kimm-ta发送携带kimm标识的度量完整性请求。
146.相应的,kimm-ta接收到携带kimm标识的度量完整性请求后,在检测内核数据的完整性之前,为了进一步提高检测内核数据的安全性,先检测kimm的数据的安全性。
147.具体的,kimm-ta从内存中获取kimm镜像,然后对获取到的kimm镜像进行哈希运算,得到哈希值,将得到的哈希值与rpmb中存储的第二基准值进行比对,如果比对结果为相同,则确定kimm的数据完整;如果比对结果为不同,则确定kimm的数据不完整。
148.需要说明的是,第二基准值为在终端的系统首次启动时,内存加载kimm镜像,然后对kimm镜像进行哈希运算,得到第二基准值,并将第二基准值保存在rpmb中。
149.可选的,如果确定kimm数据完整,则检测内核数据是否完整;如果确定kimm数据不完整,则kimm-ta向kimm-client发送停止已启动的系统的消息。
150.相应的,kimm-client接收到停止已启动的系统的消息后,停止已启动的系统的运行。
151.具体的,kimm-client接收到停止已启动的系统的消息后,终端可以重启系统。
152.由于镜像加载到内存之前是一个boot.img文件,文件只有加载到内存中才能被执行。boot.img文件是只读的,无法被修改。但是加载到内存中的镜像就可以被修改,进而导致程序执行逻辑发生变化。如果重启系统,则会在内存中重新加载镜像,因此重启系统可以防止内核数据被篡改。
153.如图5所示,为在终端的显示界面显示重启系统的示意图。
154.在终端显示界面上显示“安全提醒,系统内核存在被篡改的风险,请重启手机”。
155.在一种可选的实施方式中,当触发条件为启动终端的系统,kimm周期向kimm-ta发送携带所述kimm标识的度量完整性请求,该周期为kimm根据终端的处理器的占用率与周期的对应关系确定的。
156.需要说明的是,可以预先设置cpu的占用率与发送度量完整性请求的周期的对应关系,然后根据cpu当前的占用率确定发送度量完整性请求的周期。
157.比如,cpu当前的占用率为0-20%,则发送度量完整性请求的周期为2s;cpu当前的占用率为20%-40%,则发送度量完整性请求的周期为5s。
158.在实施中,cpu的占用率与发送度量完整性请求的周期的对应关系可以是每10%的cpu的占用率对应一个完整性度量周期。这种对应关系可以通过表格的形式固定下来。因为每一个平台的cpu的架构和性能不同,所以每个平台的对应关系也是不一样的。对应关系的确定是通过实验获取的,保证内核完整性度量运算不能明显影响系统的正常运行。
159.在一种可能的实现方式中,kimm会根据cpu当前的占用率动态调整发送度量完整性请求的周期。
160.动态调整发送度量完整性请求的周期,可以降低cpu的工作压力。
161.上述是对触发条件为启动终端的系统的说明,下面对触发条件为kimm接收kimm-client发送的处理度量请求进行说明。
162.如果触发条件为kimm接收kimm-client发送的处理度量请求,则kimm向kimm-ta发送携带kimm-client标识的度量完整性请求。
163.在实施中,运行在用户空间中的kimm-client开机启动,当kimm-client检测到用户空间中程序内shell脚本的执行、未知应用的启动、使用shell运行命令等行为存在潜在的危险动作时,kimm-client向kimm发送处理度量请求,然后kimm向kimm-ta发送携带kimm-client标识的度量完整性请求。
164.相应的,kimm-ta接收到携带kimm-client标识的度量完整性请求后,可以先检测内核数据的完整性,也可以在确定kimm-client的数据完整后,再检测内核数据的完整性。
165.具体的,确定kimm-client的数据完整时,kimm-ta从内存中获取kimm-client镜像,然后对获取到的kimm-client镜像进行哈希运算,得到哈希值,将得到的哈希值与rpmb中存储的第三基准值进行比对,如果比对结果为相同,则确定kimm-client的数据完整;如果比对结果为不同,则确定kimm-client的数据不完整。
166.需要说明的是,第三基准值为在终端的系统首次启动时,内存加载kimm-client镜像,然后对kimm-client镜像进行哈希运算,得到第三基准值,并将第三基准值保存在rpmb中。
167.可选的,如果确定kimm-client的数据完整,则检测内核数据是否完整;如果确定kimm-client的数据不完整,则kimm-ta向kimm-client发送停止已启动的系统的消息。
168.相应的,kimm-client接收到停止已启动的系统的消息后,停止已启动的系统的运行。
169.具体与上述实施例中实现方式相同,此处不再赘述。
170.本发明实施例在确定内核数据的完整性时,首先对内存中的内核镜像进行哈希运算,得到哈希值,然后将得到的哈希值与第一基准值进行比对,根据比对结果确定内核数据的完整性。
171.具体的,如果比对结果为相同,则确定内核数据完整,如果比对结果为不同,则确定比对结果为不同,则kimm-ta向kimm-client发送停止已启动的系统的消息。
172.kimm-client接收到停止已启动的系统的消息后的具体操作与上述实施例中实现方式相同,此处不再赘述。
173.下面以具体实施方式对本发明进行说明。
174.实施例1:
175.如图6所示,为本发明实施例提供的一种确定内核完整性度量基准值的方法流程示意图。
176.s600、系统开启secureboot功能;
177.系统开启secureboot功能可以保证系统镜像加载的正确性。
178.s601、系统首次启动,加载bootimage到内存并启动;
179.s602、kimm模块向kimm-ta发送计算完整性度量基准值的命令;
180.s603、kimm-ta获取内存中的内核镜像;
181.s604、kimm-ta将获取到的内核镜像进行哈希运算,将得到的哈希值作为完整性度
量基准值;
182.s605、kimm-ta将完整性度量基准值保存到rpmb中。
183.由于rpmb中的默认值是空值,写入后就不能被二次修改,从而保证了基准值的唯一性。
184.实施例2:
185.如图7所示,为本发明实施例提供的一种检测内核数据完整性的完整方法流程示意图。
186.步骤700、系统启动,加载bootimage到内存并启动;
187.步骤701、加载并启动kimm模块;
188.步骤702、kimm模块按照系统当前的负荷计算度量周期;
189.步骤703、kimm模块根据度量周期向kimm-ta发送携带kimm标识的度量完整性请求;
190.步骤704、kimm-ta被加载到tee安全可信环境中运行;
191.步骤705、kimm-ta确定kimm模块的完整性;
192.步骤706、kimm-ta计算内存中内核镜像的哈希值;
193.步骤707、kimm-ta将计算得到的哈希值与rpmb中存储的完整性度量基准值比对;
194.步骤708、将比对结果返回给用户空间的客户端;
195.步骤709、如果比对结果为不同,则用户空间的客户端弹框提示用户重启手机;
196.步骤710、用户空间中的kimm-client开机启动;
197.步骤711、kimm-client检测到存在危险动作;
198.步骤712、kimm-client向kimm模块发送处理度量请求;
199.步骤713、kimm模块接收到处理度量请求后,根据请求中的内容及当前系统中度量命令的执行状态确定向kimm-ta发送携带kimm-client标识的完整性度量请求;
200.步骤714、kimm-ta确定kimm-client模块的完整性;
201.步骤715、kimm-ta计算内存中内核镜像的哈希值;
202.步骤716、kimm-ta将计算得到的哈希值与rpmb中存储的完整性度量基准值比对;
203.步骤717、将比对结果返回给用户空间的客户端;
204.步骤718、如果比对结果为不同,则用户空间的客户端弹框提示用户重启手机。
205.实施例3:
206.如图8所示,为本发明实施例提供的kimm模块确定向kimm-ta发送携带kimm-client标识的完整性度量请求的方法的流程示意图。
207.s800、未知第三方应用程序a启动;
208.s801、运行在用户空间的kimm-client模块检测到启动的程序a为存在潜在威胁的应用程序;
209.s802、kimm-client模块通过ioctl方式给kimm模块发送内核完整性度量请求;
210.s803、kimm模块接收到来自kimm-client模块的请求后,根据条件(系统当前负载、前一次度量命令的发出时间、用户空间启动的进程的类型等)确定发送度量命令的时机;
211.需要说明的是,kimm模块发送到kimm-ta模块的度量命令会携带参数(也可称为标识),标识该次命令来自用户空间。
212.s804、kimm-ta模块执行内核完整性度量动作,依次检查kimm-client模块的完整性、kimm模块的完整性、内核数据的完整性,并反馈结果给kimm-client模块。
213.如图9所示,为本发明实施例提供的一种检测内核数据完整性的方法,应用于终端中,该方法包括:
214.s900、运行在可信空间的内核完整性度量可信应用kimm-ta接收到运行在内核空间的内核完整性度量模块kimm发送的度量完整性请求后,对内存中的内核镜像进行哈希运算,得到哈希值;
215.s901、所述kimm-ta将运算得到的哈希值与第一基准值进行比对,根据比对结果确定内核数据的完整性,其中,所述第一基准值为终端的系统首次启动时所述kimm-ta对内存中的内核镜像进行哈希运算得到的。
216.可选的,所述kimm-ta将哈希运算得到的哈希值作为所述第一基准值之后,将运算得到的哈希值与第一基准值进行比对之前,还包括:
217.若所述度量完整性请求中包含kimm标识,则所述kimm-ta将内存中的kimm镜像进行哈希运算得到的哈希值与第二基准值进行比对,并根据比对结果确定所述kimm的数据完整,其中,所述第二基准值为所述终端的系统首次启动时,所述kimm-ta对内存中的kimm镜像进行哈希运算得到的;或
218.若所述度量完整性请求中包含kimm-client标识,则所述kimm-ta将内存中的kimm-client镜像进行哈希运算得到的哈希值与第三基准值进行比对,并根据比对结果确定所述kimm-client的数据完整,其中,所述第三基准值为所述终端的系统首次启动时,所述kimm-ta对内存中的kimm-client镜像进行哈希运算得到的。
219.可选的,所述kimm-ta将内存中的kimm镜像进行哈希运算得到的哈希值与第二基准值进行比对之后,还包括:
220.所述kimm-ta根据比对结果确定所述kimm的数据不完整,则向所述kimm-client发送停止已启动的所述系统的消息;或
221.所述kimm-ta根据比对结果确定所述kimm-ta的数据不完整,则向所述kimm-client发送停止已启动的所述系统的消息。
222.可选的,该方法还包括:
223.所述kimm-ta周期接收所述kimm发送的包含kimm标识的度量完整性请求。
224.如图10所示,为本发明实施例提供的另一种检测内核数据完整性的方法,应用于终端中,该方法包括:
225.s1000、运行在内核空间的内核完整性度量模块kimm确定满足触发条件;
226.s1001、所述kimm向运行在可信空间的内核完整性度量可信应用kimm-ta发送度量完整性请求,以使所述kimm-ta确定内核数据的完整性。
227.可选的,若所述触发条件为启动所述终端的系统,则所述kimm向所述kimm-ta发送携带所述kimm标识的度量完整性请求。
228.可选的,该方法还包括:
229.所述kimm周期向所述kimm-ta发送携带所述kimm标识的度量完整性请求,其中,所述周期为所述kimm根据所述终端的处理器的占用率与周期的对应关系确定的。
230.可选的,若所述触发条件为所述kimm接收kimm-client发送的处理度量请求,则所
述kimm向所述kimm-ta发送携带kimm-client标识的度量完整性请求。
231.进一步的,本发明实施例还提供一种计算机可存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述任一方法的步骤。
232.以上参照示出根据本技术实施例的方法、装置(系统)和/或计算机程序产品的框图和/或流程图描述本技术。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程数据处理装置,以产生机器,使得经由计算机处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。
233.相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本技术。更进一步地,本技术可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行系统来使用或结合指令执行系统而使用。在本技术上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。
234.显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜