CN115640567B - Tee完整性认证方法、装置、系统及存储介质 - Google Patents

Tee完整性认证方法、装置、系统及存储介质 Download PDF

Info

Publication number
CN115640567B
CN115640567B CN202211190372.6A CN202211190372A CN115640567B CN 115640567 B CN115640567 B CN 115640567B CN 202211190372 A CN202211190372 A CN 202211190372A CN 115640567 B CN115640567 B CN 115640567B
Authority
CN
China
Prior art keywords
information
tee
result
memory
file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202211190372.6A
Other languages
English (en)
Other versions
CN115640567A (zh
Inventor
请求不公布姓名
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Real AI Technology Co Ltd
Original Assignee
Beijing Real AI Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Real AI Technology Co Ltd filed Critical Beijing Real AI Technology Co Ltd
Priority to CN202211190372.6A priority Critical patent/CN115640567B/zh
Publication of CN115640567A publication Critical patent/CN115640567A/zh
Application granted granted Critical
Publication of CN115640567B publication Critical patent/CN115640567B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本申请实施例涉及隐私计算领域,并提供TEE完整性认证方法、装置、系统及存储介质,方法包括TEE请求端在操作系统初始化启动和内核模块初始化启动后,可实时监控应用程序是否启动,若有应用程序启动且检测到度量请求时通过进程控制块对该应用程序的虚拟内存信息和文件开启信息进行获取,并基于虚拟内存信息以及文件开启信息共同来组成动态度量结果。本方案使得在操作系统初始化完成且应用程序启动后,通过进程控制块对应用程序进行了动态度量,相较于静态度量,扩展了可信执行环境中的度量范围,使得可信执行环境及其上应用程序的完整性认证得以实现。

Description

TEE完整性认证方法、装置、系统及存储介质
技术领域
本申请实施例涉及隐私计算技术领域,尤其涉及一种TEE完整性认证方法、装置、系统及存储介质。
背景技术
可信执行环境(即TEE,全称是Trusted Execution Environment),是指通过软硬件方法在中央处理器中构建一个安全区域,保证其内部加载的程序和数据在机密性和完整性上得到保护。
在对现有技术的研究和实践过程中,本申请实施例的发明人发现,可信执行环境在系统中启动时,一般是通过可信任平台模块(即TPM,全称是Trusted Platform Module,TPM实际上是一个含有密码运算部件和存储部件的小型片上的系统,由中央处理器、存储器、I/O、密码运算器、随机数产生器和嵌入式操作系统等部件组成,TPM芯片集成在主板上并通过硬件总线与系统的其他部件通信)来记录可信启动基本输入输出系统(即BIOS,全称是Basic Input Output System)至可信启动操作系统这一过程中的所有参数数据,从而实现静态度量过程。但若仅对可信执行环境进行静态度量,则会导致操作系统启动之后再运行的应用软件的参数数据无法得到度量,无法确保系统中的可信执行环境在可信启动基本输入输出系统之后整个过程都是可信的。
发明内容
本申请实施例提供了一种TEE完整性认证方法、装置、系统及存储介质,能够在操作系统启动后基于进程控制块对应用程序进行了动态度量,扩展了可信执行环境中的度量范围,使得可信执行环境及其上应用程序的完整性认证得以实现。
第一方面中,从TEE请求端的角度介绍本申请实施例提供的一种TEE完整性认证方法,所述方法包括:
操作系统初始化启动并将内核模块初始化启动;
若检测到应用程序启动请求,则启动与所述应用程序启动请求对应的进程,并获取与所述应用程序启动请求对应的应用程序元信息并发送至所述内核模块;其中,所述进程中包含进程控制块用于存储应用程序的进程信息;
若检测到度量请求,则通过所述内核模块获取所述进程控制块中的虚拟内存信息和文件开启信息;
对所述虚拟内存信息的内存使用信息和所述文件开启信息的使用文件信息分别进行校验,得到内存使用校验结果和文件开启校验结果;
若确定所述内存使用校验结果和所述文件开启校验结果均为通过校验结果,则将所述虚拟内存信息和文件开启信息组成动态度量结果。
第二方面中,从TEE认证服务集群的角度介绍本申请实施例提供的一种TEE完整性认证方法,所述TEE认证服务集群包括TEE内认证服务中心、TEE请求端和TEE服务端,所述TEE请求端通过如上述第一方面、及第一方面各种可能的设计中所提供的方法获取动态度量结果,所述方法包括:
所述TEE请求端获取静态度量结果并与所述动态度量结果组合得到票据数据,将所述票据数据通过所述TEE请求端中预先存储的私钥进行签名得到票据数据报告并发送至所述TEE服务端;
所述TEE服务端从所述TEE内认证服务中心获取与所述TEE请求端对应的证书,通过所述证书对所述票据数据报告进行解析,得到当前动态度量结果和当前静态度量结果;
所述TEE服务端对所述当前动态度量结果和所述当前静态度量结果分别进行校验,得到当前动态度量校验结果和当前静态度量校验结果;
若确定所述当前动态度量校验结果和所述当前静态度量校验结果均为通过校验结果,则所述TEE服务端与所述TEE请求端建立可信信道以进行通信。
第三方面中,具有实现对应于上述第一方面提供的TEE完整性认证方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。
一种可能的设计中,TEE完整性认证装置,包括收发模块和处理模块;
所述收发模块,用于接收所述处理模块的控制指令进行收发操作;
所述处理模块,用于操作系统初始化启动并将内核模块初始化启动;若检测到应用程序启动请求,则启动与所述应用程序启动请求对应的进程,并获取与所述应用程序启动请求对应的应用程序元信息并发送至所述内核模块;其中,所述进程中包含进程控制块用于存储应用程序的进程信息;
所述处理模块,还用于若检测到度量请求,则通过所述内核模块获取所述进程控制块中的虚拟内存信息和文件开启信息;对所述虚拟内存信息的内存使用信息和所述文件开启信息的使用文件信息分别进行校验,得到内存使用校验结果和文件开启校验结果;若确定所述内存使用校验结果和所述文件开启校验结果均为通过校验结果,则将所述虚拟内存信息和文件开启信息组成动态度量结果。
第四方面中,具有实现对应于上述第二方面提供的TEE完整性认证方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。
一种可能的设计中,TEE完整性认证系统,运行于TEE认证服务集群,所述TEE认证服务集群包括TEE内认证服务中心、TEE请求端和TEE服务端;
所述TEE请求端,用于获取静态度量结果并与所述动态度量结果组合得到票据数据,将所述票据数据通过所述TEE请求端中预先存储的私钥进行签名得到票据数据报告并发送至所述TEE服务端;
所述TEE服务端,用于从所述TEE内认证服务中心获取与所述TEE请求端对应的证书,通过所述证书对所述票据数据报告进行解析,得到当前动态度量结果和当前静态度量结果;
对所述当前动态度量结果和所述当前静态度量结果分别进行校验,得到当前动态度量校验结果和当前静态度量校验结果;
所述TEE服务端,还用于若确定所述当前动态度量校验结果和所述当前静态度量校验结果均为通过校验结果,则所述TEE服务端与所述TEE请求端建立可信信道以进行通信。
第五方面中,本申请实施例又一方面提供了一种计算机设备,其包括至少一个连接的处理器、存储器和收发器,其中,所述存储器用于存储计算机程序,所述处理器用于调用所述存储器中的计算机程序来执行上述第一方面、第一方面中的各种可能的设计、上述第二方面、第二方面中的各种可能的设计中提供的方法。
本申请实施例又一方面提供了一种计算机可读存储介质,其包括指令,当其在计算机上运行时,使得计算机执行上述第一方面、第一方面中的各种可能的设计、上述第二方面、第二方面中的各种可能的设计中提供的方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面、第一方面中、上述第二方面、第二方面中的各种可能的设计的各种可能的设计所提供的方法。
相较于现有技术,本申请实施例提供的方案中,TEE请求端在操作系统初始化启动和内核模块初始化启动后,可实时监控应用程序是否启动,若有应用程序启动且检测到度量请求时通过进程控制块对该应用程序的虚拟内存信息和文件开启信息进行获取,并基于所述虚拟内存信息以及所述文件开启信息共同来组成动态度量结果。由于在操作系统初始化完成且应用程序启动后,通过进程控制块对应用程序进行了动态度量,相较于静态度量,扩展了可信执行环境中的度量范围,使得可信执行环境及其上应用程序的完整性认证得以实现。而且,在TEE请求端中得到了动态度量结果后,还可与静态度量结果共同发送至TEE服务端进行校验,结合TEE服务端的校验结果增加动态度量结果和静态度量结果的可靠性和正确性。
附图说明
图1a为本申请实施例提供的一种TEE完整性认证系统的示意图;
图1b为本申请实施例提供的一种TEE完整性认证系统的应用场景示意图;
图1c为本申请实施例提供的一种TEE完整性认证系统的应用场景示意图;
图2为本申请实施例中TEE完整性认证方法的一种流程示意图;
图3为本申请实施例中TEE完整性认证方法的另一种流程示意图;
图4a为本申请实施例中TEE完整性认证系统中TEE请求端的一种结构示意图;
图4b为本申请实施例中TEE完整性认证系统的一种结构示意图;
图5为本申请实施例中服务器的一种结构示意图;
图6为本申请实施例中服务终端的一种结构示意图;
图7为本申请实施例中服务器的一种结构示意图。
具体实施方式
本申请实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本申请实施例中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请实施例中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分布到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本申请实施例方案的目的。
本申请实施例提供了一种TEE完整性认证方法、装置、系统及存储介质,可用于隐私计算场景,该模型的自动化测试方法的执行主体可以是本申请实施例提供的TEE请求端或TEE完整性认证系统,该TEE完整性认证系统包括TEE内认证服务中心、TEE请求端和TEE服务端。其中,该TEE完整性认证系统可以采用硬件或者软件的方式实现,该TEE内认证服务中心、TEE请求端和TEE服务端均为服务器。
本申请实施例的方案可基于人工智能技术实现,具体来说涉及人工智能技术中的计算机视觉技术领域和云技术中的云计算、云存储和数据库等领域,下面将分别进行介绍。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
计算机视觉技术(Computer Vision,CV)计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、人脸识别、图像语义理解、图像检索、OCR、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3D技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
本申请实施例的方案可基于云技术实现,具体来说涉及云技术中的云计算、云存储和数据库等技术领域,下面将分别进行介绍。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术(Cloudtechnology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图像类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。本申请实施例可通过云技术对动态度量结果进行保存。
云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。在本申请实施例中,可将动态度量结果等信息均保存在该存储系统中,便于服务器调取。
目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,ID entity)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。
存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,Redundant Array of Independent Disk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
数据库(Database),简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
数据库管理系统(英语:Database Management System,简称DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、XML(Extensible MarkupLanguage,即可扩展标记语言);或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如SQL(结构化查询语言,Structured QueryLanguage)、XQuery;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支持多种查询语言。在本申请实施例中,可将动态度量结果存储在该数据库管理系统中,便于服务器调取。
其中,需要特别说明的是,本申请实施例涉及的服务终端,可以是指向服务终端提供语音和/或数据连通性的设备,具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备。例如移动电话(或称为“蜂窝”电话)和具有移动终端的计算机,例如,可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语音和/或数据。例如,个人通信业务(英文全称:Personal Communication Service,英文简称:PCS)电话、无绳电话、会话发起协议(SIP)话机、无线本地环路(Wireless LocalLoop,英文简称:WLL)站、个人数字助理(英文全称:Personal Digital Assistant,英文简称:PDA)等设备。
一些实施方式中,本申请实施例可应用于如图1a所示的一种TEE完整性认证系统1的TEE请求端10中。本申请实施例还可应用于如图1a所示的一种TEE完整性认证系统1,所述TEE完整性认证系统1包括TEE请求端10、TEE服务端20和TEE内认证服务中心30,所述TEE请求端10、所述TEE服务端20、所述TEE内认证服务中心30两两之间可以进行数据交互。
当基于上述图1a所述的TEE完整性认证系统实现本申请实施例中的TEE完整性认证方法时,可参考如图1b、图1c所示的一种应用场景示意图。
本申请实施例中,TEE请求端在操作系统初始化启动和内核模块初始化启动后,可实时监控应用程序是否启动,若有应用程序启动且检测到度量请求时通过进程控制块对该应用程序的虚拟内存信息和文件开启信息进行获取,并基于所述虚拟内存信息以及所述文件开启信息共同来组成动态度量结果。由于在操作系统初始化完成且应用程序启动后,通过进程控制块对应用程序进行了动态度量,相较于静态度量,扩展了可信执行环境中的度量范围,使得可信执行环境及其上应用程序的完整性认证得以实现。而且,在TEE请求端中得到了动态度量结果后,还可与静态度量结果共同发送至TEE服务端进行校验,结合TEE服务端的校验结果增加动态度量结果和静态度量结果的可靠性和正确性。
下面,将结合几个实施例对本申请技术方案进行详细的介绍说明。
参照图2,以下介绍本申请实施例所提供的一种TEE完整性认证方法,应用于TEE请求端,本申请实施例包括:
201、操作系统初始化启动并将内核模块初始化启动。
在本申请的实施例中,在TEE请求端中需进行完整性认证时,需先启动本地的操作系统以完成操作系统的初始化。此时操作系统初始化也即操作系统进行初始的可信启动,直至操作系统初始化启动完毕,在此过程中仍是基于可信任平台模块(即TPM)进行静态度量的参数数据存储。但是仅进行静态度量还不足以说明TEE请求端中可信执行环境在整个过程都是可信的,故还需要在操作系统初始化启动完成的同时也初始化启动内核模块。其中,内核模块是用于监控操作系统中所启动的进程。
202、若检测到应用程序启动请求,则启动与所述应用程序启动请求对应的进程,并获取与所述应用程序启动请求对应的应用程序元信息并发送至所述内核模块;其中,所述进程中包含进程控制块用于存储应用程序的进程信息。
在本申请的实施例中,TEE请求端上的操作系统启动之后,可以是自动启动若干个应用程序,也可以是用户手动操作启动若干个应用程序,但无论是哪一种方式启动应用程序并对应产生应用程序启动请求后,在TEE请求端的操作系统中则启动与所述应用程序启动请求对应的进程及进程控制块(即PCB,全称是Process Control Block,是系统中存放进程的管理和控制信息的数据结构),通过进程控制块来记录所启动的应用程序相应的进程信息。
例如,在TEE请求端的操作系统启动之后,启动了应用程序1-应用程序N(其中,N为正整数),则分别针对应用程序1启动进程控制块1、针对应用程序2启动进程控制块2、……、针对应用程序N启动进程控制块N。其中,进程控制块1用于记录应用程序1的进程信息、进程控制块2用于记录应用程序2的进程信息、……、进程控制块N用于记录应用程序N的进程信息。
而且,每一进程控制块中均采用如下的task_struct结构体存储:
其中,task_struct结构体中的state变量用于存储进程状态,通过mm指向mm_struct虚拟内存结构体来度量进行运行时的状态(其中*mm中*表示指针),pid表示进程号,通过parent指向task_struct(也即指向父进程的指针),通过children来存储该进程的子进程列表,通过fs指向fs_struct来存放文件系统信息,通过files指向files_struct来存储打开文件的信息。继续参考上述示例,则进程控制块1中通过pid记录了应用程序1的进程号,并通过*files记录了应用程序1打开文件的信息;同样的,进程控制块2中通过pid记录了应用程序2的进程号,并通过*files记录了应用程序2打开文件的信息:……;进程控制块N中通过pid记录了应用程序N的进程号,并通过*files记录了应用程序N打开文件的信息。
而每一个进程控制块所对应应用程序的应用程序元信息,如应用程序的身份信息权限(更具体包括开发者信息、权限信息、证书、有效日期)、程序名称及进程号等组成的应用程序元信息也被发送至所述进程控制块中进行存储。可见,在所述内核模块中是已知每一个进程控制块的基本信息如进程号,可以有效对每一进程控制块进行监控。
本申请中是以启动一个应用程序为例来说明动态度量过程,若实际中启动多个应用程序来进行动态度量时其本质也是针对每一个应用程序进行动态度量,而且针对每一个程序进行动态度量的过程均可参考本申请中启动一个应用程序的动态度量过程。
203、若检测到度量请求,则通过所述内核模块获取所述进程控制块中的虚拟内存信息和文件开启信息。
在本申请的实施例中,由于在应用程序启动之后,与其对应的进程控制块也是启动的,进程控制模块则可以实时度量其所对应应用程序在运行过程中的参数数据。而所述内核模块则在应用程序启动之前也已启动,故一旦用户针对上述步骤(如步骤202)已经启动的应用程序发出度量请求(更具体是动态度量请求),则TEE请求端通过所述内核模块获取所述进程控制块中的虚拟内存信息和文件开启信息,具体是通过所述内核模块获取所述进程控制块中mm_struct虚拟内存结构体和*files文件指针,以通过mm_struct虚拟内存结构体获取到该应用程序的虚拟内存信息,并通过*files文件指针获取到该应用程序的文件开启信息。
204、对所述虚拟内存信息的内存使用信息和所述文件开启信息的使用文件信息分别进行校验,得到内存使用校验结果和文件开启校验结果。
在本申请的实施例中,当所述内核模块获取到待度量应用程序的进程控制块中存储的虚拟内存信息和文件开启信息后,即可进一步解析获取所述虚拟内存信息对应的内存使用信息,且获取到所述文件开启信息的使用文件信息。之后再校验内存使用信息和使用文件信息是否符合预设使用条件及要求,从而得到应用程序在可信执行环境中具体使用时是否存在非正常使用的操作。可见,基于所述内核模块对应用程序启动后运行过程中进行了动态度量,相较于静态度量,扩展了可信执行环境中的度量范围,使得可信执行环境及其上应用程序的完整性认证得以实现。
一些实施方式中,所述对所述虚拟内存信息的内存使用信息和所述文件开启信息的使用文件信息分别进行校验,得到内存使用校验结果和文件开启校验结果,包括:
获取所述内存使用信息中各段数据的超出权限状态,并获取所述使用文件信息对应的文件等级;
若确定所述内存使用信息中各段数据的超出权限状态均为正常状态,则得到所述内存使用校验结果为通过校验结果;
若确定所述内存使用信息中有至少一段数据的超出权限状态为异常状态,则得到所述内存使用校验结果为未通过校验结果;
若确定所述使用文件信息对应的文件等级未超出预设文件等级,则得到所述文件开启校验结果为通过校验结果;
若确定所述使用文件信息对应的文件等级超出预设文件等级,则得到所述文件开启校验结果为未通过校验结果。
在本申请的实施例中,对内存使用信息进行校验主要是判断其包括的各段数据是否存在使用超权限的情况,且对使用文件信息也主要是判断其使用或调用的文件是否超出预设文件等级,结合对两者的判断结果,则可以确定应用程序的动态度量结果。
一些实施方式中,所述获取所述内存使用信息中各段数据的超出权限状态,包括:
所述内核模块获取所述虚拟内存信息中划分的多个内存区域段,及每一个内存区域段对应的区域读写权限信息;
所述内核模块获取所述虚拟内存信息的多个内存区域段中每一内存区域段操作信息;
将所述虚拟内存信息的多个内存区域段中每一内存区域段操作信息与对应的区域读写权限信息进行比较,得到所述虚拟内存信息的多个内存区域段的超出权限状态以组成所述内存使用校验结果;其中,若内存区域段的内存区域段操作信息属于对应的区域读写权限信息,则内存区域段的超出权限状态为正常状态;若内存区域段的内存区域段操作信息不属于对应的区域读写权限信息,则内存区域段的超出权限状态为异常状态。
在本申请的实施例中,所述虚拟内存信息更具体可划分为如下表1所示的多个内存区域段:
内存区域段名称 区域读写权限信息
Stack内存区域段 可读、可写
Mapping内存区域段 可读、可执行
Heap内存区域段 可读、可写
Bss内存区域段 可读、可写
Data内存区域段 可读、可写
Text内存区域段 可读、可执行
表1
基于表1可知,mm_struct虚拟内存结构体中对应的虚拟内存信息划分为上述6个内存区域段。其中,Text内存区域段、Data内存区域段及Bss内存区域段中的数据内容及数据存储地址不可变,如需基于OTA变动(OTA全称是Over-the-Air,表示空中下载)则需经过授权才可进行。Mapping内存区域段则是动态链接库,其中定义了需要使用的动态链接库文件。
对所述虚拟内存信息的内存使用信息进行校验,也就是对上述6个内存区域段的使用是否超出相应区域读写权限范围。例如,应用程序1在TEE请求端的可信执行环境中运行时,若存在对Mapping内存区域段存在写入数据的操作,这超出了Mapping内存区域段对应的可读及可执行权限,则针对所述虚拟内存信息的内存使用信息得到的内存使用校验结果是校验未通过结果。若存在对Mapping内存区域段存在读取数据或执行数据的操作,则未超出了Mapping内存区域段对应的可读及可执行权限,则针对所述虚拟内存信息的内存使用信息得到的内存使用校验结果是校验通过结果。同样的,对应用程序1中其他内存区域段的使用是否超出相应区域读写权限范围也可参考上述针对Mapping内存区域段的使用校验过程。可见,基于上述分内存区域段的分段校验,可以更快速准确的获取内存使用信息的内存使用校验结果。
对所述文件开启信息的使用文件信息进行校验,也就是具体使用文件是否超越权限进行判定。例如将文件访问等级权限从高至低依次划分为Top sercet、Sercet、Confidential、Restricted、Unclassified5个级别,分别对应最高机密等级、机密等级、一般机密等级、限制等级及未涉密等级,例如若应用程序1对应预设文件等级为一般机密等级,但是其使用文件信息对应机密等级,可见应用程序1具体使用文件超越了权限;若应用程序1对应预设文件等级为一般机密等级,但是其使用文件信息对应未涉密等级,可见应用程序1具体使用文件未超越权限。可见,基于对使用文件信息的文件权限等级校验,可以准确的获取文件开启校验结果。
205、若确定所述内存使用校验结果和所述文件开启校验结果均为通过校验结果,则将所述虚拟内存信息和文件开启信息组成动态度量结果。
在本申请的实施例中,若确定所述内存使用校验结果和所述文件开启校验结果均为通过校验结果,则表示应用程序的TEE完整性验证通过,可以将所述虚拟内存信息和文件开启信息组成动态度量结果。
若确定所述内存使用校验结果或所述文件开启校验结果中存在至少一个未通过校验结果,则表示应用程序的TEE完整性验证未通过,但其也表示进行了TEE完整性验证只是对应验证未通过的结果,之后也是将所述虚拟内存信息和文件开启信息组成动态度量结果。
一些实施方式中,所述若确定所述内存使用校验结果和所述文件开启校验结果均为通过校验结果,则将所述虚拟内存信息和文件开启信息组成动态度量结果之后,所述方法还包括:
获取历史度量结果、历史日志信息、应用程序的应用权限信息和身份信息并增加至所述动态度量结果,以更新所述动态度量结果。
在本申请的实施例中,在基于本次度量请求发起的动态度量过程中,还可以获取历史度量结果、历史日志信息、应用程序的应用权限信息和身份信息,其中历史度量结果是指本次度量请求发起前历次历史度量请求分别获取到的动态度量结果的集合,历史日志信息是指本次度量请求对应时间点与上一次度量请求对应时间点之间时间段的所有日志信息,身份信息是指应用程序的开发者信息、证书及有效日期等信息。将这些信息可以添加至上述步骤中获得到的所述动态度量结果,以更新所述动态度量结果。当将更多维度的信息增加至动态度量结果,可以得到验证数据更丰富的动态度量结果。
一些实施方式中,所述操作系统初始化启动并将内核模块初始化启动之后,还包括:
通过所述内核模块获取系统上电至操作系统初始化启动之间时间段对应的静态度量结果。
在本申请的实施例中,在TEE请求端的操作系统初始化启动且内核模块初始化启动后,TEE请求端还需获取系统上电至操作系统初始化启动之间时间段对应的静态度量结果,这与目前获取静态度量结果的方式是相同的。而且之所以保留获取静态度量结果,也是为了确保其能与动态度量结果组成TEE请求端中整个系统使用过程的可信执行环境完整性认证结果。
一些实施方式中,所述通过所述内核模块获取系统上电至操作系统初始化启动之间时间段对应的静态度量结果之后,所述方法还包括:
获取预先存储的票据模板,将所述动态度量结果和所述静态度量结果写入所述票据模板,得到票据数据;
获取预先存储的私钥,基于所述私钥对所述票据数据进行签名,得到票据数据报告。
在本申请的实施例中,当在TEE请求端中既获取到了静态度量结果,又获取到了动态度量结果之后,可以获取到TEE请求端中预先存储的票据模板(也可以理解为Ticket模板),将所述动态度量结果及所述静态度量结果分别写入所述票据模板中对应的数据区域,从而得到一个未加密的票据数据。为了提高数据安全性,还可以获取到TEE请求端中本地存储的私钥并对所述票据数据进行签名,得到票据数据报告。
参照图3,以下继续从TEE认证服务集群的角度介绍本申请实施例所提供的另一种TEE完整性认证方法,所述TEE认证服务集群包括TEE内认证服务中心、TEE请求端和TEE服务端,本申请实施例包括:
301、所述TEE请求端获取静态度量结果并与所述动态度量结果组合得到票据数据,将所述票据数据通过所述TEE请求端中预先存储的私钥进行签名得到票据数据报告并发送至所述TEE服务端。
在本申请的实施例中,当在所述TEE请求端中获取到所述动态度量结果和静态度量结果后,将其写入TEE请求端中预先存储的票据模板并基于TEE请求端中预先存储的私钥进行签名进行加密得到票据数据报告,将数据安全性较高的票据数据报告发送至所述TEE服务端,以基于TEE服务端对所述票据数据报告进行进一步的验证。
302、所述TEE服务端从所述TEE内认证服务中心获取与所述TEE请求端对应的证书,通过所述证书对所述票据数据报告进行解析,得到当前动态度量结果和当前静态度量结果。
在本申请的实施例中,所述TEE内认证服务中心可以视为一个各TEE请求端的证书的保存中心,且所述TEE服务端若在自身进行了票据数据报告生成且须发送至其他TEE服务端进行验证时也可以视为一个TEE请求端。也即在所述TEE认证服务集群中,除了TEE内认证服务中心仅用于保存各TEE请求端的证书,TEE请求端和TEE服务端则是可以互换角色的,TEE请求端在用于对其他TEE请求端票据数据报告进行验证时也能切换为TEE服务端的角色。
其中,当所述TEE服务端接收到了所述TEE请求端中发送的所述票据数据报告后,所述TEE服务端可以根据所述TEE请求端的终端唯一识别码在所述TEE内认证服务中心获取与所述TEE请求端对应的证书,在该证书中包括与所述私钥相对应的公钥(该公钥是经过所述TEE内认证服务中心完成认证的),基于该证书可以对所述票据数据报告进行解析,得到当前动态度量结果和当前静态度量结果,之后即可对当前动态度量结果和当前静态度量结果进行校验。
303、所述TEE服务端对所述当前动态度量结果和所述当前静态度量结果分别进行校验,得到当前动态度量校验结果和当前静态度量校验结果。
在本申请的实施例中,所述TEE服务端对所述当前动态度量结果进行校验时,也是参考TEE请求端中对动态度量结果的虚拟内存信息和文件开启信息进行校验的过程,即确定所述虚拟内存信息的内存使用信息中各段数据的超出权限状态是否存在异常状态,及所述文件开启信息的使用文件信息对应的文件等级是否超出预设文件等级。所述TEE服务端对所述当前静态度量结果进行校验时,是判断所述当前静态度量结果中是否存在数据修改记录。
当所述当前动态度量结果的内存使用信息中各段数据的超出权限状态均为正常状态,且所述文件开启信息的使用文件信息对应的文件等级未超出预设文件等级,则当前动态度量校验结果为通过校验结果;当所述当前动态度量结果的内存使用信息中各段数据的超出权限状态存在异常状态,或者所述文件开启信息的使用文件信息对应的文件等级超出预设文件等级,则当前动态度量校验结果为未通过校验结果。
当所述当前静态度量结果中存在数据修改记录,则所述当前静态度量校验结果为未通过校验结果;当所述当前静态度量结果中不存在数据修改记录,则所述当前静态度量校验结果为通过校验结果。可见,在TEE服务端可以对动态度量结果和静态度量结果进一步进行验证,以确保TEE请求端的动态度量结果和静态度量结果是得到其他终端再次检验过程,能提高动态度量结果和静态度量结果的可靠性和正确性。
304、所述TEE服务端若确定所述当前动态度量校验结果和所述当前静态度量校验结果均为通过校验结果,则所述TEE服务端与所述TEE请求端建立可信信道以进行通信。
在本申请的实施例中,当得到了所述当前动态度量校验结果和所述当前静态度量校验结果,且判定了所述当前动态度量校验结果和所述当前静态度量校验结果均为通过校验结果,则表示TEE服务端完成了对TEE请求端的完整性认证,可在所述TEE服务端与所述TEE请求端之间建立可信信道以进行通信。
一些实施方式中,所述若确定所述当前动态度量校验结果和所述当前静态度量校验结果均为通过校验结果,则所述TEE服务端与所述TEE请求端建立可信信道以进行通信,包括:
若确定所述当前动态度量校验结果和所述当前静态度量校验结果均为通过校验结果,则所述TEE服务端获取预先存储的服务端票据模板,将所述当前动态度量校验结果和所述当前静态度量校验结果写入所述服务端票据模板,得到服务端票据数据;
获取预先存储的服务端私钥,基于所述服务端私钥对所述服务端票据数据进行签名,得到服务端票据数据报告;
所述TEE请求端从所述TEE内认证服务中心获取与所述TEE服务端对应的服务端证书,通过所述服务端证书对所述服务端票据数据报告进行解析,得到所述当前动态度量校验结果和所述当前静态度量校验结果;
若所述TEE请求端确定所述当前动态度量校验结果和所述当前静态度量校验结果均为通过校验结果,则所述TEE服务端与所述TEE请求端建立可信信道以进行通信。
在本申请的实施例中,若确定所述当前动态度量校验结果和所述当前静态度量校验结果均为通过校验结果后,表示所述TEE服务端完成了对所述TEE请求端的完整性认证,此时所述TEE请求端也要向所述TEE请求端反馈一个包括所述当前动态度量校验结果和所述当前静态度量校验结果且经过签名的服务端票据数据报告。只有在所述TEE请求端接收到服务端票据数据报告并对其基于所述TEE服务端的证书进行解析得到所述当前动态度量校验结果和所述当前静态度量校验结果,且判定所述TEE请求端确定所述当前动态度量校验结果和所述当前静态度量校验结果均为通过校验结果,才可最终建立两者之间的可信信道。可见,经过所述TEE请求端和所述TEE服务端的相互交互及相互数据认证,可以最终完成可信执行环境的完整性认证及可信信道的建立。
可见,通过本方案,在隐私计算场景,TEE请求端在操作系统初始化启动和内核模块初始化启动后,可实时监控应用程序是否启动,若有应用程序启动且检测到度量请求时通过进程控制块对该应用程序的虚拟内存信息和文件开启信息进行获取,并基于所述虚拟内存信息以及所述文件开启信息共同来组成动态度量结果。由于在操作系统初始化完成且应用程序启动后,通过进程控制块对应用程序进行了动态度量,相较于静态度量,扩展了可信执行环境中的度量范围,使得可信执行环境及其上应用程序的完整性认证得以实现。而且,在TEE请求端中得到了动态度量结果后,还可与静态度量结果共同发送至TEE服务端进行校验,结合TEE服务端的校验结果增加动态度量结果和静态度量结果的可靠性和正确性。
参阅图4a和图4b,图4a为本申请实施例中TEE完整性认证系统中TEE请求端的一种结构示意图;图4b为本申请实施例中TEE完整性认证系统的一种结构示意图。如图4b所示的一种TEE完整性认证系统的结构示意图,其可应用于隐私计算等场景。本申请实施例中的TEE完整性认证系统中的TEE请求端能够实现对应于上述图2所对应的实施例中TEE请求端所执行的TEE完整性认证方法的步骤,TEE完整性认证系统中的TEE请求端、TEE服务端及TEE内认证服务中心能够实现对应于上述图3所对应的实施例中TEE请求端、TEE服务端及TEE内认证服务中心所执行的TEE完整性认证方法的步骤。TEE完整性认证系统实现的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。如图4b所示所述TEE完整性认证系统1,运行于TEE认证服务集群,其可包括至少一个TEE请求端10、至少一个TEE服务端20和至少一个TEE内认证服务中心,如图4a所示TEE请求端10具体包括收收发模块11和处理模块12,所述收发模块11和处理模块12的功能实现可参考图2所对应的实施例中所执行的操作,或所述TEE请求端10、TEE服务端20和TEE内认证服务中心30功能实现可参考图3所对应的实施例中所执行的操作,此处不作赘述。
一些实施方式中,所述TEE完整性认证装置,应用于TEE请求端10,包括收发模块11和处理模块12;
所述收发模块11,用于接收所述处理模块12的控制指令进行收发操作;
所述处理模块12,用于操作系统初始化启动并将内核模块初始化启动;若检测到应用程序启动请求,则启动与所述应用程序启动请求对应的进程,并获取与所述应用程序启动请求对应的应用程序元信息并发送至所述内核模块;其中,所述进程中包含进程控制块用于存储应用程序的进程信息;
所述处理模块12,还用于若检测到度量请求,则通过所述内核模块获取所述进程控制块中的虚拟内存信息和文件开启信息;对所述虚拟内存信息的内存使用信息和所述文件开启信息的使用文件信息分别进行校验,得到内存使用校验结果和文件开启校验结果;若确定所述内存使用校验结果和所述文件开启校验结果均为通过校验结果,则将所述虚拟内存信息和文件开启信息组成动态度量结果。
一些实施方式中,所述TEE完整性认证系统,运行于TEE认证服务集群,所述TEE完整性认证系统包括TEE内认证服务中心30、TEE请求端10和TEE服务端20;
所述TEE请求端10,用于获取静态度量结果并与所述动态度量结果组合得到票据数据,将所述票据数据通过所述TEE请求端中预先存储的私钥进行签名得到票据数据报告并发送至所述TEE服务端;
所述TEE服务端20,用于从所述TEE内认证服务中心30获取与所述TEE请求端对应的证书,通过所述证书对所述票据数据报告进行解析,得到当前动态度量结果和当前静态度量结果;对所述当前动态度量结果和所述当前静态度量结果分别进行校验,得到当前动态度量校验结果和当前静态度量校验结果;
所述TEE服务端20,还用于若确定所述当前动态度量校验结果和所述当前静态度量校验结果均为通过校验结果,则所述TEE服务端与所述TEE请求端建立可信信道以进行通信。
可见,通过本方案,通过本方案,在隐私计算场景,TEE请求端在操作系统初始化启动和内核模块初始化启动后,可实时监控应用程序是否启动,若有应用程序启动且检测到度量请求时通过进程控制块对该应用程序的虚拟内存信息和文件开启信息进行获取,并基于所述虚拟内存信息以及所述文件开启信息共同来组成动态度量结果。由于在操作系统初始化完成且应用程序启动后,通过进程控制块对应用程序进行了动态度量,相较于静态度量,扩展了可信执行环境中的度量范围,使得可信执行环境及其上应用程序的完整性认证得以实现。而且,在TEE请求端中得到了动态度量结果后,还可与静态度量结果共同发送至TEE服务端进行校验,结合TEE服务端的校验结果增加动态度量结果和静态度量结果的可靠性和正确性。
上面从模块化功能实体的角度对本申请实施例中的TEE完整性认证装置及TEE完整性认证系统进行了描述,下面从硬件处理的角度分别对本申请实施例中的TEE完整性认证系统进行描述。
需要说明的是,在本申请实施例各实施例(包括图4a-图4b所示的各实施例)中所有的收发模块对应的实体设备可以为收发器,所有的处理模块对应的实体设备可以为处理器。当其中一种装置或系统具有如图4a-图4b所示的结构时,处理器、收发器和存储器实现前述对应该装置的装置实施例提供的所述收发模块和所述处理模块相同或相似的功能,图5中的存储器存储处理器执行上述TEE完整性认证方法时需要调用的计算机程序。
图4a-图4b所示的装置或系统可以具有如图5所示的结构,当图4a-图4b所示的装置或系统具有如图5所示的结构时,图5中的处理器能够实现前述对应该装置的装置实施例提供的所述处理模块相同或相似的功能,图5中的收发器能够实现前述对应该装置的装置实施例提供的所述收发模块相同或相似的功能,图5中的存储器存储处理器执行上述TEE完整性认证方法时需要调用的计算机程序。在本申请实施例图4a-图4b所示的实施例中的所述收发模块所对应的实体设备可以为输入输出接口,所述处理模块对应的实体设备可以为处理器。
一些实施方式中,所述TEE完整性认证装置,应用于TEE请求端,所述TEE请求端包括处理器、收发器和存储器;所述处理器能够实现前述对应该装置的装置实施例提供的所述处理模块相同或相似的功能,所述收发器能够实现前述对应该装置的装置实施例提供的所述收发模块相同或相似的功能,所述存储器存储处理器执行上述TEE完整性认证方法时需要调用的计算机程序。
一些实施方式中,所述TEE完整性认证系统,运行于TEE认证服务集群,所述TEE完整性认证系统包括TEE内认证服务中心、TEE请求端和TEE服务端;所述TEE内认证服务中心、TEE请求端和TEE服务端均可以由处理器、收发器和存储器组成。
本申请实施例还提供了另一种终端设备,如图6所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该终端设备可以为包括手机、平板电脑、个人数字助理(英文全称:Personal Digital Assistant,英文简称:PDA)、销售终端(英文全称:Point ofSales,英文简称:POS)、车载电脑等任意终端设备,以终端为手机为例:
图6示出的是与本申请实施例提供的终端设备相关的手机的部分结构的框图。参考图6,手机包括:射频(英文全称:Radio Frequency,英文简称:RF)电路610、存储器620、输入单元630、显示单元640、传感器650、音频电路660、无线保真(英文全称:wirelessfidelity,英文简称:WiFi)模块670、处理器680、以及电源690等部件。本领域技术人员可以理解,图6中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图6对手机的各个构成部件进行具体的介绍:
RF电路610可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器680处理;另外,将设计上行的数据发送给基站。通常,RF电路610包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(英文全称:LowNoise Amplifier,英文简称:LNA)、双工器等。此外,RF电路610还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(英文全称:Global System of Mobile communication,英文简称:GSM)、通用分组无线服务(英文全称:General Packet Radio Service,英文简称:GPRS)、码分多址(英文全称:Code Division Multiple Access,英文简称:CDMA)、宽带码分多址(英文全称:Wideband Code Division Multiple Access,英文简称:WCDMA)、长期演进(英文全称:LongTerm Evolution,英文简称:LTE)、电子邮件、短消息服务(英文全称:Short MessagingService,英文简称:SMS)等。
存储器620可用于存储软件程序以及模块,处理器680通过运行存储在存储器620的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器620可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元630可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元630可包括触控面板631以及其他输入设备632。触控面板631,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板631上或在触控面板631附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板631可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器680,并能接收处理器680发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板631。除了触控面板631,输入单元630还可以包括其他输入设备632。具体地,其他输入设备632可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元640可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元640可包括显示面板641,可选的,可以采用液晶显示器(英文全称:LiquidCrystal Display,英文简称:LCD)、有机发光二极管(英文全称:Organic Light-EmittingDiode,英文简称:OLED)等形式来配置显示面板641。进一步的,触控面板631可覆盖显示面板641,当触控面板631检测到在其上或附近的触摸操作后,传送给处理器680以确定触摸事件的类型,随后处理器680根据触摸事件的类型在显示面板641上提供相应的视觉输出。虽然在图6中,触控面板631与显示面板641是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板631与显示面板641集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器650,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板641的亮度,接近传感器可在手机移动到耳边时,关闭显示面板641和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路660、扬声器661,传声器662可提供用户与手机之间的音频接口。音频电路660可将接收到的音频数据转换后的电信号,传输到扬声器661,由扬声器661转换为声音信号输出;另一方面,传声器662将收集的声音信号转换为电信号,由音频电路660接收后转换为音频数据,再将音频数据输出处理器680处理后,经RF电路610以发送给比如另一手机,或者将音频数据输出至存储器620以便进一步处理。
Wi-Fi属于短距离无线传输技术,手机通过Wi-Fi模块670可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图6示出了Wi-Fi模块670,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变申请的本质的范围内而省略。
处理器680是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器620内的软件程序和/或模块,以及调用存储在存储器620内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器680可包括一个或多个处理单元;优选的,处理器680可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器680中。
手机还包括给各个部件供电的电源690(比如电池),电源可以通过电源管理系统与处理器680逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本申请实施例中,该手机所包括的处理器680还具有控制执行以上由图2或图3所示的TEE完整性认证方法的流程图。
图7是本申请实施例提供的一种服务器结构示意图,该服务器720可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(英文全称:centralprocessing units,英文简称:CPU)722(例如,一个或一个以上处理器)和存储器732,一个或一个以上存储应用程序742或数据744的存储介质730(例如一个或一个以上海量存储设备)。其中,存储器732和存储介质730可以是短暂存储或持久存储。存储在存储介质730的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器722可以设置为与存储介质730通信,在服务器720上执行存储介质730中的一系列指令操作。
服务器720还可以包括一个或一个以上电源726,一个或一个以上有线或无线网络接口750,一个或一个以上输入输出接口758,和/或,一个或一个以上操作系统741,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD等等。
上述实施例中由服务器所执行的步骤可以基于该图7所示的服务器720的结构。例如上述实施例中由图2所示的TEE请求端所执行的步骤可以基于该图7所示的服务器结构。例如,所述处理器7202通过调用存储器732中的指令,执行以下操作:
操作系统初始化启动并将内核模块初始化启动;
若检测到应用程序启动请求,则启动与所述应用程序启动请求对应的进程,并获取与所述应用程序启动请求对应的应用程序元信息并发送至所述内核模块;其中,所述进程中包含进程控制块用于存储应用程序的进程信息;
若检测到度量请求,则通过所述内核模块获取所述进程控制块中的虚拟内存信息和文件开启信息;
对所述虚拟内存信息的内存使用信息和所述文件开启信息的使用文件信息分别进行校验,得到内存使用校验结果和文件开启校验结果;
若确定所述内存使用校验结果和所述文件开启校验结果均为通过校验结果,则将所述虚拟内存信息和文件开启信息组成动态度量结果。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请实施例各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
以上对本申请实施例所提供的技术方案进行了详细介绍,本申请实施例中应用了具体个例对本申请实施例的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请实施例的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请实施例的限制。

Claims (11)

1.一种TEE完整性认证方法,应用于TEE请求端,其特征在于,所述方法包括:操作系统初始化启动并将内核模块初始化启动;
若检测到应用程序启动请求,则启动与所述应用程序启动请求对应的进程,并获取与所述应用程序启动请求对应的应用程序元信息并发送至所述内核模块;其中,所述进程中包含进程控制块用于存储应用程序的进程信息;
若检测到度量请求,则通过所述内核模块获取所述进程控制块中的虚拟内存信息和文件开启信息;
对所述虚拟内存信息的内存使用信息和所述文件开启信息的使用文件信息分别进行校验,得到内存使用校验结果和文件开启校验结果;
若确定所述内存使用校验结果和所述文件开启校验结果均为通过校验结果,则将所述虚拟内存信息和文件开启信息组成动态度量结果;
所述对所述虚拟内存信息的内存使用信息和所述文件开启信息的使用文件信息分别进行校验,得到内存使用校验结果和文件开启校验结果,所述方法包括:
获取所述内存使用信息中各段数据的超出权限状态,并获取所述使用文件信息对应的文件等级;
若确定所述内存使用信息中各段数据的超出权限状态均为正常状态,则得到所述内存使用校验结果为通过校验结果;
若确定所述内存使用信息中有至少一段数据的超出权限状态为异常状态,则得到所述内存使用校验结果为未通过校验结果;
若确定所述使用文件信息对应的文件等级未超出预设文件等级,则得到所述文件开启校验结果为通过校验结果;
若确定所述使用文件信息对应的文件等级超出预设文件等级,则得到所述文件开启校验结果为未通过校验结果;
所述获取所述内存使用信息中各段数据的超出权限状态,包括:
所述内核模块获取所述虚拟内存信息中划分的多个内存区域段,及每一个内存区域段对应的区域读写权限信息;
所述内核模块获取所述虚拟内存信息的多个内存区域段中每一内存区域段操作信息;
将所述虚拟内存信息的多个内存区域段中每一内存区域段操作信息与对应的区域读写权限信息进行比较,得到所述虚拟内存信息的多个内存区域段的超出权限状态以组成所述内存使用校验结果;其中,若内存区域段的内存区域段操作信息属于对应的区域读写权限信息,则内存区域段的超出权限状态为正常状态;若内存区域段的内存区域段操作信息不属于对应的区域读写权限信息,则内存区域段的超出权限状态为异常状态。
2.根据权利要求1所述的方法,其特征在于,所述若确定所述内存使用校验结果和所述文件开启校验结果均为通过校验结果,则将所述虚拟内存信息和文件开启信息组成动态度量结果之后,所述方法还包括:
获取历史度量结果、历史日志信息、应用程序的应用权限信息和身份信息并增加至所述动态度量结果,以更新所述动态度量结果。
3.根据权利要求2所述的方法,其特征在于,所述操作系统初始化启动并将内核模块初始化启动之后,所述方法还包括:
通过所述内核模块获取系统上电至操作系统初始化启动之间时间段对应的静态度量结果。
4.根据权利要求3所述的方法,其特征在于,所述通过所述内核模块获取系统上电至操作系统初始化启动之间时间段对应的静态度量结果之后,所述方法还包括:
获取预先存储的票据模板,将所述动态度量结果和所述静态度量结果写入所述票据模板,得到票据数据;
获取预先存储的私钥,基于所述私钥对所述票据数据进行签名,得到票据数据报告。
5.一种TEE完整性认证方法,应用于TEE认证服务集群,其特征在于,所述TEE认证服务集群包括TEE内认证服务中心、TEE请求端和TEE服务端;所述TEE请求端通过如权利要求1-4任一项所述的方法获取动态度量结果,所述方法包括:
所述TEE请求端获取静态度量结果并与所述动态度量结果组合得到票据数据,将所述票据数据通过所述TEE请求端中预先存储的私钥进行签名得到票据数据报告并发送至所述TEE服务端;
所述TEE服务端从所述TEE内认证服务中心获取与所述TEE请求端对应的证书,通过所述证书对所述票据数据报告进行解析,得到当前动态度量结果和当前静态度量结果;
所述TEE服务端对所述当前动态度量结果和所述当前静态度量结果分别进行校验,得到当前动态度量校验结果和当前静态度量校验结果;
若确定所述当前动态度量校验结果和所述当前静态度量校验结果均为通过校验结果,则所述TEE服务端与所述TEE请求端建立可信信道以进行通信;
所述TEE服务端对所述当前动态度量结果和所述当前静态度量结果分别进行校验,得到当前动态度量校验结果和当前静态度量校验结果,包括:
当所述当前动态度量结果的内存使用信息中各段数据的超出权限状态均为正常状态,且所述当前动态度量结果的文件开启信息的使用文件信息对应的文件等级未超出预设文件等级,则当前动态度量校验结果为通过校验结果;
当所述当前动态度量结果的内存使用信息中各段数据的超出权限状态存在异常状态,或者所述文件开启信息的使用文件信息对应的文件等级超出预设文件等级,则当前动态度量校验结果为未通过校验结果;
当所述当前静态度量结果中存在数据修改记录,则所述当前静态度量校验结果为未通过校验结果;
当所述当前静态度量结果中不存在数据修改记录,则所述当前静态度量校验结果为通过校验结果。
6.根据权利要求5所述的方法,其特征在于,所述若确定所述当前动态度量校验结果和所述当前静态度量校验结果均为通过校验结果,则所述TEE服务端与所述TEE请求端建立可信信道以进行通信,所述方法包括:
若确定所述当前动态度量校验结果和所述当前静态度量校验结果均为通过校验结果,则所述TEE服务端获取预先存储的服务端票据模板,将所述当前动态度量校验结果和所述当前静态度量校验结果写入所述服务端票据模板,得到服务端票据数据;
获取预先存储的服务端私钥,基于所述服务端私钥对所述服务端票据数据进行签名,得到服务端票据数据报告;
所述TEE请求端从所述TEE内认证服务中心获取与所述TEE服务端对应的服务端证书,通过所述服务端证书对所述服务端票据数据报告进行解析,得到所述当前动态度量校验结果和所述当前静态度量校验结果;
若所述TEE请求端确定所述当前动态度量校验结果和所述当前静态度量校验结果均为通过校验结果,则所述TEE服务端与所述TEE请求端建立可信信道以进行通信。
7.一种TEE完整性认证装置,运行于TEE请求端,其特征在于,所述TEE完整性认证装置包括收发模块和处理模块;
所述收发模块,用于接收所述处理模块的控制指令进行收发操作;
所述处理模块,用于操作系统初始化启动并将内核模块初始化启动;若检测到应用程序启动请求,则启动与所述应用程序启动请求对应的进程,并获取与所述应用程序启动请求对应的应用程序元信息并发送至所述内核模块;其中,所述进程中包含进程控制块用于存储应用程序的进程信息;
所述处理模块,还用于若检测到度量请求,则通过所述内核模块获取所述进程控制块中的虚拟内存信息和文件开启信息;对所述虚拟内存信息的内存使用信息和所述文件开启信息的使用文件信息分别进行校验,得到内存使用校验结果和文件开启校验结果;若确定所述内存使用校验结果和所述文件开启校验结果均为通过校验结果,则将所述虚拟内存信息和文件开启信息组成动态度量结果;
所述对所述虚拟内存信息的内存使用信息和所述文件开启信息的使用文件信息分别进行校验,得到内存使用校验结果和文件开启校验结果,所述装置包括:
获取所述内存使用信息中各段数据的超出权限状态,并获取所述使用文件信息对应的文件等级;
若确定所述内存使用信息中各段数据的超出权限状态均为正常状态,则得到所述内存使用校验结果为通过校验结果;
若确定所述内存使用信息中有至少一段数据的超出权限状态为异常状态,则得到所述内存使用校验结果为未通过校验结果;
若确定所述使用文件信息对应的文件等级未超出预设文件等级,则得到所述文件开启校验结果为通过校验结果;
若确定所述使用文件信息对应的文件等级超出预设文件等级,则得到所述文件开启校验结果为未通过校验结果;
所述获取所述内存使用信息中各段数据的超出权限状态,包括:
所述内核模块获取所述虚拟内存信息中划分的多个内存区域段,及每一个内存区域段对应的区域读写权限信息;
所述内核模块获取所述虚拟内存信息的多个内存区域段中每一内存区域段操作信息;
将所述虚拟内存信息的多个内存区域段中每一内存区域段操作信息与对应的区域读写权限信息进行比较,得到所述虚拟内存信息的多个内存区域段的超出权限状态以组成所述内存使用校验结果;其中,若内存区域段的内存区域段操作信息属于对应的区域读写权限信息,则内存区域段的超出权限状态为正常状态;若内存区域段的内存区域段操作信息不属于对应的区域读写权限信息,则内存区域段的超出权限状态为异常状态。
8.一种TEE完整性认证系统,运行于TEE认证服务集群,用于实现如权利要求5所述的方法,其特征在于,所述TEE认证服务集群包括TEE内认证服务中心、TEE请求端和TEE服务端;
所述TEE请求端,用于获取静态度量结果并与动态度量结果组合得到票据数据,将所述票据数据通过所述TEE请求端中预先存储的私钥进行签名得到票据数据报告并发送至所述TEE服务端;
所述TEE服务端,用于从所述TEE内认证服务中心获取与所述TEE请求端对应的证书,通过所述证书对所述票据数据报告进行解析,得到当前动态度量结果和当前静态度量结果;
对所述当前动态度量结果和所述当前静态度量结果分别进行校验,得到当前动态度量校验结果和当前静态度量校验结果;
所述TEE服务端,还用于若确定所述当前动态度量校验结果和所述当前静态度量校验结果均为通过校验结果,则所述TEE服务端与所述TEE请求端建立可信信道以进行通信;
所述TEE服务端对所述当前动态度量结果和所述当前静态度量结果分别进行校验,得到当前动态度量校验结果和当前静态度量校验结果,包括:
当所述当前动态度量结果的内存使用信息中各段数据的超出权限状态均为正常状态,且所述当前动态度量结果的文件开启信息的使用文件信息对应的文件等级未超出预设文件等级,则当前动态度量校验结果为通过校验结果;
当所述当前动态度量结果的内存使用信息中各段数据的超出权限状态存在异常状态,或者所述文件开启信息的使用文件信息对应的文件等级超出预设文件等级,则当前动态度量校验结果为未通过校验结果;
当所述当前静态度量结果中存在数据修改记录,则所述当前静态度量校验结果为未通过校验结果;
当所述当前静态度量结果中不存在数据修改记录,则所述当前静态度量校验结果为通过校验结果。
9.一种计算机可读存储介质,其特征在于,其包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-4中任一项所述的方法,或执行如权利要求5-6中任一项所述的方法。
10.一种计算机设备,其包括至少一个连接的处理器、存储器和收发器,其中,所述存储器用于存储计算机程序,所述处理器用于调用所述存储器中的计算机程序来执行如权利要求1-4中任一项所述的方法,或执行如权利要求5-6中任一项所述的方法。
11.一种包含指令的计算机程序产品,其特征在于,所述计算机程序产品包括程序指令,当所述程序指令在计算机或处理器上运行时,使得所述计算机或所述处理器执行如权利要求1-4中任一项所述的方法,或执行如权利要求5-6中任一项所述的方法。
CN202211190372.6A 2022-09-28 2022-09-28 Tee完整性认证方法、装置、系统及存储介质 Active CN115640567B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211190372.6A CN115640567B (zh) 2022-09-28 2022-09-28 Tee完整性认证方法、装置、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211190372.6A CN115640567B (zh) 2022-09-28 2022-09-28 Tee完整性认证方法、装置、系统及存储介质

Publications (2)

Publication Number Publication Date
CN115640567A CN115640567A (zh) 2023-01-24
CN115640567B true CN115640567B (zh) 2024-02-27

Family

ID=84941468

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211190372.6A Active CN115640567B (zh) 2022-09-28 2022-09-28 Tee完整性认证方法、装置、系统及存储介质

Country Status (1)

Country Link
CN (1) CN115640567B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114185602B (zh) * 2020-09-15 2023-08-22 成都鼎桥通信技术有限公司 操作系统的启动方法、装置和终端

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103093150A (zh) * 2013-02-18 2013-05-08 中国科学院软件研究所 一种基于可信芯片的动态完整性保护方法
CN109669734A (zh) * 2017-10-13 2019-04-23 百度(美国)有限责任公司 用于启动设备的方法和装置
CN110554911A (zh) * 2018-05-30 2019-12-10 阿里巴巴集团控股有限公司 内存访问与分配方法、存储控制器及系统
WO2020034881A1 (zh) * 2018-08-17 2020-02-20 阿里巴巴集团控股有限公司 一种可信执行环境的激活方法和装置
CN111159691A (zh) * 2019-12-23 2020-05-15 北京工业大学 一种应用程序动态可信验证方法及系统
CN112446033A (zh) * 2020-12-11 2021-03-05 中国科学院信息工程研究所 软件可信启动方法、装置、电子设备和存储介质
CN114996064A (zh) * 2022-05-19 2022-09-02 阿里巴巴(中国)有限公司 内存检测方法、装置、设备及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103093150A (zh) * 2013-02-18 2013-05-08 中国科学院软件研究所 一种基于可信芯片的动态完整性保护方法
CN109669734A (zh) * 2017-10-13 2019-04-23 百度(美国)有限责任公司 用于启动设备的方法和装置
CN110554911A (zh) * 2018-05-30 2019-12-10 阿里巴巴集团控股有限公司 内存访问与分配方法、存储控制器及系统
WO2020034881A1 (zh) * 2018-08-17 2020-02-20 阿里巴巴集团控股有限公司 一种可信执行环境的激活方法和装置
CN111159691A (zh) * 2019-12-23 2020-05-15 北京工业大学 一种应用程序动态可信验证方法及系统
CN112446033A (zh) * 2020-12-11 2021-03-05 中国科学院信息工程研究所 软件可信启动方法、装置、电子设备和存储介质
CN114996064A (zh) * 2022-05-19 2022-09-02 阿里巴巴(中国)有限公司 内存检测方法、装置、设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于TrustZone的开放环境中敏感应用防护方案;张英骏;冯登国;秦宇;杨波;;计算机研究与发展(第10期);全文 *
强制访问控制下可信云计算动态完整性的研究;赵军;;工业控制计算机;20161130(第11期);全文 *

Also Published As

Publication number Publication date
CN115640567A (zh) 2023-01-24

Similar Documents

Publication Publication Date Title
TWI713855B (zh) 憑證管理方法及系統
US9965565B2 (en) Methods and terminals for generating and reading 2D barcode and servers
WO2017067137A1 (zh) 资源使用权限判断系统及方法
CN114694226B (zh) 一种人脸识别方法、系统及存储介质
US11940992B2 (en) Model file management method and terminal device
CN114973351B (zh) 人脸识别方法、装置、设备及存储介质
CN115640567B (zh) Tee完整性认证方法、装置、系统及存储介质
CN114758388A (zh) 一种人脸识别方法、相关装置及存储介质
CN114821751B (zh) 图像识别方法、装置、系统及存储介质
CN115658348B (zh) 微服务调用方法、相关装置及存储介质
CN115376192B (zh) 用户异常行为确定方法、装置、计算机设备及存储介质
CN110399721B (zh) 一种软件识别方法和服务器以及客户端
CN115061939B (zh) 数据集安全测试方法、装置及存储介质
CN112988913B (zh) 一种数据处理方法和相关装置
CN113890753B (zh) 数字身份管理方法、装置、系统、计算机设备和存储介质
CN115495765A (zh) 数据处理方法、装置、计算机设备及存储介质
CN104134044B (zh) 一种数据安全性的检测方法、装置和系统
CN115412726B (zh) 视频真伪检测方法、装置及存储介质
CN115565215B (zh) 一种人脸识别算法切换方法、装置及存储介质
CN115525554B (zh) 模型的自动化测试方法、系统及存储介质
CN117056971B (zh) 数据存储方法、装置、电子设备及可读存储介质
US11824866B2 (en) Peripheral landscape and context monitoring for user-identify verification
CN116170222A (zh) K8s鉴权方法、相关设备及存储介质
CN116363490A (zh) 伪造对象检测方法、相关装置及存储介质
CN116954631A (zh) 模型部署方法、相关装置及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant