【技术实现步骤摘要】
安全加密键值对数据存储方法及系统
[0001]本专利技术涉及的是一种信息安全领域的技术,具体是一种安全加密键值对数据存储方法及系统
。
技术介绍
[0002]SGX(Software Guard Extension)
作为一种典型的可信执行环境
(Trusted Execution Environment,TEE)
,利用受硬件保护的区域
Enclave
来保护数据安全
。
云服务系统中的日志结构合并树
(Log
‑
Structured Merge Tree,LSM
‑
Tree)
将写入键值存储的数据首先按序保存在一张内存表中,当内存表的大小达到一定阈值时,会触发一个后台线程转储到磁盘,形成一个排序字符串表
(Sorted String Table,SSTable)。
引入
SGX
来实现安全加密键值对存储的现有方案均采用经过优化的直接
I/O
库来写入和读取磁盘,然而随着存储的数据量越来越多,
Enclave
内的
I/O
会成为瓶颈,引入至少4倍以上的额外延迟,导致查询性能降低
。
技术实现思路
[0003]本专利技术针对现有
SGX
安全区实现键值对存储的磁盘读写开销过大且安全属性无法扩展到整个键值存储数据的问题,提出一种安全加密键值对数据存储方法及系统,基于空间换时间的思想重新 ...
【技术保护点】
【技术特征摘要】
1.
一种安全加密键值对数据存储方法,其特征在于,包括:安全写过程和安全读过程;所述的安全写过程包括:当客户端与安全加密键值对数据存储系统建立安全通信后将键值数据和对应的操作一同发送到存储引擎,存储引擎对键值数据通过对称加密密钥加密后将所有插入相关的信息写入预写日志中并对日志条目进行结构优化;当写入预写日志时,存储引擎会对经过结构优化的日志进行完整性校验,当确认日志条目成功写入预写日志中后,通知日志计数器进行自增;最后将键值数据正式写入内存表;所述的安全读过程包括:
1)
存储引擎使用对称密钥对用户提交的查询键进行加密;
2)
存储引擎在内存
Enclave
中查找是否存储在匹配的键,具体为:先搜索二层缓存,当命中时不需要进行任何校验,直接返回值,因为写入二层缓存的数据都满足安全属性;否则查询内存表,当存在匹配时执行步骤3,否则执行步骤4;
3)
当内存表中的数据未启用二层存储时,数据都经过加密,存储引擎只需要对加密值执行解密即可返回给客户端,因为敌手无法进入到
Enclave
中篡改内存表中的数据;当内存表中的数据启用了二层存储时,存储引擎根据值哈希,即安全写过程中写入的值经过
SHA256
算法计算得出的结果在二层存储中读取对应的加密值,并对读取到的数据尝试解密,当解密成功时,说明该值是当前客户端写入的,继续比较解密值的哈希是否与内存表中的值哈希一致,只有完全通过验证的值才能被写入二层缓存并返回给客户端,
4)
若在内存中没有找到目标键,则存储引擎统计所有可能包含目标键的层,然后自上而下对每一层进行二分搜索,在对二分搜索找到的排序字符串表文件内容进行进一步查找之前,存储引擎检查文件的哈希值是否与
Enclave
中的版本信息中保存的一致,从而该排序字符串表中存储的所有数据都有了安全保障,如果在排序字符串表的搜索的过程中找到第一个匹配的目标键,就停止搜索并将对应的值返回,然后根据该值是否启用二层存储,依照步骤
③
的方式对其进行解密,并返回给客户端;否则说明键值存储系统中不存在该键值对
。2.
根据权利要求1所述的安全加密键值对数据存储系统,其特征是,所述的所有插入相关的信息是指:加密的键值数据和日志计数器当前值;当系统意外重启时用于恢复内存中的数据
。3.
根据权利要求2所述的安全加密键值对数据存储系统,其特征是,当本次插入应用二层存储时,存储引擎额外将值哈希作为数据的一部分写入预写日志中
。4.
根据权利要求1所述的安全加密键值对数据存储系统,其特征是,所述的结构优化是指:每条日志包括日志头和数据部分,其中:日志头包括用于身份认...
【专利技术属性】
技术研发人员:沈宸恺,范磊,苏元朋,刘杰,
申请(专利权)人:优刻得科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。