基于ECC和AES的区块链云存储框架设计

2022-06-23 10:59蓝永胜冯文健
计算机工程与设计 2022年6期
关键词:密钥加密框架

蓝永胜,冯文健,黄 力

(1.桂林航天工业学院 网络与信息化管理中心,广西 桂林 541004;2.柳州铁道职业技术学院 基础教育学院,广西 柳州 545616;3.广西科技大学 计算机与通信工程学院,广西 柳州 545002)

0 引 言

随着科学技术的迅猛发展,互联网中新的安全问题不断出现,虽然云环境为人们带来很大便利性,但需要通过隐私保护技术确保数据安全,防止来自外部和内部的篡改和攻击[1,2]。通常,信息安全机制一旦出现漏洞会造成巨大损失,因此,在客户端和云服务之间建立的隐私机制迫切需要更新和完善。

针对这些隐私安全问题,有必要研究去中心化技术[3]。云环境可从区块链中获得收益,是因为区块链具有防篡改性,支持数据审核,在保持隐私性的同时保存数字资产[4]。相关研究也表明[5,6],身份验证是安全机制的基础,采用区块链技术能够提高证书授权的安全性,有助于抵御分布式拒绝服务(DDOS),并防止用户数据被操纵。如Darwish等[7]提出一种基于区块链的访问控制系统,解决了数据的定制访问问题。Sartekin等[8]提出了一种隐式数据安全方案,以处理云环境中不安全连接通信和数据收集所引发的隐私问题。Wang等[9]提出了去中心化的区块链信息管理方案来实现医疗数据的安全存储。由于集中式架构难以透明安全地处理海量数据,Zhao等[10]提出了使用区块链技术的智能IoT网络的保护方案,通过区块链进行无缝的数据处理。Wei等[11]利用区块链确保正确的交易授权和审核,维护数据完整性,减少外部攻击威胁。

为确保数据完整性和可靠性,提高用户隐私性,本文提出一种混合算法进行数据加密,利用区块链技术来保持数据完整性。实验结果表明,该方法具有较好的安全性和实用性。本文主要创新总结如下:①将椭圆曲线加密(ECC)和高级加密标准(AES)进行混合,并引入了使用用户凭证的密钥生成技术;②将混合算法与定制化区块链相结合,解决了云存储架构中的主要隐私问题。

1 本文系统基本框架

1.1 框架说明

一般云存储架构如图1所示,其中,可信第三方作为用户和云服务器之间的媒介而存在,用于保障数据完整性和隐私性。很多研究表明,任何隐私保护方法都应该考虑4个隐私概念/标准[12]:①数据私密性;②信任;③性能高效;④验证。

图1 一般云存储服务架构

本文框架结构如图2所示。本文在云结构内引入了一个新的层,建立在虚拟机上,作为云基础设施的一个虚拟层,提高用户和企业在使用云服务时的隐私性。虚拟机采用去中心结构,创建多个节点以利用事务ID与数据中心进行记录认证。区块链的作用是验证数据的正确性,并针对签名和加密数据之间的匹配准确度生成审核报告。区块链网络基于TCP/IP协议,由加密的分布式共享账本和P2P网络实现,本文的区块链实际网络结构如图2下方所示。

图2 本文框架

所提框架的关键之处是建立了服务器端的加密和用户管理密钥,针对每个用户生成唯一密钥对。不同于客户端处用户凭证的其它密钥,该用户密钥以远离云服务提供商的方式完成,从而提高了用户隐私性,集成的去中心化方法确保了可扩展性、数据完整性和隐私性。

1.2 前 端

用户接口是一个web应用,使用户可以访问并利用各种类型的云服务。当用户从云服务模型中请求软件服务时,SaaS确认请求,带回所请求的服务,并向IaaS发送请求以获得软件实例[13]。IaaS提供商与SaaS提供商可能相同,也可能不同。一旦请求得到确认,本文框架即选择提供隐私服务,在云上存储数据之前,先在服务器端部署一个加密层,该程序在客户端执行。用户选择隐私选项后,用户凭证自动生成一个密钥作为种子,并使用用户的凭证参数作为随机引擎的输入以生成密钥对。

在SaaS中部署隐私层,由此在发起服务请求时,从软件层将其推送到基础设施层。本文在将数据外包到第三方云端之前,先利用增强AES和ECC进行数据加密。同理,要下载数据时,先利用私钥进行数据解密,再将数据存储在本地数据。

1.3 后 端

后端是本文系统的核心,建立虚拟机作为云基础设施的虚拟层,并实施区块链。在将加密数据散列为固定长度后,将加密数据存储到区块中。将包含区块散列值、时间戳和工作量证明的所有事务存储到服务器端的区块中,区块中的每个记录属于一个特定数据持有者。为此,本文开发了一个云审核器,以模拟云内的事务,将加密数据散列出的签名与事务元数据相比较(周期性地进行数据和签名的匹配),检查链中的数据完整性,从而确保数据完整。

在虚拟机中采用去中心结构,这样就可以创建多个节点以利用事务ID(TX-ID)与数据中心进行记录认证。最后,在下载数据时,区块链验证数据的正确性,并针对签名和加密数据之间的匹配准确度生成审核报告。前端和后端部分按顺序执行,首先将数据上传到云引擎,利用密钥管理分发来创建签名,最后将数据下载到数据持有者的设备中。

在IaaS服务模型中纳入由增强AES和ECC算法组成的隐私层,用户通过向平台请求特定服务与SaaS层进行交互。建立隐私层后,虚拟机被触发,在客户端生成一对密钥,使得客户能够利用自身的凭证对其密钥进行管理。隐私层将在生成密钥后启动,从而在云数据中心对上传数据进行加密。该阶段将对密钥对进行加密;但AES密钥保持隐藏状态,以便利用ECC算法对密钥进行秘密分发。

最后,利用散列函数将加密数据散列为数字签名,并保存在区块中。云审核器能够始终自动检查数据完整性。下文给出了在云存储基础设施上建立区块链的混合算法的步骤。

2 云存储中的区块链混合算法

2.1 密钥生成

使用SHA256算法,从用户的私钥密码中生成一个散列值。基于用户凭证,使用该散列值作为随机数发生器的种子。种子生成用于ECC算法的密钥对,作为硬编码的公共指数。此外,每个用户的用户凭证具有唯一性,通过输入用户凭证就可以得到密钥对。

2.2 AES算法

构建隐私层时,首先利用对称算法,基于随机数生成器(RNB)生成密钥,以加密上传到云端,且该对称算法用于数据流。虽然AES算法有着不同的密钥大小,但本文使用了128位密钥,数据块大小为相同长度。使用AES进行10次迭代的数据加密,其中包含4个主要操作:①字节替换;②行移位;③混合列;④轮密钥异或。解密过程是使用相同参数的逆过程。

2.3 ECC算法

本文使用对称算法对AES密钥进行加密,以生成不易泄漏且便于在用户和云提供商之间进行密钥分发的密钥对。根据用户凭证,选择[1,n-1]之间的一个随机数R1,该随机数作为发送方的私钥。设:P表示有限域的规定;R2表示基于用户凭证的随机数;G表示发生器;A,B表示系数;K表示安全密钥;M表示曲线上的点。

ECC中的步骤如下:

步骤1 对随机数发生器RBG进行初始化。

步骤2 发送方利用以下公式生成公钥

PA=R1*G

(1)

步骤3 接收方选择私钥R2,并使用以下公式生成公钥

PB=R2*G

(2)

步骤4 发送方生成一个安全密钥

K=R1*PB

(3)

接收方也生成一个安全密钥

K=R2*PA

(4)

加密阶段,其步骤具体如下:

步骤1 设L为椭圆曲线上的一些点。

步骤2 发送方从[1,n-1]中选择一个随机数。

步骤3 生成的密文数据为一对点(B1,B2),其中

(5)

式中:q为一个素数,用于限定有限域的范围。

解密阶段,主要是计算B1及其私钥,然后提取B2,以得到原始消息

M=B2-(dB*B1)

(6)

式中:d为椭圆曲线加密的系数。

2.4 去中心化技术

区块链包含按时间排序、用于存储数据事务的区块。每个区块包含散列码、时间戳、事务集和工作量证明等,并通过不可更改的散列码与上一个区块相链接,其结构如图3所示,且区块链上的数据不可修改,可以审计。第一个区块被称为“创世”区块,用于初始化,在软件内利用非先验参考硬编码而得到。插入到区块链内的数据需要取得大部分节点的共识,且在得到所有方的接受后数据不可被删除或更改[14]。

图3 区块链结构

区块链的一个最重要特征是:无法通过对区块头的解密得到数据事务的原始数据,其应用不限于加密货币,还可容纳其它信任系统,例如智能合约、云存储和ID系统等。其关键特征包括[15]:①防篡改;②用户隔离;③去中心化结构;④事务透明性;⑤散列码不变;⑥衔接性;⑦用户匿名性;⑧实时同步;⑨数据保护。共识机制是区块链的重要模块,目标流行的共识机制有工作量证明机制(POW)、PBFT和DPOS等。本文采用POW,其思想是分布式网络中的每个节点都去竞争,由最快计算出结果的节点创建新块,并进行验证和交易。本文框架利用区块链的技术优势,每个用户分配一个唯一的签名,从而将该数据与其它用户的数据区分开,增强了云端的数据完整性。

