基于区块链的数据访问控制系统的制作方法

文档序号:11524204阅读:298来源:国知局
基于区块链的数据访问控制系统的制造方法与工艺

本发明属于互联网技术领域,尤其涉及一种数据访问控制系统。



背景技术:

随着共享数据时代的到来,越来越多的数据被电子化并存储在云端,通常情况下对数据的访问控制通过鉴别、认证和授权三步完成。传统的访问控制系统除了保证只有合法用户进入系统外,还可以实现授权和审计功能,但其中心化的部署方式使其易于成为匿名入侵和窃取用户资料的目标。区块链是新兴的技术,其在加密货币体系中的成功运用,促成了许多新应用的开发。



技术实现要素:

本发明的目的在于:提供基于区块链的数据访问控制系统,通过结合密码技术的机密性、完整性和不可抵赖特性,以及区块链技术的分布式总账不可更改特性开发一个安全可扩展的访问控制系统,以促进敏感数据的安全和充分共享,解决了现有技术中因使用中心化部署方式,导致用户资料容易被窃取的技术问题。

本发明采用的技术方案如下:

基于区块链的数据访问控制系统,包括

用户层:用于供用户向下一级发送注册申请或数据访问请求;

系统管理层:用于接收上一级发送的根据注册申请或数据访问请求;

存储层:用于保存数据,以及供用户层的用户在注册申请和数据访问请求经系统管理层验证通过后,进行数据访问;

在发送注册申请时:系统管理层与用户层之间进行三次密码审核和验证,系统管理层基于最后一次的密码产生事务公钥和事务私钥,并将事务公钥交由系统管理层保管;

在发送数据访问请求时:系统管理层取出和验证经上述最后一次的密码加密并用事务私钥进行签名后的数据访问请求的区块,验证通过后,用户获得存储层所保存数据的访问权限。

进一步的,用户在向发行者发送注册申请时:发行者接收到用户的注册申请后,将成员发行密码发送给用户;用户通过成员发行密码将注册资料加密,并加上自己申请的时间戳,再发送给发行者进行审核确认;发行者确认通过用户的注册申请后,向用户发送成员验证密码;用户将成员验证密码发送给校验者请求成员身份鉴定,待确认用户的成员验证密码后,通过用户的成员身份验证;校验者依据成员验证密码产生成员加密密码并发送给用户;用户收到成员加密密码后,基于成员加密密码产生事务公钥和事务私钥,并将事务公钥交由校验者保管。

进一步的,用户在发送数据访问请求时:使用成员加密密码对数据访问请求的区块加密,并用事务私钥进行签名,然后发送到未处理请求池中等待处理;共识节点从未处理请求池中取出区块(即前驱区块)并向校验者请求验证;在区块通过验证后,用户获得存储层所保存数据的访问权限,且区块被共识节点广播,形成区块链中新的区块(即后继区块)。

进一步的,发行者:依据一定的准则对申请注册的用户进行资格审查,并发送成员验证密码。

进一步的,校验者:用于安全保存用户产生的事务密钥,为用户生成用于建立区块的成员加密密钥以及对用户生成的签名区块进行校验。

进一步的,共识节点:按照一定算法从未处理请求池中取出区块,联合校验者对区块的真实性进行校验并报告违规行为,通过验的区块将被广播到区块链中。共识节点是唯一能够访问未处理请求池的实体。

进一步的,用户由需要访问数据的单位和个人组成。

综上所述,由于采用了上述技术方案,本发明的有益效果是:

本发明所公开的系统只分为三层,即用户层、系统管理层和存储层,本系统将密码技术的机密性、完整性和不可抵赖特性和区块链技术的分布式总账不可更改特性相结合,开发出一个安全可扩展的访问控制系统,以促进敏感数据的安全和充分共享。密码学提供的安全加密技术可以用来鉴别和认证用户,结合区块链的去中心化存储的总账系统可以实现一个安全、可扩展、分布式、不可抵赖的访问控制系统,本系统在发送注册申请时:系统管理层与用户层之间进行三次密码审核和验证,系统管理层基于最后一次的密码产生事务公钥和事务私钥,并将事务公钥交由系统管理层保管;在发送数据访问请求时:系统管理层取出和验证经上述最后一次的密码加密并用事务私钥进行签名后的数据访问请求的区块,验证通过后,用户获得存储层所保存数据的访问权限,解决了现有技术中因使用中心化部署方式,导致用户资料容易被窃取的技术问题。

