基于联盟链与CP-ABE的数据安全共享

DSSPS:一种基于联盟区块链和密文策略属性基加密的数据共享安全保护方案

1. 引言

数据共享意味着不同的用户使用不同的计算机来读取不同地点其他用户的数据。数据共享的程度反映了一个地区和一个国家的信息化发展水平。数据共享水平越高,信息化发展水平也越高。数据共享广泛应用于物联网、医疗保健、教育、供应链和能源。

近年来,数据泄露事件频繁发生,网络犯罪已从个体行为转变为有组织的行为,攻击手段在数据篡改和伪造方面变得越来越专业化。2018年2月,宾夕法尼亚州教育部数据库中36万名教师的社会保障号码等个人信息数据被泄露。2018年3月,Facebook上超过8700万用户数据被泄露。2018年6月13日,AcFun发布公告称遭受黑客攻击,近一千万用户数据被泄露。由此可见,数据共享过程中存在巨大的安全风险,如何保障数据共享的安全性是研究人员必须面对的问题。

区块链技术的出现为解决这一问题提供了有效途径。区块链是一种分布式共享账本系统,以时间顺序将数据存储在链上。区块链具有不可逆性、不可否认性、去中心化和无需信任等特点。传统分布式数据库仅由一个中心服务器节点管理数据,其他服务器仅存储数据备份。而在区块链中,不仅所有节点都拥有数据的完整备份,而且数据由所有节点共同维护。单个节点的数据被篡改或破坏不会影响区块链中存储的数据。由于区块链仅通过交易签名来验证双方的身份,缺乏更复杂的访问控制机制,因此结合访问控制可以更好地保障数据共享安全。

本文针对数据共享过程中的安全问题,结合区块链技术和访问控制技术,提出了一种基于联盟链和密文策略属性基加密(CP‐ABE)的数据共享安全保护方案,旨在保护数据共享安全。本文其余部分安排如下:第2节介绍本文的工作;第3节主要阐述预备知识;第4节讨论数据共享安全保护方案;第5节对方案的安全性进行分析;最后总结全文,并初步探讨未来值得关注的研究方向。

2. 相关工作

数据共享在多个领域中被广泛应用。以下是两个典型的应用领域(物联网、医疗领域),研究人员在这些领域中从事数据共享工作。

在医疗领域

共享的数据主要是电子健康记录。其特点是数据量小且结构相对固定。研究人员已对保护电子健康记录做了大量工作。文献[1]提出了一种基于多机构密钥策略的属性‐基于加密方案,并将其应用于基于属性的个人健康记录(PHR)共享系统设计中。该方案不仅能够隐藏访问策略,还能追踪将解密密钥滥用并泄露给未授权用户的用户身份信息。文献[2]提出了一种基于区块链电子病历(EMR)的数据共享方案BPDS。在BPDS中,原始EMR安全地存储在云中,而索引则保存在防篡改联盟链上。同时,基于CP‐ABE的访问控制机制与内容提取签名方案的协同设计,在数据共享中提供了强大的隐私保护。文献[3]提出了一种新颖的数据共享与管理方案,允许患者根据所需的隐私偏好,有选择地共享其记录,并向特定数据用户披露部分内容。

在物联网(IoT)中

物联网数据具有数据量小、持续时间长、时间敏感性强、多维度和可追溯性等特点。由于物联网数据是随着时间连续生成的,因此保护物联网数据需要在确保数据及时性和高效性的同时加强数据访问控制。同时,必须确保物联网数据在存储和传输过程中未被篡改或伪造。研究人员已基于这些需求开展了大量工作。论文[4]提出了一种分布式、匿名且具有隐私保护的授权管理框架。该框架基于以太坊平台,实现了细粒度物联网设备管理访问控制。论文[5]提出了一种物联网区块链的分层架构,在保证系统安全与隐私的前提下,基本消除了传统区块链的计算开销。论文[6]提出了一种基于区块链的属性加密系统(BaDS)。该架构通过结合区块链和多种基于属性的密码系统,实现了隐私保护、用户可控的数据共享以及去中心化。其签名机制采用基于属性的签名(ABS),并结合CP‐ABE实现细粒度访问控制。论文[7]提出了一种面向分布式存储系统的数据存储与共享方案。该方案结合了以太坊区块链和ABE技术,数据所有者可通过指定访问策略来分发密钥并对共享数据进行加密,从而为数据提供细粒度访问控制。

