一种面向安全数据存储的自动化审计方法

文档序号:35955745发布日期:2023-11-08 17:19阅读:37来源:国知局
一种面向安全数据存储的自动化审计方法与流程

本发明属于数据存储和区块链,涉及一种面向安全数据存储的自动化审计方法。


背景技术:

1、数据可恢复证明(proofs of retrievability,por)是一种同时提供数据存储证明和数据恢复功能的密码技术。在云存储中,该技术有助于客户端无需下载全部数据即可检查(又称审计)云端数据的完整性和正确性,且支持损坏数据的及时修复,以保证云端数据的可用性。然而,现有多数por方案是在两个参与者(即客户端和服务器)之间的信道中实现的,交互的不透明性极易导致信任问题和利益纠纷。

2、为了解决这一问题,学者引入了诚实的第三方审计者,但这种要求赋予完全信任的机制面临着潜在的风险,如合谋攻击和单点故障。虽然具有分布式、可验证等特点的区块链技术提供了新的解决思路,但现有基于区块链的数据存储审计协议局限在私有链/联盟链中或依赖于特殊构造的区块链。此外,传统por方案并未得到改进,无法直接在区块链中实现,难以有效应用推广。

3、上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。


技术实现思路

1、针对上述问题,本专利基于区块链技术设计了一种面向安全数据存储的自动化审计方法,利用智能合约的部署和调用,不仅能够嵌套现有por方案,而且无需第三方审计者的参与(即审计只由服务器调用智能合约算法执行),有效提高了公平性和实用性。本发明解决了现有por方案信任问题突出及数据存储审计协议构造特殊的现状,将por方案嵌套到区块链的同时实现自动审计和公平交易,满足安全高效、应用便利的发展需求。

2、针对本发明的目的,本发明提出了一种面向安全数据存储的自动化审计方法,其流程为:

3、1)在区块链上部署智能合约并初始化一结构体task及任务列表tasks;其中,任务列表tasks用于记录结构体task中的信息;结构体task的数据结构包含任务的唯一标识符id、客户端地址client、服务器地址列表server、任务费用f、存储时间t、审计次数n、用于审计的元数据m、索引列表i和存储开始时间t;

4、2)客户端通过调用所述智能合约将其待存储数据file的相关信息上传到区块链并支付费用vf,所述区块链根据该相关信息和结构体task生成一存储任务a并存储到所述任务列表tasks中;各服务器向发起所述存储任务a的所述客户端发出合作请求;所述区块链首先判断所述存储任务a是否已有合作服务器,如果没有则将各对应服务器的地址保存到所述任务列表tasks内存储任务a对应的记录中;客户端选择一目标服务器ds作为合作服务器;

5、3)所述客户端将数据file的元数据mc上传到区块链,以及通过安全信道将数据file的密文enc(file)发送给目标服务器ds;所述目标服务器ds根据接收的密文enc(file)恢复出数据file,将数据file的元数据ms上传到区块链,并支付押金vd;区块链检测mc与ms是否一致,若一致则将数据file的元数据及当前时间保存到所述任务列表tasks内存储任务a对应的记录中,作为用于审计的元数据m和存储开始时间t,此时所述目标服务器ds开始存储数据file;

6、4)所述目标服务器ds向区块链发送对密文enc(file)的审计请求,所述区块链根据审计请求生成密文enc(file)的一文件块索引i并返回给所述目标服务器ds,然后所述目标服务器ds根据索引i对应的文件块b和存储证明π计算得到一元数据mnew并发送到区块链,区块链检测mnew与m是否一致,若一致则所述目标服务器ds获得所述客户端提供的部分酬金;否则所述客户端收到赔偿金。

7、进一步的,生成所述存储任务a的方法为:客户端输入任务费用f、存储时间t和审计次数n,并支付费用vf;区块链将当前区块号、时间戳、矿工地址和手续费gas上限通过hash算法以随机生成存储任务a的唯一标识符id,在任务列表tasks中添加a,并记录a对应的信息(client,f,t,n,id);将存储任务a的唯一标识符id发送给所述客户端。

8、进一步的,所述服务器查看tasks,选择存储任务a并输入对应的id;区块链根据输入的id在tasks查询存储任务a是否已经达成合作意向。

9、进一步的,如果相邻两次审计请求的时间间隔t′满足t/n≤t′<2t/n,则生成有效的文件块索引i。

10、进一步的,若mnew与m一致则所述目标服务器ds获得所述客户端提供的部分酬金vf/n;否则客户端收到赔偿金vr+vd;其中vr为vf的剩余部分。

11、进一步的,若在指定时间t内完成审计,则所述目标服务器ds收到的酬金为vf-vr+vd,客户端收到vr;其中vf-vr为到目前为止所述目标服务器ds正确审计所得的全部酬金。

12、本发明具体步骤如下:

13、步骤1.初始化(setup)步骤:数据存储系统在区块链上部署智能合约时自动触发初始化(setup)步骤,定义结构体task(包含任务的唯一标识符id、客户端地址client、服务器地址列表server、任务费用f、存储时间t、审计次数n、用于审计的元数据m、索引列表i和存储开始时间t)以及任务列表tasks。其中,tasks初始状态为空表,在后续步骤中用于记录task。具体参数符号定义参见具体实施方式中(1.符号及定义)。

