基于区块链的云服务数据审计方法与流程

文档序号:16063349发布日期:2018-11-24 12:25阅读:383来源:国知局

本发明涉及云计算服务领域,具体讲,涉及基于区块链的云服务数据审计方法。

背景技术

当前学术界和工业界对于云存储服务领域数据的绝大多数云存储服务审计方案都建立在如图1所示的审计架构模式上。在这种架构模式下,第三方审计机构(thirdpartyauditor,tpa)是提供审计服务的重点,更重要的是tpa需要得到相应的用户授权并且云存储服务必须具备公开审计性。一方面,云存储服务具备公开审计性会使得云存储服务提供商面临巨大的安全挑战,在用户数据外存过程中,用户隐私和数据可能遭遇安全挑战;另一方面,当前基于人工或半自动化的tpa审计,且集中式的tpa审计方式可能会造成以下困境。首先,在大规模审计需求的前提下,人工或半自动化的审计方式将会面临巨大的效率挑战,这其中由于人参与往往伴随着错误的诞生。其次是信任的挑战。审计结果安全取决于tpa本身,因此,用户和云存储服务提供商只能盲目的信任tpa给出的结果,在这种情况下,如果tpa出错或者tpa作弊,前者将无法得知。更重要的,人工或者半自动化的审计方式有可能造成用户隐私或数据泄露。

综述上述各点,当前技术主要存在以下缺陷:

1.不安全的传输方式,或云存储服务提供商的趋利性可能导致用户隐私和数据遭遇安全挑战;

2.基于信任的人工或半自动化的tpa可能会导致用户隐私和数据遭遇安全挑战;

区块链是一种在无信任网络节点上构建集体信任的技术。区块链的基本假设是网络中任何节点都不可信任,但是它用一种共识机制确保网络中所有节点达成的共识是可信的,也就是所有不可信节点组成的网络是可信的。在这种背景下,我们结合区块链技术的核心概念以及现有技术提出了一种全新的自动化审计模式,如图2所示。



技术实现要素:

为克服现有技术的不足,提出一种面向用户、去中心化的新型服务审计模式,提高服务审计效率,降低成本。本发明采用的技术方案是,基于区块链的云服务数据审计方法,构建保证协议实现的去中心化审计模型,定义该模型中的三种角色:用户u,审计方a以及云存储服务提供商csp,另外,还包括云存储服务提供商中的服务器s,云存储服务存储和审计过程如下:

初始阶段:u生成公私密钥对(pk,sk),并将公钥(publickey,pk)广播给csp和a,并将私钥(secretkey,sk)留存;

同步阶段:u对其将要存储到csp处的所有数据f按照其选定的方式分段且对每个数据段生成同态数据摘h要后,将数据f以及同态数据摘要集合n分别发送给csp和a,此后删除本地数据f以及同态数据摘要信息n;

验证阶段:a首先根据用户的同态摘要集合信息n,随机生成一个数据块验证子集chal,此时的数据集合并非用户的存储数据块,而是数据块的定位信息,然后,将验证子集chal发送给csp,在csp接收到验证子集chal后,根据本地数据块信息生成相应的证明信息v,然后将该证明信息v返回给a;最后,a根据证明信息v,同态摘要集合信息n以及验证子集信息chal验证本次审计结果。

云存储服务存储和审计过程区块链网络构造如下:

第一步,构建一个去中心化的区块链网络。

通过以太坊区块链平台提供的客户端构建一个私有链网络。根据区块链节点特性,我们可以将网络分为两种类型节点簇,也就是两类节点全节点和简单验证节点spv节点;

第二步,实现bp协议

根据bp协议中对每个算法功能的描述,利用密码学算法,构建一套稳固、安全的bp协议;

第三步,实现智能合约

验证元素和验证结果放在链上,用于数据的存储和检索逻辑,实现相应的智能合约并将其部署在链上;

第四步,构建单节点客户端。

通过将bp协议以及只能合约进行扩充和封装形成restapi编程接口和webui交互接口,进而将形成单节点客户端;

第五步,引用客户端

将封装成的客户端应用到第一步中构建的去中心化网络中,整个服务生态闭环完成,通过restapi编程接口和webui交互接口与整个网络进行交互。

实现智能合约具体步骤如下:

(1)alphabet是一个字符表,store是一个映射表,(key-value),store[key]←value,key表示索引,value表示值,整体表示一对key-value值存储在store中;

(2)执行如下子函数

uinttobytes函数描述

1)输入v:键值;输出ret:sotre的索引值

2)如果v等于0,则ret等于0

3)否则执行4,5,6直到v小于或等于0

4)ret等于将ret本身左移8位8

5)ret等于v模10加48并且右移8位后,再与ret逐位或的结果

6)v等于v除以10

7)返回ret;

getkey函数描述

1)输入key:输入索引值;输出k为store的索引值

