CN107463838A - 基于sgx的安全监控方法、装置、系统及存储介质 - Google Patents

基于sgx的安全监控方法、装置、系统及存储介质 Download PDF

Info

Publication number
CN107463838A
CN107463838A CN201710695657.8A CN201710695657A CN107463838A CN 107463838 A CN107463838 A CN 107463838A CN 201710695657 A CN201710695657 A CN 201710695657A CN 107463838 A CN107463838 A CN 107463838A
Authority
CN
China
Prior art keywords
software
terminal
server
enclave
certificate
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.)
Granted
Application number
CN201710695657.8A
Other languages
English (en)
Other versions
CN107463838B (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.)
Guangzhou University
Original Assignee
Guangzhou University
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 Guangzhou University filed Critical Guangzhou University
Priority to CN201710695657.8A priority Critical patent/CN107463838B/zh
Publication of CN107463838A publication Critical patent/CN107463838A/zh
Application granted granted Critical
Publication of CN107463838B publication Critical patent/CN107463838B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于SGX的安全监控方法、装置、系统及存储介质,所述方法包括:向服务器发送下载请求指令,以从所述服务器上下载相应的软件;创建与所述软件对应的Enclave;调用所述enclave中的内存读取函数和分析函数,提取所述软件在本地的第一软件特征值并封装为验证服务请求发送至保存有所述软件第二软件特征值的所述服务器进行匹配,以使所述服务器根据匹配结果向所述终端发送受保护的证书;当判断信任所述证书时,允许所述软件启动;将启动的所述软件的运行数据以日志的方式发送到所述服务器,以使所述服务器监控所述软件的运行数据。本发明能确保终端的软件运行的合法性和可靠性。

Description