14、步骤2.存储任务生成(task creation)步骤:该步骤及后续步骤中,客户端和服务器的操作几乎都是通过调用部署在区块链上的智能合约算法实现,并将相关信息上传到区块链。具体来说,客户端上传与存储任务相关的信息,服务器自由地向目标任务提出合作请求(竞标),客户端选择目标服务器达成合作意向。

15、·算法1.客户端发起存储任务模块(uploadtask):该算法由客户端u调用,根据自身存储需求输入任务费用f、存储时间t和审计次数n,同时支付费用vf。该算法将当前区块号、时间戳、矿工地址和手续费(即gas)上限通过hash算法以随机生成新任务a的唯一标识符id,在任务列表tasks中添加a,并记录a对应的信息(client,f,t,n,id),其中,client为u的地址(即调用该算法的参数msg.sender)。算法输出id作为客户端u收到的返回值。

16、·算法2.服务器竞标模块(submitserver):该算法由服务器调用,服务器可查看tasks,自由选择目标任务并输入其对应的id。此处假设服务器j和服务器k都希望能完成任务a,他们各自调用算法2。该算法根据id在tasks查询a,判断其是否已经达成合作意向。若任务a对应的server长度大于1,且server中只有一个有效的服务器地址而其他位置为空(即客户端u已执行算法3),则说明该任务已达成合作意向,输出错误;否则,记录该服务器的地址(即msg.sender)到tasks。

17、·算法3.客户端选择服务器模块(changeserver):该算法由客户端u调用,输入任务a对应的,d和客户端从多个竞标服务器中选择的某个目标服务器ds(此处假设为服务器j)。该算法在tasks中查找a,对照其中记录的客户端地址client是否为当前调用该算法的客户端u的地址(即msg.sender),由此判断a是否由客户端u发起。若是,则清空除ds外竞标该任务的所有服务器地址,直观展示u指定的目标服务器;否则,输出错误。至此,任何服务器无法再调用submitserver模块发起竞标。

18、步骤3.元数据确认(metadata issuance)步骤:该步骤用于确认来自客户端和服务器的元数据是否一致。算法4和算法5都需根据输入的id判断调用者与id指向的任务的对应关系,即客户端只能处理自己发起的任务,服务器只能处理自己提供服务的任务。

19、·算法4.客户端上传元数据模块(uploadmeta):该算法由客户端调用,输入任务id和客户端根据外包文件file计算得到的元数据mc(常包含建立在外包文件块上的哈希树等信息);同时客户端通过链下安全信道将外包文件的密文enc(file)发送给目标服务器ds,其中,enc代表加密算法。

20、·算法5.验证元数据模块(verifymeta):该算法由目标服务器ds调用,输入任务id和ds根据接收的文件(即通过解密密文dec(enc(file))得到file)计算得到的元数据ms,同时支付押金vd。若mc=ms,在区块链上的任务列表tasks中将其记录为元数据m并记录此刻为t,目标服务器ds开始存储file;否则,将费用vf退回给客户端,将押金vd退回给目标服务器ds。

21、步骤4.审计执行(audit execution)步骤:该步骤中,目标服务器ds根据随机索引打包存储证明进行审计以获得酬金,重复此步骤直到指定时间t为止。算法6和算法7仍需判断调用者与算法输入id所指向任务的对应关系。

22、·算法6.生成索引模块(indexgen):该算法由目标服务器ds调用,输入任务id。该算法执行如下操作:相邻两次调用时间间隔t′只有满足t/n≤t′<2t/n,才输出指向外包文件块的有效随机索引i;否则,视为ds遗漏审计,算法先在tasks自动记录无效索引false,再返回有效索引i给ds。此处设置时间间隔t′是为了保证目标服务器ds均匀执行审计,避免其连续执行审计从而以最短时间获得酬金vf(即未满足客户端存储时间t的要求)。

23、·算法7.审计模块(audit):该算法由目标服务器ds调用,输入任务id、由indexgen模块生成的有效索引i、i指向的文件块b和存储证明π。该算法计算新的元数据mnew并与tasks中的m比较,若mnew=m,说明ds正确存储文件并获得部分酬金vf/n,算法输出1;否则,客户端收到赔偿金vr+vd(即vf的剩余部分vr+押金vd),算法输出0。在指定时间t完成审计后,目标服务器ds得到vf-vr+vd(其中,vf-vr为到目前为止目标服务器ds正确执行审计所得的全部酬金),客户端收到vr(若ds遗漏部分审计,则vr≠0),任务a结束。

24、本发明的优点如下:

25、目前多数por方案中客户端和服务器的交互信道不透明,缺乏有效的监督机制或严重依赖于完全可信的第三方,极易导致信任问题和利益纠纷。尽管区块链技术有望解决这些问题,但现有基于区块链的数据存储审计协议构造特殊,未能直接嵌套por方案,难以满足公平交易、应用便利的发展需求。

26、本发明基于区块链技术设计的面向安全数据存储的自动化审计方法,是一种能够嵌套现有por方案的通用架构,只需改变算法输入(por方案在审计时常利用哈希证明)。特别地,本发明无需包含审计服务器或任何其他第三方来协助审计,只要求服务器调用智能合约算法来完成审计(即智能合约充当审计服务器)。此外,本发明能够应用于公有链、私有链、联盟链等多种区块链类型,从源头上解决por方案的信任问题及数据存储审计协议的繁琐构造,更能满足公平性和实用性的实际需求。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1