2)返回函数unittobytes(key)调用的结果;

write函数描述

1)输入key:索引值,value:数据值

2)中间变量internalkey等于函数调用getkey(key)的结果,入口参数为key

3)store[internalkey]等于value;

read函数描述

1)输入key:索引值,返回值value:映射值

2)中间变量internalkey等于函数调用getkey(key)的结果,入口参数为key

3)value等于store[internalkey]

返回value。

根据本地数据块信息生成相应的证明信息v具体步骤如下:

1)验证信息v为每个数据块的同态加结果;

2)对于验证子集chal中的每个chal[i],在服务器上检索chal[i]对应的数据块h[i];

3)v←v+f,其中运算符+为pbc算法库中定义的运算符,f是存储在服务器上的数据块集合。

根据证明信息v,同态摘要集合信息n以及验证子集信息chal验证本次审计结果,具体验证步骤如下:

1)h为同态摘要同态乘;

2)对于验证子集chal中的每个chal[i],在区块链上检索chal[i]对应的同态摘要信息chal[i];

3)h←h*h[i],其中*为pbc算法库中定义的运算符;

对v做同态摘要即pbc中的函数,生成hv;

其中r←cmp(hv,h),cmp为pbc库中定义的函数。

本发明的特点及有益效果是:

本发明提出了一种面向用户、去中心化的新型服务审计模式。在我们提出的审计模式中,独立的tpa将不复存在,其职责与权利将由用户和服务提供方共同承担。一方面,去中心化的审计服务网络使得权责去中心化,我们将信任整个网络而非网络中的某个节点或组织;另一方面,将整个审计方案半自动化甚至全自动化交由网络执行,在一定程度上提高了服务审计效率,降低成本,同时还能通过公开审计的方式有效遏制数据存储服务商对用户数据的潜在不当行为。再者,利用网络的匿名性以及传输,计算和存储过程的加密处理也使得用户隐私和数据安全得到保证。

附图说明:

图1为传统云服务审计模型图。

图2为去中心化云服务审计模型图。

图3为业务逻辑模型图。

图4为单节点系统模块模型图。

图5为测试网络逻辑图。

具体实施方式

本发明提出了一种面向用户、去中心化的新型服务审计模式。本发明结合了区块链技术特点以及用户对云存储服务的公共审计性需求,在现有审计模型的基础上加以改进,提出并实现了一种新型的审计模式。该模式能够在保证用户隐私信息的前提下,提供一种面向用户的安全、高效的审计服务。我们在此将提供一个实现样例的实施过程以供参考。

第一步,构建一个去中心化的区块链网络。

在我们提出的方案中构建一个去中心化的区块链网络是所有实现的基础。我们可以通过以太坊区块链平台提供的客户端构建一个私有链网络。如图5所示,根据区块链节点特性,我们将网络分为两簇,也就是两类节点全节点和spv(simplifiedpaymentverification,spv)节点,图中cluster0和cluster1分别包含了这两类节点。

第二步,实现bp(basicprotocol,bp)协议。

构建bp协议最重要的是加密学原理的应用。根据bp协议中对每个算法功能的描述,我们可以借用已有的密码学算法,例如pbc(pairing-basedcryptographylibrary)算法库,来构建一套稳固、安全的bp协议。

第三步,实现智能合约。

我们说,为了减轻区块链的计算压力。我们尽量将非核心业务放在区块链下处理或者在区块链监督下执行。在我们的方案中,我们最重要的验证元素和验证结果放在链上,他们最主要就是数据的存储和检索逻辑,如algorithmi描述。我们根据algorithmi描述实现相应的智能合约并将其部署在链上。

第四步,构建单节点客户端。

我们在前三步中依次构建了网络,实现了传输协议以及智能合约的部署。在这里我们通过将bp协议以及只能合约进行扩充和封装形成restapi编程接口和webui交互接口,进而将形成单节点客户端。

第五步,应用客户端到网络。

将封装成的客户端应用到第一步中构建的去中心化网络中,整个服务生态闭环也就完成了。在测试过程中,我们可以将某些节点视作用户,将另外一些节点视作云存储服务器,就如图5中标注。

我们提出了如图2所示的新型审计架构。我们将用户节点和云存储服务提供节点纳入到一个职权对等的区块链网络。在这种架构下,tpa不再由专门的第三方机构承担,而是网络中的所有节点都将扮演tpa的角色,承担tpa的所有职责并且享受tpa的所有权利。也就是说,在这个对等网络中,用户和云存储服务提供商除了要扮演自己原有的角色以外,还需要扮演tpa的角色。

