CN108306740B - 一种Intel SGX状态一致保护方法和系统 - Google Patents

一种Intel SGX状态一致保护方法和系统 Download PDF

Info

Publication number
CN108306740B
CN108306740B CN201810058723.5A CN201810058723A CN108306740B CN 108306740 B CN108306740 B CN 108306740B CN 201810058723 A CN201810058723 A CN 201810058723A CN 108306740 B CN108306740 B CN 108306740B
Authority
CN
China
Prior art keywords
state
hash value
remote
security zone
execution state
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
CN201810058723.5A
Other languages
English (en)
Other versions
CN108306740A (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.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201810058723.5A priority Critical patent/CN108306740B/zh
Publication of CN108306740A publication Critical patent/CN108306740A/zh
Priority to US16/169,632 priority patent/US11080371B2/en
Application granted granted Critical
Publication of CN108306740B publication Critical patent/CN108306740B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/305Authentication, i.e. establishing the identity or authorisation of security principals by remotely controlling device operation
    • 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/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1443Transmit or communication errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Mathematical Physics (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种Intel SGX状态一致保护方法和系统,其中,一种针对可构建安全区的中央处理器的状态一致保护方法中,中央处理器支持构建至少一个安全区,其中,中央处理器以远程方式与为其提供服务的远程服务器通信,远程服务器具有远程验证模块,将远程验证模块设定为协助完成每次执行状态保存操作和/或每次执行状态恢复操作,远程验证是中央处理器向远程服务器证明其在本地平台上建立了特定安全区以使特定安全区获取远程服务器的信任的验证机制。本发明不依赖特殊硬件且平台迁移效果好。

Description

一种Intel SGX状态一致保护方法和系统
技术领域
本发明涉及云计算和信息安全技术领域,更具体地,涉及一种Intel SGX状态一致保护方法和系统。
背景技术
Intel SGX全称Intel Software Guard Extension,是Intel指令集架构的扩展。SGX可信执行技术是Intel在2013年提出来的,当时主要提出了SGX的概念和原理,但是没有硬件。随后SGX不断发展改进,有两个版本分别是SGX1和SGX2。直到两年后,第一代支持SGX的处理器才问世,版本为SGX1。Intel SGX新引入了十几条指令,用于创建可信执行环境Enclave来保护用户应用程序安全执行。这种方式并不是识别和隔离平台上的所有恶意软件,而是将合法软件的安全操作封装在一个enclave中,保护其不受恶意软件的攻击,特权或者非特权的软件都无法访问enclave,也就是说,一旦软件和数据位于enclave中,即便操作系统或者和VMM(Hypervisor)也无法影响enclave里面的代码和数据。Enclave的安全边界只包含CPU和它自身。SGX创建的enclave也可以理解为一个可信执行环境TEE(TrustedExecution Environment)。
另外,应当注意的是,并不是仅仅只有Intel公司具有在中央处理器上构建安全区的技术。比如,ARM公司也有相应的技术,ARM TrustZone(TZ),两者的区别在于,TZ中通过CPU划分为两个隔离环境(安全世界和正常世界),两者之间通过SMC指令通信;而Intel SGX中一个CPU可以运行多个enclaves,并发执行亦可。当然,在TZ的安全世界内部实现多个相互隔离的安全服务亦可达到与运行多个enclaves同样的效果。
云计算在给人们带来巨大便利的同时也产生了不可忽视的安全问题。自2013年“棱镜门”事件被曝光之后,世界各国纷纷开始关注信息安全,云安全是其中必不可少的一部分。可信执行环境作为一种可信计算技术,成为云环境中保护应用程序安全的重要工具。有很多方法用于构建可信执行环境,如采用虚拟化隔离、基于硬件的隔离等,目前基于硬件的隔离最常用的方法是采用Intel SGX。
Intel SGX主要保护用户应用程序的地址空间。支持SGX的BIOS在系统启动时,会在内存中划分出一部分区域,由Enclave Page Cache(EPC)组成,这部分内存映射到应用程序地址空间中的Enclave部分。为了防止已知的内存攻击(如,内存嗅探),这部分内存是加密的。采用Intel SGX技术的应用程序会包含若干个Enclave动态库,在应用程序执行时,加载器会将应用程序的Enclave动态库加载到EPC中,其他部分加载到普通内存。当处理器需要访问Enclave中数据时,处理器自动切换到一个新的CPU模式,叫做Enclave模式。Enclave模式会强制对每一个内存访问进行额外的安全硬件检查。EPC中的内容由处理器中的内存加密引擎(MEE)进行加解密,EPC中的内容只有进入CPU Package时,才会解密;返回EPC中会被加密。在整个Enclave的执行过程中,只有在处理器中数据才会解密,因此,数据的机密性能很好的保证。
通常,可信执行环境会面临状态一致性问题。以Intel SGX技术为例,当系统崩溃、掉电、应用迁移时,Intel SGX会采用Seal操作将执行状态保存在磁盘中,然后在合适的时候通过Unseal操作恢复执行。攻击者虽然不能修改磁盘上的状态信息,但是在Intel SGX恢复执行时,可以提供一个过时的状态给Intel SGX,即回滚攻击。此外,还有一种Forking攻击,为一个执行上下文开启多个实例,造成执行上下文具有多个状态,进而实施普通的回滚攻击。这些攻击会破坏数据的完整性,对于有状态应用,影响很大。如对于需要维护用户余额和交易记录的金融软件,使用过时的状态恢复应用执行,会带来严重的影响。
现有的一些针对可构建安全区的中央处理器的状态一致保护策略虽然可在一定程度上缓解该问题,但存在需要特殊硬件支持、效果不佳、平台迁移差等问题。目前还缺乏一种不依赖特殊硬件且平台迁移效果好的状态一致保护机制。
发明内容
针对现有技术之不足,本发明提供了一种Intel SGX状态一致保护方法和系统。本发明通过利用远程验证所建立的安全通道,实现了一种不依赖特殊硬件且平台迁移效果好的状态一致保护机制,由此解决了现有一些基于特殊硬件状态一致保护机制的性能差、平台迁移效果差等问题。
根据一个优选实施方式,一种针对可构建安全区的中央处理器的状态一致保护方法,特别是Intel SGX状态一致保护方法,其中,所述中央处理器支持构建至少一个安全区,其中,所述中央处理器以远程方式与为其提供服务的远程服务器通信,所述远程服务器具有远程验证模块,将所述远程验证模块设定为协助完成每次执行状态保存操作和/或每次执行状态恢复操作;所述执行状态保存操作包括:在中央处理器上的一个特定安全区需要保存执行状态时,计算待保存执行状态的hash值,所述特定安全区利用远程验证时建立的安全加密通道将所述待保存执行状态的hash值和对应的状态保存请求发送给所述远程验证模块,和所述特定安全区根据所述远程验证模块对状态保存请求的响应情况进行状态保存或错误处理;所述执行状态恢复操作包括:在需要对所述特定安全区的保存状态进行恢复时,预先恢复一个保存状态作为当前执行状态,计算当前执行状态的hash值,所述特定安全区发起远程验证请求,由所述远程验证模块传回其保存的最新状态的hash值并将其与当前执行状态的hash值进行比较,在最新状态的hash值与当前执行状态的hash值相同时,则当前执行状态为最新状态,执行状态恢复操作结束,和/或在最新状态的hash值与当前执行状态的hash值不同时,继续尝试恢复特定安全区的下一个保存状态;其中,所述远程验证是所述中央处理器向远程服务器证明其在本地平台上建立了特定安全区以使特定安全区获取远程服务器的信任的验证机制。
根据一个优选实施方式,所述远程验证模块被配置为:在所述特定安全区与所述远程服务器之间建立安全加密通道和验证所述特定安全区中代码的完整性、特定安全区编号、启动编号和待保存执行状态的hash值,在协助完成执行状态保存操作之时,记录特定安全区编号、启动编号和待保存执行状态的hash值,在特定安全区最初创建并初始化后,对应生成一个初始的启动编号,每次状态保存时,启动编号顺序递增,和在协助完成执行状态恢复操作之时,根据特定安全区编号返回最新状态的hash值和启动编号。
根据一个优选实施方式,所述远程验证模块接收到所述待保存执行状态的hash值和所述状态保存请求后,查找远程服务器上所述待保存执行状态的hash值的存在情况,在所述待保存执行状态的hash值不存在的情况下,同意所述状态保存请求,在所述待保存执行状态的hash值已存在的情况下,拒绝所述状态保存请求并反馈状态已存在。
根据一个优选实施方式,在所述远程验证模块同意所述状态保存请求后,所述特定安全区通过三次握手向所述远程服务器发送状态已经保存标志,在三次握手成功的情况下,则双方确定完成所述特定安全区的状态保存,远程验证模块保存所述待保存执行状态的hash值并将启动编号顺序递增后保存,在进行预设轮数的三次握手失败之后,所述特定安全区删除本次已经保存的特定安全区的状态,所述远程验证模块删除所述待保存执行状态的hash值。
根据一个优选实施方式,所述继续尝试恢复特定安全区的下一个保存状态的处理包括:在所述特定安全区存在下一个保存状态的情况下,先恢复下一个保存状态作为当前执行状态,并计算当前执行状态的hash值,将远程验证模块传回的最新状态的hash值与当前执行状态的hash值进行比较,在最新状态的hash值与当前执行状态的hash值相同的情况下,则当前执行状态为最新状态,执行状态恢复操作结束,和/或在最新状态的hash值与当前执行状态的hash值不同的情况下,再次尝试恢复特定安全区的下一个保存状态。
根据一个优选实施方式,所述方法还包括:在所述特定安全区保存的所有执行状态的hash值都与远程验证模块传回的最新状态的hash值不同的情况下,选择启动编号最大的保存状态进行恢复并返回不是最新状态提示。
根据一个优选实施方式,所述方法还包括:在特定安全区和远程验证模块建立通信后,特定安全区和远程验证模块根据当前通信网络的延迟状态和/或特定安全区的第一重要程度约定双方通信过程中各消息的超时时间,以在相应消息的确认信息超过约定的超时时间之时重新发送相应消息。
根据一个优选实施方式,所述特定安全区和远程验证模块根据当前通信网络的延迟状态和/或特定安全区的第一重要程度约定双方通信过程中各消息的超时时间的处理包括:在远程验证模块每次收到状态保存请求后,所述特定安全区和远程验证模块根据当前通信网络的延迟状态和/或特定安全区的第一重要程度约定双方通信过程中与本次状态保存有关的消息的超时时间。
本发明还公开了一种通信系统,所述系统至少包括第一通信终端和第二通信终端,其中,第一通信终端的第一中央处理器和第二通信终端的第二中央处理器均支持构建至少一个安全区,其中,所述第一通信终端以远程通信方式与为其提供服务的所述第二通信终端通信,所述第二通信终端具有远程验证模块,所述远程验证模块连接于所述第二中央处理器,将所述远程验证模块设定为协助完成每次执行状态保存操作和/或每次执行状态恢复操作;所述执行状态保存操作包括:在第一中央处理器上的一个特定安全区需要保存执行状态时,计算待保存执行状态的hash值,所述特定安全区通过远程验证时建立的安全加密通道将所述待保存执行状态的hash值和对应的状态保存请求发送给所述远程验证模块,和所述特定安全区根据所述远程验证模块对状态保存请求的响应情况进行状态保存或错误处理;所述执行状态恢复操作包括:在需要对所述特定安全区的保存状态进行恢复时,预先恢复一个保存状态作为当前执行状态,计算当前执行状态的hash值,所述特定安全区发起远程验证请求,由所述远程验证模块传回其保存的最新状态的hash值并将其与当前执行状态的hash值进行比较,在最新状态的hash值与当前执行状态的hash值相同时,则当前执行状态为最新状态,执行状态恢复操作结束,和/或在最新状态的hash值与当前执行状态的hash值不同时,继续尝试恢复特定安全区的下一个保存状态;其中,所述远程验证是所述第一中央处理器向第二通信终端证明其在本地平台上建立了特定安全区以使特定安全区获取第二通信终端的信任的验证机制。
本发明还公开了一种基于中央处理器硬件的状态一致保护系统,所述系统至少包括第一中央处理器和第二中央处理器,所述第一中央处理器和所述第二中央处理器均支持构建至少一个安全区,其中,所述第一中央处理器以远程通信方式与为其提供服务的所述第二中央处理器通信,将所述第一中央处理器和所述第二中央处理器底层的远程验证协议修改为协助完成每次执行状态保存操作和/或每次执行状态恢复操作,其中,所述远程验证协议是基于第一中央处理器和所述第二中央处理器的验证指令的底层验证机制协议,用于所述第一中央处理器向第二中央处理器证明其在本地平台上建立了特定安全区以使特定安全区获取第二中央处理器的信任。
本发明提供一种Intel SGX状态一致保护方法和系统至少具有如下优势:
(1)将远程验证本身所需的远程验证模块设为协助状态一致保护的相关操作,或者直接将通过修改中央处理器底层的远程验证协议将其设为协助状态一致保护的相关操作,直接利用远程验证时构建的安全加密通道传输信息并进行状态一致验证,不依赖额外特殊硬件,在每次执行上下文保存状态时,无需向特殊硬件写入数据,可以实现安全区保存状态在不同平台上的迁移操作;
(2)在特定安全区进行状态保存时,通过双方在应用层根据当前的网络延迟情况和特定安全区的重要程度约定超时时间,极大地提升了系统的流畅性和可靠性;在特定安全区进行状态恢复时,可以恢复到最新状态或最近状态;
(3)由于本发明工作时,不需要和特定的硬件绑定,整个工作过程对上层完全透明,具有很强的通用性和可移植性。
附图说明
图1是执行状态保存操作的一个优选实施方式的流程示意图;和
图2是执行状态恢复操作的一个优选实施方式的流程示意图。
具体实施方式
下面结合附图进行详细说明。
为了便于理解,在可能的情况下,使用相同附图标记来表示各附图中共同的相似元件。
如在整篇本申请中所使用的那样,词语“可以”系容许含义(即,意味着有可能的)而不是强制性含义(即,意味着必须的)。类似地,词语“包括”意味着包括但不限于。
短语“至少一个”、“一个或多个”以及“和/或”系开放式表达,它们涵盖操作中的关联与分离两者。例如,表述“A、B和C中的至少一个”、“A、B或C中的至少一个”、“A、B和C中的一个或更多个”、“A、B或C”和“A、B和/或C”中的每个分别指单独A、单独B、单独C、A和B一起、A和C一起、B和C一起或A、B和C一起。
术语“一种”或“一个”实体指的是该实体中的一个或多个。这样,术语“一”(或“一”)、“一个或多个”以及“至少一个”在本文中可以交换地使用。还应该注意,术语“包括”、“包含”和“具有”可以交换地使用。
如本文中所使用的那样,术语“自动的”及其变型是指当执行过程或操作时在没有实质性人工输入的情况下完成的任何过程或操作。然而,如果在执行该过程或操作之前接收到该输入,则该过程或操作可以是自动的,即使该过程或操作的执行使用了实质性或非实质性的人工输入。如果这样的输入影响该过程或操作的执行方式,则该人工输入被认为是实质性的。准予执行该过程或操作的人工输入不被视为“实质性的”。
实施例1
本实施例公开一种针对可构建安全区的中央处理器的状态一致保护方法,优选地,特别是一种Intel SGX状态一致保护方法。在不造成冲突或者矛盾的情况下,其他实施例的优选实施方式可以作为本实施例的补充。
优选地,该方法中,中央处理器可以支持构建至少一个安全区。优选地,安全区是中央处理器构建的一个可信执行环境。安全区内可以保护其内的代码和数据不受恶意软件的攻击,特权或者非特权的软件都无法访问安全区。优选地,中央处理器可以构建若干个并发执行的安全区。例如,支持Intel SGX的中央处理器构建若干个并发执行的Enclave。或者,中央处理器可以是在一个安全区内构建若干个子安全区。例如,支持ARM TrustZone的中央处理器构建一个安全世界,在安全世界内构建若干个相互隔离的安全服务。这里的安全世界可以相当于安全区,安全服务可以相当于子安全区。
优选地,该方法中,中央处理器以远程方式与为中央处理器提供服务的远程服务器通信。优选地,中央处理器设置在客户端内。优选地,客户端并非一定是用户终端。比如,客户端也可以是一台服务器,为与之远程连接的设备提供服务。
优选地,远程服务器可以具有远程验证模块。
根据一个优选实施方式,该方法可以包括:将远程验证模块设定为协助完成每次执行状态保存操作和/或每次执行状态恢复操作。目前状态一致保护的方法一般使用计数器和受信任的平台模块(以下简称TPM硬件)构成的方案。通过将执行状态和计数器值一起保存,然后将计数器值保存到TPM硬件中。恢复执行状态时,将执行状态中的计数器值与TPM中的进行比较。如果相同,则恢复,否则,恢复失败。但是TPM硬件只能在当前平台,不能跨平台迁移。而本发明中,由于可构建安全区的中央处理器在构建一个特定安全区后,为使该特定安全区获得远程服务器的信任,本身就需要远程验证。通过该方式,本发明的方法可以利用远程验证所需的硬件基础,实现状态一致保护机制。由此解决现有一些基于特殊硬件状态一致保护机制的性能差、平台迁移效果差等问题。优选地,远程验证模块可以集成于远程服务器之内。尤其优选地,远程验证模块可以集成于远程服务器的中央处理器之内。优选地,远程验证模块例如是能用于处理数据和/或传输数据的专用集成电路(ASIC)、FPGA、CPU、通用计算机或者任何其他硬件等同物中的至少一种。
根据一个优选实施方式,执行状态保存操作可以包括:在中央处理器上的一个特定安全区需要保存执行状态时,计算待保存执行状态的hash值。优选地,特定安全区是指中央处理器构建的某一个具体的安全区。优选地,hash值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文有更改,即使只更改该明文中的一个字母,随后的hash值都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上来说基本上是不可能的。对于本发明,执行状态的hash值是根据执行状态的数据通过逻辑运算得到的数值,不同的执行状态,得到的hash值也是不同的。因此,可以通过计算执行状态的hash值与远程服务器上保存的hash值进行比较,用于状态一致判断和保护。
根据一个优选实施方式,执行状态保存操作还可以包括:特定安全区利用远程验证时建立的安全加密通道将待保存执行状态的hash值和对应的状态保存请求发送给远程验证模块。优选地,远程验证是本地设备向远程设备证明其在本地平台上建立了特定安全区以使特定安全区获取远程设备的信任的验证机制。例如,这里的中央处理器向远程服务器证明其在本地平台上建立了特定安全区以使特定安全区获取远程服务器的信任。具体地,远程验证是通过验证特定安全区是否得到了正确实例化且运行在真正支持可以构建安全区的中央处理器上。仅在通过验证的情况下,服务提供者才会立即信任特定安全区并选择通过已认证渠道向其提供机密信息。以Intel SGX为例,enclave将相应软件的信息摘要与来自运行相应软件的硬件平台的唯一非对称秘钥相组合以生成报告,再通过已认证渠道将报告发送至远程服务器。如果远程服务器基于报告确认Enclave得到了正确实例化且运行在真正支持Intel SGX的处理器上,远程服务器就会立即信任该Enclave并选择通过已认证渠道向其提供机密信息。
根据一个优选实施方式,执行状态保存操作还可以包括:特定安全区根据远程验证模块对状态保存请求的响应情况进行状态保存或错误处理。
根据一个优选实施方式,执行状态恢复操作可以包括:在需要对特定安全区的保存状态进行恢复时,预先恢复一个保存状态作为当前执行状态,计算当前执行状态的hash值。优选地,执行状态恢复时,可以按照启动编号由大到小的顺序尝试状态恢复。比如,本地保存了启动编号为0~7的七个执行状态,则预先恢复启动编号为7的执行状态。
根据一个优选实施方式,执行状态恢复操作可以包括:特定安全区发起远程验证请求,由远程验证模块传回其保存的最新状态的hash值并将其与当前执行状态的hash值进行比较。优选地,最新状态的hash值是远程验证模块上已成功保存的执行状态的hash值。
根据一个优选实施方式,执行状态恢复操作还可以包括:在最新状态的hash值与当前执行状态的hash值相同时,则当前执行状态为最新状态,执行状态恢复操作结束。
根据一个优选实施方式,执行状态恢复操作还可以包括:在最新状态的hash值与当前执行状态的hash值不同时,继续尝试恢复特定安全区的下一个保存状态。
根据一个优选实施方式,远程验证模块可以被配置为:在特定安全区与远程服务器之间建立安全加密通道和验证特定安全区中代码的完整性、特定安全区编号、启动编号和待保存执行状态的hash值。通过该方式,本发明的方法可以直接利用特定安全区与远程服务器建立的安全加密通道完成执行状态保存操作和执行状态恢复操作。无需单独构建加密通道,降低了计算开销、通信开销以及实现难度。
根据一个优选实施方式,远程验证模块还可以被配置为:根据预设方式选择性地验证特定安全区中代码的完整性。优选地,预设方式例如是设置一个验证周期、设置一个验证频率或者随机验证中的至少一种。因为远程验证模块被配置为协助完成每次执行状态保存操作和/或每次执行状态恢复操作后,远程验证的次数与原来相比将大幅增加。每次验证特定安全区中代码的完整性没有必要。因此,通过该方式,可以降低远程验证模块的计算开销,降低硬件成本和提高系统的流畅性。
根据一个优选实施方式,远程验证模块还可以被配置为:在协助完成执行状态保存操作之时,记录特定安全区编号、启动编号和待保存执行状态的hash值,在特定安全区最初创建并初始化后,对应生成一个初始的启动编号,每次状态保存时,启动编号顺序递增。比如,在特定安全区最初创建并初始化后,启动编号为0,每次状态保存时,启动编号加1。通过该方式,可以在恢复时快速定位到相应保存状态,提高状态恢复速度。
根据一个优选实施方式,远程验证模块还可以被配置为:在协助完成执行状态恢复操作之时,根据特定安全区编号返回最新状态的hash值和启动编号。
根据一个优选实施方式,远程验证模块接收到执待保存执行状态的hash值和状态保存请求后,查找远程服务器上待保存执行状态的hash值的存在情况,在待保存执行状态的hash值不存在的情况下,同意状态保存请求,在待保存执行状态的hash值已存在的情况下,拒绝状态保存请求并反馈状态已存在。通过该方式,可以避免重复保存相同状态,降低系统的储存开销和恢复过程的计算开销。
根据一个优选实施方式,在远程验证模块同意状态保存请求后,特定安全区通过三次握手向远程服务器发送状态已经保存标志,在三次握手成功的情况下,则双方确定完成特定安全区的状态保存,远程验证模块保存待保存执行状态的hash值并将启动编号顺序递增后保存,在进行预设轮数的三次握手失败之后,特定安全区删除本次已经保存的特定安全区的状态,远程验证模块删除待保存执行状态的hash值。通过该方式,能够确保双方完成此次特定安全区的状态保存,提高了本发明的可靠性。
根据一个优选实施方式,继续尝试恢复特定安全区的下一个保存状态的处理可以包括:在特定安全区存在下一个保存状态的情况下,先恢复下一个保存状态作为当前执行状态,并计算当前执行状态的hash值,将远程验证模块传回的最新状态的hash值与当前执行状态的hash值进行比较,在最新状态的hash值与当前执行状态的hash值相同的情况下,则当前执行状态为最新状态,执行状态恢复操作结束,和/或在最新状态的hash值与当前执行状态的hash值不同的情况下,再次尝试恢复特定安全区的下一个保存状态。通过该方式,可以在未找到最新状态的时候遍历可用的保持状态尝试进行恢复,提高本发明的可恢复性。
根据一个优选实施方式,该方法还可以包括:在特定安全区保存的所有执行状态的hash值都与远程验证模块传回的最新状态的hash值不同的情况下,选择启动编号最大的保存状态进行恢复并返回不是最新状态提示。通过该方式,本发明可以尽可能地恢复次新状态,并通过返回不是最新状态提示,使得双方快速了解当前恢复状态的情况。
根据一个优选实施方式,该方法还可以包括:在特定安全区和远程验证模块建立通信后,特定安全区和远程验证模块根据当前通信网络的延迟状态和/或特定安全区的第一重要程度约定双方通信过程中各消息的超时时间,以在相应消息的确认信息超过约定的超时时间之时重新发送相应消息。常规的做法是在协议层约定消息的超时时间,这样所有消息的超时时间都是一致的,导致不便于根据实际的网络延迟情况和/或特定安全区的实际重要程度对相应消息的超时时间进行优化设置。在协议层将超时时间设置得过短会极大地提高通信开销,继而还可能导致网络延迟情况加剧,引起恶性循环。将所有安全区发送的消息的超时时间设置为相同时,由于重要程度不同,也不便协调具体的超时时间。本发明通过特定安全区和远程验证模块根据当前通信网络的延迟状态和/或特定安全区的第一重要程度约定双方通信过程中各消息的超时时间,即在应用层约定双方通信过程中各消息的超时时间,不仅可以根据实际的网络延迟情况分析出合理的超时时间,在网络延迟低的时候快速地完成各种操作,提升本发明的效率和可靠性,在网络延迟高的时候能够降低消息重发的频率,防止消息重发增加进一步提升网络延迟,提升本发明的可靠性,还可以根据特定安全区的实际重要程度约定各消息的超时时间,在特定安全的实际重要程度相对较低的时候,约定一个相对较高的超时时间,降低通信开销,在特定安全的实际重要程度相对较高的时候,约定一个相对较低的超时时间,保证状态一致的可靠性。
根据一个优选实施方式,该方法还可以包括:在特定安全区和远程验证模块根据当前通信网络的延迟状态和/或特定安全区的第一重要程度约定双方通信过程中各消息的超时时间之后,远程验证模块还根据特定安全区所处的中央处理器的第二重要程度对所述各消息的超时时间进行调整。由于各安全区所处的中央处理器可以位于不同的客户端,不通过的客户端的用户可能具有不同的重要程度。比如,针对不同用户,远程服务器可以以根据用户的信用等级、平均单笔交易额度和用户账户总额度中的至少一种评判该用户的第二重要程度。越重要的用户对应更高的第二重要程度。通过该方式,可以对优先保证重要度更高的用户相关的安全区的状态一致性,提高用户体验和降低整个过程的潜在风险。
根据一个优选实施方式,特定安全区和远程验证模块根据当前通信网络的延迟状态和/或特定安全区的第一重要程度约定双方通信过程中各消息的超时时间的处理可以包括:在远程验证模块每次收到状态保存请求后,特定安全区和远程验证模块根据当前通信网络的延迟状态和/或特定安全区的第一重要程度约定双方通信过程中与本次状态保存有关的消息的超时时间。通过该方式,本发明可以针对每次状态保存请求发送后实时的网络的延迟状态和/或特定安全区的第一重要程度来约定双方通信过程中与本次状态保存有关的消息的超时时间。使得每次状态保存都具有一个优化的超时时间,极大地优化了与本次状态保存有关地消息的超时时间。使得每次状态保存的时长得到优化,提升本发明的可靠性。比如,假设一段时间内客户端发生崩溃、掉电等故障的次数是一定的,状态保存的时长得到优化后,状态保存的时间在这段时间内所占的比例就小,就能够降低客户端发生故障时处于执行状态保存操作阶段的几率,进一步提高本发明保证状态一致的可靠性。
实施例2
本实施例是对实施例1的进一步改进,重复的内容不再赘述。在不造成冲突或者矛盾的情况下,其他实施例的优选实施方式可以作为本实施例的补充。
本发明还公开了一种通信系统,该系统适于执行本发明记载的各个方法步骤,以达到预期的技术效果。
根据一个优选实施方式,一种通信系统,该系统可以包括第一通信终端和第二通信终端。优选地,第一通信终端的第一中央处理器和第二通信终端的第二中央处理器均可以支持构建至少一个安全区。优选地,第一通信终端以远程通信方式与为其提供服务的第二通信终端通信。优选地,第二通信终端可以具有远程验证模块。优选地,远程验证模块连接于第二中央处理器。或者,远程验证模块集成于第二中央处理器之内。
根据一个优选实施方式,将远程验证模块设定为协助完成每次执行状态保存操作和/或每次执行状态恢复操作。
根据一个优选实施方式,执行状态保存操作可以包括:在第一中央处理器上的一个特定安全区需要保存执行状态时,计算待保存执行状态的hash值,特定安全区通过远程验证时建立的安全加密通道将待保存执行状态的hash值和对应的状态保存请求发送给远程验证模块,和特定安全区根据远程验证模块对状态保存请求的响应情况进行状态保存或错误处理。
优选地,远程验证可以是第一中央处理器向第二通信终端证明其在本地平台上建立了特定安全区以使特定安全区获取第二通信终端的信任的验证机制。
实施例3
本实施例是对实施例1、2或者其结合的进一步改进,重复的内容不再赘述。在不造成冲突或者矛盾的情况下,其他实施例的优选实施方式可以作为本实施例的补充。
本实施例公开了一种基于中央处理器硬件的状态一致保护系统,该系统适于执行本发明记载的各个方法步骤,以达到预期的技术效果。
根据一个优选实施方式,系统可以包括第一中央处理器和第二中央处理器。优选地,第一中央处理器和第二中央处理器均支持构建至少一个安全区。优选地,第一中央处理器以远程通信方式与为其提供服务的第二中央处理器通信。
根据一个优选实施方式,将第一中央处理器和第二中央处理器底层的远程验证协议修改为协助完成每次执行状态保存操作和/或每次执行状态恢复操作。通过直接修改底层的远程验证协议,本实施例的系统可以直接使用第一中央处理器和第二中央处理器的硬件实现状态一致保护,不需要和特定的硬件绑定,整个工作过程对上层完全透明,具有很强的通用性和可移植性。
根据一个优选实施方式,在第一中央处理器上的一个特定安全区需要保存执行状态时,计算待保存执行状态的hash值。
优选地,远程验证协议是基于第一中央处理器和第二中央处理器的验证指令的底层验证机制协议,用于第一中央处理器向第二中央处理器证明其在本地平台上建立了特定安全区以使特定安全区获取第二中央处理器的信任。
优选地,在第二中央处理器协助完成执行状态保存操作之时,记录特定安全区编号、启动编号和待保存执行状态的hash值,在特定安全区最初创建并初始化后,对应生成一个初始的启动编号,每次状态保存时,启动编号顺序递增,和在协助完成执行状态恢复操作之时,第二中央处理器根据特定安全区编号返回最新状态的hash值和启动编号。
根据一个优选实施方式,第一中央处理器可以设置在本地的客户端内。第二中央处理器可以设置在远程服务器内。
根据一个优选实施方式,所述第二中央处理器接收到所述待保存执行状态的hash值和所述状态保存请求后,查找远程服务器上所述待保存执行状态的hash值的存在情况,在所述待保存执行状态的hash值不存在的情况下,同意所述状态保存请求,在所述待保存执行状态的hash值已存在的情况下,拒绝所述状态保存请求并反馈状态已存在。
根据一个优选实施方式,在第二中央处理器同意所述状态保存请求后,所述特定安全区通过三次握手向所述远程服务器发送状态已经保存标志,在三次握手成功的情况下,则双方确定完成所述特定安全区的状态保存,远程服务器保存所述待保存执行状态的hash值并将启动编号顺序递增后保存,在进行预设轮数的三次握手失败之后,所述特定安全区删除本次已经保存的特定安全区的状态,所述远程服务器删除所述待保存执行状态的hash值。
根据一个优选实施方式,所述继续尝试恢复特定安全区的下一个保存状态的处理包括:在所述特定安全区存在下一个保存状态的情况下,先恢复下一个保存状态作为当前执行状态,并计算当前执行状态的hash值,将第二中央处理器传回的最新状态的hash值与当前执行状态的hash值进行比较,
在最新状态的hash值与当前执行状态的hash值相同的情况下,则当前执行状态为最新状态,执行状态恢复操作结束,和/或在最新状态的hash值与当前执行状态的hash值不同的情况下,再次尝试恢复特定安全区的下一个保存状态。
根据一个优选实施方式,该方法还包括:在所述特定安全区保存的所有执行状态的hash值都与第二中央处理器传回的最新状态的hash值不同的情况下,选择启动编号最大的保存状态进行恢复并返回不是最新状态提示。
根据一个优选实施方式,所述方法还包括:在特定安全区和第二中央处理器建立通信后,特定安全区和第二中央处理器根据当前通信网络的延迟状态和/或特定安全区的第一重要程度约定双方通信过程中各消息的超时时间,以在相应消息的确认信息超过约定的超时时间之时重新发送相应消息。
根据一个优选实施方式,特定安全区和第二中央处理器根据当前通信网络的延迟状态和/或特定安全区的第一重要程度约定双方通信过程中各消息的超时时间的处理包括:在第二中央处理器每次收到状态保存请求后,所述特定安全区和第二中央处理器根据当前通信网络的延迟状态和/或特定安全区的第一重要程度约定双方通信过程中与本次状态保存有关的消息的超时时间。
实施例4
本实施例是对实施例1、2、3或者其结合的进一步改进,重复的内容不再赘述。在不造成冲突或者矛盾的情况下,其他实施例的优选实施方式可以作为本实施例的补充。
根据一个优选实施方式,参见图1,执行状态保存操作可以包括以下子步骤:
步骤S110:在特定安全区需要进行状态保存之时,对需要保存的执行状态,计算执行状态的hash值,利用特定安全区与远程验证模块之间的安全加密通道传输执行状态的hash值,然后转至步骤S120;
步骤S120:远程验证模块接收到状态保存请求后,查找执行状态的hash值在远程服务器上的保存情况,在未保存的情况下反馈同意状态保存请求,在已保存的情况下反馈不同意状态保存请求,然后转至步骤S130;
步骤S130:特定安全区接收到状态保存请求响应,判断远程验证模块是否同意状态保存请求,如果是,则转至步骤S140,如果否,转至步骤S170;
步骤S140:特定安全区对当前执行状态进行保存,并利用三次握手向远程验证模块发送状态已经保存标志,转至步骤S150;
步骤S150:判断此次三次握手是否成功,如果是,转至步骤S180,如果否,转至步骤S160;
步骤S160:判断当前三次握手连续失败轮数是否小于五轮,如果是,再次利用三次握手向远程验证模块发送状态已经保存标志并转至步骤S150,如果否,转至步骤S170;
步骤S170:特定安全区删除已经保存的执行状态,远程验证模块删除执行状态的hash值;
步骤S180:双方确定完成特定安全区的状态保存,远程验证模块保存执行状态的hash值并将启动编号加1保存。
根据一个优选实施方式,参见图2,执行状态恢复操作可以包括以下子步骤:
步骤S210:选择磁盘上特定安全区的一个保存状态进行恢复,然后转至步骤S220;
步骤S220:特定安全区向远程验证模块发起验证,建立安全加密通道,并且根据网络的延迟状态,双方约定消息的超时时间,远程验证模块返回最新状态的hash值和启动编号,在响应消息的ACK超时的情况下,则重新发送,然后转至步骤S230;
步骤S230:特定安全区接受到响应消息,立即发送响应消息ACK,然后转至步骤S240;
步骤S240:特定安全区计算当前执行状态的hash值,然后转至步骤S250;
步骤S250:特定安全区将当前执行状态的hash值与远程验证模块返回最近状态的hash值进行比较,判断是否相同,如果是,则当前状态为最新状态,恢复结束,如果否,转至步骤S260;
步骤S260:判断特定安全区是否还有下一个保存状态,如果是,则选择下一个保存状态并将其作为新的当前保存状态,然后转至步骤S220,如果否,转至步骤S270;
步骤S270:选择启动编号最大的状态进行恢复并返回不是最新状态提示,结束。
虽然已经详细描述了本发明,但是在本发明的精神和范围内的修改对于本领域技术人员将是显而易见的。这样的修改也被认为是本公开的一部分。鉴于前面的讨论、本领域的相关知识以及上面结合背景讨论的参考或信息(均通过引用并入本文),进一步的描述被认为是不必要的。此外,应该理解,本发明的各个方面和各个实施例的各部分均可以整体或部分地组合或互换。而且,本领域的普通技术人员将会理解,前面的描述仅仅是作为示例,并不意图限制本发明。
已经出于示例和描述的目的给出了本公开的前述讨论。这并不意图将本公开限制于本文公开的形式。在前述的具体实施方式中,例如,为了简化本公开的目的,本公开的各种特征在一个或多个实施例、配置或方面中被组合在一起。实施例、配置或方面的特征可以以除上面讨论的那些之外的替代实施例、配置或方面组合。本公开的该方法不应被解释为反映本公开需要比每个权利要求中明确记载的更多特征的意图。相反,如以下权利要求所反映的,创造性方面在于少于单个前述公开的实施例、配置或方面的所有特征。因此,以下权利要求由此被并入本具体实施方式中,其中每个权利要求其自身作为本公开的单独实施例。
而且,虽然本公开的描述已经包括对一个或多个实施例、配置或方面以及某些变型和修改的描述,但是其他变型、组合和修改也在本公开的范围内,例如在本领域技术人员的技能和知识范围内,在理解了本公开之后。旨在获得在允许的程度上包括替代实施例、配置或方面的权利,所述权利包括那些要求保护的替代的、可互换的和/或等效的结构、功能、范围或步骤的权利,无论这种替代的、可互换的和/或等效的结构、功能、范围或步骤是否在本文中公开,并且无意公开奉献任何可专利的主题。

Claims (9)

1.一种针对可构建安全区的中央处理器的状态一致保护方法,特别是Intel SGX状态一致保护方法,
其中,所述中央处理器支持构建至少一个安全区,
其中,所述中央处理器以远程方式与为其提供服务的远程服务器通信,所述远程服务器具有远程验证模块,
其特征在于,
将所述远程验证模块设定为协助完成每次执行状态保存操作和/或每次执行状态恢复操作;
所述执行状态保存操作包括:
在中央处理器上的一个特定安全区需要保存执行状态时,计算待保存执行状态的hash值,
所述特定安全区利用远程验证时建立的安全加密通道将所述待保存执行状态的hash值和对应的状态保存请求发送给所述远程验证模块,和
所述特定安全区根据所述远程验证模块对状态保存请求的响应情况进行状态保存或错误处理;
所述执行状态恢复操作包括:
在需要对所述特定安全区的保存状态进行恢复时,预先恢复一个保存状态作为当前执行状态,计算当前执行状态的hash值,
所述特定安全区发起远程验证请求,由所述远程验证模块传回其保存的最新状态的hash值并将其与当前执行状态的hash值进行比较,
在最新状态的hash值与当前执行状态的hash值相同时,则当前执行状态为最新状态,执行状态恢复操作结束,和/或
在最新状态的hash值与当前执行状态的hash值不同时,继续尝试恢复特定安全区的下一个保存状态;
其中,所述远程验证是所述中央处理器向远程服务器证明其在本地平台上建立了特定安全区以使特定安全区获取远程服务器的信任的验证机制;
所述远程验证模块被配置为:在所述特定安全区与所述远程服务器之间建立安全加密通道和验证所述特定安全区中代码的完整性、特定安全区编号、启动编号和待保存执行状态的hash值,
在协助完成执行状态保存操作之时,记录特定安全区编号、启动编号和待保存执行状态的hash值,在特定安全区最初创建并初始化后,对应生成一个初始的启动编号,每次状态保存时,启动编号顺序递增,和
在协助完成执行状态恢复操作之时,根据特定安全区编号返回最新状态的hash值和启动编号;
远程验证模块还被配置为:根据预设方式选择性地验证特定安全区中代码的完整性,预设方式是设置一个验证周期、设置一个验证频率或者随机验证中的至少一种。
2.根据权利要求1所述的方法,其特征在于,所述远程验证模块接收到所述待保存执行状态的hash值和所述状态保存请求后,
查找远程服务器上所述待保存执行状态的hash值的存在情况,
在所述待保存执行状态的hash值不存在的情况下,同意所述状态保存请求,
在所述待保存执行状态的hash值已存在的情况下,拒绝所述状态保存请求并反馈状态已存在。
3.根据权利要求2所述的方法,其特征在于,在所述远程验证模块同意所述状态保存请求后,所述特定安全区通过三次握手向所述远程服务器发送状态已经保存标志,
在三次握手成功的情况下,则双方确定完成所述特定安全区的状态保存,远程验证模块保存所述待保存执行状态的hash值并将启动编号顺序递增后保存,
在进行预设轮数的三次握手失败之后,所述特定安全区删除本次已经保存的特定安全区的状态,所述远程验证模块删除所述待保存执行状态的hash值。
4.根据权利要求1至3之一所述的方法,其特征在于,所述继续尝试恢复特定安全区的下一个保存状态的处理包括:
在所述特定安全区存在下一个保存状态的情况下,先恢复下一个保存状态作为当前执行状态,并计算当前执行状态的hash值,
将远程验证模块传回的最新状态的hash值与当前执行状态的hash值进行比较,
在最新状态的hash值与当前执行状态的hash值相同的情况下,则当前执行状态为最新状态,执行状态恢复操作结束,和/或
在最新状态的hash值与当前执行状态的hash值不同的情况下,再次尝试恢复特定安全区的下一个保存状态。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在所述特定安全区保存的所有执行状态的hash值都与远程验证模块传回的最新状态的hash值不同的情况下,选择启动编号最大的保存状态进行恢复并返回不是最新状态提示。
6.根据权利要求1至3之一所述的方法,其特征在于,所述方法还包括:在特定安全区和远程验证模块建立通信后,特定安全区和远程验证模块根据当前通信网络的延迟状态和/或特定安全区的第一重要程度约定双方通信过程中各消息的超时时间,以在相应消息的确认信息超过约定的超时时间之时重新发送相应消息。
7.根据权利要求6所述的方法,其特征在于,所述特定安全区和远程验证模块根据当前通信网络的延迟状态和/或特定安全区的第一重要程度约定双方通信过程中各消息的超时时间的处理包括:
在远程验证模块每次收到状态保存请求后,所述特定安全区和远程验证模块根据当前通信网络的延迟状态和/或特定安全区的第一重要程度约定双方通信过程中与本次状态保存有关的消息的超时时间。
8.一种通信系统,所述系统至少包括第一通信终端和第二通信终端,
其中,第一通信终端的第一中央处理器和第二通信终端的第二中央处理器均支持构建至少一个安全区,
其中,所述第一通信终端以远程通信方式与为其提供服务的所述第二通信终端通信,所述第二通信终端具有远程验证模块,所述远程验证模块连接于所述第二中央处理器,
其特征在于,
将所述远程验证模块设定为协助完成每次执行状态保存操作和/或每次执行状态恢复操作;
所述执行状态保存操作包括:
在第一中央处理器上的一个特定安全区需要保存执行状态时,计算待保存执行状态的hash值,
所述特定安全区通过远程验证时建立的安全加密通道将所述待保存执行状态的hash值和对应的状态保存请求发送给所述远程验证模块,和
所述特定安全区根据所述远程验证模块对状态保存请求的响应情况进行状态保存或错误处理;
所述执行状态恢复操作包括:
在需要对所述特定安全区的保存状态进行恢复时,预先恢复一个保存状态作为当前执行状态,计算当前执行状态的hash值,
所述特定安全区发起远程验证请求,由所述远程验证模块传回其保存的最新状态的hash值并将其与当前执行状态的hash值进行比较,
在最新状态的hash值与当前执行状态的hash值相同时,则当前执行状态为最新状态,执行状态恢复操作结束,和/或
在最新状态的hash值与当前执行状态的hash值不同时,继续尝试恢复特定安全区的下一个保存状态;
其中,所述远程验证是所述第一中央处理器向第二通信终端证明其在本地平台上建立了特定安全区以使特定安全区获取第二通信终端的信任的验证机制;
所述远程验证模块被配置为:在所述特定安全区与远程服务器之间建立安全加密通道和验证所述特定安全区中代码的完整性、特定安全区编号、启动编号和待保存执行状态的hash值,
在协助完成执行状态保存操作之时,记录特定安全区编号、启动编号和待保存执行状态的hash值,在特定安全区最初创建并初始化后,对应生成一个初始的启动编号,每次状态保存时,启动编号顺序递增,和
在协助完成执行状态恢复操作之时,根据特定安全区编号返回最新状态的hash值和启动编号;
远程验证模块还被配置为:根据预设方式选择性地验证特定安全区中代码的完整性,预设方式是设置一个验证周期、设置一个验证频率或者随机验证中的至少一种。
9.一种基于中央处理器硬件的状态一致保护系统,所述系统至少包括第一中央处理器和第二中央处理器,所述第一中央处理器和所述第二中央处理器均支持构建至少一个安全区,
其中,所述第一中央处理器以远程通信方式与为其提供服务的所述第二中央处理器通信,
其特征在于,
将所述第一中央处理器和所述第二中央处理器底层的远程验证协议修改为协助完成每次执行状态保存操作和/或每次执行状态恢复操作,
其中,所述远程验证协议是基于第一中央处理器和所述第二中央处理器的验证指令的底层验证机制协议,用于所述第一中央处理器向第二中央处理器证明其在本地平台上建立了特定安全区以使特定安全区获取第二中央处理器的信任;
其中,所述系统还包括远程验证模块,所述远程验证模块被配置为:在所述特定安全区与远程服务器之间建立安全加密通道和验证所述特定安全区中代码的完整性、特定安全区编号、启动编号和待保存执行状态的hash值,
在协助完成执行状态保存操作之时,记录特定安全区编号、启动编号和待保存执行状态的hash值,在特定安全区最初创建并初始化后,对应生成一个初始的启动编号,每次状态保存时,启动编号顺序递增,和
在协助完成执行状态恢复操作之时,根据特定安全区编号返回最新状态的hash值和启动编号;
远程验证模块还被配置为:根据预设方式选择性地验证特定安全区中代码的完整性,预设方式是设置一个验证周期、设置一个验证频率或者随机验证中的至少一种。
CN201810058723.5A 2018-01-22 2018-01-22 一种Intel SGX状态一致保护方法和系统 Active CN108306740B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810058723.5A CN108306740B (zh) 2018-01-22 2018-01-22 一种Intel SGX状态一致保护方法和系统
US16/169,632 US11080371B2 (en) 2018-01-22 2018-10-24 Method and system of state consistency protection for Intel SGX

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810058723.5A CN108306740B (zh) 2018-01-22 2018-01-22 一种Intel SGX状态一致保护方法和系统

Publications (2)

Publication Number Publication Date
CN108306740A CN108306740A (zh) 2018-07-20
CN108306740B true CN108306740B (zh) 2020-07-31

Family

ID=62865863

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810058723.5A Active CN108306740B (zh) 2018-01-22 2018-01-22 一种Intel SGX状态一致保护方法和系统

Country Status (2)

Country Link
US (1) US11080371B2 (zh)
CN (1) CN108306740B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110781492B (zh) * 2018-07-31 2023-09-26 阿里巴巴集团控股有限公司 数据处理方法、装置、设备和存储介质
CN111866044B (zh) * 2019-04-29 2024-09-17 华为技术有限公司 数据采集方法、装置、设备及计算机可读存储介质
CN113138797B (zh) * 2020-01-20 2024-04-02 上海交通大学 面向Intel SGX的程序自动化移植系统
CN112286635B (zh) * 2020-10-29 2022-10-25 卓尔智联(武汉)研究院有限公司 一种热迁移的方法、装置及电子设备
CN112395631B (zh) * 2020-11-27 2022-09-20 上海交通大学 基于sgx技术的安全数据库系统、方法及介质
CN112612807B (zh) * 2020-12-31 2022-07-05 浙江融象数科控股有限公司 分布式事务数据一致性系统设计方法
CN117375864A (zh) * 2022-06-30 2024-01-09 华为技术有限公司 远程证明方法、装置、系统、存储介质及计算机程序产品
CN115168872B (zh) * 2022-09-07 2023-01-10 南方科技大学 基于去中心化信任的公有云下tee状态连续性保护方法
CN116418602B (zh) * 2023-06-09 2023-08-25 武汉大学 一种基于可信硬件的元数据保护匿名通信方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105183546A (zh) * 2015-08-12 2015-12-23 北京因特信安软件科技有限公司 基于可信资源池的虚拟机安全迁移方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070136593A1 (en) * 2005-12-14 2007-06-14 Richard Plavcan Secure information storage apparatus
CN101600208A (zh) * 2008-06-02 2009-12-09 深圳富泰宏精密工业有限公司 手机存储数据自动销毁系统及方法
US8782386B2 (en) * 2010-09-24 2014-07-15 Microsoft Corporation Detecting state loss on a device
RU2577465C2 (ru) * 2010-10-28 2016-03-20 Мэксвел Текнолоджиз, Инк. Система, способ и устройство для коррекции ошибки в мультипроцессорных системах
US9612966B2 (en) * 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US10339056B2 (en) * 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
CN103023877A (zh) * 2012-11-23 2013-04-03 江苏乐买到网络科技有限公司 公共云中的数据保护和强制自我销毁
SG11201508500VA (en) * 2013-04-15 2015-11-27 Amazon Tech Inc Host recovery using a secure store
WO2015003310A1 (en) * 2013-07-09 2015-01-15 Hua Zhong University Of Science Technology Synchronized virtual trusted platform modules (vtpm) and virtual machine (vm) rollbacks
US9843446B2 (en) * 2014-10-14 2017-12-12 Dropbox, Inc. System and method for rotating client security keys
JP2017162062A (ja) * 2016-03-08 2017-09-14 富士通株式会社 情報処理装置、情報処理システム、情報処理方法及びプログラム
US10795577B2 (en) * 2016-05-16 2020-10-06 Commvault Systems, Inc. De-duplication of client-side data cache for virtual disks
US10396991B2 (en) * 2016-06-30 2019-08-27 Microsoft Technology Licensing, Llc Controlling verification of key-value stores
US10530777B2 (en) * 2017-01-24 2020-01-07 Microsoft Technology Licensing, Llc Data unsealing with a sealing enclave
US20180241572A1 (en) * 2017-02-22 2018-08-23 Intel Corporation Techniques for remote sgx enclave authentication

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105183546A (zh) * 2015-08-12 2015-12-23 北京因特信安软件科技有限公司 基于可信资源池的虚拟机安全迁移方法

Also Published As

Publication number Publication date
US20190228135A1 (en) 2019-07-25
CN108306740A (zh) 2018-07-20
US11080371B2 (en) 2021-08-03

Similar Documents

Publication Publication Date Title
CN108306740B (zh) 一种Intel SGX状态一致保护方法和系统
Brandenburger et al. Rollback and forking detection for trusted execution environments using lightweight collective memory
KR101556069B1 (ko) 대역외 원격 인증
KR101067399B1 (ko) 대칭 키 암호화에 기초한 데이터의 저장 및 검색을 위한, 컴퓨팅 장치에서 구현되는 방법, 시스템 및 복수의 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체
JP4837985B2 (ja) 信頼できる処理モジュールを有するコンピュータを安全にブートするためのシステムおよび方法
CN109218260B (zh) 一种基于可信任环境的认证保护系统及方法
JP5497171B2 (ja) セキュア仮想マシンを提供するためのシステムおよび方法
US8880667B2 (en) Self regulation of the subject of attestation
US8918907B2 (en) Approaches for firmware to trust an application
AU2018201934B2 (en) Network based management of protected data sets
CN102244684B (zh) 基于usbkey的efi可信云链引导方法
JP2004005595A (ja) 公開鍵暗号化に基づくデータの保存および検索
KR20070018859A (ko) 그리드 작업의 오프로딩 허가 방법, 장치 및 컴퓨터프로그램 제품
US20180012025A1 (en) Dynamic security module terminal device and method of operating same
US20190215161A1 (en) Generating memory dumps
CN110401640B (zh) 一种基于可信计算双体系架构的可信连接方法
US11997210B2 (en) Protection of online applications and webpages using a blockchain
CN114117412A (zh) 一种基于可信技术的虚拟加密机平台及其创建方法
CN115580413B (zh) 一种零信任的多方数据融合计算方法和装置
CN106911744B (zh) 一种镜像文件的管理方法和管理装置
WO2016101559A1 (zh) 一种数据安全存取方法、装置和计算机存储介质
JP2008539482A (ja) クライアントをネットワークに接続する方法、システム、及びプログラム製品
US10375056B2 (en) Providing a secure communication channel during active directory disaster recovery
WO2020207292A1 (zh) 数据安全处理系统、方法、存储介质、处理器及硬件安全卡
Squicciarini et al. Supporting robust and secure interactions in open domains through recovery of trust negotiations

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