总之,物联网和医疗领域的数据特征不同,研究人员保护数据共享安全的方式也不同。对于结构复杂且数据量大的数据,如果直接将其存储在区块上,会导致区块数据量过大,从而影响区块的读写效率。因此,上述方案无法完全适用于需要共享大量资源的资源共享平台。

3. 预备知识

3.1 联盟区块链

区块链技术首次在中本聪于2008年发表的论文[8]。区块链广泛应用于物联网[4-6]、数字货币[9]、数据存储[10,11]和智慧医疗[1-3]。根据开放程度的不同,区块链可分为公有链、联盟链和私有链。公有链是完全去中心化的,不受任何组织控制,任何人都可以参与共识,是一个开放的分布式平台。联盟链仅对授权成员单位开放。与公有区块链相比,联盟区块链在效率和灵活性方面具有优势,主要体现在以下两点:共识过程简单,提高了交易速度,降低了交易成本;区块数据读取受限,因此能够有效保护隐私。私有链则限于企业、国家机构或个人内部使用。

3.2 密文策略属性基加密

基于身份的加密(IBE)在2005年,萨海提出了模糊基于身份的加密(FIBE)[12],并首次提出了属性基加密(ABE)的概念。戈亚尔提出了两种基于属性加密的策略:密钥策略属性基加密(KP‐ABE)[13]和密文策略属性基加密(CP‐ABE)[14]。在KP‐ABE加密方案中,密文与文件的属性相关联,密钥则与访问结构相关联,只有当用户的属性集满足该访问控制结构时才能解密。CP‐ABE则相反,访问策略与密文相关联,用户属性与私钥相关联,只有当访问者的属性集满足该访问控制结构时才能解密。由此可见,CP‐ABE能够实现一对多密文共享,用户可灵活指定访问策略以实现安全访问控制,非常适用于分布式环境中的访问控制。

CP‐ABE通常由以下算法组成。

初始化算法 :初始化该算法。系统随机选择两个参数 α, β ∈ ℤq∗,然后生成公共参数PK和一个主密钥MK;

加密 :加密算法。系统使用公共参数PK和访问结构对明文M进行加密,接下来生成密文C。

KeyGen :私钥生成算法。系统根据用户属性集S和主密钥MK生成用户私钥SK。

解密 :解密算法。系统根据密文C和私钥SK获取明文M。

4. 方案

以下部分从四个方面详细描述了DSSPS:系统架构、节点设计、系统信息交换过程和方案设计。

4.1 系统架构

对于资源共享平台,存在三种主要类型的参与者:资源提供者、服务提供者和资源下载者。本文提出了一种不完全去中心化采用联盟链架构,结合访问控制技术和密文策略属性基加密。平台上的数据经过加密后,平台能够实现对共享资源的多级访问控制。资源共享平台架构如图1所示。

资源共享平台分为五层,从上到下分别为应用层、智能合约层、接口层、区块链服务层和存储层。

  • 应用层 :它包含各种信息系统,为用户提供可视化界面和多种服务。
  • 智能合约层 :它包含系统所需的所有智能合约,为用户提供多种合约服务。
  • 接口层 :主要包括为智能合约层和区块链服务层提供接口服务,以及为节点之间提供通信服务。
  • 区块链服务层 :它收集特定时间范围内的区块信息(主要包括文件存储地址和日志)。所收集的信息用于构建Merkle树。接着,向区块中添加时间戳、哈希、版本号等信息。然后将该区块广播至整个网络。当全网节点达成共识后,所有节点都将该区块添加到区块链中。
  • 存储层 :包括记录链数据库、日志链数据库、属性数据库、索引数据库和文件数据库五个部分。记录链数据库用于存储加密文件的文件存储路径。日志链用于存储文件访问记录。属性数据库用于存储用户的属性列表。索引数据库用于存储文件信息。文件数据库用于存储加密文件数据。

4.2 节点设计

整个区块链网络节点分为三部分:即包括共识节点、授权节点和边缘节点,如图2所示。

  • 共识节点 :它就待记录的信息达成共识,并记录区块。
  • 授权节点 :对于联盟链,只有授权节点可以加入区块链网络,授权节点主要负责管理联盟链的所有节点并提供身份认证服务。
  • 边缘节点 :主要负责为用户提供文件查询服务,不参与共识,仅同步区块链数据、索引和文件数据。

4.3 系统信息交换过程

图3是系统信息交换过程。以下根据用户的操作,描述各系统与数据库之间的信息交换过程。

(1) 用户的属性操作
主要包括属性的创建、查询和删除操作并申请属性私钥。具体流程如下:
a. 用户向资源共享平台(RSPL)发送属性私钥申请。
b. RSPL将属性私钥申请发送至授权中心。
c. 授权中心验证请求的真实性和请求用户的身份。如果通过验证,则从属性数据库中查询属性数据。
d. 属性数据库向授权中心发送属性列表。
e. 授权中心根据属性列表生成属性私钥,并将其发送给RSPL。
f. RSPL将属性私钥发送给用户。

(2) 用户上传文件
a. 用户生成一个随机的对称密钥,然后对该文件使用对称密钥进行加密。最后,用户将密文和文件索引信息上传至RSPL。
b. RSPL将密文存储到文件数据库中。
c. 文件数据库向RSPL返回文件存储路径。
d. RSPL将索引信息存储到索引数据库中。
e. 索引数据库将结果发送给RSPL。
f. RSPL将文件存储路径发送给用户。
g. 用户使用CP‐ABE对文件存储路径和对称密钥进行加密,并将密文发送至RSPL。
h. RSPL将密文发送至BCPL。
i. BCPL将密文数据与其他密文数据一起存储进入记录链。
j. 记录链将处理结果发送给BCPL。
k. BCPL将处理结果发送给RSPL。
l. RSPL将处理结果发送给用户。

(3) 用户请求文件
1. 用户向RSPL请求文件列表。
2. RSPL从索引数据库查询文件。
3. 索引数据库返回文件列表。
4. RSPL将文件列表返回给用户。
5. 用户向RSPL请求文件。
6. RSPL向BCPL请求加密的地址数据根据用户请求的文件信息。
7. BCPL获取用户请求的文件地址数据从记录链中。
8. 记录链将文件地址数据返回给BCPL。
9. BCPL将文件地址数据发送到RSPL。
10. RSPL对用户信息和请求文件使用文件所有者的公钥加密,然后将其发送到BCPL。
11. BCPL将日志存储到日志链。
12. 日志链将日志记录结果发送给BCPL。
13. BCPL将日志记录结果发送给RSPL。
14. RSPL向用户发送文件地址数据。
15. 用户使用私钥对密文进行解密,获取一个文件路径和一个对称密钥。然后用户将文件路径发送到RSPL。
16. RSPL从文件数据库请求加密文件基于文件路径。
17. 文件数据库将文件返回给RSPL。
18. RSPL将文件发送给用户。用户使用对称密钥对文件进行解密。

(4) 用户查询文件访问日志
1. 用户向RSPL查询文件访问日志。
2. RSPL根据请求的文件信息向BCPL查询文件访问日志。
3. BCPL向日志链请求文件访问日志。
4. 日志链将文件访问日志返回给BCPL。
5. BCPL将文件访问日志发送给RSPL。
6. RSPL将文件访问日志发送给用户。然后用户使用私钥解密日志。

4.4 方案设计

该方案由两部分组成:区块链(记录链、日志链)以及三个数据库(属性数据库、文件数据库、索引数据库)。记录链用于存储文件的存储地址,日志链用于存储用户访问文件的记录,属性数据库用于存储用户的属性信息,文件数据库用于存储加密文件数据,索引数据库用于存储文件的索引信息。该方案的主要内容如下:
1)文件访问控制,包括文件上传、文件查询、文件下载;
2)日志访问控制,主要是日志查询;
3)文件删除,由于区块链上的记录无法删除,因此文件删除需要通过特殊方法实现;
4)文件授权修改,用户需要重新建立访问策略,且由于CP‐ABE加密的特殊性,需通过重新加密来实现。

4.4.1 文件访问控制

设置 :授权中心随机选择两个参数 α, β ∈ ℤq∗,并生成公共参数PK和主密钥MK。