在该方案中,我们剔除了图1所示架构中基于信任的第三方审计机构,用户和云存储服务提供商扮演了tpa的角色。一方面,在数据外存过程中,仅有用户和云存储服务提供商深度参与,并且二者的交互行为将会被整个网络诚实记录。也就是说,在通信过程以及存储过程数据和用户隐私没有泄露危险的情况下,二者的交互行为是可信的。另一方面,在审计过程中,用户本身承担了tpa的职责并享受tpa的权利,并按照双方约定的审计方案执行审计。此时,如果用户和云存储服务提供商之间的交互过程中没有发生数据和用户隐私泄露的行为,那么二者的交互行为以及审计结果都将被网络诚实记录。另外,我们知道上述去中心化可信网络具备的一个很重要的特性就是匿名性,也就是说,我们可以识别网络中某个账户,但是无法知道这个账户属于谁。更重要的是,我们在判定某个节点不诚实,其实是判定某个账户不诚实。

综上所述,我们知道在上述去中心化的区块链网络中,用户隐私和数据信息的安全挑战在于如何维护数据传输过程和存储过程中的安全性。因此,通过密码学原理的运用,我们构建了一套数据传输和验证协议以保证用户隐私以及数据在传输、验证和存储过程中的安全。在详细描述该方案之前,我们首先对其中某些短语代表含义做出解释。从逻辑上讲,我们定义模型中的三种角色:用户u,审计方a以及云存储服务提供商csp,另外,还包括云存储服务提供商中的服务器s。

我们构建了一个保证协议实现的去中心化审计模型。从逻辑上讲,我们定义该模型中的三种角色:用户(user,u),审计方(auditor,a)以及云存储服务提供商(cloudserviceprovider,csp),另外,还包括云存储服务提供商中的服务器(server,s)。云存储服务存储和审计过程在下文叙述。

整个解决方案如图3所示。我们将整个云存储服务存储和审计过程从逻辑上具体定义为三个阶段:

初始阶段(setupphase):u生成公私密钥对(pk,sk),并将公钥(publickey,pk)广播给csp和a,并将私钥(secretkey,sk)留存;

同步阶段(synchronizephase):u对其将要存储到csp处的所有数据f按照其选定的方式分段且对每个数据段生成同态数据摘h要后,将数据f以及同态数据摘要集合n分别发送给csp和a,此后删除本地数据以及同态数据摘要信息;

验证阶段(verifyphase):a首先根据用户的同态摘要集合信息n,随机生成一个数据块验证子集chal,此时的数据块验证子集chal并非仅仅是用户的存储数据块,而是数据块的定位信息。紧接着,a将chal发送给csp。在csp接收到验证子集chal后,采用algorithmii生成本次审计的证明信息v,然后将该证明信息v返回给a。最后,a根据证明信息v,同态摘要集合信息n以及验证子集信息chal,通过algorithmiii验证本次审计,并生成结果r。

更确切的说,在云存储服务存储和审计过程的三个阶段中,为了保证用户隐私和数据在传输、计算和存储过程中不会被泄露,我们根据密码学原理定义了一套包含五个多项式时间算法(genkey,sigblock,pregenproof,genproof,verifyproof)的加密协议。更加具体的说,这组协议的具体描述如下:

生成密钥(genkey)–u执行用于生成密钥对;

生成信息摘要(sigblock)–u通过私钥对其按照某种策略分段的数据块信息做同态数据摘要;

选取验证子集(pregenproof)–a通过存储在本地的摘要集合,随机选取验证验证子集chal;

生成验证信息(genproof)–csp根据验证子集、用户公钥信息以及数据信息生成证明信息;

验证结果(verifyproof)–a根据证明信息,数据块同态摘要信息以及验证子集信息验证本次审计结果。

现有区块链平台中以以太坊(ethereum)对智能合约支持最为出色。本发明中去中心化可信区块链网络借助以太坊客户端构建,智能合约则以以太坊平台支持的标准为规约。

我们解释图2中架构模型的运行原理时提到,在面向用户的去中心化审计模型中用户本身承担了tpa的职责。注意这里的用户为泛指——指网络中所有数据拥有者,这里可能包括现实中云服务用户,也可能包括云存储服务内部用户节点。如上述所说,整个审计方案包括三个阶段总共五个多项式时间算法。在我们的实现中,为了尽量减少区块链承担的计算职责,智能合约将执行以下业务逻辑:

数据外存记录的存储和检索业务逻辑

数据审计记录和结果的存储和检索业务逻辑

在图2中我们构建了一个去中心化的网络模型,将用户和云存储服务节点(或组织)纳入到网络内。为了便于实现,我们构建了如图4所示的单节点系统模型。在这里我们着重突出了审计节点的所包含的内容,包括图3描述的审计业务逻辑,其具体体现就是bp协议。在该实现中还应该包括区块链相关协议以及为了便于编程封装的编程接口(restapi)和便于交互构建的可视化接口(webui)。

两个业务逻辑的构建极其类似,在这里我们提供二者的公用算法。下面我们具体说明几个算法:

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