基于SGX的安全监控方法、装置、系统及存储介质
技术领域
本发明涉及智能终端安全监控技术领域,尤其涉及一种基于SGX的安全监控方法、装置、系统及存储介质。
背景技术
随着智能互联的移动设备越来越广泛地应用于政务、商务、金融和娱乐等行业,安全问题成为了用户最为关注的焦点之一。为了提高计算机信息安全,许多相关的安全产品被开发,但是大多基于网络硬件设备,如交换机、路由器等,而对于应用软件运行时的验证和监控的研究相对较少。现有的智能终端安全监控技术,虽然也用于对网络运行中的软件进行有效管理和监控以增强软件的安全性,但是并没有实现对所有恶意软件进行识别和隔离。因此,现有的智能终端安全监控技术无法真正保护系统不受恶意攻击。
发明内容
本发明所要解决的技术问题在于,提供一种基于SGX的安全监控方法、装置、系统及存储介质,确保终端的软件运行的合法性和可靠性。
针对上述问题,本发明的目的在于提供一种基于SGX的安全监控方法,包括以下步骤:
向服务器发送下载请求指令,以从所述服务器上下载相应的软件;
创建与所述软件对应的Enclave,同时为所述Enclave分配内存并将所述软件从本地存储空间转移到所述Enclave内存空间;
调用所述enclave中的内存读取函数和分析函数,获取所述软件在本地的第一软件特征值;
将所述第一软件特征值封装为验证服务请求,并将所述验证服务请求发送至所述服务器,以使所述服务器将所述第一软件特征值与所述软件在所述服务器上的第二软件特征值进行匹配,并根据匹配结果向所述终端发送受保护的证书;
调用所述Enclave的证书匹配函数判断是否对所述证书进行信任;当判断信任所述证书时,允许所述软件启动;
将启动的所述软件的运行数据以日志的方式发送到所述服务器,以使所述服务器使用SGX远程认证计算监控所述软件的运行数据。
优选地,
所述第一软件特征值为所述软件在所述Enclave内存中的内存数据进行哈希运算得到的哈希值;所述第二软件特征值为所述服务器上保存的所述软件的特征值;当所述服务器获取的所述第一软件特征值与所述第二软件特征值相同时,则匹配成功。
优选地,所述证书为所述服务器根据所述匹配结果生成的受保护的信任证书;当对所述证书判断为信任时,在本地安装公钥,而所述服务器拥有受保护的所述证书的密钥。
本发明还提供了另一种基于SGX的安全监控方法,包括以下步骤:
接收终端发送的下载请求指令,并根据所述下载请求指令向所述终端提供相应的软件下载;
接收所述终端发送的验证服务请求,并根据所述验证服务请求将所述软件在所述终端提取的第一软件特征值和所述软件在本地保存的第二软件特征值进行匹配,并根据匹配结果向所述终端发送受保护的证书;
以使所述终端调用所述Enclave的证书匹配函数判断是否对所述证书进行信任;当判断信任所述证书时,允许所述软件启动;其中,
所述验证服务请求为所述终端将所述第一软件特征值封装而成;所述第一软件特征值为所述终端在创建与所述软件对应的Enclave,同时为所述Enclave分配内存并将所述软件从本地存储空间转移到所述Enclave内存空间后,调用enclave中的内存读取函数和分析函数所获取;
接收所述终端以日志方式发送的启动的所述软件的运行数据,并使用SGX远程认证计算监控所述软件的运行数据。
优选地,所述接收所述终端以日志方式发送的启动的所述软件的运行数据,并使用SGX远程认证计算监控所述软件的运行数据,具体包括如下步骤:
接收所述终端发送的包含数字签名、电子文件以及签名证书的公钥的报告;其中,所述电子文件由所述终端将所述运行数据以日志方式在所述Enclave中生成并被签名;所述数字签名为用签名私钥对所述数字摘要MD1做非对称加密;所述数字摘要MD1为所述终端对所述电子文件做哈希算法得到的第一哈希值;
利用所述公钥解密数字签名,并导出所述数字摘要MD1;
对所述电子文件做哈希算法得到第二哈希值即数字摘要MD2,并将所述第一哈希值和所述第二哈希值进行比较;
当所述第一哈希值和所述第二哈希值相同时,签名验证成功,允许所述终端的数据访问;
将所述签名验证结果发送至所述终端,以使所述终端允许所述软件继续运行。
本发明还提供了一种基于SGX的安全监控装置,包括:
下载模块,用于向服务器发送下载请求指令,以从所述服务器上下载相应的软件;
内存分配模块,用于创建与所述软件对应的Enclave,同时为所述Enclave分配内存并将所述软件从本地存储空间转移到所述Enclave内存空间;
内存获取模块,用于调用enclave中的内存读取函数和分析函数,获取所述软件在本地的内存数据;
第一软件特征值提取模块,用于根据所述内存数据提取所述软件在本地的第一软件特征值,并将所述第一软件特征值封装为验证服务请求,发送至所述服务器;
证书判断模块,用于调用所述Enclave的证书匹配函数判断是否对所述服务器根据获取的所述第一软件特征值与所述软件在所述服务器上的第二软件特征值进行匹配的匹配结果发送的证书进行信任;当判断信任所述证书时,允许所述软件启动;
运行数据发送模块,用于将启动的所述软件的运行数据以日志的方式发送到所述服务器,以使所述服务器使用SGX远程认证计算监控所述软件的运行数据。
本发明还提供了另一种基于SGX的安全监控装置,包括:
软件提供模块,用于接收终端发送的下载请求指令,并根据所述下载请求指令向所述终端提供相应的软件下载;
软件特征值匹配模块,用于接收所述终端发送的验证服务请求,并根据所述验证服务请求将所述软件在所述终端提取的第一软件特征值和所述软件在本地保存的第二软件特征值进行匹配,并根据匹配结果向所述终端发送受保护的证书;
以使所述终端调用所述Enclave的证书匹配函数判断是否对所述证书进行信任;当判断信任所述证书时,允许所述软件启动;其中,
所述验证服务请求为所述终端将所述第一软件特征值封装而成;所述第一软件特征值为所述终端在创建与所述软件对应的Enclave,同时为所述Enclave分配内存并将所述软件从本地存储空间转移到所述Enclave内存空间后,调用enclave中的内存读取函数和分析函数所获取;
软件监控模块,用于接收所述终端以日志方式发送的启动的所述软件的运行数据,并使用SGX远程认证计算监控所述软件的运行数据。
本发明还提供了另一种基于SGX的安全监控装置,包括基于SGX的处理器,存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时,实现如上述的基于SGX的安全监控方法。
本发明还提供了一种存储介质,其特征在于,所述存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述存储介质所在设备执行如上述的基于SGX的安全监控方法。
本发明还提供了一种基于SGX的安全监控系统,包括:终端及服务器;
所述终端,用于向服务器发送下载请求指令;
所述服务器,用于接收所述终端发送的所述下载请求指令,并根据所述下载请求指令向所述终端提供相应的软件下载;
所述终端,还用于创建与所述软件对应的Enclave,同时为所述Enclave分配内存并将所述软件从本地存储空间转移到所述Enclave内存空间;
所述终端,还用于调用enclave中的内存读取函数和分析函数,获取所述软件在本地的第一软件特征值;将所述第一软件特征值封装为验证服务请求,并将所述验证服务请求发送至所述服务器;
所述服务器,还用于将所述第一软件特征值与所述软件在本地保存的第二软件特征值进行匹配,并根据匹配结果向所述终端发送受保护的证书;
所述终端,还用于调用所述Enclave的证书匹配函数判断是否对所述证书进行信任;当判断信任所述证书时,允许所述软件启动;并将启动的所述软件的运行数据以日志的方式发送到所述服务器;
所述服务器,还用于使用SGX远程认证计算监控所述软件的运行数据。
本发明具有以下有益效果:
本发明的基于SGX的安全监控方法、装置、系统及存储介质,基于英特尔SGX框架,利用内存映射和安全隔离技术在终端为软件创建可信赖的执行环境Enclave,以确保系统监控模块不被篡改或被不信任内核绕过。通过特征匹配算法,提取并将所述软件分别在终端和服务器上的第一软件特征值和第二软件特征值进行匹配,确保软件的合法性。还通过将启动的所述软件的运行数据以日志的方式发送到所述服务器,以使所述服务器使用SGX远程认证计算监控所述软件的运行数据,保护终端密钥和数据的机密性和完整性,从而确保终端软件运行的合法性为安全运行提供可靠的保证。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1提供的一种基于SGX的安全监控方法的流程图;
图2是本发明实施例2提供的一种基于SGX的安全监控方法的流程图;
图3是本发明实施例2提供的一种基于SGX的安全监控方法中使用SGX远程认证计算的流程图;
图4是本发明实施例3提供的一种基于SGX的安全监控装置的结构示意图;
图5是本发明实施例4提供的一种基于SGX的安全监控装置的结构示意图;
图6是本发明实施例5提供的一种基于SGX的安全监控装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
请参阅图1,本发明提供了一种基于SGX(Intel Software Guard Extensions)的安全监控方法,其可由终端来执行,并包括以下步骤:
S101、向服务器发送下载请求指令,以从所述服务器上下载相应的软件;
S102、创建与所述软件对应的Enclave,同时为所述Enclave分配内存并将所述软件从本地存储空间转移到所述Enclave内存空间;
S103、调用所述enclave中的内存读取函数和分析函数,获取所述软件在本地的第一软件特征值;
S104、将所述第一软件特征值封装为验证服务请求,并将所述验证服务请求发送至所述服务器,以使所述服务器将所述第一软件特征值与所述软件在所述服务器上的第二软件特征值进行匹配,并根据匹配结果向所述终端发送受保护的证书;
S105、调用所述Enclave的证书匹配函数判断是否对所述证书进行信任;当判断信任所述证书时,允许所述软件启动;
S106、将启动的所述软件的运行数据以日志的方式发送到所述服务器,以使所述服务器使用SGX远程认证计算监控所述软件的运行数据。
在本实施例中,所述终端可为智能手机、智能平板、个人电脑等。
在本实施例中,所述软件可为系统软件、应用软件和介于这两者之间的中间件,具体包括但不限于各种软件,如手机APP、电脑应用。
在步骤S102中,所述Enclave,为所述终端通过使用SGX技术构建的完全隔离的特权模式。创建与所述软件对应的所述Enclave的具体步骤如下:
第一,将需要运行的虚拟机镜像加载到磁盘中;
第二,利用SGX技术提供的秘钥加密方法对需要加载的应用程序的代码和数据进行加密;需要说明的是,所述秘钥加密方法的密钥由SGX版本秘钥、CPU机器秘钥和Intel官方分配给用户的秘钥在秘钥生成算法下生成的全新秘钥;
第三,将需要加载的应用程序的代码和数据首先加载到SGX Loader(SGX加载器)中,为将需要加载的应用程序的代码和数据加载至Enclave做准备;
第四,在SGX可信模式下动态申请构建一个Enclave;
第五,将需要加载的应用程序的代码和数据以EPC(Enclave Page Cache,飞地的页面缓存)的形式通过秘钥凭证解密;
第六,通过SGX指令证明解密后的应用程序和数据可信,并将应用程序的代码和数据加载进Enclave中,然后对加载进Enclave中的每个EPC内容进行复制;
第七,启动Enclave初始化程序,禁止继续加载和验证EPC,生成Enclave身份凭证,并对此凭证进行加密,并作为Enclave标示存入Enclave的TCS(Thread ControlStructure,线程控制结构)中,用以恢复和验证其身份;
第八,Enclave的创建完成,可通过硬件隔离的Enclave中的镜像程序开始执行。
可以理解的是,所述Enclave在本实施例中被定义为一个隔离且独立的进程,以确保所述应用程序的代码和数据的保密性和完整性。具体的,所述Enclave通过启动初始化程序来初始化一个独立的且加密的存储器,使得对存储器的访问受SGX限制,并且对所述应用程序的外部访问也别限制到代码中识别的入口点。因此加载在所述Enclave中的所述应用程序是经过被测量的,允许SGX硬件向访问的另一方证明预期应用程序被正确地加载和初始化,并且所述Enclave中的所述用用程序与终端上运行的其他应用程序是隔离的。
在本实施例中,所述软件与所述Enclave对应,可以理解的是,在创建Enclave过程中加载的所述应用程序的代码和数据即所述软件的代码和数据。
在步骤106中,所述将启动的所述软件的运行数据以日志的方式发送到所述服务器,以使所述服务器使用SGX远程认证计算监控所述软件的运行数据,具体为:
将所述运行数据以日志方式在所述Enclave中生成电子文件,并对所述电子文件进行哈希运算得到第一哈希值即数字摘要MD1;
对所述数字摘要MD1进行数字签名,即用签名私钥对所述数字摘要MD1做非对称加密;
启用SGX硬件将所述数字签名、所述电子文件和数字证书的公钥封装在一起生成报告,并发送至所述服务器,以使所述服务器对所述报告进行签名验证,并把签名验证结果发送至所述终端;
当签名验证失败时,终止所述软件的运行。
在本实施例中,所述签名验证,其过程具体为:所述终端利用所述公钥解密数字签名,导出所述数字摘要MD1,并对所述电子文件做哈希算法得到第二哈希值即数字摘要MD2。所述服务器将所述第一哈希值和所述第二哈希值进行比较。当所述第一哈希值和所述第二哈希值相同时,则证明数据没有被篡改,接受所述签名,即签名验证成功,所述服务器将允许所述终端的数据访问;当所述第一哈希值和所述第二哈希值不相同时,则证明数据已被篡改,拒绝所述签名,即签名验证失败,所述服务器将拒绝所述终端的数据访问。同样地,当所述终端接收到签名验证成功的信息后,允许所述软件继续运行;当所述终端接收到签名验证失败的信息后,终止所述软件继续运行。
需要说明的是,所述启用SGX硬件将所述数字签名、所述电子文件和数字证书的公钥封装在一起生成报告,可以理解的是,启用SGX硬件生成所述报告,即生成所述Enclave的完整性保护语句:
Reportlocal=MAC(Ienclave//Isigner//Duser).
其中,MAC(message authentication code消息认证码)密钥对于每个处理器是不同的,并且对于请求报告的Enclave是私有的,仅在相同处理器上的Enclave可以验证报告;
Ienclave是生成报告的Enclave的代码的度量;
Isigner是加载它之前用于签名该Enclave的公共密钥;
Duser是请求验证报告时可由Enclave指定的任意值。
需要说明的是,签名私钥对处理器是私有的,不能被不正确地使用或用于任何目的。相应的公钥由供应商发布,第三方可以使用它来验证报告是由实际的Intel硬件创建的。
可以理解的是,在本实施例中,所述终端上的Enclave和所述服务器上的引用Enclave通过TLS(安全传输层协议)连接,即在所述终端和所述服务器之间建立一个安全通道,用于通过远程认证来验证Enclave中运行的所述应用软件的代码。所述终端能够提供一个签名的语句,指示哪些代码已经加载到Enclave中,然后所述服务器将通过对所述签名的语句进行签名验证,以验证所述终端是否正在运行期望的代码;同样的,所述终端也能够通过检查所述服务器上的TLS证书是否有效,并使用所述TLS证书上的公钥对所述服务器进行身份验证。因此,所有数据在离开所述Enclave和所述引用Enclave之前都是经过加密的;所述终端是安全的,所述应用程序的代码是不能被篡改的;所述服务器也是安全的,所述服务器上的内部人员也不能篡改正在运行的代码或服务的内存。
需要说明的是,所述哈希运算包括但不限于MD4运算,MD5运算,SHS运算,且获取所述第一哈希值对电子文件做的哈希算法与获取所述第二哈希值做的哈希算法是相同的算法,即为MD4运算,MD5运算,SHS运算中的任意一种。
优选地,所述第一软件特征值为所述软件在所述Enclave内存中的内存数据如起始地址、所述软件的占用空间大小以及所述软件的版本信息等中的任意一种进行哈希运算得到的哈希值;当所述服务器获取的所述第一软件特征值与所述第二软件特征值相同时,则匹配成功。可以理解的是,当匹配成功时,所述服务器向所述终端发送的所述证书是信任的;当匹配失败时,所述服务器向所述终端发送的所述证书是不信任的。进一步地,当所述终端接收到所述证书并判断对所述证书进行信任时,允许所述软件启动;当所述终端判断对所述证书进行不信任时,阻止所述软件启动。
需要说明的是,所述第二软件特征值为所述软件在所述服务器中的内存数据如起始地址、所述软件的占用空间大小以及所述软件的版本信息等中的任意一种与对所述第一软件特征值进行相同的哈希运算得到的哈希值;
优选地,所述证书为所述服务器根据所述匹配结果生成的受保护的信任证书;当对所述证书判断为信任时,在本地安装公钥,而所述服务器拥有受保护的所述证书的密钥。
通过本发明的上述实施例1可见,本发明的一种基于SGX的安全验证方法中,利用内存映射和安全隔离技术在终端为软件创建可信赖的执行环境Enclave,以确保系统监控模块不被篡改或被不信任内核绕过。接着,本发明通过特征匹配算法,提取并将所述软件分别在终端和服务器上的所述第一软件特征值和所述第二软件特征值进行匹配,确保软件的合法性。本发明还通过将启动的所述软件的运行数据以日志的方式发送到所述服务器,以使所述服务器使用SGX远程认证计算监控所述软件的运行数据,保护终端密钥和数据的机密性和完整性,从而确保终端软件运行的合法性为安全运行提供可靠的保证。
实施例2
请参阅图2,本发明提供了一种基于SGX的安全监控方法,其从服务器一侧进行说明,并包括以下步骤:
接收终端发送的下载请求指令,并根据所述下载请求指令向所述终端提供相应的软件下载;
接收所述终端发送的验证服务请求,并根据所述验证服务请求将所述软件在所述终端提取的第一软件特征值和所述软件在本地保存的第二软件特征值进行匹配,并根据匹配结果向所述终端发送受保护的证书;
以使所述终端调用所述Enclave的证书匹配函数判断是否对所述证书进行信任;当判断信任所述证书时,允许所述软件启动;其中,
所述验证服务请求为所述终端将所述第一软件特征值封装而成;所述第一软件特征值为所述终端在创建与所述软件对应的Enclave,同时为所述Enclave分配内存并将所述软件从本地存储空间转移到所述Enclave内存空间后,调用enclave中的内存读取函数和分析函数所获取;
接收所述终端以日志方式发送的启动的所述软件的运行数据,并使用SGX远程认证计算监控所述软件的运行数据。
需要说明的是,所述证书为所述服务器根据所述匹配结果生成的受保护的信任证书;当对所述证书判断为信任时,在本地安装公钥,而所述服务器拥有受保护的所述证书的密钥。
在本实施例中,所述软件可为系统软件、应用软件和介于这两者之间的中间件,具体包括但不限于各种软件,如手机APP、电脑应用。
在本实施例中,所述第一软件特征值为所述软件在所述Enclave内存中的内存数据如起始地址、所述软件的占用空间大小以及所述软件的版本信息等中的任意一种进行哈希运算得到的哈希值;当所述服务器获取的所述第一软件特征值与所述第二软件特征值相同时,则匹配成功。可以理解的是,当匹配成功时,所述服务器向所述终端发送的所述证书是信任的;当匹配失败时,所述服务器向所述终端发送的所述证书是不信任的。进一步地,当所述终端接收到所述证书并判断对所述证书进行信任时,允许所述软件启动;当所述终端判断对所述证书进行不信任时,阻止所述软件启动。
需要说明的是,所述第二软件特征值为所述软件在所述服务器中的内存数据如起始地址、所述软件的占用空间大小以及所述软件的版本信息等中的任意一种与对所述第一软件特征值进行相同的哈希运算得到的哈希值;
优选地,请参阅图3,所述接收所述终端以日志方式发送的启动的所述软件的运行数据,并使用SGX远程认证计算监控所述软件的运行数据,具体包括如下步骤:
接收所述终端发送的包含数字签名、电子文件以及签名证书的公钥的报告;其中,所述电子文件由所述终端将所述运行数据以日志方式在所述Enclave中生成并被签名;所述数字签名为用签名私钥对所述数字摘要MD1做非对称加密;所述数字摘要MD1为所述终端对所述电子文件做哈希算法得到的第一哈希值;
利用所述公钥解密数字签名,并导出所述数字摘要MD1;
对所述电子文件做哈希算法得到第二哈希值即数字摘要MD2,并将所述第一哈希值和所述第二哈希值进行比较;
当所述第一哈希值和所述第二哈希值相同时,签名验证成功,允许所述终端的数据访问;
将所述签名验证结果发送至所述终端,以使所述终端允许所述软件继续运行。
可以理解的是,当所述第一哈希值和所述第二哈希值不相同时,则证明数据已被篡改,拒绝所述签名,即签名验证失败,所述服务器将拒绝所述终端的数据访问。同样地,当所述终端接收到签名验证失败的信息后,终止所述软件继续运行。
需要说明的是,所述哈希运算包括但不限于MD4运算,MD5运算,SHS运算,且获取所述第一哈希值对电子文件做的哈希算法与获取所述第二哈希值做的哈希算法是相同的算法,即为MD4运算,MD5运算,SHS运算中的任意一种。
在本实施例中,所述报告,是由所述终端启用SGX硬件将所述数字签名、所述电子文件和数字证书的公钥封装在一起生成报告,可以理解的是,启用SGX硬件生成所述报告,即生成所述Enclave的完整性保护语句:
Reportlocal=MAC(Ienclave//Isigner//Duser).
其中,MAC(message authentication code消息认证码)密钥对于每个处理器是不同的,并且对于请求报告的Enclave是私有的,仅在相同处理器上的Enclave可以验证报告;
Ienclave是生成报告的Enclave的代码的度量;
Isigner是加载它之前用于签名该Enclave的公共密钥;
Duser是请求验证报告时可由Enclave指定的任意值。
需要说明的是,签名私钥对处理器是私有的,不能被不正确地使用或用于任何目的。相应的公钥由供应商发布,第三方可以使用它来验证报告是由实际的Intel硬件创建的。
可以理解的是,在本实施例中,所述终端上的Enclave和所述服务器上的引用Enclave通过TLS(安全传输层协议)连接,即在所述终端和所述服务器之间建立一个安全通道,用于通过远程认证来验证Enclave中运行的所述应用软件的代码。所述终端能够提供一个签名的语句,指示哪些代码已经加载到Enclave中,然后所述服务器将通过对所述签名的语句进行签名验证,以验证所述终端是否正在运行期望的代码;同样的,所述终端也能够通过检查所述服务器上的TLS证书是否有效,并使用所述TLS证书上的公钥对所述服务器进行身份验证。因此,所有数据在离开所述Enclave和所述引用Enclave之前都是经过加密的;所述终端是安全的,所述应用程序的的代码是不能被篡改的;所述服务器也是安全的,所述服务器上的内部人员也不能篡改正在运行的代码或服务的内存。
通过本发明的上述实施例2可见,本发明的另一种基于SGX的安全验证方法中,利用内的存映射和安全隔离技术在终端为软件创建可信赖的执行环境Enclave,以确保系统监控模块不被篡改或被不信任内核绕过。接着,本发明通过特征匹配算法,提取并将所述软件分别在终端和服务器上的所述第一软件特征值和所述第二软件特征值进行匹配,确保软件的合法性。本发明还通过将启动的所述软件的运行数据以日志的方式发送到所述服务器,以使所述服务器使用SGX远程认证计算监控所述软件的运行数据,保护终端密钥和数据的机密性和完整性,从而确保终端软件运行的合法性为安全运行提供可靠的保证。
实施例3
请参阅图4,本发明提供了一种基于SGX的安全监控装置,包括:
下载模块401,用于向服务器发送下载请求指令,以从所述服务器上下载相应的软件;
内存分配模块402,用于创建与所述软件对应的Enclave,同时为所述Enclave分配内存并将所述软件从本地存储空间转移到所述Enclave内存空间;
内存获取模块403,用于调用enclave中的内存读取函数和分析函数,获取所述软件在本地的内存数据;
第一软件特征值提取模块404,用于根据所述内存数据提取所述软件在本地的第一软件特征值,并将所述第一软件特征值封装为验证服务请求,发送至所述服务器;
证书判断模块405,用于调用所述Enclave的证书匹配函数判断是否对所述服务器根据获取的所述第一软件特征值与所述软件在所述服务器上的第二软件特征值进行匹配的匹配结果发送的证书进行信任;当判断信任所述证书时,允许所述软件启动;
运行数据发送模块406,用于将启动的所述软件的运行数据以日志的方式发送到所述服务器,以使所述服务器使用SGX远程认证计算监控所述软件的运行数据。
在本实施例中,所述软件可为系统软件、应用软件和介于这两者之间的中间件,具体包括但不限于各种软件,如手机APP、电脑应用。
在本实施例中,所述Enclave,为所述内存分配模块402通过使用SGX技术构建的完全隔离的特权模式。
可以理解的是,所述Enclave在所述终端被定义为一个隔离且独立的进程,以确保所述应用程序的代码和数据的保密性和完整性。具体的,所述Enclave通过启动初始化程序来初始化一个独立的且加密的存储器,使得对存储器的访问受SGX限制,并且对所述应用程序的外部访问也别限制到代码中识别的入口点。因此加载在所述Enclave中的所述应用程序是经过被测量的,允许SGX硬件向访问的另一方证明预期应用程序被正确地加载和初始化,并且所述Enclave中的所述用用程序与终端上运行的其他应用程序是隔离的。
需要说明的是,所述软件与所述Enclave对应,可以理解的是,在所述内存分配模块402创建Enclave过程中加载的所述应用程序的代码和数据即所述软件的代码和数据。
在本实施例中,所述第一软件特征值提取模块404在所述终端提取所述软件在所述Enclave内存中的内存数据如起始地址、所述软件的占用空间大小以及所述软件的版本信息中的任意一种作为所述软件的第一软件特征值为,并对所述第一软件特征值进行哈希运算得到的哈希值。
需要说明的是,所述第二软件特征值为所述软件在所述服务器中的内存数据如起始地址、所述软件的占用空间大小以及所述软件的版本信息中的任意一种与对所述第一软件特征值进行相同的哈希运算得到的哈希值。
当所述服务器获取的所述第一软件特征值与所述第二软件特征值相同时,则匹配成功。可以理解的是,当匹配成功时,所述证书判断模块405判断所述证书是信任的;当匹配失败时,所述证书判断模块405判断所述证书是不信任的。进一步地,当所述证书判断模块405判断对所述证书进行信任时,允许所述软件启动;当所述证书判断模块405判断对所述证书进行不信任时,阻止所述软件启动。
需要说明的是,所述证书为所述服务器根据所述匹配结果生成的受保护的信任证书;当对所述证书判断为信任时,在本地安装公钥,而所述服务器拥有受保护的所述证书的密钥。
在实施例中,所述运行数据发送模块406将启动的所述软件的运行数据以日志的方式发送到所述服务器,以使所述服务器使用SGX远程认证计算监控所述软件的运行数据,具体为:
将所述运行数据以日志方式在所述Enclave中生成电子文件,并对所述电子文件进行哈希运算得到第一哈希值即数字摘要MD1;
对所述数字摘要MD1进行数字签名,即用签名私钥对所述数字摘要MD1做非对称加密;
启用SGX硬件将所述数字签名、所述电子文件和数字证书的公钥封装在一起生成报告,并发送至所述服务器,以使所述服务器对所述报告进行签名验证,并把签名验证结果发送至所述终端;
当签名验证失败时,终止所述软件的运行。
需要说明的是,所述签名验证,其过程具体为:所述终端利用所述公钥解密数字签名,导出所述数字摘要MD1,并对所述电子文件做哈希算法得到第二哈希值即数字摘要MD2。所述服务器将所述第一哈希值和所述第二哈希值进行比较。当所述第一哈希值和所述第二哈希值相同时,则证明数据没有被篡改,接受所述签名,即签名验证成功,所述服务器将允许所述终端的数据访问;当所述第一哈希值和所述第二哈希值不相同时,则证明数据已被篡改,拒绝所述签名,即签名验证失败,所述服务器将拒绝所述终端的数据访问。同样地,当所述终端接收到签名验证成功的信息后,允许所述软件继续运行;当所述终端接收到签名验证失败的信息后,终止所述软件继续运行。
需要说明的是,所述哈希运算包括但不限于MD4运算,MD5运算,SHS运算,且获取所述第一哈希值对电子文件做的哈希算法与获取所述第二哈希值做的哈希算法是相同的算法,即为MD4运算,MD5运算,SHS运算中的任意一种。
在本实施例中,所述运行数据发送模块406启用SGX硬件将所述数字签名、所述电子文件和数字证书的公钥封装在一起生成报告,可以理解的是,启用SGX硬件生成所述报告,即生成所述Enclave的完整性保护语句:
Reportlocal=MAC(Ienclave//Isigner//Duser).
其中,MAC(message authentication code消息认证码)密钥对于每个处理器是不同的,并且对于请求报告的Enclave是私有的,仅在相同处理器上的Enclave可以验证报告;
Ienclave是生成报告的Enclave的代码的度量;
Isigner是加载它之前用于签名该Enclave的公共密钥;
Duser是请求验证报告时可由Enclave指定的任意值。
需要说明的是,签名私钥对处理器是私有的,不能被不正确地使用或用于任何目的。相应的公钥由供应商发布,第三方可以使用它来验证报告是由实际的Intel硬件创建的。
在本实施例中,可以理解的是,所述终端上的Enclave和所述服务器上的引用Enclave通过TLS(安全传输层协议)连接,即在所述终端和所述服务器之间建立一个安全通道,用于通过远程认证来验证Enclave中运行的所述应用软件的代码。所述终端能够提供一个签名的语句,指示哪些代码已经加载到Enclave中,然后所述服务器将通过对所述签名的语句进行签名验证,以验证所述终端是否正在运行期望的代码;同样的,所述终端也能够通过检查所述服务器上的TLS证书是否有效,并使用所述TLS证书上的公钥对所述服务器进行身份验证。因此,所有数据在离开所述Enclave和所述引用Enclave之前都是经过加密的;所述终端是安全的,所述应用程序的的代码是不能被篡改的;所述服务器也是安全的,所述服务器上的内部人员也不能篡改正在运行的代码或服务的内存。
通过本发明的上述实施例3可见,本发明的一种基于SGX的安全验证装置中,所述内存分配模块402利用内存映射和安全隔离技术在终端为软件创建可信赖的执行环境Enclave,以确保系统监控模块不被篡改或被不信任内核绕过。所述第一软件特征值提取模块404和所述证书判断模块405通过特征匹配算法,提取并将所述软件分别在终端和服务器上的所述第一软件特征值和所述第二软件特征值进行匹配,确保软件的合法性。所述运行数据发送模块406通过将启动的所述软件的运行数据以日志的方式发送到所述服务器,以使所述服务器使用SGX远程认证计算监控所述软件的运行数据,保护终端密钥和数据的机密性和完整性,从而确保终端软件运行的合法性为安全运行提供可靠的保证。
实施例4
请参阅图5,本发明提供了一种基于SGX的安全监控装置,包括:
软件提供模块501,用于接收终端发送的下载请求指令,并根据所述下载请求指令向所述终端提供相应的软件下载;
软件特征值匹配模块502,用于接收所述终端发送的验证服务请求,并根据所述验证服务请求将所述软件在所述终端提取的第一软件特征值和所述软件在本地保存的第二软件特征值进行匹配,并根据匹配结果向所述终端发送受保护的证书;以使所述终端调用所述Enclave的证书匹配函数判断是否对所述证书进行信任;当判断信任所述证书时,允许所述软件启动;其中,
所述验证服务请求为所述终端将所述第一软件特征值封装而成;所述第一软件特征值为所述终端在创建与所述软件对应的Enclave,同时为所述Enclave分配内存并将所述软件从本地存储空间转移到所述Enclave内存空间后,调用enclave中的内存读取函数和分析函数所获取;
软件监控模块503,用于接收所述终端以日志方式发送的启动的所述软件的运行数据,并使用SGX远程认证计算监控所述软件的运行数据。
需要说明的是,所述证书为所述服务器根据所述匹配结果生成的受保护的信任证书;当对所述证书判断为信任时,在本地安装公钥,而所述服务器拥有受保护的所述证书的密钥。
在本实施例中,所述软件可为系统软件、应用软件和介于这两者之间的中间件,具体包括但不限于电脑程序、应用程序和手机APP。
在本实施例中,所述第一软件特征值为所述软件在所述Enclave内存中的内存数据如起始地址、所述软件的占用空间大小以及所述软件的版本信息中的任意一种进行哈希运算得到的哈希值。需要说明的是,所述第二软件特征值为所述软件在所述服务器中的内存数据如起始地址、所述软件的占用空间大小以及所述软件的版本信息中的任意一种与对所述第一软件特征值进行相同的哈希运算得到的哈希值。所述软件特征值匹配模块502将所述第一软件特征值与所述第二软件特征值进行匹配。可以理解的是,当匹配成功时,所述软件特征值匹配模块502向所述终端发送的所述证书是信任的;当匹配失败时,软件特征值匹配模块502向所述终端发送的所述证书是不信任的。进一步地,当所述终端接收到所述证书并判断对所述证书进行信任时,允许所述软件启动;当所述终端判断对所述证书进行不信任时,阻止所述软件启动。
在本实施例中,所述软件监控模块503接收所述终端以日志方式发送的启动的所述软件的运行数据,并使用SGX远程认证计算监控所述软件的运行数据,具体包括如下步骤:
接收所述终端发送的包含数字签名、电子文件以及签名证书的公钥的报告;其中,所述电子文件由所述终端将所述运行数据以日志方式在所述Enclave中生成并被签名;所述数字签名为用签名私钥对所述数字摘要MD1做非对称加密;所述数字摘要MD1为所述终端对所述电子文件做哈希算法得到的第一哈希值;
利用所述公钥解密数字签名,并导出所述数字摘要MD1;
对所述电子文件做哈希算法得到第二哈希值即数字摘要MD2,并将所述第一哈希值和所述第二哈希值进行比较;
当所述第一哈希值和所述第二哈希值相同时,签名验证成功,允许所述终端的数据访问;
将所述签名验证结果发送至所述终端,以使所述终端允许所述软件继续运行。
可以理解的是,当所述第一哈希值和所述第二哈希值不相同时,则证明数据已被篡改,拒绝所述签名,即签名验证失败,所述服务器将拒绝所述终端的数据访问。同样地,当所述终端接收到签名验证失败的信息后,终止所述软件继续运行。
需要说明的是,所述哈希运算包括但不限于MD4运算,MD5运算,SHS运算,且获取所述第一哈希值对电子文件做的哈希算法与获取所述第二哈希值做的哈希算法是相同的算法,即为MD4运算,MD5运算,SHS运算中的任意一种。
在本实施例中,所述报告,是由所述终端启用SGX硬件将所述数字签名、所述电子文件和数字证书的公钥封装在一起生成报告,可以理解的是,启用SGX硬件生成所述报告,即生成所述Enclave的完整性保护语句。
可以理解的是,在本实施例中,所述终端上的Enclave和所述服务器上的引用Enclave通过TLS(安全传输层协议)连接,即在所述终端和所述服务器之间建立一个安全通道,用于通过远程认证来验证Enclave中运行的所述应用软件的代码。所述终端能够提供一个签名的语句,指示哪些代码已经加载到Enclave中,然后所述服务器将通过对所述签名的语句进行签名验证,以验证所述终端是否正在运行期望的代码;同样的,所述终端也能够通过检查所述服务器上的TLS证书是否有效,并使用所述TLS证书上的公钥对所述服务器进行身份验证。因此,所有数据在离开所述Enclave和所述引用Enclave之前都是经过加密的;所述终端是安全的,所述应用程序的的代码是不能被篡改的;所述服务器也是安全的,所述服务器上的内部人员也不能篡改正在运行的代码或服务的内存。
通过本发明的上述实施例4可见,本发明的另一种基于SGX的安全验证装置中,所述软件特征值匹配模块502通过特征匹配算法将所述第一软件特征值和所述第二软件特征值进行匹配,确保软件的合法性。所述软件监控模块503通过接收所述终端以日志方式发送的启动的所述软件的运行数据,并使用SGX远程认证计算监控所述软件的运行数据,保护终端密钥和数据的机密性和完整性,从而确保终端软件运行的合法性为安全运行提供可靠的保证。
实施例5
本发明还提供了另一种基于SGX的安全监控装置,包括基于SGX的处理器,存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时,实现基于SGX的安全监控方法。
请参阅图6,图6是本发明实施例提供的另一种基于SGX的安全监控装置的结构示意图,用于执行本发明实施例提供的基于SGX的安全监控方法,如图6所示,该安全监控装置包括:至少一个基于SGX的处理器601,例如CPU,至少一个通信总线602,至少其他用户接口603或者一个网络接口604,存储器605。所述通信总线602用于实现这些组件之间的连接通信。其中,所述用户接口603可选的可以包括USB接口以及其他标准接口、有线接口。所述网络接口604可选的可以包括Wi-Fi接口以及其他无线接口。所述存储器605可能包含高速RAM存储器,也可能还包括非不稳定的存储器(Non-Volatile Memory),例如至少一个磁盘存储器。所述存储器605可选的可以包含至少一个位于远离所述基于SGX的处理器601的存储装置。在一些实施方式中,所述存储器605存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统6051包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务;应用模块6052,包含设备控制服务程序、设备识别服务程序等各种计算机应用程序,用于实现各种应用业务。
实施例6
本发明还提供了一种基于SGX的存储介质,所述存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述存储介质所在设备执行基于SGX的安全认证方法。
其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
实施例7
本发明还提供了一种基于SGX的安全监控系统,包括:终端及服务器;
所述终端,用于向服务器发送下载请求指令;
所述服务器,用于接收所述终端发送的所述下载请求指令,并根据所述下载请求指令向所述终端提供相应的软件下载;
所述终端,还用于创建与所述软件对应的Enclave,同时为所述Enclave分配内存并将所述软件从本地存储空间转移到所述Enclave内存空间;
所述终端,还用于调用enclave中的内存读取函数和分析函数,获取所述软件在本地的第一软件特征值;将所述第一软件特征值封装为验证服务请求,并将所述验证服务请求发送至所述服务器;
所述服务器,还用于将所述第一软件特征值与所述软件在本地保存的第二软件特征值进行匹配,并根据匹配结果向所述终端发送受保护的证书;
所述终端,还用于调用所述Enclave的证书匹配函数判断是否对所述证书进行信任;当判断信任所述证书时,允许所述软件启动;并将启动的所述软件的运行数据以日志的方式发送到所述服务器;
所述服务器,还用于使用SGX远程认证计算监控所述软件的运行数据。
在本实施例中,所述软件可为系统软件、应用软件和介于这两者之间的中间件,具体包括但不限于应用程序和手机APP。
在本实施例中,所述Enclave为所述终端通过使用SGX技术构建的完全隔离的特权模式。
可以理解的是,所述Enclave在所述终端中被定义为一个隔离且独立的进程,以确保所述应用程序的代码和数据的保密性和完整性。具体的,所述Enclave通过启动初始化程序来初始化一个独立的且加密的存储器,使得对存储器的访问受SGX限制,并且对所述应用程序的外部访问也别限制到代码中识别的入口点。因此加载在所述Enclave中的所述应用程序是经过被测量的,允许SGX硬件向访问的另一方证明预期应用程序被正确地加载和初始化,并且所述Enclave中的所述用用程序与终端上运行的其他应用程序是隔离的。
在本实施例中,所述软件与所述Enclave对应,可以理解的是,在创建Enclave过程中加载的所述应用程序的代码和数据即所述软件的代码和数据。
在本实施例中,所述终端的签名过程,具体为:
将所述运行数据以日志方式在所述Enclave中生成电子文件,并对所述电子文件进行哈希运算得到第一哈希值即数字摘要MD1;
对所述数字摘要MD1进行数字签名,即用签名私钥对所述数字摘要MD1做非对称加密;
启用SGX硬件将所述数字签名、所述电子文件和数字证书的公钥封装在一起生成报告,并发送至所述服务器。
所述服务器的验证过程,具体为:
接收所述终端向所述服务器发送的包含数字签名、电子文件以及签名证书的公钥的报告。所述服务器利用所述公钥解密数字签名,并导出所述数字摘要MD1;
对所述电子文件做哈希算法得到第二哈希值即数字摘要MD2,并将所述第一哈希值和所述第二哈希值进行比较;
当所述第一哈希值和所述第二哈希值相同时,签名验证成功,允许所述终端的数据访问;
将所述签名验证结果发送至所述终端。
可以理解的是,当所述第一哈希值和所述第二哈希值相同时,则证明数据没有被篡改,接受所述签名,即签名验证成功,所述服务器将允许所述终端的数据访问;当所述第一哈希值和所述第二哈希值不相同时,则证明数据已被篡改,拒绝所述签名,即签名验证失败,所述服务器将拒绝所述终端的数据访问。同样地,当所述终端接收到签名验证成功的信息后,允许所述软件继续运行;当所述终端接收到签名验证失败的信息后,终止所述软件继续运行。
需要说明的是,所述启用SGX硬件将所述数字签名、所述电子文件和数字证书的公钥封装在一起生成报告,可以理解的是,启用SGX硬件生成所述报告,即生成所述Enclave的完整性保护语句。
需要说明的是,所述哈希运算包括但不限于MD4运算,MD5运算,SHS运算,且获取所述第一哈希值对电子文件做的哈希算法与获取所述第二哈希值做的哈希算法是相同的算法,即为MD4运算,MD5运算,SHS运算中的任意一种。
在本实施例中,所述第一软件特征值为所述软件在所述Enclave内存中的内存数据如起始地址、所述软件的占用空间大小以及所述软件的版本信息中的任意一种进行哈希运算得到的哈希值;当所述服务器获取的所述第一软件特征值与所述第二软件特征值相同时,则匹配成功。可以理解的是,当匹配成功时,所述服务器向所述终端发送的所述证书是信任的;当匹配失败时,所述服务器向所述终端发送的所述证书是不信任的。进一步地,当所述终端接收到所述证书并判断对所述证书进行信任时,允许所述软件启动;当所述终端判断对所述证书进行不信任时,阻止所述软件启动。
需要说明的是,所述第二软件特征值为所述软件在所述服务器中的内存数据如起始地址、所述软件的占用空间大小以及所述软件的版本信息中的任意一种与对所述第一软件特征值进行相同的哈希运算得到的哈希值;
可以理解的是,在本实施例中,所述终端上的Enclave和所述服务器上的引用Enclave通过TLS(安全传输层协议)连接,即在所述终端和所述服务器之间建立一个安全通道,用于通过远程认证来验证Enclave中运行的所述应用软件的代码。所述终端能够提供一个签名的语句,指示哪些代码已经加载到Enclave中,然后所述服务器将通过对所述签名的语句进行签名验证,以验证所述终端是否正在运行期望的代码;同样的,所述终端也能够通过检查所述服务器上的TLS证书是否有效,并使用所述TLS证书上的公钥对所述服务器进行身份验证。因此,所有数据在离开所述Enclave和所述引用Enclave之前都是经过加密的;所述终端是安全的,所述应用程序的的代码是不能被篡改的;所述服务器也是安全的,所述服务器上的内部人员也不能篡改正在运行的代码或服务的内存。
通过本发明的上述实施例7可见,本发明的一种基于SGX的安全验证系统中,利用内存映射和安全隔离技术在终端为软件创建可信赖的执行环境Enclave,以确保系统监控模块不被篡改或被不信任内核绕过。所述终端提取所述第一软件特征值并将其发送至所述服务器,然后所述服务器将所述第一软件特征值和所述第二软件特征值进行匹配,确保软件的合法性。所述终端提将启动的所述软件的运行数据以日志的方式发送到所述服务器,然后所述服务器使用SGX远程认证计算监控所述软件的运行数据,保护终端密钥和数据的机密性和完整性,从而确保终端软件运行的合法性为安全运行提供可靠的保证。
本发明具有以下有益效果:
本发明的基于SGX的安全监控方法、装置、系统及存储介质,基于英特尔SGX框架,利用内存映射和安全隔离技术在终端为软件创建可信赖的执行环境Enclave,以确保系统监控模块不被篡改或被不信任内核绕过。通过特征匹配算法,提取并将所述软件分别在终端和服务器上的第一软件特征值和第二软件特征值进行匹配,确保软件的合法性。还通过将启动的所述软件的运行数据以日志的方式发送到所述服务器,以使所述服务器使用SGX远程认证计算监控所述软件的运行数据,保护终端密钥和数据的机密性和完整性,从而确保终端执行程序的合法性为安全运行提供可靠的保证。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。

Claims (10)

1.一种基于SGX的安全监控方法,其特征在于,包括以下步骤:
向服务器发送下载请求指令,以从所述服务器上下载相应的软件;
创建与所述软件对应的Enclave,同时为所述Enclave分配内存并将所述软件从本地存储空间转移到所述Enclave内存空间;
调用所述enclave中的内存读取函数和分析函数,获取所述软件在本地的第一软件特征值;
将所述第一软件特征值封装为验证服务请求,并将所述验证服务请求发送至所述服务器,以使所述服务器将所述第一软件特征值与所述软件在所述服务器上的第二软件特征值进行匹配,并根据匹配结果向所述终端发送受保护的证书;
调用所述Enclave的证书匹配函数判断是否对所述证书进行信任;当判断信任所述证书时,允许所述软件启动;
将启动的所述软件的运行数据以日志的方式发送到所述服务器,以使所述服务器使用SGX远程认证计算监控所述软件的运行数据。
2.根据权利要求1所述的安全监控方法,其特征在于,所述第一软件特征值为所述软件在所述Enclave内存中的内存数据进行哈希运算得到的哈希值;所述第二软件特征值为所述服务器上保存的所述软件的特征值;当所述服务器获取的所述第一软件特征值与所述第二软件特征值相同时,则匹配成功。
3.根据权利要求1所述的安全监控方法,其特征在于,所述证书为所述服务器根据所述匹配结果生成的受保护的信任证书;当对所述证书判断为信任时,在本地安装公钥,而所述服务器拥有受保护的所述证书的密钥。
4.一种基于SGX的安全监控方法,其特征在于,包括以下步骤:
接收终端发送的下载请求指令,并根据所述下载请求指令向所述终端提供相应的软件下载;
接收所述终端发送的验证服务请求,并根据所述验证服务请求将所述软件在所述终端提取的第一软件特征值和所述软件在本地保存的第二软件特征值进行匹配,并根据匹配结果向所述终端发送受保护的证书;
以使所述终端调用所述Enclave的证书匹配函数判断是否对所述证书进行信任;当判断信任所述证书时,允许所述软件启动;其中,
所述验证服务请求为所述终端将所述第一软件特征值封装而成;所述第一软件特征值为所述终端在创建与所述软件对应的Enclave,同时为所述Enclave分配内存并将所述软件从本地存储空间转移到所述Enclave内存空间后,调用enclave中的内存读取函数和分析函数所获取;
接收所述终端以日志方式发送的启动的所述软件的运行数据,并使用SGX远程认证计算监控所述软件的运行数据。
5.根据权利要求4所述的安全监控方法,其特征在于,所述接收所述终端以日志方式发送的启动的所述软件的运行数据,并使用SGX远程认证计算监控所述软件的运行数据,具体包括如下步骤:
接收所述终端发送的包含数字签名、电子文件以及签名证书的公钥的报告;其中,所述电子文件由所述终端将所述运行数据以日志方式在所述Enclave中生成并被签名;所述数字签名为用签名私钥对所述数字摘要MD1做非对称加密;所述数字摘要MD1为所述终端对所述电子文件做哈希算法得到的第一哈希值;
利用所述签名证书的公钥解密数字签名,并导出所述第一哈希值;
对所述电子文件做哈希算法得到第二哈希值,并将所述第一哈希值和所述第二哈希值进行比较;
当所述第一哈希值和所述第二哈希值相同时,签名验证成功,允许所述终端的数据访问;
将所述签名验证结果发送至所述终端,以使所述终端允许所述软件继续运行。
6.一种基于SGX的安全监控装置,其特征在于,包括:
下载模块,用于向服务器发送下载请求指令,以从所述服务器上下载相应的软件;
内存分配模块,用于创建与所述软件对应的Enclave,同时为所述Enclave分配内存并将所述软件从本地存储空间转移到所述Enclave内存空间;
内存获取模块,用于调用enclave中的内存读取函数和分析函数,获取所述软件在本地的内存数据;
第一软件特征值提取模块,用于根据所述内存数据提取所述软件在本地的第一软件特征值,并将所述第一软件特征值封装为验证服务请求,发送至所述服务器;
证书判断模块,用于调用所述Enclave的证书匹配函数判断是否对所述服务器根据获取的所述第一软件特征值与所述软件在所述服务器上的第二软件特征值进行匹配的匹配结果发送的证书进行信任;当判断信任所述证书时,允许所述软件启动;
运行数据发送模块,用于将启动的所述软件的运行数据以日志的方式发送到所述服务器,以使所述服务器使用SGX远程认证计算监控所述软件的运行数据。
7.一种基于SGX的安全监控装置,其特征在于,包括:
软件提供模块,用于接收终端发送的下载请求指令,并根据所述下载请求指令向所述终端提供相应的软件下载;
软件特征值匹配模块,用于接收所述终端发送的验证服务请求,并根据所述验证服务请求将所述软件在所述终端提取的第一软件特征值和所述软件在本地保存的第二软件特征值进行匹配,并根据匹配结果向所述终端发送受保护的证书;
以使所述终端调用所述Enclave的证书匹配函数判断是否对所述证书进行信任;当判断信任所述证书时,允许所述软件启动;其中,
所述验证服务请求为所述终端将所述第一软件特征值封装而成;所述第一软件特征值为所述终端在创建与所述软件对应的Enclave,同时为所述Enclave分配内存并将所述软件从本地存储空间转移到所述Enclave内存空间后,调用enclave中的内存读取函数和分析函数所获取;
软件监控模块,用于接收所述终端以日志方式发送的启动的所述软件的运行数据,并使用SGX远程认证计算监控所述软件的运行数据。
8.一种基于SGX的安全监控装置,其特征在于,包括基于SGX的处理器,存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1至5任意一项所述的基于SGX的安全监控方法。
9.一种存储介质,其特征在于,所述存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述存储介质所在设备执行如权利要求1至5任意一项所述的基于SGX的安全监控方法。
10.一种基于SGX的安全监控系统,其特征在于,包括:终端及服务器;
所述终端,用于向服务器发送下载请求指令;
所述服务器,用于接收所述终端发送的所述下载请求指令,并根据所述下载请求指令向所述终端提供相应的软件下载;
所述终端,还用于创建与所述软件对应的Enclave,同时为所述Enclave分配内存并将所述软件从本地存储空间转移到所述Enclave内存空间;
所述终端,还用于调用enclave中的内存读取函数和分析函数,获取所述软件在本地的第一软件特征值;将所述第一软件特征值封装为验证服务请求,并将所述验证服务请求发送至所述服务器;
所述服务器,还用于将所述第一软件特征值与所述软件在本地保存的第二软件特征值进行匹配,并根据匹配结果向所述终端发送受保护的证书;
所述终端,还用于调用所述Enclave的证书匹配函数判断是否对所述证书进行信任;当判断信任所述证书时,允许所述软件启动;并将启动的所述软件的运行数据以日志的方式发送到所述服务器;
所述服务器,还用于使用SGX远程认证计算监控所述软件的运行数据。
CN201710695657.8A 2017-08-14 2017-08-14 基于sgx的安全监控方法、装置、系统及存储介质 Active CN107463838B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710695657.8A CN107463838B (zh) 2017-08-14 2017-08-14 基于sgx的安全监控方法、装置、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710695657.8A CN107463838B (zh) 2017-08-14 2017-08-14 基于sgx的安全监控方法、装置、系统及存储介质

Publications (2)

Publication Number Publication Date
CN107463838A true CN107463838A (zh) 2017-12-12
CN107463838B CN107463838B (zh) 2019-10-18

Family

ID=60549735

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710695657.8A Active CN107463838B (zh) 2017-08-14 2017-08-14 基于sgx的安全监控方法、装置、系统及存储介质

Country Status (1)

Country Link
CN (1) CN107463838B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108768978A (zh) * 2018-05-16 2018-11-06 浙江大学 一种基于sgx的远端存储服务方法及系统
CN109063471A (zh) * 2018-07-17 2018-12-21 广州大学 一种sgx运行的保护方法
CN109218364A (zh) * 2017-07-04 2019-01-15 武汉安天信息技术有限责任公司 加密流量数据的监控方法、代理服务器端、待监控客户端和监控系统
CN109510708A (zh) * 2018-10-24 2019-03-22 中国科学院信息工程研究所 一种基于Intel SGX机制的公钥密码计算方法和系统
CN109561110A (zh) * 2019-01-19 2019-04-02 北京工业大学 一种基于sgx的云平台审计日志保护方法
CN109993003A (zh) * 2019-03-12 2019-07-09 广州大学 一种基于sgx的软件流安全验证方法及装置
CN109995776A (zh) * 2019-03-26 2019-07-09 西安纸贵互联网科技有限公司 一种互联网数据验证方法及系统
CN110289954A (zh) * 2019-06-25 2019-09-27 大唐高鸿信安(浙江)信息科技有限公司 一种密钥处理方法及装置
CN107463838B (zh) * 2017-08-14 2019-10-18 广州大学 基于sgx的安全监控方法、装置、系统及存储介质
TWI716078B (zh) * 2018-11-16 2021-01-11 開曼群島商創新先進技術有限公司 可信應用程式的遠端證明方法及裝置、電子設備
CN112487450A (zh) * 2020-11-30 2021-03-12 银盛支付服务股份有限公司 一种文件服务器访问分级方法
CN113261252A (zh) * 2018-10-16 2021-08-13 华为技术有限公司 用于安全服务器通信的节点和方法
CN113302893A (zh) * 2019-01-08 2021-08-24 华为技术有限公司 用于信任验证的方法及装置
CN115514584A (zh) * 2022-11-16 2022-12-23 北京锘崴信息科技有限公司 服务器以及金融相关服务器的可信安全认证方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105389513A (zh) * 2015-11-26 2016-03-09 华为技术有限公司 一种虚拟可信平台模块vTPM的可信执行方法和装置
CN106796638A (zh) * 2014-09-25 2017-05-31 迈克菲股份有限公司 使用飞地认证进行数据验证
CN106845168A (zh) * 2016-12-20 2017-06-13 西安电子科技大学 一种面向远程计算的控制流隐藏方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107463838B (zh) * 2017-08-14 2019-10-18 广州大学 基于sgx的安全监控方法、装置、系统及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106796638A (zh) * 2014-09-25 2017-05-31 迈克菲股份有限公司 使用飞地认证进行数据验证
CN105389513A (zh) * 2015-11-26 2016-03-09 华为技术有限公司 一种虚拟可信平台模块vTPM的可信执行方法和装置
CN106845168A (zh) * 2016-12-20 2017-06-13 西安电子科技大学 一种面向远程计算的控制流隐藏方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Q7318: "Intel SGX 技术初探", 《HTTPS://BLOG.CSDN.NET/U010071291/ARTICLE/DETAILS/52750372》 *
VICTOR COSTAN,ET AL: "Intel SGX Explained", 《HTTPS://EPRINT.IACR.ORG/2016/086.PDF》 *

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109218364A (zh) * 2017-07-04 2019-01-15 武汉安天信息技术有限责任公司 加密流量数据的监控方法、代理服务器端、待监控客户端和监控系统
CN107463838B (zh) * 2017-08-14 2019-10-18 广州大学 基于sgx的安全监控方法、装置、系统及存储介质
CN108768978A (zh) * 2018-05-16 2018-11-06 浙江大学 一种基于sgx的远端存储服务方法及系统
CN109063471A (zh) * 2018-07-17 2018-12-21 广州大学 一种sgx运行的保护方法
CN113261252A (zh) * 2018-10-16 2021-08-13 华为技术有限公司 用于安全服务器通信的节点和方法
CN109510708B (zh) * 2018-10-24 2021-07-13 中国科学院信息工程研究所 一种基于Intel SGX机制的公钥密码计算方法和系统
CN109510708A (zh) * 2018-10-24 2019-03-22 中国科学院信息工程研究所 一种基于Intel SGX机制的公钥密码计算方法和系统
TWI716078B (zh) * 2018-11-16 2021-01-11 開曼群島商創新先進技術有限公司 可信應用程式的遠端證明方法及裝置、電子設備
CN113302893A (zh) * 2019-01-08 2021-08-24 华为技术有限公司 用于信任验证的方法及装置
CN109561110A (zh) * 2019-01-19 2019-04-02 北京工业大学 一种基于sgx的云平台审计日志保护方法
CN109561110B (zh) * 2019-01-19 2021-06-04 北京工业大学 一种基于sgx的云平台审计日志保护方法
CN109993003A (zh) * 2019-03-12 2019-07-09 广州大学 一种基于sgx的软件流安全验证方法及装置
CN109995776A (zh) * 2019-03-26 2019-07-09 西安纸贵互联网科技有限公司 一种互联网数据验证方法及系统
CN109995776B (zh) * 2019-03-26 2021-10-26 西安纸贵互联网科技有限公司 一种互联网数据验证方法及系统
CN110289954A (zh) * 2019-06-25 2019-09-27 大唐高鸿信安(浙江)信息科技有限公司 一种密钥处理方法及装置
CN110289954B (zh) * 2019-06-25 2022-02-25 大唐高鸿信安(浙江)信息科技有限公司 一种密钥处理方法及装置
CN112487450A (zh) * 2020-11-30 2021-03-12 银盛支付服务股份有限公司 一种文件服务器访问分级方法
CN112487450B (zh) * 2020-11-30 2024-08-13 银盛支付服务股份有限公司 一种文件服务器访问分级方法
CN115514584A (zh) * 2022-11-16 2022-12-23 北京锘崴信息科技有限公司 服务器以及金融相关服务器的可信安全认证方法

Also Published As

Publication number Publication date
CN107463838B (zh) 2019-10-18

Similar Documents

Publication Publication Date Title
CN107463838B (zh) 基于sgx的安全监控方法、装置、系统及存储介质
CN110138799B (zh) 一种基于sgx的安全云存储方法
US10511436B1 (en) Protecting key material using white-box cryptography and split key techniques
CN111404696B (zh) 协同签名方法、安全服务中间件、相关平台及系统
CN109218260B (zh) 一种基于可信任环境的认证保护系统及方法
CN113014539B (zh) 一种物联网设备安全保护系统及方法
CN112000951B (zh) 一种访问方法、装置、系统、电子设备及存储介质
CN109726588B (zh) 基于信息隐藏的隐私保护方法和系统
CN103843303A (zh) 虚拟机的管理控制方法及装置、系统
WO2016019790A1 (zh) 一种安装包的校验方法、客户端、服务器及系统
CN109145628B (zh) 一种基于可信执行环境的数据采集方法及系统
CN112257086B (zh) 一种用户隐私数据保护方法及电子设备
CN106295350B (zh) 一种可信执行环境的身份验证方法、装置及终端
WO2017193750A1 (zh) 一种防止拷贝攻击的处理方法、服务器及客户端
JP2009175923A (ja) プラットフォーム完全性検証システムおよび方法
CN112559993A (zh) 身份认证方法、装置、系统及电子设备
US20170201528A1 (en) Method for providing trusted service based on secure area and apparatus using the same
CN112632562B (zh) 设备启动方法、设备管理方法和嵌入式设备
KR101107056B1 (ko) 클라우드 컴퓨팅 환경에서 가상 머신의 보안 정보 처리 방법
CN115563588A (zh) 一种软件离线鉴权的方法、装置、电子设备和存储介质
WO2022173373A1 (en) Secure module and method for app-to-app mutual trust through app-based identity
CN114697107A (zh) 通信方法、装置、计算机设备和可读存储介质
CN114329522A (zh) 一种私钥保护方法、装置、系统及存储介质
CN111753308B (zh) 一种信息验证方法及电子设备
CN114070548A (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
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20171212

Assignee: SHENZHEN CDTECH ELECTRONICS CO.,LTD.

Assignor: Guangzhou University

Contract record no.: X2022980025694

Denomination of invention: SGX based security monitoring method, device, system and storage medium

Granted publication date: 20191018

License type: Common License

Record date: 20221208

Application publication date: 20171212

Assignee: SHENZHEN SNAPPER TECHNOLOGY CO.,LTD.

Assignor: Guangzhou University

Contract record no.: X2022980025153

Denomination of invention: SGX based security monitoring method, device, system and storage medium

Granted publication date: 20191018

License type: Common License

Record date: 20221207

EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20171212

Assignee: SHENZHEN BANNER CLOUD INTELLIGENCE TECHNOLOGY CO.,LTD.

Assignor: Guangzhou University

Contract record no.: X2022980025178

Denomination of invention: SGX based security monitoring method, device, system and storage medium

Granted publication date: 20191018

License type: Common License

Record date: 20221208

Application publication date: 20171212

Assignee: SHENZHEN COMSTAR TECHNOLOGY CO.,LTD.

Assignor: Guangzhou University

Contract record no.: X2022980025172

Denomination of invention: SGX based security monitoring method, device, system and storage medium

Granted publication date: 20191018

License type: Common License

Record date: 20221208

Application publication date: 20171212

Assignee: Shenzhen Barium Rhenium Technology Co.,Ltd.

Assignor: Guangzhou University

Contract record no.: X2022980025124

Denomination of invention: SGX based security monitoring method, device, system and storage medium

Granted publication date: 20191018

License type: Common License

Record date: 20221208

Application publication date: 20171212

Assignee: Guangdong Changyu Intelligent Technology Co.,Ltd.

Assignor: Guangzhou University

Contract record no.: X2022980025115

Denomination of invention: SGX based security monitoring method, device, system and storage medium

Granted publication date: 20191018

License type: Common License

Record date: 20221208

EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20171212

Assignee: SHENZHEN HUAHUI DATA SERVICE Co.,Ltd.

Assignor: Guangzhou University

Contract record no.: X2022980026331

Denomination of invention: SGX-based security monitoring methods, devices, systems and storage media

Granted publication date: 20191018

License type: Common License

Record date: 20230103

EE01 Entry into force of recordation of patent licensing contract