赵 慧
(呼和浩特民族学院,内蒙古 呼和浩特 010000)
在区块链数据访问控制系统网络节点中增加网络通道能够解决数据安全隐私问题,因为网络通道能够降低网络数据的透明性及易篡改性,并实现不同数据的相互隔离,进而增强数据隐私保护力度。尽管如此,常规状态下的区块链数据访问控制系统依然存在一定的数据泄露风险、数据隐私保护粒度过粗等问题[1]。
命名数据网络(Named Data Networking),简称NDN,由端到端解耦、网络层、应用层逻辑拓扑等构成,不仅具有屏蔽底层异构细节的功能,还具有数据通信及广播信息、提供驱动及移动原生支持、数据隔离保护等功能[2]。NDN网络架构呈“沙漏”型(见图1),能够维护转发信息表、请求等待表及内容仓库等数据。
图1 NDN的沙漏架构
(1)在CS中查找数据包,如果有相匹配的数据包(与之名称相对应的数据包),则可直接将兴趣包返回给请求者。
(2)如果CS中没相匹配的数据包,则需要到PIT中查询与之名称相同的PIT条目,如果有则证明有匹配的数据包;如果已在这之前发出,此时记录相应接口就行,等数据包传送回来可直接通过PIT中的接口传送给请求者。
(3)如果CS和PIT中都没有匹配的数据包或者条目,就需要到FIB中查找,并根据FIB中对应的路由策略,将相匹配的数据包转发至下一个节点,然后添加新条目,形成新的数据包。
(4)如果找不到匹配的数据包,则表明该节点无法处理这个数据包[3]。
第一,必须保留“沙漏”模型及体系,实现全局互联互通。第二,必须建立安全机制。利用打补丁的方式将内置安全机制补充到网络架构中,以确保数据安全;还可通过建立细粒度、定制化认证、授权和信任模型来建立安全机制。第三,必须建立流量自调节机制。可利用Data包和Interest包对应的“拉”数据通信原语建立网络节点流量自调节机制,实现对网络流量的有效控制。
区块链的概念源于比特币,是一种特殊数据结构,它不仅结合了计算机信息技术及大数据技术,还结合了各种密码学技术和分布式网络技术,所以不仅能够解决去中心化分布式场景中节点间的信任问题,还能够将各种数据块组织起来形成数据链或者数据库,并形成共识机制,以实现对各种数据内容的保存及保护,提高数据不可篡改性和持久性[4]。
超级账本区块链网络简称为Fabric-CA,属于许可链类型,是目前使用频率较高的区块链网络系统,新用户需要获取合法证书(到专门机构获取)后才能使用Fabric-CA的所有功能。Fabric-CA由服务器和客户端组成,主要功能有注册新用户身份(申请用户证书时需要用户注册结果作为凭证)、签发证书(指注册票据生成的证书)、更新或撤销证书[5]。
超级账本区块链网络的交易流程是:注册新用户→获取合法的证书→实现Fabric-SDK与区块链网络交互→建立多通道机制→形成独立的区块链账本→区块通道ID分发及数据隔离→交易提案发送→背书节点处理及用户签名→背书响应及交易内容发送(通常发送到排序服务集群)→交易处理→将合法交易添加到区块链账本中[6]。
CP-ABE算法包括全局初始化算法、密钥生成算法、预解密算法等,具体计算公式及说明见表1。
表1 CP-ABE算法计算公式及说明[7]
(1)证书颁发机构(Fabric-CA)的功能:签发区块链网络用户证书、吊销证书等。
(2)区块链网络(Fabric)的功能:初始化系统数据、公开参数、生成主密钥、增加分发机制、交易背书、交易排序、交易验证、分布式存储等。
(3)客户端(Client)的功能:发起交易、接收用户证书、生成用户属性密钥、数据加密处理等。
采用C P-A BE 算法,只有满足策略属性的密钥才能解密加密文件或者数据。C P-A BE网络中Channel1、Channel2和Channel3等多个通道,每个通道都包含有多个组织,而不同组织的用户不同(如User1、User2和User3等用户)且数量很多,所以基于CP-ABE算法的超级账本区块链网络不仅能够实现对最小单位数据网络及用户信息的划分,还能够对数据进行隔离保护及集中性最细粒度保护。基于CP-ABE算法的区块链数据访问控制系统属性定义及相关参数见表2,不同通道对应不同的通道策略。
表2 基于CP-ABE算法的区块链数据访问控制系统属性定义及相关参数
从表2和图2不难看出,策略即属性组成的访问结构,可将属性定义为通道ID、组织ID以及用户ID这3种,再将3种属性随意组合形成访问控制策略。其中,通道策略Channel1、Channel2和Channel3都可定义组织Org1、Org2中的全部用户(包括User1、User2和User3等),从而实现对全部用户的访问及控制,其为区块链数据访问控制系统构建奠定了网络通道及访问控制基础。
图2 用户通道策略
4.3.1 构建方案及流程
基于现有证书颁发机构(Fabric-CA)及区块链网络(Fabric),将(Fabric-CA)网络系统及算法中嵌入CP-ABE中,形成多网络通道、网络阶段及用户的CP-ABE区块链数据方位控制系统,并基于原有Fabric网络用户证书对数据方位控制系统进行初始化处理,并生成用户属性私钥,然后在该基础上增加分发功能、网络交互功能、访问控制功能等。
基于CP-ABE算法的区块链数据方位控制系统操作流程可分为密钥生成、数据加密上链和访问控制3个阶段,共6大步骤,即Setup、KeyGen、Encrypt、Update、Download和Decrypt。本文以UserA和UserB之间的交互为例,说明该系统构建方案的操作流程,其中UserA需要通过CIientA对隐私数据进行加密上链,UserB需要通过CIientB和Fabric网络访问密文对应的明文,进而实现交互。
4.3.2 方案实现
(1)密钥生成阶段:即用户与Fabric-CA通信阶段,然后由用户中心生成全局参数、主密钥、公开参数,最后通过用户身份认证生成用户证书及密文。
(2)数据加密上链阶段:即UserA与Fabric网络交互阶段,需要对用户UserA指定的数据进行加密上链;然后生成明文数据,并在该基础上结合通道策略加密密文;最后发起交易,将交易信息转变为交易负载形式,发送到区块链网络系统中,从而实现数据访问控制。
(3)访问控制阶段:即Fabric网络与UserB交互阶段。需要用密文交易区块将同步通道内的全部节点连接起来,然后结合客户端请求区块链网络密文信息及用户信息等生成密文,最后在该基础上生成用户属性密钥,实现对密文的解密,得到明文,实现数据访问控制。
本文中构建的区块链数据访问控制系统在原有的Fabric-CA网络基础上增加了密钥分发机制及用户证书管理机制,提高了用户属性私钥等的传输安全性。基于CP-ABE算法的区块链数据访问控制系统还能够加密处理各种密文及数据包,实现对通道策略的分布式管理。
基于CP-ABE算法的区块链数据访问控制系统能够实现对明文数据的加密上链,还能够设置、生成用户属性密钥、转换密钥及属性中心密钥,从而实现对不同网络通道及网络节点数据信息的加密处理,提高数据的安全性。
本文基于联盟区块链超级账本Fabric存在的数据隐私安全问题,分析了命名数据网络及CP-ABE算法对区块链数据访问控制的重要性,并在此基础上分析了如何在命名数据网络中基于CP-ABE算法构建功能完善的区块链数据访问控制系统。■