一种基于分布式存储的硬件加密方法、系统及装置

文档序号:168357 发布日期:2021-10-29 浏览:18次 >En<

阅读说明:本技术 一种基于分布式存储的硬件加密方法、系统及装置 (Hardware encryption method, system and device based on distributed storage ) 是由 郑朝晖 阳海华 于 2021-06-15 设计创作,主要内容包括:本发明公开一种基于分布式存储的硬件加密方法、系统及装置,属于数据安全领域,通过加密卡API获取密钥对用户数据切片后进行加密,根据用户身份对数据进行硬件加密而在磁盘上存储密文的方法。采用本发明技术方案,因存在磁盘上为密文数据能够避免因硬盘被盗而造成数据泄密,同时采用不同用户密码不同的策略提供用户数据的逻辑隔离和加密隔离,有助于建立更加安全的加密机制。(The invention discloses a hardware encryption method, a system and a device based on distributed storage, which belong to the field of data security. By adopting the technical scheme of the invention, data leakage caused by the fact that the hard disk is stolen can be avoided due to the fact that the ciphertext data exists on the magnetic disk, and meanwhile, the logic isolation and the encryption isolation of the user data are provided by adopting different strategies of different user passwords, which is beneficial to establishing a safer encryption mechanism.)

一种基于分布式存储的硬件加密方法、系统及装置

技术领域

本发明涉及一种基于分布式存储的硬件加密方法、系统及装置,属于数据安全技术领域。

背景技术

随着各类信息系统和数据中心快速建设发展,产生的敏感业务数据量也越来越多、分布式存储系统系统解决了存储的集中度、容量、吞吐量等,但存储越来越集中、价值越来越重要,来自内部和外部的安全威胁因素越来越多,安全风险越来越高,导致数据泄露事件层出不穷,数据存储的安全问题也越来越突出。

存储系统的安全包含保密性和完整性,威胁存储数据安全的根源在于存储介质中的数据是以明文方式保存,入侵者可以轻易地非法获取或修改数据。

发明内容

发明目的:针对现有技术中存在的问题与不足,本发明提供一种基于分布式存储的硬件加密方法、系统及装置。

技术方案:一种基于分布式存储的硬件加密方法,包括密码注册流程、写文件到磁盘流程、从磁盘读取数据流程。

所述密码注册流程包括:

为用户设定密码,调用加密卡API生成密钥;

利用分布式算法选取三台存储节点,将所述密钥以三副本的形式存储到所述节点上的加密卡;所述三个密钥副本存储成功后,返回注册成功消息;并将用户的加密卡位置进行存储;所述三个副本包括一个主副本和两个从副本。

所述写文件到磁盘流程包括:

根据用户的加密卡位置通过加密卡API读取获取用户密钥;

将用户数据切片,根据用户密钥调用加密卡API给数据切片加密;

分布式存储系统先将加密后的数据切片写主副本,然后同步到两个从副本;将数据密文落盘到磁盘上。

所述从磁盘读取数据流程包括:

根据用户的加密卡位置通过加密卡API读取获取用户密钥;通过分布式文件系统从对应的物理磁盘上读取密文数据,再利用对应的密钥对密文数据进行解密。

密码注册流程中,加密卡API、加密密钥都保存在加密卡中,属于一种硬件加密,由FPGA芯片来进行加密和保存,由软件很难破解。

在密钥保存过程中,采用分布式算法选取分布式集群中的三台服务器作为三台存储节点,将他们上面的加密卡作为三副本密钥存储的介质,保证能密钥能均匀分布,又能保证其可靠性。

一种基于分布式存储的硬件加密系统,包括密码注册模块、写文件到磁盘模块、从磁盘读取数据模块。

所述密码注册模块,通过管理平台的界面创建用户,为用户设定密码;调用加密卡API生成密钥;利用分布式算法选取三台存储节点,密钥以三副本的形式分别存储到节点上的加密卡,所述三个副本包括一个主副本和两个从副本,一个密钥作为主副本存储在一个节点上,另外两个同样的密钥作为从副本分别存储在另外两个节点上;所述密钥在主副本存储成功,将成功的消息发回给管理平台;密钥从两个副本将自动存储到加密卡;全部三个密钥副本存储成功,返回注册成功消息给管理平台;将用户所在加密卡位置写入到管理平台数据库。

所述写文件到磁盘模块,根据用户所在加密卡位置通过加密卡API读取获取用户密钥;将用户数据切片,本地计算出三个副本的存储位置后,将直接和Primary OSD通信;根据用户密钥调用加密卡API给数据切片加密;将加密后的数据切片发送给客户端,客户端先写主副本,然后同步到两个从副本;主副本等待从副本的ack消息和apply消息;当主副本收到ack消息,说明写操作已经写在内存中完成,收到apply 消息,说明已经写到磁盘了;结果是将数据密文落盘到磁盘上。

所述从磁盘读取数据模块,根据用户所在加密卡位置通过加密卡API读取获取用户密钥;通过分布式文件系统从指定的OSD中读取分片数据;从对应的物理磁盘上读取密文数据,再利用对应的密钥对密文数据进行解密。

所述用户密钥通过加密卡加密后存在加密卡上。用户密码就不存在泄密的问题了。并且密码有三个副本,保证其可靠性。

数据通过加密卡落盘在磁盘上,即磁盘上存的是密文。保证硬盘物理介质被盗的情况下还能保证其数据不被盗。

一个用户对应一个密钥,数据加密时使用用户密钥,实现一户一密,保证用户之间的逻辑隔离也是加密形式存在的。

一种基于分布式存储的硬件加密装置,包括存储器、至少一个处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时执行基于分布式存储的硬件加密方法。

本发明中,保存到硬盘上的文件是密文而非明文,存储介质的丢失也能保证关键数据的不被破解,让损失降低到最小。

本发明中,提供密码卡密钥备份,当密码卡损坏时也不会因加解密的问题造成用户数据的不可用。

本发明中,每个存储节点采用2张及以上的密码卡,同样数据用两张或两张以上加密卡分别加密,再对加密后的密文进行比对,相同则通过,不同则失败,利用多卡校验,既能保证存储的数据的完整性和可靠性;又能利用多卡并行运算提高加解密的速度。

本发明中,分布式算法采用分布式存储本身的分布式算法,并没有增加算法的难度,也没有破坏原有分布式系统的稳定性,同时保证算法能在大部分分布式存储系统上使用从而保证其通用性。

附图说明

图1是本发明实施例的注册流程图;

图2是本发明实施例的写文件到磁盘流程图;

图3是本发明实施例的读文件流程图。

具体实施方式

下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。

如图1-3所示,实施例提出的基于分布式存储的硬件加密方法和系统,涉及到客户端、管理节点、存储集群(包括主存储节点、从存储节点)。

客户端通过接口对分布式存储的硬件进行访问。

管理节点负责监视分布式集群,维护集群的健康状态,同时维护着集群中的各种Map图。

存储集群包括所有的存储节点,用于数据存储,硬盘作为单独的存储空间,其raid卡仅作数据通道。

每个存储节点有2张或以上加密卡,用来存储用户密钥、数据加解密以及双卡验证。

主存储节点和两个从存储节点分别作为数据三副本存储空间。

基于分布式存储的硬件加密方法具体包括:

注册阶段:

(1)管理节点设置用户密码;

(2)管理节点调用加密卡API给用户名密码加密,形成密钥对;

(3)管理节点通过分布式算法选取三台存储节点上的加密卡存储密钥对,三台存储节点分别为主存储节点,和两个从存储节点;

(4)存储密钥对到主存储节点的加密卡上;

(5)主存储节点上的加密卡对密钥进行双卡校验(同样数据用两张加密卡分别加密,再对加密后的密文进行比对,相同则通过,不同则失败);

(6)返回密钥存储是否成功的结果给管理节点;

(7)将密钥对同步到从存储节点的加密卡上;

(8)从存储节点上的加密卡对存储进行双卡校验;

(9)返回从存储节点的密钥存储是否成功的结果给主存储节点;

(10)返回存储密钥对存储结果给管理节点;