附图说明

图1是本发明的系统结构组成示意图;

图2是系统结构和执行过程示意图;

图3是区块的组成示意图。

具体实施方式

本说明书中公开的所有特征,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。

下面结合图1~图3对本发明作详细说明。

基于区块链的数据访问控制系统,包括

用户层:用户由需要访问数据的单位和个人组成,主要用于数据分析和科学研究,例如大学、政府和个人研究者,以及供用户向下一级发送注册申请或数据访问请求;

系统管理层:由相互连接的独立实体构成,主要负责建立安全连接、促进系统的高效运,用于接收上一级发送的根据注册申请或数据访问请求;

存储层:由基于云端的存储和处理结构构成,主要负责安全的保存数据以便于查阅、分析和研究,以及供用户层的用户在系统管理层验证通过注册申请或数据访问请求后,进行数据访问;

在发送注册申请时:系统管理层与用户层之间进行三次密码审核和验证,系统管理层基于最后一次的密码产生事务公钥和事务私钥,并将事务公钥交由系统管理层保管;

在发送数据访问请求时:系统管理层取出和验证经上述最后一次的密码加密并用事务私钥进行签名后的数据访问请求的区块,验证通过后,用户获得存储层所保存数据的访问权限。

系统管理层由发行者issuer、校验者verifer、共识节点concensusnode、未处理请求池poolofunprocessedrequests以及区块链网络blockchainnetwork组成。

用户注册时,使用发行者提供的成员发行密钥将注册信息进行加密,成员通过注册后才获得成员验证密码。

成员验证密码是校验者确认用户是否属于同组的关键密码。

用户和校验者之间的相互验证过程中,相互发送的消息使用成员发行密码进行加密,并使用成员验证密码进行签名。

用户和校验者通过相互验证以后,校验者将依据成员验证密码产生成员加密密码并发送给用户。用户将基于成员验证密码产生事务私钥和事务公钥并将事务公钥发送给校验者保存。

成员加密密码用于加密本组产生的区块。事务私钥用于给经成员加密密码加密后的区块签名。事务公钥用于对特定用户的区块进行校验。如果任何一个密码不匹配,相关区块将被丢弃。

用户在向发行者发送注册申请时:发行者接收到用户的注册申请后,将成员发行密码发送给用户;用户通过成员发行密码将注册资料加密,并加上自己申请的时间戳,再发送给发行者进行审核确认;发行者确认通过用户的注册申请后,向用户发送成员验证密码;用户将成员验证密码发送给校验者请求成员身份鉴定,待确认用户的成员验证密码后,通过用户的成员身份验证;校验者依据成员验证密码产生成员加密密码并发送给用户;用户收到成员加密密码后,基于成员加密密码产生事务公钥和事务私钥,并将事务公钥交由校验者保管。

用户在发送数据访问请求时:使用成员加密密码对数据访问请求的区块加密,并用事务私钥进行签名,然后发送到未处理请求池中等待处理;共识节点从未处理请求池中取出区块(即前驱区块)并向校验者请求验证;在区块通过验证后,用户获得存储层所保存数据的访问权限,且区块被共识节点广播,形成区块链中新的区块(即后继区块)。

发行者:依据一定的准则对申请注册的用户进行资格审查,并发送成员验证密码。

校验者:用于安全保存用户产生的事务密钥,为用户生成用于建立区块的成员加密密钥以及对用户生成的签名区块进行校验。

共识节点:按照一定算法从未处理请求池中取出区块,联合校验者对区块的真实性进行校验并报告违规行为,通过验的区块将被广播到区块链中。共识节点是唯一能够访问未处理请求池的实体。

系统执行过程

1.用户注册

发行者生成一个成员发行和成员校验密码集合,然后与校验者共享。用户向发行者提出注册申请,发行者将成员发行密码发送给用户用于加密用户的注册资料,用户将该资料加密并加上自己的申请时间戳发送给发行者进行确认,发行者负责对用户资料进行审核,通过后向用户发送成员验证密码。

用户随后将成员验证密码发送给校验者请求成员身份鉴定,通过用户的成员身份验证后校验者依据成员验证密码产生成员加密密码并发送给用户,用户收到后将基于成员加密密码产生事务私钥和事务公钥并将事务公钥交由校验者保管。

