CN113422688A - 一种云存储数据的快速审计方法 - Google Patents

一种云存储数据的快速审计方法 Download PDF

Info

Publication number
CN113422688A
CN113422688A CN202110957344.1A CN202110957344A CN113422688A CN 113422688 A CN113422688 A CN 113422688A CN 202110957344 A CN202110957344 A CN 202110957344A CN 113422688 A CN113422688 A CN 113422688A
Authority
CN
China
Prior art keywords
enclave
cloud server
data
user
auditing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110957344.1A
Other languages
English (en)
Other versions
CN113422688B (zh
Inventor
薛婧婷
罗抒琴
史凌杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Southwest Petroleum University
Original Assignee
Southwest Petroleum University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Southwest Petroleum University filed Critical Southwest Petroleum University
Priority to CN202110957344.1A priority Critical patent/CN113422688B/zh
Publication of CN113422688A publication Critical patent/CN113422688A/zh
Application granted granted Critical
Publication of CN113422688B publication Critical patent/CN113422688B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3273Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response for mutual authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种云存储数据的快速审计方法,包括:步骤S1.密钥生成中心选择系统公开参数,并生成用户的签名公私钥对和飞地的签名公私钥对;步骤S2.用户对原始数据进行预处理生成外包数据集合,并计算辅助信息,将外包数据集合和辅助信息发送给云服务器,并与飞地完成双向身份认证;步骤S3.基于以太坊区块链网络,智能合约根据预设的审计周期生成挑战信息,并将挑战信息发送给云服务器;步骤S4.云服务器在接收到挑战信息后,运行飞地中的自审计程序来输出审计证明;步骤S5.智能合约验证审计证明,并输出验证结果。本发明在不引入可信第三方的情况下能抵抗恶意云服务器的替换攻击和伪造攻击。

Description

一种云存储数据的快速审计方法
技术领域
本发明属于信息安全和网络空间安全领域,特别是涉及一种云存储数据的快速审计方法。
背景技术
随着网络技术的迅猛发展和数据的爆炸式增长,数据拥有者乐于借助云存储系统来存储并管理自己的数据,以降低本地维护成本。在云存储中,数据拥有者(即云存储服务的用户)仅需将个人数据存储到云服务器上,然后就可以享受按需的远程检索服务。尽管具有这些优点,云存储系统也暴露出一些安全问题,其中最重要的是外包数据的完整性问题。简单来说,用户一旦将数据外包给云服务器就失去了对个人数据的物理控制权。因此,用户需要考虑外包数据是否一直完整地存储在云服务器上。实际上,外包数据的完整性确实存在安全风险。作为一个独立的运营实体,云服务器可能有多种恶意攻击行为。另一个值得注意的事实是,网络黑客可能会为了盈利而攻击云服务器并破坏外包数据。如果发生以上任何恶性事件,用户外包数据的完整性都可能遭到破坏。因此,周期性地审计用户外包数据的完整性是很有必要的。
目前,数据完整性审计技术支持以下两种常见的审计模式:私有审计和公共审计。具体来说,私有审计模式中用户自己审计外包数据的完整性。该模型要求用户保持周期性地在线并执行审计任务,这对用户有严格的带宽要求。对于带宽资源受限的用户,要求周期性保持在线的私有审计模式不是最优的方式。相较而言,公共审计则是一种应用更为广泛的审计模型,其中用户授权一个第三方审计者来审计外包数据的完整性。该模式假设第三方审计者是完全可信的。也就是说,一旦审计者受到攻击或做出恶意行为,基于公共审计模型的方案将不能提供系统安全性,用户也无法获得客观的外包数据完整性状态。
针对上述两类审计模型的缺点,出现了自审计模式,即:要求云服务器对数据完整性进行审计。然而,自审计模式有以下安全问题:
(1)恶意的云服务器可能通过伪造审计结果欺骗用户,如云服务器总是向用户发送良好的完整性报告,而不检查数据完整性。
(2)另一个棘手的问题是,恶意的云服务器可能破坏抽样数据集合的随机性,而采用预生成的挑战消息来完成审计。在这种情况下,只有存储完整的数据块才会被审计,从而能生成一个良好的审计结果;但这并不代表外包数据真实的完整性状态。
因此,设计能抵抗恶意云服务器的外包数据自审计方法具有重要的研究意义和应用价值。
此外,随着信息交互的日益频繁,云存储系统中的审计技术需要支持数据动态更新,如外包数据块的修改、插入和删除。然而,现有的方案大多以较大的计算成本来支持数据动态更新。具体来说,在单个目标数据块上执行更新操作时需要对整个数据块进行大量运算,从而造成了动态文件完整性检查的延迟。在这种情况下,即使在数据块的某个位置插入小尺寸的数据也会导致整个数据块标签的重新计算。因此,必须考虑用户外包数据的高效动态更新方法,以实现灵活的数据存储和更新服务。
发明内容
本发明的目的在于克服现有技术的一项或多项不足,提供一种云存储数据的快速审计方法。
本发明的目的是通过以下技术方案来实现的:一种云存储数据的快速审计方法,包括:
步骤S1.密钥生成中心根据安全参数选择系统公开参数,所述系统公开参数包括对称加密算法、安全哈希函数、同态哈希函数、签名算法和伪随机排列;密钥生成中心生成自己的主密钥,并基于密钥生成中心的主密钥和实体的身份信息计算用户的签名公私钥对和飞地的签名公私钥对,所述实体的身份信息包括用户的身份信息和飞地的身份信息;
步骤S2.用户对原始数据进行预处理生成外包数据集合,并计算辅助信息,所述辅助信息包括外包数据集合对应的默克尔哈希树和自审计程序;然后用户将外包数据集合和辅助信息发送给云服务器,并与部署在云服务器上的飞地完成双向身份认证;
步骤S3.基于以太坊区块链网络,智能合约根据预设的审计周期生成挑战信息,并将所述挑战信息发送给云服务器;
步骤S4.云服务器在接收到所述挑战信息后,运行飞地中的自审计程序来输出审计证明;
步骤S5.智能合约验证所述审计证明,并输出验证结果。
优选的,所述步骤S1的具体步骤包括:
步骤S11.密钥生成中心根据安全参数
Figure 100002_DEST_PATH_IMAGE001
选取对称加密算法
Figure 100002_DEST_PATH_IMAGE002
、同态哈希函数
Figure 100002_DEST_PATH_IMAGE003
、安全哈希函数
Figure 100002_DEST_PATH_IMAGE004
、签名算法
Figure 100002_DEST_PATH_IMAGE005
和伪随机排列
Figure 100002_DEST_PATH_IMAGE006
,其中,
Figure 100002_DEST_PATH_IMAGE007
为该伪随机排列的密钥;
步骤S12.密钥生成中心选取随机数
Figure 100002_DEST_PATH_IMAGE008
作为密钥生成中心的主密钥;
步骤S13.密钥生成中心根据用户的身份信息
Figure 100002_DEST_PATH_IMAGE009
生成用户的第一私钥
Figure 100002_DEST_PATH_IMAGE010
步骤S14.密钥生成中心根据用户选择的随机数
Figure 100002_DEST_PATH_IMAGE011
Figure 100002_DEST_PATH_IMAGE012
,生成用户的签名公私钥对
Figure 100002_DEST_PATH_IMAGE013
和飞地的签名公私钥对
Figure 100002_DEST_PATH_IMAGE014
,其中,
Figure 100002_DEST_PATH_IMAGE015
为用户的公钥,
Figure 100002_DEST_PATH_IMAGE016
为用户的私钥,
Figure 100002_DEST_PATH_IMAGE017
为飞地的公钥,
Figure 100002_DEST_PATH_IMAGE018
为飞地的私钥,
Figure 100002_DEST_PATH_IMAGE020
优选的,所述步骤S2的具体步骤包括:
步骤S21.用户将原始数据
Figure 100002_DEST_PATH_IMAGE021
划分为
Figure 100002_DEST_PATH_IMAGE022
个数据块
Figure 100002_DEST_PATH_IMAGE023
Figure 100002_DEST_PATH_IMAGE024
表示数据块,
Figure 100002_DEST_PATH_IMAGE025
为连接符号;
步骤S22.用户将
Figure 100002_DEST_PATH_IMAGE026
个数据块
Figure 100002_DEST_PATH_IMAGE027
进行添加序列号加密处理,生成数据块集合
Figure 100002_DEST_PATH_IMAGE028
,其中,
Figure 100002_DEST_PATH_IMAGE029
Figure 100002_DEST_PATH_IMAGE030
,
Figure 100002_DEST_PATH_IMAGE031
为对称加密算法
Figure 100002_DEST_PATH_IMAGE032
的密钥,
Figure 100002_DEST_PATH_IMAGE033
为加密数据块;
步骤S23.计算辅助信息
Figure 100002_DEST_PATH_IMAGE034
Figure 100002_DEST_PATH_IMAGE035
Figure 100002_DEST_PATH_IMAGE036
,并将外包数据包
Figure 100002_DEST_PATH_IMAGE037
发送给云服务器,其中
Figure 100002_DEST_PATH_IMAGE038
是用哈希值
Figure 100002_DEST_PATH_IMAGE039
作为叶子结点构建的默克尔哈希树,
Figure 100002_DEST_PATH_IMAGE040
是默克尔哈希树
Figure 100002_DEST_PATH_IMAGE041
的根值,
Figure 100002_DEST_PATH_IMAGE042
为自审计程序,
Figure 100002_DEST_PATH_IMAGE043
表示拟外包的数据块集合;
步骤S24.云服务器将
Figure 100002_DEST_PATH_IMAGE044
Figure 100002_DEST_PATH_IMAGE045
存储在云服务器的存储空间中,将辅助信息
Figure 100002_DEST_PATH_IMAGE046
加载到飞地的隔离内存区域PRM中存储;
步骤S25.用户与部署在云服务器上的飞地完成双向身份认证,用户在双向身份认证成功后向飞地共享飞地的签名公私钥对
Figure 100002_DEST_PATH_IMAGE047
优选的,所述步骤S3的具体步骤为:
步骤S31.根据预设的审计周期t,智能合约读取以太坊区块链上最新的
Figure 100002_DEST_PATH_IMAGE048
个区块的哈希值,记为
Figure 100002_DEST_PATH_IMAGE049
,其中,
Figure 100002_DEST_PATH_IMAGE050
Figure 100002_DEST_PATH_IMAGE051
均表示哈希值;
步骤S32.智能合约计算随机种子
Figure 100002_DEST_PATH_IMAGE052
和拟审计数据块的序号
Figure 100002_DEST_PATH_IMAGE053
,其中,
Figure 100002_DEST_PATH_IMAGE054
Figure 100002_DEST_PATH_IMAGE055
个被审计块的序号,
Figure 100002_DEST_PATH_IMAGE056
是以
Figure 100002_DEST_PATH_IMAGE057
Figure 100002_DEST_PATH_IMAGE058
为输入的伪随机函数;
步骤S33.智能合约向云服务器发送挑战信息
Figure 100002_DEST_PATH_IMAGE059
,其中
Figure 100002_DEST_PATH_IMAGE060
是本次审计抽样的数据块的数量。
优选的,所述步骤S4的具体步骤为:
步骤S41.云服务器在接收到挑战信息
Figure 21145DEST_PATH_IMAGE059
后,根据挑战信息
Figure 672706DEST_PATH_IMAGE059
生成对应的完整性信息
Figure 100002_DEST_PATH_IMAGE061
,其中
Figure 100002_DEST_PATH_IMAGE062
是用于自审计的哈希值集合,
Figure 100002_DEST_PATH_IMAGE063
为抽样来审计的数据块;
步骤S42.云服务器运行飞地中的自审计程序
Figure 100002_DEST_PATH_IMAGE064
来读取
Figure 100002_DEST_PATH_IMAGE065
,并生成审计证明
Figure 100002_DEST_PATH_IMAGE066
,其中,
Figure 100002_DEST_PATH_IMAGE067
指本次审计时自审计程序
Figure 100002_DEST_PATH_IMAGE068
读取的挑战信息
Figure 100002_DEST_PATH_IMAGE069
中的
Figure 100002_DEST_PATH_IMAGE070
值,
Figure 100002_DEST_PATH_IMAGE071
指审计结果1或0。
优选的,所述步骤S5的具体步骤为:
步骤S51.智能合约读取审计证明
Figure 100002_DEST_PATH_IMAGE072
,然后验证签名
Figure 100002_DEST_PATH_IMAGE073
的合法性、随机数
Figure 100002_DEST_PATH_IMAGE074
是否成立、
Figure 100002_DEST_PATH_IMAGE075
是否成立,若
Figure 100002_DEST_PATH_IMAGE076
Figure 100002_DEST_PATH_IMAGE077
的合法签名且
Figure 100002_DEST_PATH_IMAGE078
为真,则智能合约生成审计成功事务
Figure 100002_DEST_PATH_IMAGE079
,否则生成审计失败事务
Figure 100002_DEST_PATH_IMAGE080
,审计成功事务
Figure 100002_DEST_PATH_IMAGE081
表示外包数据包的完整性未遭到破坏,审计失败事务
Figure 100002_DEST_PATH_IMAGE082
表示外包数据包的完整性可能已遭到破坏。
优选的,所述快速审计方法还包括:
步骤S6.动态更新:云服务器在接收到用户的更新请求后,执行更新任务并输出更新事务;
步骤S7.验证更新操作:智能合约验证所述更新事务,并输出验证结果。
优选的,所述步骤S6的具体步骤为:
步骤S61.云服务器接收到用户的更新请求后,判断所述更新请求的类型:若所述更新请求为修改请求,则执行步骤S62;若所述更新请求为删除请求,则执行步骤S63;若所述更新请求为插入请求,则执行步骤S64;
步骤S62.云服务器收到用户的修改请求
Figure 100002_DEST_PATH_IMAGE083
后验证签名
Figure 100002_DEST_PATH_IMAGE084
的有效性,其中
Figure 100002_DEST_PATH_IMAGE085
,修改请求
Figure 100002_DEST_PATH_IMAGE086
表示将数据块
Figure 100002_DEST_PATH_IMAGE087
改为数据块
Figure 100002_DEST_PATH_IMAGE088
Figure 100002_DEST_PATH_IMAGE089
Figure 100002_DEST_PATH_IMAGE090
的哈希值,
Figure 100002_DEST_PATH_IMAGE091
Figure 100002_DEST_PATH_IMAGE092
的哈希值;若签名
Figure 100002_DEST_PATH_IMAGE093
有效,则用
Figure 100002_DEST_PATH_IMAGE094
替换存储空间中的
Figure 100002_DEST_PATH_IMAGE095
,更新默克尔哈希树
Figure 100002_DEST_PATH_IMAGE096
,并生成第一修改信息
Figure 100002_DEST_PATH_IMAGE097
,其中,
Figure 100002_DEST_PATH_IMAGE098
指修改过程涉及的哈希值的集合;飞地读取并验证第一修改信息,并在第一修改信息验证通过后广播修改事务
Figure 100002_DEST_PATH_IMAGE099
,其中,
Figure 100002_DEST_PATH_IMAGE100
表示飞地对更新操作的验证结果;
步骤S63.云服务器接收到用户的删除请求
Figure 100002_DEST_PATH_IMAGE101
后,验证签名
Figure 100002_DEST_PATH_IMAGE102
的有效性,其中
Figure 100002_DEST_PATH_IMAGE103
Figure 100002_DEST_PATH_IMAGE104
为要删除的加密数据块,
Figure 100002_DEST_PATH_IMAGE105
Figure 100002_DEST_PATH_IMAGE106
的哈希值;若签名
Figure 100002_DEST_PATH_IMAGE107
有效,则删除存储空间中的加密数据块
Figure 100002_DEST_PATH_IMAGE108
,更新默克尔哈希树
Figure 100002_DEST_PATH_IMAGE109
,并生成第二修改信息
Figure 100002_DEST_PATH_IMAGE110
,其中,
Figure 100002_DEST_PATH_IMAGE111
指删除过程涉及的哈希值的集合;飞地读取并验证第二修改信息,并在第二修改信息验证通过后广播删除事务
Figure 100002_DEST_PATH_IMAGE112
,其中,
Figure 100002_DEST_PATH_IMAGE113
表示飞地对更新操作的验证结果;
步骤S64.云服务器接收到用户的插入请求
Figure 100002_DEST_PATH_IMAGE114
后,验证签名
Figure 100002_DEST_PATH_IMAGE115
的有效性,其中,
Figure 100002_DEST_PATH_IMAGE116
为要插入的数据块,
Figure 100002_DEST_PATH_IMAGE117
Figure 100002_DEST_PATH_IMAGE118
的哈希值;若签名
Figure 100002_DEST_PATH_IMAGE119
有效,则在存储空间中+添加
Figure 100002_DEST_PATH_IMAGE120
,更新默克尔哈希树
Figure 100002_DEST_PATH_IMAGE121
,并生成第三修改信息
Figure 100002_DEST_PATH_IMAGE122
,其中,
Figure 100002_DEST_PATH_IMAGE123
指插入过程涉及的哈希值的集合;飞地读取并验证第三修改信息,并在第三修改信息验证通过后广播插入事务
Figure 100002_DEST_PATH_IMAGE124
,其中,
Figure 100002_DEST_PATH_IMAGE125
表示飞地对更新操作的验证结果。
优选的,所述步骤S7的具体步骤为:
步骤S71.在被更新事务
Figure 100002_DEST_PATH_IMAGE126
触发后,智能合约验证验证签名
Figure 100002_DEST_PATH_IMAGE127
的合法性,并判断
Figure 100002_DEST_PATH_IMAGE128
是否为真:若验证签名
Figure 100002_DEST_PATH_IMAGE129
合法、且
Figure 100002_DEST_PATH_IMAGE130
为真,则输出更新成功事务
Figure 100002_DEST_PATH_IMAGE131
,否则输出更新失败事务
Figure 100002_DEST_PATH_IMAGE132
,更新成功事务
Figure 100002_DEST_PATH_IMAGE133
表示云服务器按更新请求完成外包数据块的更新操作,更新失败事务
Figure 100002_DEST_PATH_IMAGE134
表示云服务器未按更新请求完成外包数据块的更新操作。
本发明的有益效果是:
(1)本发明在不引入可信第三方的情况下能抵抗恶意云服务器的替换攻击和伪造攻击,支持数据审计“挑战-应答”过程中挑战信息的随机可验证性;基于安全区块链的chain quality属性,云服务器根据以太坊区块链上最新12个连续块的随机数对外包数据包中的数据块进行随机抽样,并运行飞地中的自审计程序来检查抽样数据块的完整性状态;该机制保证了抽样集合的可验证随机性,能有效防止云服务器选取特定数据块集合作为审计样本集。
(2)本发明采用英特尔SGX技术在云服务器上部署了一个可信执行环境,即飞地;在飞地的隔离执行机制的保护下,本发明通过默克尔哈希树的根值验证即可完成外包数据块完整性的快速审计;与现有的基于同态签名数据标签的公共审计方案相比,本发明的方法提供了哈希运算量级的高审计性能和低存储开销(云服务器无需存储尺寸较大的数据标签),为用户提供了可信的数据完整性审计结果。
(3)本发明利用了同态哈希函数来构造外包数据块的索引,具有如下优点:第一,能与默克尔哈希树的数据结构兼容,通过验证根值来快速审计外包数据包的完整性状态,极大地降低了审计的计算开销;第二,可以支持特定数据块的细粒度动态更新。相比现有的支持数据更新的方案,本发明的方法无需检索拟更新数据的整个数据块和其对应的索引,而只需要执行同态哈希运算即可更新目标数据块和索引信息。
(4)本发明提出了一种支持安全云存储的数据完整性快速审计和动态更新方法,在不依赖任何可信第三方的前提下,基于英特尔SGX和区块链技术支持用户在资源受限时能获取外包数据包的周期性的完整性状态,并采用同态哈希运算以低开销来保障用户数据的细粒度动态更新。
附图说明
图1为云存储数据的快速审计方法的一种流程图;
图2为平台间飞地的远程身份认证示意图;
图3为本地平台的飞地身份认证示意图;
图4为默克尔哈希树的重构和根值验证示意图;
图5为云存储自审计方法的又一种流程图;
图6为云服务器根据修改请求对数据块进行修改的一种示意图;
图7为云服务器根据删除请求对数据块进行删除的一种示意图;
图8为云服务器根据插入请求对数据块进行插入的一种示意图;
图9为云服务器根据插入请求对数据块进行插入的又一种示意图。
具体实施方式
下面将结合实施例,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
参阅图1-图9,本实施例提供了一种云存储数据的快速审计方法:
如图1所示,一种云存储数据的快速审计方法,包括:
步骤S1.密钥生成中心根据安全参数选择系统公开参数,所述系统公开参数包括对称加密算法、安全哈希函数、同态哈希函数、签名算法和伪随机排列;密钥生成中心生成自己的主密钥,并基于密钥生成中心的主密钥和实体的身份信息计算用户的签名公私钥对和飞地的签名公私钥对,所述实体的身份信息包括用户的身份信息和飞地的身份信息。
具体的,所述步骤S1的具体步骤包括:
步骤S11.密钥生成中心根据安全参数
Figure 409368DEST_PATH_IMAGE001
选取对称加密算法
Figure 273419DEST_PATH_IMAGE002
、同态哈希函数
Figure 822212DEST_PATH_IMAGE003
、安全哈希函数
Figure 603262DEST_PATH_IMAGE004
、签名算法
Figure 604716DEST_PATH_IMAGE005
和伪随机排列
Figure 272458DEST_PATH_IMAGE006
,其中,
Figure 675757DEST_PATH_IMAGE007
为该伪随机排列的密钥。
步骤S12.密钥生成中心选取随机数
Figure 403542DEST_PATH_IMAGE008
作为密钥生成中心的主密钥。
步骤S13.密钥生成中心根据用户的身份信息
Figure 626713DEST_PATH_IMAGE009
生成用户的第一私钥
Figure 98145DEST_PATH_IMAGE010
步骤S14.密钥生成中心根据用户选择的随机数
Figure 355951DEST_PATH_IMAGE011
Figure 254637DEST_PATH_IMAGE012
,生成用户的签名公私钥对
Figure 965104DEST_PATH_IMAGE013
和飞地的签名公私钥对
Figure 974648DEST_PATH_IMAGE014
,其中,
Figure 585496DEST_PATH_IMAGE015
为用户的公钥,
Figure 655083DEST_PATH_IMAGE016
为用户的私钥,
Figure 118426DEST_PATH_IMAGE017
为飞地的公钥,
Figure 666082DEST_PATH_IMAGE018
为飞地的私钥,
Figure DEST_PATH_IMAGE135
步骤S2.用户对原始数据进行预处理生成外包数据集合,并计算辅助信息,所述辅助信息包括外包数据集合对应的默克尔哈希树和自审计程序;然后用户将外包数据集合和辅助信息发送给云服务器,并与部署在云服务器上的飞地完成双向身份认证。
用户与飞地的双向身份认证过程为:英特尔SGX技术的远程认证机制支持用户验证部署在云服务器上的飞地的真实性,主要通过EREPORT和EGETKEY两条指令来实现。远程认证机制包括本地认证和远程认证两个部分。其中,本地认证用于确认目标飞地和自己是否在同一平台上运行;它涉及消息验证码(MAC)和一个报告密钥(report key)。报告密钥仅对飞地本身和同一平台的EREPORT可见。用户和云服务器之间的远程认证用于确认远程飞地的真实性;它涉及签名机制、签名密钥和公钥证书。在本地认证机制的基础上,远程证明机制引入了一个公开身份的特殊飞地,称为引用飞地(quoting enclave)。引用飞地创建了一个平台认可的签名密钥
Figure DEST_PATH_IMAGE136
(enhanced privacy identification),它绑定了处理器固件的版本号,代表了平台和底层硬件的可信度。当飞地系统运行时,只有引用飞地才能读取
Figure DEST_PATH_IMAGE137
如图2所示,平台间的远程认证采用非对称密钥机制。请求者Enclave A(即用户)和目标Enclave B(部署在云服务器上的飞地)的双向验证步骤如下:(1)Enclave A向Enclave B发送身份认证请求。(2)在收到Enclave A的身份认证请求后,Enclave B调用EREPORT指令生成REPORT结构,并将其发送给引用飞地Enclave C;(3)在收到Enclave B的REPORT结构后,Enclave C与本地平台内的Enclave B进行本地相互认证。(4)在Enclave B和Enclave C相互认证通过后,Enclave C生成远程认证结果QUOTE,并用处理器私钥EPID生成签名。(5)Enclave C将QUOTE、签名和相关清单发送给认证请求者Enclave A。(6)收到相关数据后,Enclave A通过目标飞地平台的公钥证书来验证签名合法性,通过清单内容和摘要来确认Enclave B的身份。
值得注意的是,REPORT结构可以提供额外的用户数据域(存放用户自定义的数据结构)以支持更复杂的交互方式。如本发明方法中的共享会话密钥以建立安全信道,以支持飞地签名密钥对的共享。
如图3所示,在同一平台上,Enclave A和Enclave B之间的双向验证的步骤如下:(1)Enclave B向Enclave A发送身份认证请求;(2)Enclave A调用EREPORT指令生成REPORT结构(包括身份信息和一些其他数据);(3)Enclave A获取Enclave B的报告密钥,并用以计算REPORT结构的MAC标签;(4)Enclave A生成最终的REPORT结构并发送给Enclave B;(5)在收到Enclave A的REPORT结构后,Enclave B调用EGETKEY指令来获取报告密钥,并将重新计算的MAC值和收到的REPORT结构中的MAC值进行对比。当可信硬件部分得以证实且MAC值匹配后,Enclave B认可Enclave A的身份。类似地,Enclave A用相同的方法验证Enclave B的身份,从而完成平台内的相互认证。
具体的,所述步骤S2的具体步骤包括:
步骤S21.用户将原始数据
Figure 836163DEST_PATH_IMAGE021
划分为
Figure 76651DEST_PATH_IMAGE022
个数据块
Figure 761711DEST_PATH_IMAGE023
Figure 113058DEST_PATH_IMAGE024
表示数据块,
Figure 701427DEST_PATH_IMAGE025
为连接符号。
步骤S22.用户将
Figure 112817DEST_PATH_IMAGE026
个数据块
Figure 285172DEST_PATH_IMAGE027
进行添加序列号加密处理,生成数据块集合
Figure 174631DEST_PATH_IMAGE028
,其中,
Figure 381621DEST_PATH_IMAGE029
Figure 963912DEST_PATH_IMAGE030
,
Figure 623564DEST_PATH_IMAGE031
为对称加密算法
Figure 316713DEST_PATH_IMAGE032
的密钥,
Figure 112631DEST_PATH_IMAGE033
为加密数据块。
步骤S23.计算辅助信息
Figure 865823DEST_PATH_IMAGE034
Figure 245727DEST_PATH_IMAGE035
Figure 742567DEST_PATH_IMAGE036
,并将外包数据包
Figure 658571DEST_PATH_IMAGE037
发送给云服务器,其中
Figure 317085DEST_PATH_IMAGE038
是用哈希值
Figure 951329DEST_PATH_IMAGE039
作为叶子结点构建的默克尔哈希树,
Figure 986281DEST_PATH_IMAGE040
是默克尔哈希树
Figure 756791DEST_PATH_IMAGE041
的根值,
Figure 851786DEST_PATH_IMAGE042
为自审计程序,
Figure 707746DEST_PATH_IMAGE043
表示拟外包的数据块集合。
步骤S24.云服务器将
Figure DEST_PATH_IMAGE138
Figure 782275DEST_PATH_IMAGE045
存储在云服务器的存储空间中,将辅助信息
Figure 141712DEST_PATH_IMAGE046
加载到飞地的隔离内存区域PRM中存储。
步骤S25.用户与部署在云服务器上的飞地完成双向身份认证,用户在双向身份认证成功后向飞地共享飞地的签名公私钥对
Figure 673188DEST_PATH_IMAGE047
步骤S3.基于以太坊区块链网络,智能合约根据预设的审计周期生成挑战信息,并将所述挑战信息发送给云服务器。
具体的,所述步骤S3的具体步骤为:
步骤S31.根据预设的审计周期t,智能合约读取以太坊区块链上最新的
Figure 750865DEST_PATH_IMAGE048
个区块的哈希值,记为
Figure 658778DEST_PATH_IMAGE049
,其中,
Figure 138301DEST_PATH_IMAGE050
Figure 840678DEST_PATH_IMAGE051
均表示哈希值。
步骤S32.智能合约计算随机种子
Figure 405651DEST_PATH_IMAGE052
和拟审计数据块的序号
Figure 851676DEST_PATH_IMAGE053
,其中,
Figure 185706DEST_PATH_IMAGE054
Figure 58984DEST_PATH_IMAGE055
个被审计块的序号,
Figure 875368DEST_PATH_IMAGE056
是以
Figure 593925DEST_PATH_IMAGE057
Figure 48040DEST_PATH_IMAGE058
为输入的伪随机函数。
步骤S33.智能合约向云服务器发送挑战信息
Figure 826640DEST_PATH_IMAGE059
,其中
Figure 631785DEST_PATH_IMAGE060
是本次审计抽样的数据块的数量。
步骤S4.云服务器在接收到所述挑战信息后,运行飞地中的自审计程序来输出审计证明。
具体的,所述步骤S4的具体步骤为:
步骤S41.云服务器在接收到挑战信息
Figure 154033DEST_PATH_IMAGE059
后,根据挑战信息
Figure 728234DEST_PATH_IMAGE059
生成对应的完整性信息
Figure 943315DEST_PATH_IMAGE061
,其中
Figure 704598DEST_PATH_IMAGE062
是用于自审计的哈希值集合,
Figure 296116DEST_PATH_IMAGE063
为抽样来审计的数据块。
云服务器存储了
Figure 724823DEST_PATH_IMAGE138
Figure DEST_PATH_IMAGE139
,在自审计时,自审计程序可以读取其中
Figure DEST_PATH_IMAGE140
中所需哈希值集合,即
Figure DEST_PATH_IMAGE141
步骤S42.云服务器运行飞地中的自审计程序
Figure 284374DEST_PATH_IMAGE064
来读取
Figure 64111DEST_PATH_IMAGE065
,并生成审计证明
Figure 928162DEST_PATH_IMAGE066
,其中,
Figure 211376DEST_PATH_IMAGE067
指本次审计时自审计程序
Figure 33838DEST_PATH_IMAGE068
读取的挑战信息
Figure 769713DEST_PATH_IMAGE069
中的
Figure 703034DEST_PATH_IMAGE070
值,
Figure 575175DEST_PATH_IMAGE071
指审计结果1或0。
自审计程序
Figure DEST_PATH_IMAGE142
的伪代码实现如表1所示:
表1 自审计程序的伪代码实现
Figure DEST_PATH_IMAGE143
审计过程中默克尔哈希树的重构和根值验证如图4所示,当基于挑战信息
Figure DEST_PATH_IMAGE144
选取的拟审计块集合为
Figure DEST_PATH_IMAGE145
时,哈希值集合
Figure DEST_PATH_IMAGE146
。飞地中的自审计程序
Figure DEST_PATH_IMAGE147
被运行来验证根值,判断等式
Figure DEST_PATH_IMAGE148
Figure DEST_PATH_IMAGE149
是否同时成立,若等式
Figure DEST_PATH_IMAGE150
Figure DEST_PATH_IMAGE151
同时成立,则待审计数据库的完整性通过验证。最后,飞地输出审计证明
Figure DEST_PATH_IMAGE152
步骤S5.智能合约验证所述审计证明,并输出验证结果。
具体的,所述步骤S5的具体步骤为:
步骤S51.智能合约读取审计证明
Figure 65411DEST_PATH_IMAGE072
,然后验证签名
Figure 288582DEST_PATH_IMAGE073
的合法性、随机数
Figure 760014DEST_PATH_IMAGE074
是否成立、
Figure 752241DEST_PATH_IMAGE075
是否成立,若
Figure 650927DEST_PATH_IMAGE076
Figure 95815DEST_PATH_IMAGE077
的合法签名且
Figure 105359DEST_PATH_IMAGE078
为真,则智能合约生成审计成功事务
Figure 217672DEST_PATH_IMAGE079
,否则生成审计失败事务
Figure 520215DEST_PATH_IMAGE080
,审计成功事务
Figure 452399DEST_PATH_IMAGE081
表示外包数据包的完整性未遭到破坏,审计失败事务
Figure 265634DEST_PATH_IMAGE082
表示外包数据包的完整性可能已遭到破坏。
在一些实施例中,如图5所示,所述快速审计方法还包括:
步骤S6.动态更新:云服务器在接收到用户的更新请求后,执行更新任务并输出更新事务。
具体的,所述步骤S6的具体步骤为:
步骤S61.云服务器接收到用户的更新请求后,判断所述更新请求的类型:若所述更新请求为修改请求,则执行步骤S62;若所述更新请求为删除请求,则执行步骤S63;若所述更新请求为插入请求,则执行步骤S64。
步骤S62.云服务器收到用户的修改请求
Figure 232453DEST_PATH_IMAGE083
后验证签名
Figure 472941DEST_PATH_IMAGE084
的有效性,其中
Figure 158001DEST_PATH_IMAGE085
,修改请求
Figure 774927DEST_PATH_IMAGE086
表示将数据块
Figure 596252DEST_PATH_IMAGE087
改为数据块
Figure 7642DEST_PATH_IMAGE088
Figure 179997DEST_PATH_IMAGE089
Figure 836500DEST_PATH_IMAGE090
的哈希值,
Figure 777911DEST_PATH_IMAGE091
Figure 360202DEST_PATH_IMAGE092
的哈希值;若签名
Figure 19854DEST_PATH_IMAGE093
有效,则用
Figure 713003DEST_PATH_IMAGE094
替换存储空间中的
Figure 774500DEST_PATH_IMAGE095
,更新默克尔哈希树
Figure 793272DEST_PATH_IMAGE096
,并生成第一修改信息
Figure 674640DEST_PATH_IMAGE097
,其中,
Figure 905901DEST_PATH_IMAGE098
指修改过程涉及的哈希值的集合;飞地读取并验证第一修改信息,并在第一修改信息验证通过后广播修改事务
Figure 821905DEST_PATH_IMAGE099
,其中,
Figure 11577DEST_PATH_IMAGE100
表示飞地对更新操作的验证结果。
例如,当收到修改请求
Figure DEST_PATH_IMAGE153
后,云服务器用
Figure DEST_PATH_IMAGE154
替换存储空间中的
Figure DEST_PATH_IMAGE155
,更新默克尔哈希树
Figure DEST_PATH_IMAGE156
,并生成第一修改信息
Figure DEST_PATH_IMAGE157
。如图6所示,飞地首先验证
Figure DEST_PATH_IMAGE158
是否成立,然后将之前加载的根值
Figure DEST_PATH_IMAGE159
更新为
Figure DEST_PATH_IMAGE160
。图6中,左默克尔哈希树的叶子结点
Figure DEST_PATH_IMAGE161
分别为原数据块
Figure DEST_PATH_IMAGE162
的哈希值,且
Figure DEST_PATH_IMAGE163
;右默克尔哈希树的叶子结点
Figure DEST_PATH_IMAGE164
为新的数据块
Figure DEST_PATH_IMAGE165
的哈希值,且
Figure DEST_PATH_IMAGE166
步骤S63.云服务器接收到用户的删除请求
Figure 334237DEST_PATH_IMAGE101
后,验证签名
Figure 369189DEST_PATH_IMAGE102
的有效性,其中
Figure 874119DEST_PATH_IMAGE103
Figure 234694DEST_PATH_IMAGE104
为要删除的加密数据块,
Figure 356233DEST_PATH_IMAGE105
Figure 929297DEST_PATH_IMAGE106
的哈希值;若签名
Figure 554314DEST_PATH_IMAGE107
有效,则删除存储空间中的加密数据块
Figure 85789DEST_PATH_IMAGE108
,更新默克尔哈希树
Figure 662002DEST_PATH_IMAGE109
,并生成第二修改信息
Figure 569915DEST_PATH_IMAGE110
,其中,
Figure 49438DEST_PATH_IMAGE111
指删除过程涉及的哈希值的集合;飞地读取并验证第二修改信息,并在第二修改信息验证通过后广播删除事务
Figure 751814DEST_PATH_IMAGE112
,其中,
Figure 316788DEST_PATH_IMAGE113
表示飞地对更新操作的验证结果。
例如,当收到删除请求
Figure DEST_PATH_IMAGE167
后,云服务器删除存储空间中的
Figure DEST_PATH_IMAGE168
,更新默克尔哈希树
Figure DEST_PATH_IMAGE169
,并生成第二修改信息
Figure DEST_PATH_IMAGE170
。如图7所示,飞地首先验证
Figure DEST_PATH_IMAGE171
是否成立,然后将之前加载的根值
Figure DEST_PATH_IMAGE172
更新为
Figure DEST_PATH_IMAGE173
步骤S64.云服务器接收到用户的插入请求
Figure 77327DEST_PATH_IMAGE114
后,验证签名
Figure 676936DEST_PATH_IMAGE115
的有效性,其中,
Figure 550214DEST_PATH_IMAGE116
为要插入的数据块,
Figure 868063DEST_PATH_IMAGE117
Figure 586620DEST_PATH_IMAGE118
的哈希值;若签名
Figure 306314DEST_PATH_IMAGE119
有效,则在存储空间中+添加
Figure 84914DEST_PATH_IMAGE120
,更新默克尔哈希树
Figure 890059DEST_PATH_IMAGE121
,并生成第三修改信息
Figure 412308DEST_PATH_IMAGE122
,其中,
Figure 986508DEST_PATH_IMAGE123
指插入过程涉及的哈希值的集合;飞地读取并验证第三修改信息,并在第三修改信息验证通过后广播插入事务
Figure 434545DEST_PATH_IMAGE124
,其中,
Figure 461407DEST_PATH_IMAGE125
表示飞地对更新操作的验证结果。
例如,当收到插入请求
Figure DEST_PATH_IMAGE174
后,云服务器在存储空间中添加
Figure DEST_PATH_IMAGE175
。情况一:若默克尔哈希树不是满二叉树(仅包含叶子结点
Figure DEST_PATH_IMAGE176
),如图8所示,更新默克尔哈希树
Figure DEST_PATH_IMAGE177
,并生成第三修改信息
Figure DEST_PATH_IMAGE178
。飞地首先验证
Figure DEST_PATH_IMAGE179
是否成立,然后将之前加载的根值
Figure DEST_PATH_IMAGE180
更新为
Figure DEST_PATH_IMAGE181
。情况二:若默克尔哈希树是满二叉树(包含叶子结点
Figure DEST_PATH_IMAGE182
),如图9所示,更新默克尔哈希树
Figure DEST_PATH_IMAGE183
,并生成第三修改信息
Figure DEST_PATH_IMAGE184
。飞地首先验证
Figure DEST_PATH_IMAGE185
是否成立,然后将之前加载的根值
Figure DEST_PATH_IMAGE186
更新为
Figure DEST_PATH_IMAGE187
。图8中,左默克尔哈希树的叶子结点
Figure DEST_PATH_IMAGE188
分别为原数据块
Figure DEST_PATH_IMAGE189
的哈希值,且
Figure DEST_PATH_IMAGE190
;右默克尔哈希树的叶子结点
Figure DEST_PATH_IMAGE191
为新的数据块
Figure DEST_PATH_IMAGE192
的哈希值,且
Figure DEST_PATH_IMAGE193
。图9中,左默克尔哈希树的叶子结点
Figure DEST_PATH_IMAGE194
分别为原数据块
Figure DEST_PATH_IMAGE195
的哈希值,且
Figure DEST_PATH_IMAGE196
;右默克尔哈希树的叶子结点
Figure DEST_PATH_IMAGE197
为新的数据块
Figure DEST_PATH_IMAGE198
的哈希值,且
Figure DEST_PATH_IMAGE199
步骤S7.验证更新操作:智能合约验证所述更新事务,并输出验证结果。
具体的,所述步骤S7的具体步骤为:
步骤S71.在被更新事务
Figure 683617DEST_PATH_IMAGE126
触发后,智能合约验证验证签名
Figure 112324DEST_PATH_IMAGE127
的合法性,并判断
Figure 498306DEST_PATH_IMAGE128
是否为真:若验证签名
Figure 12464DEST_PATH_IMAGE129
合法、且
Figure 142094DEST_PATH_IMAGE130
为真,则输出更新成功事务
Figure 661193DEST_PATH_IMAGE131
,否则输出更新失败事务
Figure 483656DEST_PATH_IMAGE132
,更新成功事务
Figure 485110DEST_PATH_IMAGE133
表示云服务器按更新请求完成外包数据块的更新操作,更新失败事务
Figure 887272DEST_PATH_IMAGE134
表示云服务器未按更新请求完成外包数据块的更新操作。
以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

Claims (9)

1.一种云存储数据的快速审计方法,其特征在于,包括:
步骤S1.密钥生成中心根据安全参数选择系统公开参数,所述系统公开参数包括对称加密算法、安全哈希函数、同态哈希函数、签名算法和伪随机排列;密钥生成中心生成自己的主密钥,并基于密钥生成中心的主密钥和实体的身份信息计算用户的签名公私钥对和飞地的签名公私钥对,所述实体的身份信息包括用户的身份信息和飞地的身份信息;
步骤S2.用户对原始数据进行预处理生成外包数据集合,并计算辅助信息,所述辅助信息包括外包数据集合对应的默克尔哈希树和自审计程序;然后用户将外包数据集合和辅助信息发送给云服务器,并与部署在云服务器上的飞地完成双向身份认证;
步骤S3.基于以太坊区块链网络,智能合约根据预设的审计周期生成挑战信息,并将所述挑战信息发送给云服务器;
步骤S4.云服务器在接收到所述挑战信息后,运行飞地中的自审计程序来输出审计证明;
步骤S5.智能合约验证所述审计证明,并输出验证结果。
2.根据权利要求1所述的一种云存储数据的快速审计方法,其特征在于,所述步骤S1的具体步骤包括:
步骤S11.密钥生成中心根据安全参数
Figure DEST_PATH_IMAGE001
选取对称加密算法
Figure DEST_PATH_IMAGE002
、同态哈希函数
Figure DEST_PATH_IMAGE003
、安全哈希函数
Figure DEST_PATH_IMAGE004
、签名算法
Figure DEST_PATH_IMAGE005
和伪随机排列
Figure DEST_PATH_IMAGE006
,其中,
Figure DEST_PATH_IMAGE007
为该伪随机排列的密钥;
步骤S12.密钥生成中心选取随机数
Figure DEST_PATH_IMAGE008
作为密钥生成中心的主密钥;
步骤S13.密钥生成中心根据用户的身份信息
Figure DEST_PATH_IMAGE009
生成用户的第一私钥
Figure DEST_PATH_IMAGE010
步骤S14.密钥生成中心根据用户选择的随机数
Figure DEST_PATH_IMAGE011
Figure DEST_PATH_IMAGE012
,生成用户的签名公私钥对
Figure DEST_PATH_IMAGE013
和飞地的签名公私钥对
Figure DEST_PATH_IMAGE014
,其中,
Figure DEST_PATH_IMAGE015
为用户的公钥,
Figure DEST_PATH_IMAGE016
为用户的私钥,
Figure DEST_PATH_IMAGE017
为飞地的公钥,
Figure DEST_PATH_IMAGE018
为飞地的私钥,
Figure DEST_PATH_IMAGE020
3.根据权利要求2所述的一种云存储数据的快速审计方法,其特征在于,所述步骤S2的具体步骤包括:
步骤S21.用户将原始数据
Figure DEST_PATH_IMAGE021
划分为
Figure DEST_PATH_IMAGE022
个数据块
Figure DEST_PATH_IMAGE023
Figure DEST_PATH_IMAGE024
表示数据块,
Figure DEST_PATH_IMAGE025
为连接符号;
步骤S22.用户将
Figure DEST_PATH_IMAGE026
个数据块
Figure DEST_PATH_IMAGE027
进行添加序列号加密处理,生成数据块集合
Figure DEST_PATH_IMAGE028
,其中,
Figure DEST_PATH_IMAGE029
Figure DEST_PATH_IMAGE030
,
Figure DEST_PATH_IMAGE031
为对称加密算法
Figure DEST_PATH_IMAGE032
的密钥,
Figure DEST_PATH_IMAGE033
为加密数据块;
步骤S23.计算辅助信息
Figure DEST_PATH_IMAGE034
Figure DEST_PATH_IMAGE035
Figure DEST_PATH_IMAGE036
,并将外包数据包
Figure DEST_PATH_IMAGE037
发送给云服务器,其中
Figure DEST_PATH_IMAGE038
是用哈希值
Figure DEST_PATH_IMAGE039
作为叶子结点构建的默克尔哈希树,
Figure DEST_PATH_IMAGE040
是默克尔哈希树
Figure DEST_PATH_IMAGE041
的根值,
Figure DEST_PATH_IMAGE042
为自审计程序,
Figure DEST_PATH_IMAGE043
表示拟外包的数据块集合;
步骤S24.云服务器将
Figure DEST_PATH_IMAGE044
Figure DEST_PATH_IMAGE045
存储在云服务器的存储空间中,将辅助信息
Figure DEST_PATH_IMAGE046
加载到飞地的隔离内存区域PRM中存储;
步骤S25.用户与部署在云服务器上的飞地完成双向身份认证,用户在双向身份认证成功后向飞地共享飞地的签名公私钥对
Figure DEST_PATH_IMAGE047
4.根据权利要求3所述的一种云存储数据的快速审计方法,其特征在于,所述步骤S3的具体步骤为:
步骤S31.根据预设的审计周期t,智能合约读取以太坊区块链上最新的
Figure DEST_PATH_IMAGE048
个区块的哈希值,记为
Figure DEST_PATH_IMAGE049
,其中,
Figure DEST_PATH_IMAGE050
Figure DEST_PATH_IMAGE051
均表示哈希值;
步骤S32.智能合约计算随机种子
Figure DEST_PATH_IMAGE052
和拟审计数据块的序号
Figure DEST_PATH_IMAGE053
,其中,
Figure DEST_PATH_IMAGE054
Figure DEST_PATH_IMAGE055
个被审计块的序号,
Figure DEST_PATH_IMAGE056
是以
Figure DEST_PATH_IMAGE057
Figure DEST_PATH_IMAGE058
为输入的伪随机函数;
步骤S33.智能合约向云服务器发送挑战信息
Figure DEST_PATH_IMAGE059
,其中
Figure DEST_PATH_IMAGE060
是本次审计抽样的数据块的数量。
5.根据权利要求4所述的一种云存储数据的快速审计方法,其特征在于,所述步骤S4的具体步骤为:
步骤S41.云服务器在接收到挑战信息
Figure 591625DEST_PATH_IMAGE059
后,根据挑战信息
Figure 774345DEST_PATH_IMAGE059
生成对应的完整性信息
Figure DEST_PATH_IMAGE061
,其中
Figure DEST_PATH_IMAGE062
是用于自审计的哈希值集合,
Figure DEST_PATH_IMAGE063
为抽样来审计的数据块;
步骤S42.云服务器运行飞地中的自审计程序
Figure DEST_PATH_IMAGE064
来读取
Figure DEST_PATH_IMAGE065
,并生成审计证明
Figure DEST_PATH_IMAGE066
,其中,
Figure DEST_PATH_IMAGE067
指本次审计时自审计程序
Figure DEST_PATH_IMAGE068
读取的挑战信息
Figure DEST_PATH_IMAGE069
中的
Figure DEST_PATH_IMAGE070
值,
Figure DEST_PATH_IMAGE071
指审计结果1或0。
6.根据权利要求5所述的一种云存储数据的快速审计方法,其特征在于,所述步骤S5的具体步骤为:
步骤S51.智能合约读取审计证明
Figure DEST_PATH_IMAGE072
,然后验证签名
Figure DEST_PATH_IMAGE073
的合法性、随机数
Figure DEST_PATH_IMAGE074
是否成立、
Figure DEST_PATH_IMAGE075
是否成立,若
Figure DEST_PATH_IMAGE076
Figure DEST_PATH_IMAGE077
的合法签名且
Figure DEST_PATH_IMAGE078
为真,则智能合约生成审计成功事务
Figure DEST_PATH_IMAGE079
,否则生成审计失败事务
Figure DEST_PATH_IMAGE080
,审计成功事务
Figure DEST_PATH_IMAGE081
表示外包数据包的完整性未遭到破坏,审计失败事务
Figure DEST_PATH_IMAGE082
表示外包数据包的完整性可能已遭到破坏。
7.根据权利要求6所述的一种云存储数据的快速审计方法,其特征在于,所述快速审计方法还包括:
步骤S6.动态更新:云服务器在接收到用户的更新请求后,执行更新任务并输出更新事务;
步骤S7.验证更新操作:智能合约验证所述更新事务,并输出验证结果。
8.根据权利要求7所述的一种云存储数据的快速审计方法,其特征在于,所述步骤S6的具体步骤为:
步骤S61.云服务器接收到用户的更新请求后,判断所述更新请求的类型:若所述更新请求为修改请求,则执行步骤S62;若所述更新请求为删除请求,则执行步骤S63;若所述更新请求为插入请求,则执行步骤S64;
步骤S62.云服务器收到用户的修改请求
Figure DEST_PATH_IMAGE083
后验证签名
Figure DEST_PATH_IMAGE084
的有效性,其中
Figure DEST_PATH_IMAGE085
,修改请求
Figure DEST_PATH_IMAGE086
表示将数据块
Figure DEST_PATH_IMAGE087
改为数据块
Figure DEST_PATH_IMAGE088
Figure DEST_PATH_IMAGE089
Figure DEST_PATH_IMAGE090
的哈希值,
Figure DEST_PATH_IMAGE091
Figure DEST_PATH_IMAGE092
的哈希值;若签名
Figure DEST_PATH_IMAGE093
有效,则用
Figure DEST_PATH_IMAGE094
替换存储空间中的
Figure DEST_PATH_IMAGE095
,更新默克尔哈希树
Figure DEST_PATH_IMAGE096
,并生成第一修改信息
Figure DEST_PATH_IMAGE097
,其中,
Figure DEST_PATH_IMAGE098
指修改过程涉及的哈希值的集合;飞地读取并验证第一修改信息,并在第一修改信息验证通过后广播修改事务
Figure DEST_PATH_IMAGE099
,其中,
Figure DEST_PATH_IMAGE100
表示飞地对更新操作的验证结果;
步骤S63.云服务器接收到用户的删除请求
Figure DEST_PATH_IMAGE101
后,验证签名
Figure DEST_PATH_IMAGE102
的有效性,其中
Figure DEST_PATH_IMAGE103
Figure DEST_PATH_IMAGE104
为要删除的加密数据块,
Figure DEST_PATH_IMAGE105
Figure DEST_PATH_IMAGE106
的哈希值;若签名
Figure DEST_PATH_IMAGE107
有效,则删除存储空间中的加密数据块
Figure DEST_PATH_IMAGE108
,更新默克尔哈希树
Figure DEST_PATH_IMAGE109
,并生成第二修改信息
Figure DEST_PATH_IMAGE110
,其中,
Figure DEST_PATH_IMAGE111
指删除过程涉及的哈希值的集合;飞地读取并验证第二修改信息,并在第二修改信息验证通过后广播删除事务
Figure DEST_PATH_IMAGE112
,其中,
Figure DEST_PATH_IMAGE113
表示飞地对更新操作的验证结果;
步骤S64.云服务器接收到用户的插入请求
Figure DEST_PATH_IMAGE114
后,验证签名
Figure DEST_PATH_IMAGE115
的有效性,其中,
Figure DEST_PATH_IMAGE116
为要插入的数据块,
Figure DEST_PATH_IMAGE117
Figure DEST_PATH_IMAGE118
的哈希值;若签名
Figure DEST_PATH_IMAGE119
有效,则在存储空间中+添加
Figure DEST_PATH_IMAGE120
,更新默克尔哈希树
Figure DEST_PATH_IMAGE121
,并生成第三修改信息
Figure DEST_PATH_IMAGE122
,其中,
Figure DEST_PATH_IMAGE123
指插入过程涉及的哈希值的集合;飞地读取并验证第三修改信息,并在第三修改信息验证通过后广播插入事务
Figure DEST_PATH_IMAGE124
,其中,
Figure DEST_PATH_IMAGE125
表示飞地对更新操作的验证结果。
9.根据权利要求8所述的一种云存储数据的快速审计方法,其特征在于,所述步骤S7的具体步骤为:
步骤S71.在被更新事务
Figure DEST_PATH_IMAGE126
触发后,智能合约验证验证签名
Figure DEST_PATH_IMAGE127
的合法性,并判断
Figure DEST_PATH_IMAGE128
是否为真:若验证签名
Figure DEST_PATH_IMAGE129
合法、且
Figure DEST_PATH_IMAGE130
为真,则输出更新成功事务
Figure DEST_PATH_IMAGE131
,否则输出更新失败事务
Figure DEST_PATH_IMAGE132
,更新成功事务
Figure DEST_PATH_IMAGE133
表示云服务器按更新请求完成外包数据块的更新操作,更新失败事务
Figure DEST_PATH_IMAGE134
表示云服务器未按更新请求完成外包数据块的更新操作。
CN202110957344.1A 2021-08-19 2021-08-19 一种云存储数据的快速审计方法 Active CN113422688B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110957344.1A CN113422688B (zh) 2021-08-19 2021-08-19 一种云存储数据的快速审计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110957344.1A CN113422688B (zh) 2021-08-19 2021-08-19 一种云存储数据的快速审计方法

Publications (2)

Publication Number Publication Date
CN113422688A true CN113422688A (zh) 2021-09-21
CN113422688B CN113422688B (zh) 2021-10-29

Family

ID=77719127

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110957344.1A Active CN113422688B (zh) 2021-08-19 2021-08-19 一种云存储数据的快速审计方法

Country Status (1)

Country Link
CN (1) CN113422688B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114422117A (zh) * 2021-12-14 2022-04-29 杭州宇链科技有限公司 隐私保护的视频采集方法及其对应的播放方法
CN114866337A (zh) * 2022-06-10 2022-08-05 中国工商银行股份有限公司 共享数据审计方法及其装置、设备、存储介质和程序产品
US20220318431A1 (en) * 2021-03-31 2022-10-06 Seagate Technology Llc Code-based signatures for secure programs
CN115996120A (zh) * 2023-03-22 2023-04-21 江西经济管理干部学院 一种基于移动存储设备的计算机数据加解密方法及系统
CN116938452A (zh) * 2023-09-15 2023-10-24 天津太极风控网络科技有限公司 一种加密备份账套的云审计方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109245894A (zh) * 2018-07-18 2019-01-18 电子科技大学 一种基于智能合约的分布式云存储系统
US20190379699A1 (en) * 2018-06-07 2019-12-12 Unifyvault LLC Systems and methods for blockchain security data intelligence
US20200045019A1 (en) * 2018-07-31 2020-02-06 Ezblock Ltd. Blockchain joining for a limited processing capability device and device access security
US20200074117A1 (en) * 2018-09-05 2020-03-05 International Business Machines Corporation Unfalsifiable audit logs for a blockchain
CN111355705A (zh) * 2020-02-08 2020-06-30 西安电子科技大学 一种基于区块链的数据审计与安全去重云存储系统、方法
US20200342092A1 (en) * 2019-04-26 2020-10-29 Alibaba Group Holding Limited Securely executing smart contract operations in a trusted execution environment
US20200380475A1 (en) * 2018-02-28 2020-12-03 Siemens Healthcare Gmbh Inserting a further data block into a first ledger
CN112054897A (zh) * 2020-08-13 2020-12-08 武汉大学 基于区块链的保护隐私的外包物联网数据及其备份的完整性校验方法
CN112261020A (zh) * 2020-10-15 2021-01-22 中国电子科技集团公司第五十四研究所 一种分布式远程外包数据审计系统及方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200380475A1 (en) * 2018-02-28 2020-12-03 Siemens Healthcare Gmbh Inserting a further data block into a first ledger
US20190379699A1 (en) * 2018-06-07 2019-12-12 Unifyvault LLC Systems and methods for blockchain security data intelligence
CN109245894A (zh) * 2018-07-18 2019-01-18 电子科技大学 一种基于智能合约的分布式云存储系统
US20200045019A1 (en) * 2018-07-31 2020-02-06 Ezblock Ltd. Blockchain joining for a limited processing capability device and device access security
US20200074117A1 (en) * 2018-09-05 2020-03-05 International Business Machines Corporation Unfalsifiable audit logs for a blockchain
US20200342092A1 (en) * 2019-04-26 2020-10-29 Alibaba Group Holding Limited Securely executing smart contract operations in a trusted execution environment
CN111355705A (zh) * 2020-02-08 2020-06-30 西安电子科技大学 一种基于区块链的数据审计与安全去重云存储系统、方法
CN112054897A (zh) * 2020-08-13 2020-12-08 武汉大学 基于区块链的保护隐私的外包物联网数据及其备份的完整性校验方法
CN112261020A (zh) * 2020-10-15 2021-01-22 中国电子科技集团公司第五十四研究所 一种分布式远程外包数据审计系统及方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
JIANGANG SHU;XING ZOU: ""Blockchain-Based Decentralized Public Auditing for Cloud Storage"", 《IEEE TRANSACTIONS ON CLOUD COMPUTING》 *
YING WANG;YONG GOU: ""Construction of Audit Internal Control Intelligent System Based on Blockchain and Cloud Storage"", 《2020 4TH INTERNATIONAL CONFERENCE ON TRENDS IN ELECTRONICS AND INFORMATICS (ICOEI)(48184)》 *
姜亚南: ""基于区块链的数据完整性审计和私密性保护研究"", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 *
薛婧婷: ""云环境中数据安全存储关键技术研究"", 《中国优秀博硕士学位论文全文数据库(博士)信息科技辑》 *
陈性元等: "大数据安全技术研究进展", 《中国科学:信息科学》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220318431A1 (en) * 2021-03-31 2022-10-06 Seagate Technology Llc Code-based signatures for secure programs
US12008146B2 (en) * 2021-03-31 2024-06-11 Seagate Technology Llc Code-based signatures for secure programs
CN114422117A (zh) * 2021-12-14 2022-04-29 杭州宇链科技有限公司 隐私保护的视频采集方法及其对应的播放方法
CN114422117B (zh) * 2021-12-14 2023-09-22 杭州宇链科技有限公司 隐私保护的视频采集方法及其对应的播放方法
CN114866337A (zh) * 2022-06-10 2022-08-05 中国工商银行股份有限公司 共享数据审计方法及其装置、设备、存储介质和程序产品
CN114866337B (zh) * 2022-06-10 2023-12-01 中国工商银行股份有限公司 共享数据审计方法及其装置、设备、存储介质和程序产品
CN115996120A (zh) * 2023-03-22 2023-04-21 江西经济管理干部学院 一种基于移动存储设备的计算机数据加解密方法及系统
CN115996120B (zh) * 2023-03-22 2023-09-29 江西经济管理干部学院 一种基于移动存储设备的计算机数据加解密方法及系统
CN116938452A (zh) * 2023-09-15 2023-10-24 天津太极风控网络科技有限公司 一种加密备份账套的云审计方法
CN116938452B (zh) * 2023-09-15 2023-12-08 天津太极风控网络科技有限公司 一种加密备份账套的云审计方法

Also Published As

Publication number Publication date
CN113422688B (zh) 2021-10-29

Similar Documents

Publication Publication Date Title
CN113422688B (zh) 一种云存储数据的快速审计方法
US10404455B2 (en) Multiple-phase rewritable blockchain
US10305875B1 (en) Hybrid blockchain
Nikitin et al. {CHAINIAC}: Proactive {Software-Update} transparency via collectively signed skipchains and verified builds
Rawat et al. iShare: Blockchain-based privacy-aware multi-agent information sharing games for cybersecurity
CN109525403B (zh) 一种支持用户全动态并行操作的抗泄露公开云审计方法
EP3869376B1 (en) System and method for blockchain based decentralized storage with dynamic data operations
Xie et al. Blockchain‐Based Cloud Data Integrity Verification Scheme with High Efficiency
CN113285812A (zh) 基于sgx和以太坊区块链的云存储自审计方法
Li et al. A Blockchain‐Based Public Auditing Protocol with Self‐Certified Public Keys for Cloud Data
JP2023530594A (ja) 分散型データベースにおける許可されたイベント処理
Li et al. Blockchain-powered distributed data auditing scheme for cloud-edge healthcare system
Sun et al. Public data integrity auditing without homomorphic authenticators from indistinguishability obfuscation
Zhou et al. A Scalable Blockchain‐Based Integrity Verification Scheme
He et al. Enabling Decentralized and Dynamic Data Integrity Verification for Secure Cloud Storage via T‐Merkle Hash Tree Based Blockchain
Kwon et al. Certificate transparency with enhanced privacy
Thakur et al. Data integrity techniques in cloud computing: an analysis
Wang et al. A lightweight data integrity verification with data dynamics for mobile edge computing
Li et al. A noninteractive multireplica provable data possession scheme based on smart contract
Lekshmi et al. Data auditing in cloud storage using smart contract
Junxiang et al. Dynamic provable data possession with batch-update verifiability
Li et al. Improved Efficient Privacy‐Preserving Certificateless Provable Data Possession Scheme for Cloud Storage
Li et al. Audit as You Go: A Smart Contract‐Based Outsourced Data Integrity Auditing Scheme for Multiauditor Scenarios with One Person, One Vote
CN114726582B (zh) 基于区块链的外包数据完整性验证中的公平支付方法
Hossain et al. Securing Cloud Storage Data Using Audit-Based Blockchain Technology—A Review

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant