本发明涉及区块链
技术领域:
,特别是涉及一种基于改进代理重加密的追溯数据访问控制方法。
背景技术:
:安全追溯平台通过引入区块链技术,保证了数据可信,实现了安全追溯可控。但在链上如何让数据提供方(以下简称提供方)实现敏感数据可控访问是个问题。在区块链数据访问控制方面,目前主要有以下几种:(1)通过智能合约控制:提供方可以通过区块链合约来定义访问控制规则,而利用方必须在满足提供方所设定的合约条件后,方可向区块链申请身份验证,在获得许可之后,便可以访问提供方的数据。(2)一种基于区块链的数据共享方法和系统(申请号:201810903924.0):该专利提出让数据提供方通过客户端获得服务接口,将数据按照规定格式通过文本的形式上传到接入服务器,并设置合适的访问控制;另需查询服务器通过统一端口控制数据利用方身份并接收数据查询请求,同时并行向所有接入服务器发送数据查询请求;此时接入服务器将时间戳、数据索引、访问权限和对相应数据的操作记录写入区块链,有权限的数据利用方可以访问数据。(3)通用代理重加密控制:通过代理重加密技术实现利用方与提供方之间的数据共享,并结合代理方重加密机制,实现公开数据的共享访问与隐私数据的访问控制。但是上述三种方案可能存在的缺点和问题:通过智能合约控制:该方式是目前较简单的权限控制方案之一,但该方式随着智能合约部署上链后,无法方便的对已经设定好的权限进行撤销或修改,即使通过合约注册表映射方式部署分散合约,能够实现对部分权限的可维护性和可更新性,但要付出的合约消耗将比普通方式大得多,同时还会出现信任问题而得不偿失。一种基于区块链的数据共享方法和系统(申请号:20180903924.0):该方式类似于脱链存储,由分布式服务器负责实体信息的存储,并部署独立的服务进行数据查询与权限控制,最后将时间戳、数据索引、访问权限和对相应数据的操作记录等信息上链存储。该方式主要存在两方面不足:首先,该方法是将实体信息存储于分布式服务器中,无法确保数据信息的安全不暴露,同时也无法保证信息的不被篡改;其次,该方式将访问权限写入了区块链,同样存在修改与撤销授权不够灵活的问题。通用代理重加密:该方式主要实现隐私数据的加密控制,解决了隐私数据的过度暴露问题,已能满足一般的业务场景,但在现有的安全追溯平台业务中,对数据安全与隐私控制方面提出了更高的要求,一般的通用代理重加密方式不能完全满足需要,主要有以下几点:(1)提供方对承接重加密的节点有资质要求,不符合资质条件的节点无权作为代理方;(2)防止代理方与利用方之间形成共谋攻击。技术实现要素:本发明所要解决的技术问题是提供一种基于改进代理重加密的追溯数据访问控制方法,提升了隐私数据在区块链上的安全性。本发明解决其技术问题所采用的技术方案是:提供一种基于改进代理重加密的追溯数据访问控制方法,代理方的区块链包含有四个智能合约,分别为:数据利用申请合约、申请授权合约、数据重加密合约和中间密钥管理合约,包括以下步骤:(1)接收利用方提出的链上数据申请授权利用的请求,通过所述数据利用申请合约得到提供方信息;(2)根据所述数据利用申请合约获取的提供方的身份标识信息,所述申请授权合约向提供方提出密钥授权申请;(3)接收提供方生成的针对利用方的授权重加密密钥,所述数据重加密合约根据接收到的条件筛选出若干计算节点参与运算;(4)调用所述中间密钥管理合约对密钥进行分片操作,并将密钥分段分片存储于不同的合约体,进行重加密密钥的匿名化,并对数据进行二次重加密操作;(5)将二次重加密后的数据发送给利用方。所述步骤(1)中数据利用申请合约检索链上隐私数据,并根据数据公开部分属性检索到提供方信息。所述步骤(2)向提供方提出密钥授权申请时携带利用方公钥信息与数据授权协议信息。所述步骤(3)中计算节点的筛选条件保存在利用方的数据授权协议信息中。有益效果由于采用了上述的技术方案,本发明与现有技术相比,具有以下的优点和积极效果:本发明通过重加密密钥匿名和代理分割密钥方式,进一步提升了隐私数据在区块链上的安全性,通过增加对代理方的资质控制,按需过滤代理方,避免利用方与代理方联合攻击。另外,本发明还通过智能合约机制进一步的减少提供方的控制投入。附图说明图1是本发明的整体流程图;图2是本发明链上item结构示意图。具体实施方式下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。本发明的实施方式涉及一种基于改进代理重加密的追溯数据访问控制方法,提供方仅需使用自身密钥将敏感数据加密一次上链,通过对各数据利用方(以下简称利用方)的密钥管理,由数据代理方(以下简称代理方)配合将敏感数据进行重加密,实现对利用方的数据访问控制。该方法在代理重加密流程基础上进行改进,增强了代理重加密节点的资质筛选、使用重加密密钥匿名和代理分割密钥方式来防止利用方与代理方之间的共谋攻击,同时通过智能合约机制进一步的减少提供方的控制消耗。整体流程如图1所示。本实施方式中主要包含三个参与主体:提供方:业务数据的产生方和提供方,需要对业务、交易数据进行上链操作,保证业务或者交易的可信性。可以对某些敏感数据进行加密后上链。利用方:链上业务数据的利用方,例如某个追溯环节的下游企业,或者需要对数据进行审查的监管部门等。代理方:作为提供方和利用方敏感数据共享使用的授权代理存在。本实施方式通过采用区块链中的智能合约来完成代理的自动化操作。代理方的区块链中包含四个智能合约:数据利用申请合约:接收利用方的隐私数据利用申请,申请会包含授权期限、利用方公钥等信息。申请授权合约:检索待授权的隐私数据信息,以及条目数据中的明文数据所有者信息,并向提供方发出利用请求。数据重加密合约:提供方提供针对特定利用方的重加密密钥,由此合约进行接收,并执行对敏感数据的重加密操作。中间密钥管理合约:利用方提供的公钥信息,以及提供方提供的重加密密钥等信息,会由此合约进行分片、匿名化等密钥管理操作,一定程度上防止共谋攻击。具体步骤如下:1、提供方隐私数据上链。食品安全追溯链条中的每个环节会产生相应的生产数据,提供方可以对条目数据中可公开属性保持明文,而敏感属性进行加密,随后进行上链操作,保证数据不被篡改且合法可信、可查。假设:有如下“商超零售”追溯环节需要上链业务数据,商超的某条目信息属性字段示例如表1所示。表1原始条目信息示例数据属性信息值企业身份标识0xces11039284572批次信息201911151111运单号yd20191115232…………价格19.89数量100步骤1:提供方生成自己的公私钥密码对;步骤2:提供方公钥加密敏感条目数据并上链;提供方针对需要保密的条目信息,使用公钥对业务条目敏感属性m进行加密,生成的密文属性上链。提供方需要控制上链条目数据中的“价格”、“数量”两个属性,只有经过授权的利用方才可以合法使用数据,因此需要使用提供方的公钥对此属性进行加密处理,加密后的条目数据如表2所示。表2经过加密后的上链数据数据属性信息值是否加密企业身份标识0xces11039284572否批次信息201911151111否运单号yd20191115232否………………价格是数量是如图2所示,本实施方式链上信息存储公开的属性数据或提供方公钥加密的敏感数据等条目信息,并采用分层方式存储,将hash摘要、内容元数据存放在item结构中,再计算出每个item的哈希值放入item块结构中。其中,内容元数据中可以存放追溯环节上的公开信息或者敏感信息。2、利用方链上数据申请授权。利用方通过检索链上数据,如果数据条目中有隐私属性,则需要提供利用方公钥向承担代理方的区块链“数据利用申请合约”发出申请,由“数据利用申请合约”检索相应的链上隐私数据,并根据数据公开部分属性检索到对应的提供方信息,以便向提供方提出授权申请。3、申请数据授权。“申请授权合约”根据上述步骤中检索出的“企业身份标识”信息,检索并向提供方提出密钥授权申请,且需携带相应的利用方公钥信息与数据授权协议信息。4、返回重加密密钥。提供方依据链上合约提供的利用方公钥以及提供方对计算节点的条件筛选条件等授权协议信息,生成针对特定利用方的授权重加密密钥,并发送至“数据重加密合约”,并由“数据重加密合约”根据接收到的条件,筛选一定数量的计算节点参与合约的运算,避免代理方联合利用方发起针对提供方的共谋攻击。5、重加密操作。“数据重加密合约”接收提供方发送的重加密密钥,调用“中间密钥管理合约”对密钥进行分片操作,使用密钥的hash值作为key,将密钥分段分片存储于不同的合约体,进行重加密密钥的匿名化,防止共谋攻击,并使用该密钥对数据进行二次重加密操作。本实施方式使用基于格基算法协议(lll:lenstralenstralovasz)的代理重加密算法,数据共享授权方对密文数据进行重加密输出二次加密密文数据。数据重加密后的条目数据示例如表3所示。表3加密数据重加密后的条目示例数据属性信息值是否加密企业身份标识0xces11039284572否批次信息201911151111否运单号yd20191115232否………………价格是数量是6、返回二次加密数据给利用方。“数据重加密合约”将重加密后的数据返回给利用方7、利用方解密,得到明文数据。利用方使用获取到的原始密文信息m,结合二次加密密文解密出最终的明文数据。完成数据授权的交换过程。解密后的数据条目示例如表4所示。表4利用方解密数据数据属性信息值是否加密企业身份标识0xces11039284572否批次信息201911151111否运单号yd20191115232否………………价格19.89否数量100否在上述过程中,重加密授权代理方作为数据授权的中介,无法获取任何敏感数据的明文信息,本实施方式又针对重加密密钥做了分片匿名化。以此保障了数据共享双方的敏感数据安全。不难发现,本发明通过重加密密钥匿名和代理分割密钥方式,进一步提升了隐私数据在区块链上的安全性,通过增加对代理方的资质控制,按需过滤代理方,避免利用方与代理方联合攻击。另外,本发明还通过智能合约机制进一步的减少提供方的控制投入。当前第1页12