2.请求数据

用户使用成员加密密钥加密数据访问请求,并用事务私钥进行签名,然后将该区块(区块详细字段定义见文末)发送到未处理请求池中等待处理。

3.验证请求

用户事务的验证。共识节点按照一定算法从未处理请求池中取出区块并请求验证,区块头的timestamp(时间戳)记录请求验证时间的哈希值。blockformat(区块格式)记录基于该区块成员加密密钥产生的一个二进制序列。用户事务(usertransaction)标准模型满足后,区块的事务层被激发。urt、uid和tx共同标明该请求的目的(缩略词见后)。us保存用户的签名信息。ust记录请求发送的准确时间的时间戳。

共识节点选出一个数据访问请求时将触发共识事务(consensustransaction)。共识节点需要解决一个由目标困难值targetdifficulty和随机数nonce更新的数学问题,正确后才有权处理该请求。然后共识节点向校验者请求验证用户,crt记录共识节点取出请求的时间,cst记录节点发送签名的时间,cra记录校验开始时间,cpt记录总处理时间,cn记录处理节点的身份。

4.获得访问权限

在请求通过验证后用户获得访问权限,区块被广播,cbt记录广播时间,cdp记录区块目的,cs记录共识节点签名。在处理过程中,用户在已产生的区块格式blockformat后加上一个序列号用于标明区块的当前位置。versionnumber记录区块版本,previousblockhash记录前驱区块的哈希值,merkleroot记录和包含当前区块在内计算的默克尔根值,blocksize记录区块大小,blocklocktime记录区块创建的结束时间戳,此时当前区块成为连续区块链的一部分。

在后继区块形成时,前驱区块头的哈希值被记录在后继区块中,随后加入区块链。

区块详细字段定义:

一个区块由全局唯一的区块格式字段blockformat标识,随后是区块大小blocksize,区块头blockheader(由sha256进行哈希处理),区块头保证了整个区块链的防篡改功能,如果攻击者想要伪造一个区块记录,他必须从初始区块开始逐个更改每个区块的区块头,这是不可能的,这种方式极大的保证了区块链的安全性,区块间的不匹配会立刻产生一个警报并引发数据鉴定。

区块头共有6部分组成。版本号versionnumber,它表明了采用的校验规则。还含有一个前驱区块的sha256方式的哈希值previousblockhash(作用在于,如果不能修改当前区块的的区块头就不能修改前驱区块中的任何数据)。随后是默克尔根的哈希值merkleroot(将区块链中已发生的所有事件联合做sha256哈希运算,然后将得到的结果存放在当前区块中,它的作用在于如果不能改变当前区块,区块链中的任何区块数据都不能改变)。区块头还包含该区块产生时的时间戳timestamp(时间戳)。目标困难值targetdifficulty标识仅限于本系统的共识节点的处理方式,恶意节点难以处理但是经校验过的本系统的节点可以高效的处理。最后是随机数nonce,用于修改区块头的哈希值,使它低于目标困难值。

区块中的事务计数器transactioncounter记录整个区块中所包含的事务数量。事务transactions由共识事务和用户事务组成。共识事务分为两类标准模型,时间戳和数据,时间戳由crt,cst,cpt,cbt组成,数据由cn,cra,cdp,cs组成。用户事务也分两类标准模型,时间戳和数据,时间戳由urt,ust组成,数据由uid,tx,us组成。

最后定义的结构是transactionlocktime时间戳,用于记录最后一条事务并标志区块结束。这个区域一旦满足,区块就准备好被广播到区块链中,transactionlocktime全局标明了区块进入区块链的时间。

缩略词:

crtconsensusretrivetime共识取出时间

craconsensusverificationresult共识校验时间

cptconsensustimetoprocess共识开始处理时间

cstconsensusreuqestverificationtime共识请求校验时间

cbtconsensustimetobroadcast共识广播时间

cdpconsensusdatapurpose共识数据目的

cnconsensusprocessingnode共识处理节点

csconsensussignature共识签名

urtuserretrievetime用户取回时间

本发明未详细阐述的部分属于本领域公知技术,本领域技术人员根据已有的描述已能够在不付出创造性劳动的前提下进行实施,因此,不再赘述。

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