加密 :文件加密分为三个阶段。
- 第一阶段:文件所有者使用随机生成的对称密钥SC对明文M进行加密,生成密文 C = SC(M)。然后用户将密文C和索引信息infor发送给RSPL。接着,RSPL将密文C存储到文件数据库并获取存储路径ξ。RSPL将索引信息infor存储到索引数据库。
- 第二阶段:文件所有者对存储路径ξ、对称密钥SC、公共参数PK以及访问结构ד进行加密 Encrypt(ξ, SC, PP, ד) → θ,生成密文θ。然后用户将密文θ发送给RSPL。
- 第三阶段:RSPL将密文θ发送给BCPL。BCPL将密文θ添加到区块中,并获取哈希地址φ。然后BCPL将哈希地址存储到索引数据库中,以便下次能够快速查询该地址信息。

密钥生成 :用户申请私钥。授权中心根据属性集S和主密钥MK生成私钥 SK = KeyGen(S, MK)。

查询 :用户输入密钥信息Key以查询文件。RSPL根据密钥信息Key从索引数据库中查询对应的文件列表,并将其返回给用户。

解密 :文件解密分为四个阶段。
- 第一阶段:RSPL根据用户请求的文件信息中的哈希地址φ,从记录链中获取密文θ。RSPL使用文件所有者的公钥PUK对请求文件的用户的账户地址AA以及文件的索引信息info进行加密,得到PUK(AA, info),并将该密文存储到日志链中。最后,RSPL将密文θ发送给用户。
- 第二阶段:用户根据私钥SK对密文θ进行解密 Decrypt(θ, SK) → (ξ, SC),获得存储地址ξ和对称密钥SC。然后用户将存储地址ξ发送给RSPL。
- 第三阶段:RSPL根据文件地址ξ从文件数据库中获取密文C,并将其发送给用户。
- 第四阶段:用户使用对称密钥SC对密文进行解密 DSC(C) → M。

4.4.2 日志访问控制

要求 :用户选择文件f。接着,RSPL从BCPL查询文件f的加密访问日志K。然后,RSPL将加密访问日志K发送给用户。

解密 :用户使用用户的私钥PSK对日志信息进行解密 PSK(K) → P’。

4.4.3 文件删除

Delete :如果用户需要删除文件f。RSPL首先验证用户的身份,然后使用公钥加密PUK(info, deletesign)将文件信息info和删除标志deletesign存储在区块中。RSPL根据文件存储地址从文件数据库中删除用户的文件C。最后,删除索引数据库中对应的文件信息info。

4.4.4 文件授权修改

Modify :授权修改分为三个阶段。文件授权修改是一个重新加密的过程。
- 首先,用户通过函数Query()和Decrypt()获取存储地址ξ和对称密钥SC。
- 然后用户重新制定访问策略ד·。
- 接下来,用户加密路径ξ、对称密钥SC、公共参数PK以及访问结构ד·,即 Encrypt(ξ, SC, PP, ד·) → θ·,以生成密文θ·。然后用户将密文θ·发送给RSPL。
- 最后,BCPL将密文θ·添加到区块中,并获得哈希地址φ·,然后在索引数据库中更新该哈希地址。

5. 安全分析

本文提出了一种基于联盟链的资源共享平台,其中文件所有者和文件请求者是主要参与者。本文主要采取以下三项措施来确保用户数据共享的安全性。
1) 保护用户的信息 :用户的属性信息存储在授权中心,只有用户本人可以访问与其相关的属性信息,访问权限由用户控制。
2) 保护文件 :RSPL对用户的文件进行对称加密,并将其存储在文件数据库中。同时,使用CP‐ABE对文件的存储地址和对称密钥进行加密,并存储在记录链中。这确保了文件数据的安全,防止被非法获取。
3) 记录文件访问者 :访问文件的用户会被记录日志,并使用文件所有者的公钥进行加密,然后存储到日志链上,以便文件所有者查询访问过文件的人员列表。

本文不仅保护用户的身份信息,还保护文件和访问日志。用户无需担心其隐私和文件被泄露,安全性得以保障。

6. 结论与未来工作

本文提出了一种结合联盟链和CP‐ABE的数据共享安全保护方案,该方案不仅确保了数据的可追溯性,还结合CP‐ABE实现了更灵活的访问控制,满足了数据共享过程中的访问控制需求,实现了细粒度访问控制和安全共享。通过对该方案的安全分析可知,该方案在交互过程中不会泄露用户的私有数据。然而,由于CP‐ABE加密过程消耗大量计算资源,这限制了文件加密的速度。如何在保证用户数据安全的前提下将计算外包给区块链节点,是下一步的主要工作。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值