综上所述,在发起服务请求并发送到云端后,启动隐私层。通过原始密钥长度推导出的轮密钥加入加密数据流,然后在加密过程中使用AES算法进行字节替换、混合列和行移位操作。该程序迭代10次以提供要存储在数据中心的密文数据。同时,将ECC生成的160位密钥与AES的密钥合并,通过在云环境中SaaS和IaaS层之间的密钥对交换,实现更高的安全等级。

ECC中的RBG基于用户凭证,从能够显著提高隐私性的曲线中生成唯一性密钥对,即私钥Pr和公钥Pr*G。利用公钥对密钥进行加密,使其无法被云服务提供商或攻击者所读取。此外,区块链根据数据的时间戳、用户ID和散列码对数据进行散列,以生成存储在事务集中的数字签名。因此,针对一个特定用户的一次数据事务,每个区块链在散列过程后将数字签名保存一次,作为云审核器的索引或参考,通过云审核器进行数据完整性检验。云存储中的数据中心通过事务ID与公共区块链的去中心化层通信,以验证区块,确保加密数据完整性,并在解密前进行授权。最后,在收到下载任务请求后,通过ECC私钥对AES密钥解密,使用密钥对数据流解密。在该过程中,云审核器在下载前进行签名比对,以验证数据的正确性和可靠性。

3 实验与分析

本文框架建立在云服务基础设施的虚拟云上。在IaaS服务模型的虚拟机上进行整合,并部署了与实际平台环境和属性容器相同的网络层。使用跨平台语言创建虚拟环境,然后,基于虚拟数据中心,将虚拟环境分为软件层和基础设施服务层,以进行数据处理和外包。此外,在虚拟机中创建区块集合,与混合算法共同使用。使用公共区块链的Solicdity OPP、JavaSCript ES5和Hypertext Preprocessor 5.6以构建本文系统。仿真环境创建2台云服务器和6台虚拟机,以模拟本文系统,并通过反复多次实验来验证结果。

3.1 隐私性分析

实验使用自动开源工具对系统进行1000次攻击,模拟在面临窃取数据或篡改加密数据时,IaaS内的云数据状态。实验比较了所提系统与证书数字签名解决方案[16]的结果。表1给出了针对数据中心加密数据的不同攻击的检测结果,这些攻击包括内部攻击、外部攻击和合并攻击。实验结果表明,在加密和解密程序之外,隐私层使用区块链技术,通过将虚假签名与原始签名进行比对检验,多次成功检测到了风险。在100次窃取和篡改数据的攻击中,仅3次攻击未被检测到。因此,通过去中心化技术实现了97%的成功检测率,而文献[16]仅实现95%的检测率。

表1 针对不同类型攻击的实验结果

因此,本文框架能够较好保护用户隐私,成功防范系统中攻击者97%的入侵。这得益于本文系统利用区块链检查散列码,以检测存储数据中的变化,确保数据的完整性和隐私性。以下为实验中使用的攻击描述及分析:

3.1.1 中间人攻击

中间人攻击[17]是指攻击者位于通信两方(即客户端和云服务提供商(CSP))之间,攻击者尝试使客户方的数据暴露,并窃取敏感信息,并冒充第二方,建立独立连接,尝试欺骗第三方直接向其发送消息。本文框架能够防御此类攻击,因为敏感数据将使用混合密钥系统(在整个过程中使用AES,在密钥分发管理中使用ECC)进行加密。攻击者无法将密文数据还原为原始数据,区块链架构则使用事务ID,在两方之间进行身份验证,以保护通信安全。因此,本文框架能够抵御各种类型的攻击。

3.1.2 分布式拒绝攻击

分布式拒绝服务[18](DDOS)是指攻击者利用各种恶意木马,入侵数据并感染系统。DDOS是IT领域中最常见的网络威胁之一。本文框架使用区块链技术作为带智能合约的分布式数据结构,因此可以抵御此类攻击。智能合约包括匹配散列ID,并认证TX-ID,且这些合约并不支持物理访问。

3.1.3 云服务提供商攻击

第三方代表用户控制数据,其可能会非法使用用户数据,例如将数据出售至其它公司。为了对数据进行恶意操作,数据在云服务器中需要表现为未混淆的明文形式。由于本文方案中,通过混合算法将数据以不可读取的方式做了加密,因此,服务提供商无法获得原始数据,这样就保证了用户的隐私安全。

3.2 吞吐量分析

云存储中,吞吐量是系统性能的重要指标之一。网络吞吐量的计算公式为

TH=pt·sp/t

(7)

式中:pt表示成功发送数据包数量之和;sp表示平均数据包大小;t表示发送数据的总时间。

实验比较了所提框架与文献[6]、文献[7]方案在吞吐量方面的性能,文件大小从10 MB到100 MB,其结果如图4所示。其中,文献[6]在区块链上构建可问责的完整性证明,以智能合约替代第三方审计;文献[7]将数据控制存储在无需任何第三方参与的云环境。由图4可知,所有方法中,文件大小均会直接影响到吞吐量。其中,文献[6]和文献[7]在相同大小文件情况下,其吞吐量均低于本文框架,这主要是因为本文框架通过在IaaS设置了隐私虚拟层,采用去中心结构,这样就可以创建多个节点以利用事务ID,并针对签名和加密数据之间的匹配准确度生成审核报告。虚拟层的去中心化结构提高了数据验证的效率。而文献[6]和文献[7]均属于不带隐私层的云存储方案,甚至需要第三方仲裁机构的参与,效率较低。

图4 吞吐量比较

3.3 延迟分析

延迟是云存储设计的另一个重要指标,其定义如下

delay=τd-τs

(8)

式中:τd表示数据以分组形式传输数据时到达目的地的时间戳,表示源时间戳。

实验模拟并比较了所提框架与文献[6]、文献[7]的结果,区块的大小是影响延迟的关键因素,实验中的区块大小从100 KB到800 KB,各框架的差异比较结果如图5所示。可以看出,随着块大小的增加,所有框架的延迟都逐步增加。一般而言,200 ms到450 ms之间的延迟都是可以接受的。因此,所比较框架的延迟都是可接受的。但本文框架的延迟最低,这主要是因为虚拟层集成在IaaS中,在发起服务请求时,从软件层将其推送到基础设施层,其速度更快。

图5 延迟比较

此外,区块并不用于将整个加密数据存储为事务集,而是仅存储签名、时间、区块散列码和工作量证明。区块大小的增加会影响到云基础设施内的延迟。由图5可知,对于所提框架,200 KB到500 KB的曲线平坦,斜率较低,因此,可以将该区间设置为最大区块大小的阈值区间。

3.4 关于可扩展性问题

云存储中,可扩展性是指资源增长时的系统性能,或者资源使用随负荷请求的增加情况。因此,可扩展性是衡量云环境中服务质量(QoS)的关键。可扩展性使得服务提供商可以实时评估隐私层是否有能力处理当前的用户请求。实验在使用3个以太坊节点的区块链网络上进行,当请求数量分别为0、10、20、50、70、80、90、100时,资源使用率分别为0%、50%、100%、140%、205%、230%、250%、290%。本文框架的可扩展性如图6所示。可以看出,本文框架能够根据不同数量的事务和资源使用情况进行扩展。

图6 可扩展性测量结果

3.5 上传/下载时间比较

本实验将比较所提框架与SpiderOak云[19](版本5.1.6)在下载和上传数据时所需时间,后者云平台上进行数据加密和解密。使用秒表计算两个系统的下载和上传数据时间。实验带宽为100 Mbps,并使用了不同类型的文件(如PDF、Doc、Docx、JPG、BMP等)。实验涉及到超过200个文件,大小从1 MB到100 MB(100 MB为虚拟化缓冲器的最大容量)。表2给出了上传时间。下载时间的比较见表3。在相同设备和带宽下执行该实验,由此进行公平比较。实验结果表明,与当前解决方案相比,所提框架效率更高,平台灵活度更好。

表2 上传时间比较

表3 下载时间比较

4 结束语

本文提出了实施在基础设施虚拟机中的基于区块链的混合算法。服务实例中包含加密引擎,利用新生成的种子和散列部分,以实现在区块链技术中保留数字签名。通过云审核器在去中心化平台中执行授权,可保护加密数据免受来自云服务提供商内部的攻击。本文基于数据隐私性、完整性等进行了性能评估。实验结果表明,所提框架的去中心化分布式部署能够实现优于一些以往方案的效率,具有一定可行性和有效性。未来,本文将考虑在真实数据中心和基础服务层设施中应用所提框架,并研究与虚拟仿真结果的异同。

猜你喜欢
密钥加密框架
有机框架材料的后合成交换
一种新型离散忆阻混沌系统及其图像加密应用
幻中邂逅之金色密钥
幻中邂逅之金色密钥
框架
密码系统中密钥的状态与保护*
一种基于熵的混沌加密小波变换水印算法
TPM 2.0密钥迁移协议研究
加密与解密
关于原点对称的不规则Gabor框架的构造