CN108768978B - 一种基于sgx的远端存储服务方法及系统 - Google Patents

一种基于sgx的远端存储服务方法及系统 Download PDF

Info

Publication number
CN108768978B
CN108768978B CN201810470662.3A CN201810470662A CN108768978B CN 108768978 B CN108768978 B CN 108768978B CN 201810470662 A CN201810470662 A CN 201810470662A CN 108768978 B CN108768978 B CN 108768978B
Authority
CN
China
Prior art keywords
data
remote storage
storage service
service system
client
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
CN201810470662.3A
Other languages
English (en)
Other versions
CN108768978A (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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN201810470662.3A priority Critical patent/CN108768978B/zh
Publication of CN108768978A publication Critical patent/CN108768978A/zh
Application granted granted Critical
Publication of CN108768978B publication Critical patent/CN108768978B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种基于SGX的远端存储服务方法及系统,该方法包括远端存储服务系统初始化、数据存储、数据访问和数据清理操作;远端存储服务系统初始化操作包括:通过SGX为密钥生成函数、密钥扩展函数与加解密函数创建可信空间,并在可信空间内生成母密钥;数据存储操作包括:客户端将待存储数据传输至远端存储服务器,在可信空间内生成待存储数据的子密钥并对待存储数据进行加密;数据访问操作包括:远端存储服务器在可信空间内对访问数据进行解密,并通过加密信道传输至客户端;数据清理操作包括:远端存储服务器收集待清理数据和子密钥并进行删除。本发明的方法使数据的加解密过程以及存取过程不受恶意程序或其他特权软件的窥探或干扰。

Description

一种基于SGX的远端存储服务方法及系统
技术领域
本发明涉及数据存储服务安全技术领域,尤其涉及一种基于SGX的远端存储服务方法及系统。
背景技术
随着信息技术的发展和信息量的不断增长,数据存储服务扮演着日益重要的角色。远端存储相对本地存储而言,可以减轻用户管理数据的压力,削减数据管理成本,逐渐成为一种重要的数据存储与管理手段。
然而,技术的发展也令对数据存储系统的攻击日趋严重。远端存储系统虽然相比用户独立维护的本地存储系统而言,可以采取更专业的保护措施对数据进行保护,不过其往往也成为攻击的焦点,特别是那些存有隐私信息、商业数据、软件源代码或其他重要数据的远端存储服务器或系统。网络技术的进步令远端存储服务系统成为各类数据窃取、破坏行为的攻击目标,数据泄露事件层出不穷,使远端数据存储服务系统的可靠性与安全性面临威胁。
现有的远端存储系统保护机制虽然也已有长足发展,对数据的保护能力大大提升,但仍无法保证内部信息的绝对安全。对于传统架构的存储服务系统而言,当存储服务系统本身由于最新漏洞或高级攻击技术被恶意攻击者攻破并控制后,攻击者对数据进行任意操作便易如反掌。亦或攻击者通过提权漏洞获取存储服务器的高级管理权限后,其中的数据同样面临泄露或被破坏的风险。
对于应用最新存储架构的分布式存储系统,如基于区块链的Storj网络,可以较好地提供安全远端存储服务,其结合区块链技术的分布式节点存储方案理论上可以达到极高的存储可靠性,攻击者想要窃取完整数据几乎不可能实现。Storj的低存储成本也是其一大优势。不过其目前用户规模较小,存储能力有限,系统健壮性还略显不足;且该存储服务无法由客户进行搭建或管理,交付数据给大量陌生节点的存储设备进行存储,即便对数据进行过加密处理,对于企业或其他数据敏感型用户而言也并非良策。
英特尔SGX(Software Guard Extensions)的出现为增强远端存储服务的安全性提供了有效方法。SGX是一套CPU指令,可支持应用创建安全区(enclave):即应用地址空间中受保护的区域,它可确保程序运行环境上信息内容的机密性和完整性。即使是高特权级软件(如主操作系统,虚拟机监控器等)也不能访问enclave中的内容。enclave的安全边界只包含CPU和它自身。SGX创建的enclave可以理解为一个可信执行环境TEE。SGX技术中一个CPU可以运行多个安全enclaves,支持并发执行。
发明内容
本发明提供一种基于SGX的远端存储服务方法,通过引入Intel的SGX硬件到远端存储服务器,通过SGX的可信空间(enclave)机制构建安全可靠的远端数据加密操作及存储操作,使数据的加解密过程以及存取过程不受恶意程序或其他特权软件的窥探或干扰。
本发明提供了如下技术方案:
一种基于SGX的远端存储服务方法,包括远端存储服务系统初始化、数据存储、数据访问和数据清理操作;
远端存储服务系统初始化操作包括:远端存储服务系统启动并进行自检,检查无误后通过SGX为密钥生成函数、密钥扩展函数与加解密函数创建可信空间,并在可信空间内生成母密钥;
数据存储操作包括:数据存储请求验证通过后,客户端通过加密信道将待存储数据传输至远端存储服务器,远端存储服务器在所述可信空间内生成为待存储数据进行加密的子密钥及孙密钥并对待存储数据进行加密,调用存储设备进行存储;
数据访问操作包括:数据访问请求通过后,远端存储服务器在所述可信空间内对访间数据进行解密,并通过加密信道传输至客户端;
数据清理操作包括:数据清理请求通过后,远端存储服务器收集待清理数据并进行删除,同时清理加密该用户数据的密钥。
远端存储服务系统初始化操作包括:
(1-1)远端存储服务系统启动,执行自检程序检查系统内部错误与硬件状况,检查无误后进入下一步,否则执行自动修复,若修复无效则发出警报并请求人工处理;
(1-2)远端存储服务系统通过SGX为密钥生成函数、密钥扩展函数与加解密函数创建可信空间,并在可信空间内调用密钥生成函数生成随机的密钥种子;
(1-3)在可信空间内调用密钥生成函数,通过密钥种子生成母密钥并存于可信空间内部。
母密钥用于之后通过密钥扩展函数进一步生成加密数据的子密钥。
进一步地,所述步骤(1-2)中,通过SGX为密钥生成函数、密钥扩展函数与加解密函数创建可信空间,包括:
(1-2a)生成密钥生成函数、密钥扩展函数与加解密函数的证书,将密钥生成函数、密钥扩展函数与加解密函数与证书一起上载到处理空间中;
(1-2b)通过SGX驱动器对上载的密钥生成函数、密钥扩展函数与加解密函数及其证书进行参数测量,为可信空间分配地址空间和内存页,同时获取证书信息并传递给SGX硬件处理器;
(1-2c)SGX驱动器根据测量的参数创建可信空间,并将密钥生成函数、密钥扩展函数与加解密函数复制到可信空间中,之后删除处理空间中的数据;
(1-2d)SGX硬件处理器根据密钥生成函数、密钥扩展函数与加解密函数的证书信息及SGX硬件处理器自身的数据生成可信空间的访问密钥,并通过访问密钥对可信空间加密。
数据存储操作包括数据存储请求、数据传输和数据加密与存储操作;
数据存储请求操作包括:
(2-11)在远端存储服务系统与客户端之间建立加密通道;
优选的,以安全套阶层(SSL)为基础建立加密信道。不排除使用其他方法或技术建立安全传输网络。
(2-12)用户在客户端生成数据存储请求并通过加密信道发送给远端存储服务系统;远端存储服务系统获取请求后检查其合法性;
数据存储请求的合法性包括用户的身份是否合法、是否有权进行数据存储、远端存储服务系统是否因维护而需暂停服务等。请求验证失败则拒绝请求。
(2-13)数据存储请求验证通过后,客户端接收待存储数据,计算待存储数据的摘要并存储;向远端存储服务系统提供该待存储数据期望分块存储的数量n。
默认情况下,n的值为1。
为了进一步提高数据存储的安全性,优选的,步骤(2-13)中还包括对待存储数据进行本地加密和/或分割。
优选的,步骤(2-13)中,计算待存储数据摘要的算法为SHA256算法。也可以选择其他消息摘要计算算法。
数据传输操作包括:
(2-21)客户端通过加密信道将待存储数据传输至远端存储服务系统;
(2-22)远端存储服务系统数据接收完毕后计算该待存储数据的摘要,将该摘要与客户端的摘要进行对比;
摘要信息一致,则向客户端反馈传输成功消息并对摘要进行备份;
传输中断或延迟超过阈值,以及摘要比对错误均视为传输失败,向客户端发送传输失败消息。
客户端和远端存储服务系统计算待存储数据摘要的算法应保持一致。
上述通信过程均通过加密信道进行。
数据加密与存储操作包括:
(2-31)在可信空间内由母密钥生成子密钥;若子密钥生成失败则发生失败消息,终止后续步骤;
(2-32)在可信空间内调用所述子密钥对待存储数据整体进行第一轮对称加密;
若执行失败则发生失败消息,终止后续步骤;
(2-33)根据待存储数据期望分块存储的数量n,将待存储数据分割成n份,并在可信空间内由子密钥生成n个不同的孙密钥,分别对n份存储数据进行第二轮对称加密,产生n份数据包;
若执行失败则发生失败消息,终止后续步骤;
(2-34)将n份数据包进行备份,分别调用不同的存储设备进行存储;
若执行失败则发生失败消息,终止后续步骤;
默认备份数量为两份,支持对备份数量进行调整。
(2-35)对产生的加密数据生成索引并保存;
若执行失败则发生失败消息,终止后续步骤;否则发生成功存储消息。
数据访问操作包括:
(3-1)在远端存储服务系统与客户端之间建立加密通道;
(3-2)用户在客户端生成数据访问请求并发送给远端存储服务系统;远端存储服务系统获取请求后检查其合法性;
检查请求合法性,包括用户的身份是否合法、是否有权进行数据访问、存储服务系统是否因维护而需暂停服务等。请求验证失败则拒绝请求。
(3-3)数据访问请求验证通过后,远端存储服务系统进行数据准备与验证,将待传输给客户端的加密数据进行还原;
(3-4)远端存储服务系统经由加密通道将还原后的数据传输给客户端;
传输中断、延迟超过阈值以及摘要比对错误均视为传输失败,若传输失败,则向客户端发送传输失败消息。
进一步的,步骤(3-3)中,远端存储服务系统进行数据准备与验证,包括:
(3-3a)通过索引对分散或单独存储的用户加密数据进行检索,集齐全部待解密的数据块;
若检索出现数据块丢失或损坏的,则调用其备份数据块完成该步骤;
(3-3b)在可信空间内,对待解密的n个数据块,分别调用可信空间内的解密函数使用相应的孙密钥进行第一轮解密;
将解密后的n个数据块进行合并,使用对应的子密钥进行第二轮解密;
(3-3c)计算完成解密的数据的摘要,将该摘要与接收该数据时备份的摘要进行比对;
若二者一致,则完成数据准备与验证;否则,生成错误报告并发送给客户端,终止后续步骤。
数据清理操作包括:
(4-1)在远端存储服务系统与客户端之间建立加密通道;
(4-2)用户在客户端生成数据清理请求并发送给远端存储服务系统;远端存储服务系统获取请求后检查其合法性;
(4-3)数据清理请求验证通过后,远端存储服务系统通过索引找到待清理数据并执行删除操作,同时清除加密该用户数据的全部密钥,完成清理操作。
本发明还公开了所述远端存储服务方法所依赖的远端存储服务系统,包括:
预处理模块,运行于客户端,生成请求并发送给身份验证模块;对待存储数据进行预处理并发送给数据验证模块;
身份验证模块,运行于远端存储服务器,对用户的身份、权限与请求进行验证,并向预处理模块反馈验证结果;
数据验证模块,运行于远端存储服务器,与预处理模块和SGX加解密模块通信,验证传输数据的正确性;
SGX加解密模块,运行于远端存储服务器,在可信空间内对数据进行加、解密,保存数据的加密密钥。
本发明的远端存储服务系统支持作为第三方服务运行,以互联网为媒介向用户提供数据存储服务;也支持以指定设备,如具备SGX功能的CPU硬件设备,在局域网环境中内建本地系统,作为只面向区域范围的内部存储服务系统运行,其中不排除对本系统进行与本地业务相适应的改造,如更换加解密算法或服务系统网络拓扑结构改造等。
远端存储服务系统可采用Intel SGX提供的SDK进行编程,使得客户端实现与修改十分方便,具有高灵活性。
与现有技术相比,本发明的有益效果为:
(1)本发明的远端存储服务系统具备高可靠性与高可用性,其中的加解密数据的过程受到SGX指令保护,攻击者无法对加解密密钥进行嗅探,其同样无法对加解密过程进行妨碍,保证远端存储服务系统不受侵害;
(2)本发明的远端存储服务方法基于数据拆分和密钥生成算法的数据存储机制,使用子密钥与孙密钥机制,一方面便于将密钥按用户进行管理,一方面则以不同密钥加密用户数据,大大提高了数据的安全性;
(3)本发明的远端存储服务方法以索引机制和备份机制提升远端存储服务系统的数据管理效率与存储可靠性,以数字摘要保证各个操作环节数据前后的一致性。
附图说明
图1为本发明的远端存储服务系统的架构示意图;
图2为远端存储服务系统初始化的流程示意图;
图3为客户进行数据存储的程序执行流程示意图;
图4为客户进行数据访问的程序执行流程示意图;
图5为客户进行数据清理的程序执行流程示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步详细描述,需要指出的是,以下所述实施例旨在便于对本发明的理解,而对其不起任何限定作用。
如图1所示,本发明的远端存储服务系统包括4个模块:
预处理模块,运行于客户端,生成请求并发送给身份验证模块;对待存储数据进行预处理并发送给数据验证模块;
身份验证模块,运行于远端存储服务器,对用户的身份、权限与请求进行验证,并向预处理模块反馈验证结果;
数据验证模块,运行于远端存储服务器,与预处理模块和SGX加解密模块通信,验证传输数据的正确性;
SGX加解密模块,运行于远端存储服务器,在可信空间内对数据进行加、解密,保存数据的加密密钥。
基于远端存储服务系统的远端存储服务方法包括远端存储服务系统初始化、数据存储、数据访问和数据清理操作。
如图2所示,远端存储服务系统初始化包括远端存储服务系统的部署与启动,远端存储服务系统启动后会预先进行内部的SGX初始化,准备SGX加解密模块,其作用是基于软件防护扩展指令生成的enclave来存储密钥信息与相关的密钥操作函数,并生成用以验证可信空间访问权限的密钥,供后续访问操作使用。
远端存储服务系统初始化的具体流程如下:
1.1远端存储服务系统启动,执行自检程序检查系统内部错误与硬件状况,检查无误后进入下一步,否则执行自动修复,修复无效则发出警报并请求人工处理;
1.2系统通过SGX为密钥生成函数、密钥扩展函数与加解密函数创建可信空间,并在可信空间内调用密钥生成函数生成随机的密钥种子,具体包括:
(a)数据上载:生成密钥生成函数、密钥扩展函数与加解密函数的证书,将密钥生成函数、密钥扩展函数与加解密函数与证书一起上载到处理空间中;
(b)SGX驱动器准备:通过SGX驱动器对上载的密钥生成函数、密钥扩展函数与加解密函数及其证书进行参数测量,为可信空间分配地址空间和内存页,同时获取证书信息并传递给SGX硬件处理器;
(c)可信空间建立:SGX驱动器根据测量的参数创建可信空间,并将密钥生成函数、密钥扩展函数与加解密函数复制到可信空间中,之后删除处理空间中的数据;
(d)密钥的生成:SGX硬件处理器根据密钥生成函数、密钥扩展函数与加解密函数的证书信息及SGX硬件处理器自身的数据生成可信空间的访问密钥,并通过密钥对可信空间加密。
1.3在可信空间内调用密钥扩展函数,通过密钥种子生成母密钥,存于可信空间内部,用于之后通过密钥扩展算法进一步生成加密数据的子密钥。
数据存储操作调用客户端的预处理模块与远端存储服务器的身份验证模块、数据验证模块和SGX加解密模块,共同完成用户数据存储服务,其流程如图3所示。首先客户端与存储服务器之间建立安全信道,用户通过身份验证模块进行身份确认,之后用户上传数据至客户端,通过预处理模块进行数据预处理,同时生产数字摘要,之后传输数据至远端存储服务器。远端存储服务器通过数据验证模块验证传来的数据,验证完毕后通过SGX加解密模块完成数据的加密与存储操作。
数据存储操作包括数据存储请求、数据传输和数据加密与存储操作。具体实现过程如下:
2.11远端存储服务器与客户端以安全套阶层(SSL)为基础建立加密信道,不排除使用其他方法或技术建立安全传输网络;
2.12用户生成远端数据存储请求,通过加密信道发送给远端存储服务器。远端存储服务器获取请求,检查请求合法性,包括用户的身份是否合法、是否有权进行数据存储、存储服务系统是否因维护而需暂停服务等。请求验证失败则拒绝请求;
2.13用户存储请求验证通过后,存储服务系统客户端接收用户提供的待存储数据。用户可选择在该阶段对数据进行本地加密,或对数据进行分割,以进一步提高数据存储安全性。客户端接收数据后计算数据SHA256的值,同时将该值进行记录作为日后接收数据进行检验的凭证。用户还需在该阶段提供其提供的数据在远端存储服务系统内期望分块存储的数量n,默认情况下n为1。在该阶段内,不排除将SHA256更换为其他消息摘要计算算法;
2.21远端存储服务系统在数据接收完毕后计算该用户提供数据的摘要,并比对该摘要与来自客户端的摘要,此处摘要算法要求与步骤2.13所述一致。摘要信息一致,则向客户端反馈传输成功消息,并对数据摘要进行备份。传输中断或延迟超过阈值,以及摘要比对错误均视为传输失败,向客户端发送传输失败消息。如上通信过程均通过加密信道进行。
2.31远端存储服务系统为此次待存储数据由母密钥生成子密钥。子密钥根据客户端传入的期望分块存储数量n生成n个不同的孙密钥。所述密钥用于本地的对称加密。生成过程在SGX内进行。密钥生成失败则发送失败信息,终止后续步骤;
2.32远端存储服务系统在SGX内调用2.31生成的子密钥对用户数据整体进行第一轮对称加密,该过程同样在SGX内执行。执行失败则发送失败信息,终止后续步骤;
2.33对加密后的数据分割为n份,n为客户端传入的期望分块存储数量。之后进行第二轮对称加密。该轮加密过程中调用步骤2.31产生的n个孙密钥对n份数据分别进行加密,产生n份数据包。执行失败则发送失败信息,终止后续步骤;
2.34远端存储服务系统将此次加密后的数据进行备份,分别调用不同的硬件(存储设备)进行存储,默认备份数量为两份,支持备份数量调整。执行失败则发送失败信息,终止后续步骤;
2.35远端存储服务系统对产生的加密数据生成索引,对索引进行保存,便于检索。执行失败则发送失败信息,终止后续步骤。否则发送成功存储信息。
数据访问操作调用客户端的预处理模块与远端存储服务器的身份验证模块、数据验证模块和SGX加解密模块,共同完成用户数据存储服务,其流程如图4所示。首先客户端与存储服务器之间建立安全信道,用户通过身份验证模块进行身份确认,之后远端存储服务器调用SGX加解密模块进行数据整理。完成数据整理后数据验证模块对整理完毕的数据进行验证,验证无误后数据被发送至客户端,客户端预处理模块对传入的数据进行验证与处理,最终传给用户。具体实现过程如下:
3.1用户生成远端数据访问请求,发送给远端存储服务器。远端存储服务器获取请求,检查请求合法性,包括用户的身份是否合法、是否有权进行数据访问、存储服务系统是否因维护而需暂停服务等。请求验证失败则拒绝请求;
3.2验证成功后,远端存储服务器进行数据准备与验证,将待传输给客户端的加密数据进行还原;具体包括:
(a)数据检索:通过存储时生成的索引对分散或单独存储的用户加密数据进行检索,集齐全部待解密的数据块。检索出现数据块丢失或损坏的,调用其备份数据块完成该步骤;
(b)数据解密:对待恢复的n块数据分别调用SGX内的解密函数,使用相应的孙密钥分别进行第一轮解密。解密后的n块数据进行合并,使用对应数据的子密钥进行第二轮解密;
(c)数据验证:对完成解密的数据计算其数字摘要,与接收数据时备份的原摘要进行比对,检测一致则完成数据准备,否则生成错误报告返回客户端,终止后续步骤;
3.3远端存储服务器与客户端以安全套阶层(SSL)为基础建立加密信道,不排除使用其他方法或技术建立安全传输网络;
3.4通道建立完毕后,存储服务系统客户端经由该通道接收远端存储服务系统传输的原存储数据。传输中断或延迟超过阈值,以及摘要比对错误均视为传输失败,向客户端发送传输失败消息。客户端接收完毕后用户即可使用数据。
数据清理操作调用远端存储服务器的身份验证模块和SGX加解密模块,完成数据清理,其流程如图5所示。首先客户端与存储服务器之间建立安全信道,用户通过身份验证模块进行身份确认,之后远端存储服务器调用SGX加解密模块进行数据整理,整理完毕后清除与请求对应的数据以及SGX的enclave内存储的相应密钥,结束清理后发送清理成功消息。
当用户希望结束服务,或由于其他原因需要清除在远端存储服务系统中存储的数据时,用户由客户端向远端存储服务系统经由安全信道发送数据清理请求。身份验证通过后,远端存储服务系统通过索引找到待清理数据,执行删除操作,同时清除该用户的子密钥及其产生的孙密钥,完成清理操作。
以上所述的实施例对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的具体实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种基于SGX的远端存储服务方法,其特征在于,包括远端存储服务系统初始化、数据存储、数据访问和数据清理操作;
远端存储服务系统初始化操作包括:远端存储服务系统启动并进行自检,检查无误后通过SGX为密钥生成函数、密钥扩展函数与加解密函数创建可信空间,并在可信空间内生成母密钥;远端存储服务系统初始化操作包括:
(1-1)远端存储服务系统启动,执行自检程序检查系统内部错误与硬件状况,检查无误后进入下一步,否则执行自动修复,若修复无效则发出警报并请求人工处理;
(1-2)远端存储服务系统通过SGX为密钥生成函数、密钥扩展函数与加解密函数创建可信空间,并在可信空间内调用密钥生成函数生成随机的密钥种子;
(1-3)在可信空间内调用密钥生成函数,通过密钥种子生成母密钥并存于可信空间内部;
数据存储操作包括:数据存储请求验证通过后,客户端通过加密信道将待存储数据传输至远端存储服务器,远端存储服务器在所述可信空间内生成为待存储数据进行加密的子密钥及孙密钥并对待存储数据进行加密,调用存储设备进行存储;数据存储操作包括数据存储请求、数据传输和数据加密与存储操作;
数据存储请求操作包括:
(2-11)在远端存储服务系统与客户端之间建立加密通道;
(2-12)用户在客户端生成数据存储请求并通过加密信道发送给远端存储服务系统;远端存储服务系统获取请求后检查其合法性;
(2-13)数据存储请求验证通过后,客户端接收待存储数据,计算待存储数据的摘要并存储;向远端存储服务系统提供该待存储数据期望分块存储的数量n;
数据传输操作包括:
(2-21)客户端通过加密信道将待存储数据传输至远端存储服务系统;
(2-22)远端存储服务系统数据接收完毕后计算该待存储数据的摘要,将该摘要与客户端的摘要进行对比;
摘要信息一致,则向客户端反馈传输成功消息并对摘要进行备份;
传输中断或延迟超过阈值,以及摘要比对错误均视为传输失败,向客户端发送传输失败消息;
数据加密与存储操作包括:
(2-31)在可信空间内由母密钥生成子密钥;
若子密钥生成失败则发送失败消息,终止后续步骤;
(2-32)在可信空间内调用所述子密钥对待存储数据整体进行第一轮对称加密;
若执行失败则发送失败消息,终止后续步骤;
(2-33)根据待存储数据期望分块存储的数量n,将待存储数据分割成n份,并在可信空间内由子密钥生成n个不同的孙密钥,分别对n份存储数据进行第二轮对称加密,产生n份数据包;
若执行失败则发送失败消息,终止后续步骤;
(2-34)将n份数据包进行备份,分别调用不同的存储设备进行存储;
若执行失败则发送失败消息,终止后续步骤;
(2-35)对产生的加密数据生成索引并保存;
若执行失败则发送失败消息,终止后续步骤;否则发送成功存储消息;
数据访问操作包括:数据访问请求通过后,远端存储服务器在所述可信空间内对访问数据进行解密,并通过加密信道传输至客户端;
数据清理操作包括:数据清理请求通过后,远端存储服务器收集待清理数据并进行删除,同时清理加密该用户数据的密钥。
2.根据权利要求1所述的基于SGX的远端存储服务方法,其特征在于,数据访问操作包括:
(3-1)在远端存储服务系统与客户端之间建立加密通道;
(3-2)用户在客户端生成数据访问请求并发送给远端存储服务系统;远端存储服务系统获取请求后检查其合法性;
(3-3)数据访问请求验证通过后,远端存储服务系统进行数据准备与验证,将待传输给客户端的加密数据进行还原;
(3-4)远端存储服务系统经由加密通道将还原后的数据传输给客户端;
传输中断、延迟超过阈值以及摘要比对错误均视为传输失败,若传输失败,则向客户端发送传输失败消息。
3.根据权利要求2所述的基于SGX的远端存储服务方法,其特征在于,步骤(3-3)中,远端存储服务系统进行数据准备与验证,包括:
(3-3a)通过索引对分散或单独存储的用户加密数据进行检索,集齐全部待解密的数据块;
若检索出现数据块丢失或损坏的,则调用其备份数据块完成该步骤;
(3-3b)在可信空间内,对待解密的n个数据块,分别调用可信空间内的解密函数使用相应的孙密钥进行第一轮解密;
将解密后的n个数据块进行合并,使用对应的子密钥进行第二轮解密;
(3-3c)计算完成解密的数据的摘要,将该摘要与接收该数据时备份的摘要进行比对;
若二者一致,则完成数据准备与验证;否则,生成错误报告并发送给客户端,终止后续步骤。
4.根据权利要求1所述的基于SGX的远端存储服务方法,其特征在于,数据清理操作包括:
(4-1)在远端存储服务系统与客户端之间建立加密通道;
(4-2)用户在客户端生成数据清理请求并发送给远端存储服务系统;远端存储服务系统获取请求后检查其合法性;
(4-3)数据清理请求验证通过后,远端存储服务系统通过索引找到待清理数据并执行删除操作,同时清除加密该用户数据的全部密钥,完成清理操作。
5.一种基于SGX的远端存储服务系统,其特征在于,根据权利要求1~4任一项所述的远端存储服务方法提供远端存储服务,包括:
预处理模块,运行于客户端,生成请求并发送给身份验证模块;对待存储数据进行预处理并发送给数据验证模块;
身份验证模块,运行于远端存储服务器,对用户的身份、权限与请求进行验证,并向预处理模块反馈验证结果;
数据验证模块,运行于远端存储服务器,与预处理模块和SGX加解密模块通信,验证传输数据的正确性;
SGX加解密模块,运行于远端存储服务器,在可信空间内对数据进行加、解密,保存数据的加密密钥。
CN201810470662.3A 2018-05-16 2018-05-16 一种基于sgx的远端存储服务方法及系统 Active CN108768978B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810470662.3A CN108768978B (zh) 2018-05-16 2018-05-16 一种基于sgx的远端存储服务方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810470662.3A CN108768978B (zh) 2018-05-16 2018-05-16 一种基于sgx的远端存储服务方法及系统

Publications (2)

Publication Number Publication Date
CN108768978A CN108768978A (zh) 2018-11-06
CN108768978B true CN108768978B (zh) 2020-12-11

Family

ID=64006791

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810470662.3A Active CN108768978B (zh) 2018-05-16 2018-05-16 一种基于sgx的远端存储服务方法及系统

Country Status (1)

Country Link
CN (1) CN108768978B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109450899B (zh) * 2018-11-09 2021-11-02 南京医渡云医学技术有限公司 密钥管理方法及装置、电子设备、存储介质
CN109934579A (zh) * 2018-11-30 2019-06-25 上海点融信息科技有限责任公司 用于区块链网络的密钥生成方法、签名方法、存储介质、计算设备
CN109993003A (zh) * 2019-03-12 2019-07-09 广州大学 一种基于sgx的软件流安全验证方法及装置
CN110069946B (zh) * 2019-04-19 2023-01-13 东北大学 一种基于sgx的安全索引系统
CN110266659B (zh) * 2019-05-31 2020-09-25 联想(北京)有限公司 一种数据处理方法和设备
CN110289954B (zh) * 2019-06-25 2022-02-25 大唐高鸿信安(浙江)信息科技有限公司 一种密钥处理方法及装置
CN110677240B (zh) * 2019-08-29 2020-07-10 阿里巴巴集团控股有限公司 通过证书签发提供高可用计算服务的方法、装置及介质
US10790979B1 (en) 2019-08-29 2020-09-29 Alibaba Group Holding Limited Providing high availability computing service by issuing a certificate
CN111027083B (zh) * 2019-12-06 2022-03-01 支付宝(杭州)信息技术有限公司 一种私有数据处理方法及系统
CN111010265B (zh) * 2019-12-21 2023-04-18 上海中和软件有限公司 基于分层密钥和bls数字签名的区块链组织密钥管理方法
CN111475782B (zh) * 2020-04-08 2022-11-08 浙江大学 基于sgx软件扩展指令的api密钥保护方法及系统
CN111327643B (zh) * 2020-05-15 2020-09-01 支付宝(杭州)信息技术有限公司 一种多方数据共享方法和装置
CN112532380B (zh) * 2020-11-12 2023-01-31 北京工业大学 一种基于sgx技术的云存储数据确定性删除方法
CN112769764A (zh) * 2020-12-23 2021-05-07 南方电网电力科技股份有限公司 仪表的计量数据传输密钥存储方法及其传输方法、装置
CN112560104B (zh) * 2021-01-17 2022-07-19 金网络(北京)电子商务有限公司 一种基于云计算和区块链的数据存储方法及安全信息平台
CN113591098B (zh) * 2021-06-11 2024-03-26 浙江大学 一种基于sgx的远程安全异构计算方法和系统
CN115801446B (zh) * 2022-12-29 2023-05-23 浙江大学 基于可信硬件的加密数据库系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106027503A (zh) * 2016-05-09 2016-10-12 浪潮集团有限公司 一种基于tpm的云存储数据加密方法
CN107506652A (zh) * 2017-07-13 2017-12-22 浙江大学 CephFS分布式文件系统元数据访问保护机制的实现方法及系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103107889B (zh) * 2013-02-06 2016-08-03 中电长城网际系统应用有限公司 一种可搜索的云计算环境数据加密存储系统和方法
US9411975B2 (en) * 2014-03-31 2016-08-09 Intel Corporation Methods and apparatus to securely share data
US10810321B2 (en) * 2016-08-11 2020-10-20 Intel Corporation Secure public cloud
CN107463838B (zh) * 2017-08-14 2019-10-18 广州大学 基于sgx的安全监控方法、装置、系统及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106027503A (zh) * 2016-05-09 2016-10-12 浪潮集团有限公司 一种基于tpm的云存储数据加密方法
CN107506652A (zh) * 2017-07-13 2017-12-22 浙江大学 CephFS分布式文件系统元数据访问保护机制的实现方法及系统

Also Published As

Publication number Publication date
CN108768978A (zh) 2018-11-06

Similar Documents

Publication Publication Date Title
CN108768978B (zh) 一种基于sgx的远端存储服务方法及系统
TWI567579B (zh) 用於對硬體裝置提供金鑰的方法和設備
CN110784491A (zh) 一种物联网安全管理系统
US10528751B2 (en) Secure and efficient cloud storage with retrievability guarantees
CN112800450B (zh) 数据存储方法、系统、装置、设备和存储介质
US20220114249A1 (en) Systems and methods for secure and fast machine learning inference in a trusted execution environment
US11831753B2 (en) Secure distributed key management system
US10887085B2 (en) System and method for controlling usage of cryptographic keys
US11240008B2 (en) Key management method, security chip, service server and information system
CN113987554B (zh) 获取数据授权的方法、装置及系统
CN110362984B (zh) 多设备运行业务系统的方法及装置
JPWO2017033442A1 (ja) 情報処理装置、認証システム、認証方法、並びにコンピュータ・プログラム
KR20210021284A (ko) 보호된 컨테이너 간의 보안 통신 방법 및 그러한 시스템
US11893577B2 (en) Cryptographic key storage system and method
CN111291398B (zh) 基于区块链的认证方法、装置、计算机设备及存储介质
CN111859379A (zh) 保护数据模型的处理方法和装置
CN116881936A (zh) 可信计算方法及相关设备
CN111371588A (zh) 基于区块链加密的sdn边缘计算网络系统、加密方法及介质
Kim et al. A secret sharing-based distributed cloud system for privacy protection
US11991293B2 (en) Authorized secure data movement
US20220006613A1 (en) Secure secret recovery
CN114117471A (zh) 机密数据管理方法、电子设备、存储介质及程序产品
CN114461340A (zh) 一种基于可信计算的容器实时迁移方法
Sowparnika et al. Improving data integrity on cloud storage services
Dahiya et al. IMPLEMENTING MULTILEVEL DATA SECURITY IN CLOUD COMPUTING.

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