(11) 管理节点更新密钥位置数据库,即将用户的加密卡位置写入到管理节点的密钥位置数据库中。

写文件到磁盘阶段:

(1)客户端向管理节点发出取用户密钥请求;

(2)管理节点通过密钥位置数据库查询用户密钥所在的存储节点;

(3)管理节点向存储节点发出读取加密卡上的密钥对指令;

(4)存储节点将密钥对返回给管理节点;

(5)管理节点将密钥对返回给客户端;

(6)客户端将数据按照固定大小进行切片(默认为4MB,也可以在系统中修改);

(7)客户端向管理节点提出写数据申请;

(8)管理节点调用系统原有的分布式算法计算存储位置;

(9)利用用户密钥对对用户分片数据进行加密,实现一户一密,并密文存储到主存储节点的磁盘上;

(10)在主存储节点上对加密数据进行双卡校验;

(11)将主存储节点是否存储成功的结果反馈给管理节点;

(12)将主存储节点数据同步到(两个)从存储节点上;

(13)在从存储节点上对加密数据进行双卡校验(同样数据用两张加密卡分别加密,再对加密后的密文进行比对,相同则通过,不同则失败);

(14)将从存储节点是否存储成功的结果反馈给主存储节点;

(15)将从存储节点是否存储成功的结果反馈给管理节点;

(16)将存储结果反馈给客户端。

读文件阶段:

(1)客户端向管理节点发出取用户密钥请求;

(2)管理节点通过密钥位置数据库查询用户密钥位置;

(3)根据用户密钥位置管理节点向存储集群中的存储节点发出读取加密卡上的密钥对指令;

(4)存储节点将密钥对返回给管理节点;

(5)管理节点将密钥对返回给客户端;

(6)客户端向管理节点发出读文件请求;

(7)管理节点通过分布式算法获取(分片)数据存储位置;

(8)从主存储节点磁盘读取分片数据(密文);

(9)利用用户密钥对对用户分片数据进行解密;

(10)返回读取结果给管理节点;

(11)返回(分片)明文数据给客户端;

(12)将分片数据合成为用户需要的数据。

基于分布式存储的硬件加密系统,包括密码注册模块、写文件到磁盘模块、从磁盘读取数据模块。

密码注册模块,通过管理平台的界面创建用户,为用户设定密码;同时支持绑定USBkey;调用加密卡API生成密钥;利用分布式算法选取三台存储节点,密钥以三副本的形式分别存储到节点上的加密卡,三个副本包括一个主副本和两个从副本,一个密钥作为主副本存储在一个节点上,另外两个同样的密钥作为从副本分别存储在另外两个节点上;所述密钥在主副本存储成功,将成功的消息发回给管理平台;密钥从两个副本将自动存储到加密卡;全部三个密钥副本存储成功,返回注册成功消息给管理平台;将用户所在加密卡位置写入到管理平台数据库。

写文件到磁盘模块,根据用户所在加密卡位置通过加密卡API读取获取用户密钥;将用户数据切片,本地计算出三个副本的存储位置后,将直接和Primary OSD通信;根据用户密钥调用加密卡API给数据切片加密;将加密后的数据切片发送给客户端,客户端先写主副本,然后同步到两个从副本;主副本等待从副本的ack消息和apply消息;当主副本收到ack消息,说明写操作已经写在内存中完成;收到apply 消息,说明已经写到磁盘了;结果将数据密文落盘到磁盘上。

从磁盘读取数据模块,根据用户所在加密卡位置通过加密卡API读取获取用户密钥;通过分布式文件系统从指定的OSD中读取分片数据;从对应的物理磁盘上读取密文数据,再利用对应的密钥对密文数据进行解密。

用户密钥通过加密卡加密后存在加密卡上。用户密码就不存在泄密的问题了。并且密码有三个副本,保证其可靠性。

数据通过加密卡落盘在磁盘上,即磁盘上存的是密文。保证硬盘物理介质被盗的情况下还能保证其数据不被盗。

基于分布式存储的硬件加密装置,包括存储器、至少一个处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,处理器执行所述程序时执行基于分布式存储的硬件加密方法。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于云平台的SAN存储对接方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类