[发明专利]一种基于SGX的安全高可用键值存储方法及系统在审
申请号: | 202211738380.X | 申请日: | 2022-12-31 |
公开(公告)号: | CN116467733A | 公开(公告)日: | 2023-07-21 |
发明(设计)人: | 高天;张功萱;寇小勇;周俊龙 | 申请(专利权)人: | 南京理工大学 |
主分类号: | G06F21/62 | 分类号: | G06F21/62;G06F21/44;G06F16/22;H04L67/1097;H04L67/1042 |
代理公司: | 南京理工大学专利中心 32203 | 代理人: | 朱炳斐 |
地址: | 210094 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 sgx 安全 可用 键值 存储 方法 系统 | ||
1.一种基于SGX的安全高可用键值存储方法,用于在分布式环境下保护键值数据存储在不可信设备的安全性以及保证存储集群的高可用,其特征在于,所述方法包括以下内容:
所有节点运行在由SGX提供的可信执行环境Enclave中,节点之间建立安全连接并相互认证,证明对方为可信节点,经过相互认证之后可进行安全交互并传递数据,用户对节点进行认证后发送读写请求;
领导者节点收到写请求后将其作为日志项追加到安全Raft日志中,领导者节点从安全Raft日志中提取日志项并同步到其他节点,所述安全Raft日志存储在所述不可信设备的文件系统中;
所述节点将所述安全Raft日志中已提交的日志项转为键值数据写请求,将所述键值数据存储到安全单机键值存储引擎中;
所述安全单机键值存储引擎将数据持久化存储在所述不可信设备的文件系统中,并保证键值数据机密性与完整性;
用户从所述节点读取键值数据,所述节点从所述安全单机键值存储引擎提取所请求的键值对并返回。
2.根据权利要求1所述的基于SGX的安全高可用键值存储方法,其特征在于,所述节点之间建立安全连接并相互认证,具体过程包括:
设置一个运行在Enclave中的全局配置认证服务,每个节点所在主机上设置一个运行在Enclave中的本地认证服务;
所述全局配置认证服务通过Intel远程认证机制认证每个所述本地认证服务,如果认证通过,为该所述本地认证服务发送签名密钥;
每个节点与所述全局配置认证服务建立传输层安全性协议TLS连接,所述节点请求所在主机的所述本地认证服务进行本地认证,如果认证通过,向所述节点返回经过所述签名密钥签名后的证书,所述全局配置认证服务接收所述节点发送的所述证书并进行验证,如果验证通过,则为所述节点颁发认证证书;
所述节点与其他所述节点建立安全TLS连接后,互相发送由所述全局配置认证服务颁发的所述认证证书,经过验证后完成相互认证。
3.根据权利要求1所述的基于SGX的安全高可用键值存储方法,其特征在于,所述追加到安全Raft日志,具体包括:
将Raft日志文件划分为以页为单位,将页划分为若干槽,每个槽存储一条日志项,追加日志时,如果当前最新日志项所在的页存在所需大小的空闲槽,将所追加日志项经过加密后存储在该空闲槽内,通过页号和页偏移可定位到该所追加日志项;
采用Merkle-B+树结构保证所述安全Raft日志的完整性,所述Merkle-B+树以文件形式存储在所述不可信设备文件系统中,当所述Merkle-B+树读取时进行完整性验证,追加、更新或删除日志项时更新Merkle-B+树。
4.根据权利要求3所述的基于SGX的安全高可用键值存储方法,其特征在于,所述Merkle-B+树以Raft日志的索引为键,叶子结点索引指针存储日志项的位置,同时存储日志项的MAC值,每个所述Merkle-B+树结点的消息认证码MAC值为该所述结点所索引的所有子结点的MAC值或所索引的所有日志项的MAC值拼接后再经密码学Hash计算后的MAC值,每个所述Merkle-B+树内部结点索引指针存储其子结点的位置,同时存储子结点的MAC值,根结点MAC值在所述节点运行时存储在可信内存EPC内。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京理工大学,未经南京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211738380.X/1.html,转载请声明来源钻瓜专利网。