CN111683101B - 一种基于区块链的自主跨域访问控制方法 - Google Patents
一种基于区块链的自主跨域访问控制方法 Download PDFInfo
- Publication number
- CN111683101B CN111683101B CN202010547945.0A CN202010547945A CN111683101B CN 111683101 B CN111683101 B CN 111683101B CN 202010547945 A CN202010547945 A CN 202010547945A CN 111683101 B CN111683101 B CN 111683101B
- Authority
- CN
- China
- Prior art keywords
- transaction
- access control
- user
- output
- domain
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种基于区块链的自主跨域访问控制方法,包括步骤1、区块链网络构建;步骤2、自主跨域访问控制过程;自主跨域访问控制过程,包括访问控制策略管理过程、访问控制认证过程以及全节点验证过程;本发明提出了一种基于区块链的自主跨域访问控制方法,提出了访问控制系统的区块链结构、区块头结构以及访问控制方法,通过建立半中心化联盟链(或中心化私有链),在区块链上进行所有设备之间的访问授权管理以及访问控制认证。部署在区块链上的访问控制策略具有难以篡改、可追溯的性质;访问控制认证在区块链网络上进行,减少物联网设备的资源消耗,并具有抗单点失效的特性。
Description
技术领域
本发明涉及一种基于区块链的自主跨域访问控制方法,特别涉及一种物联网环境下支持跨域访问的自主访问控制方法,属于区块链技术领域。
背景技术
随着物联网设备的普及和多样化,物联网(IoT)将在我们的社会中扮演越来越重要的角色。例如,物联网设备已经并且将继续部署在国家,城市,基础设施和家庭等环境以及军事对抗中。据估计,2019年将部署近48.1亿个IoT终端,并且这一数字到2020年将增长到58亿。物联网设备可以安装在我们周围(人类),由人类穿戴或随身携带,并嵌入人体中(例如,嵌入式医疗物联网)。这样的设备可以促进对用户及其环境的跟踪,以及收集(私有和敏感)数据。国际数据公司(IDC)估计,到2025年,物联网设备生成的数据量可能会达到79.4ZB。但是,IoT终端大多是计算,存储和网络资源受限的设备,无法运行复杂的安全解决方案。因此,当前面临的一个挑战是为物联网设备设计安全轻便的访问控制解决方案,以确保静态数据和传输中数据的安全性和私密性。
经检索发现,中国专利文献CN110177109B公告了一种基于标识密码和联盟链的双代理跨域认证系统,所述系统包含实体层、代理层、区块链层和物理存储层;实体层包括若干实体和KGC服务器;KGC服务器包含系统初始化、实体密钥生成、BCAS服务器对接和AAS服务器对接四个模块;代理层包含AAS服务器和BCAS服务器;AAS服务器包含BCAS服务器对接、KGC服务器对接和认证代理三个模块,认证代理模块包括消息签名和签名验证模块;BCAS服务器包含智能合约、KGC服务器对接和AAS服务器对接三个模块。所述认证系统能构建管理域间的互信,缓解认证过程中实体计算开销、KGC服务器工作负载、区块链交易延时以及链上存储空间。中国专利文献CN110572819A公开了一种基于区块链的多域无线Mesh网络跨域认证方法及系统,首先明确基于以太坊智能合约的公钥管理过程,基于智能合约的公钥管理具有方便可扩展性,避免了对单个信任中心的过度依赖,具有防篡改,去中心化的特点;其次,在基于智能合约的公钥管理的前提下,阐述具体的移动客户端跨域认证过程,完成双向认证、会话密钥建立等跨域认证应达到的基本目标。本发明可快速进行跨域认证,通信时延和计算时延都较少,认证效率高;每次认证依赖于带签名的随机数,保证了通信的安全性;CA和多个区域的网关均作为区块链中的记账节点,消除了对单个信任中心的依赖,具有更好的健壮性、容错性。中国专利文献CN110661816A公开了一种基于区块链的跨域认证方法与电子设备,基于给定跨域认证系统实现,给定跨域认证系统包括主认证机构、从认证机构、用户端及验证方,其中所述方法包括:主认证机构生成公共参数、主密钥和主公钥,并基于主密钥生成并分发从认证机构的从密钥给从认证机构;从认证机构根据从密钥签发证书给用户端,用户端若验证其有效则接受;从认证机构对证书承诺并发送给用户端,用户端若验证其有效则接受;从认证机构对承诺签名并广播到区块链系统,其它从认证机构若验证签名有效则存储;用户端将承诺与验证信息发送给验证方,验证方若验证承诺有效则接受用户的身份信息。能够实现高效的跨域认证并能对从认证机构的严格监管。
但目前的访问控制方案多使用中心化的服务器,有单点失效的风险。同时,物联网中大量设备之间的频繁访问将带来大量的访问控制请求,对服务器性能有极高的要求。在基于区块链的分布式访问控制方案中,缺少对跨域访问的原生支持。
发明内容
针对现有技术的不足,本发明提供一种基于区块链的自主跨域访问控制方法。
本发明的技术方案如下:
一种基于区块链的自主跨域访问控制方法,包括以下步骤:
步骤1、区块链网络构建
1)在半中心化的联盟链或者中心化的私有链环境下,使用一个或多个全节点维护整个区块链网络,通过共识协议决定区块链上区块的产生;
2)由多个终端组成一个访问控制域,该访问控制域中设置一个管理员节点管理该访问控制域中终端的访问控制策略;当该访问控制域中有物联网终端需要管理,则该访问控制域中还需要设置一个或多个区块链网关为域中的物联网设备提供区块链网络服务;
步骤2、自主跨域访问控制过程
自主跨域访问控制过程,包括访问控制策略管理过程、访问控制认证过程以及全节点验证过程;
2A)访问控制策略管理过程
采用基于角色的跨域访问控制模型描述访问控制策略,管理员节点AN通过提交交易管理访问控制域内设备的访问控制策略;
首先,管理员节点AN将交易提交到全节点,由全节点通过全节点验证过程验证交易;然后,全节点将多个验证过的交易打包成一个区块,并通过共识协议与其他全节点一同判断该区块是否合法;最后,将合法的区块加入到区块链上;
2B)访问控制认证过程
用户首先通过用户注册交易TX_UR来注册用户信息,然后通过访问申请交易TX_AA来获取对某个访问控制域中某个终端资源的访问控制权限;用户的交易将提交给全节点,如果交易验证成功并存储到了区块链当中,那么用户就可以获得它所申请的资源的访问令牌T,用户就可以通过访问令牌T来访问终端资源;
2C)全节点验证过程
全节点通过区块链上的记录判断交易是否有效;对于TX_AA,如果全节点判断用户提交的TX_AA为有效,那么全节点就会生成一个基交易TX_BASE,用于发放用户申请资源的令牌;当交易被打包成区块后,所有的全节点将会根据共识协议判断区块的有效性,并决定区块是否上链。
优选的,步骤1中,全节点、管理员节点以及区块链网关皆为逻辑上的网络节点,实际部署时,一个服务器可以同时扮演多个节点。此设计的好处是,逻辑上的网络节点可由一个服务器实体承担其角色,无需布置过多服务器,节省网络架设的设备成本。
优选的,所述区块的数据结构包括:
A1区块大小:此区块的大小;
A2区块头信息,包括:
A21区块版本,为日后扩展升级准备;
A22前一区块哈希值:该区块的父区块的哈希值;
A23默克尔哈希树根:所有交易生成的默克尔哈希树的根节点的值;
A24时间戳:区块打包的时间;
A25此区块数字签名:使用管理员私钥对该区块进行数字签名;
A26管理员公钥:与管理员私钥对应的公钥;
A3交易数量:该区块打包的交易的总数量;
A4交易列表:所有交易的列表。
优选的,步骤2中,各种交易的数据结构包括:
B1交易哈希值:该交易的哈希值;
B2交易类型:指示该交易的种类:0x00为基交易,0x01为管理员交易,0x02为用户交易;
B3交易的输入数量:交易有多少个输入;
B4交易的输入信息,包括:
B41前一个交易的哈希值:该交易输入引用的前一个交易的哈希值;
B42序列号:指示该输入为前一个交易的第几个输出;
B43解锁脚本:用于解锁指向的交易的输出中的锁定脚本;
B5交易的输出数量:交易有多少个输出;
B6交易的输出信息,包括:
B61操作语句:一段包含操作码的操作语句,所有节点通过该操作语句完成它们需要的操作;
B62锁定脚本:使得只有特定的用户才能使用解锁脚本解锁该脚本,从而使得对该输出的引用为合法;
B63使用脚本:当锁定脚本被解锁后,交易的输出就不能再被引用,但是不解锁锁定脚本,仅解锁使用脚本时,交易的输出仍然可以继续被引用。
B7时间戳:交易生成的时间。
优选的,步骤2A)中,管理员节点AN提交的交易包含如下信息:
域注册交易TX_DR,注册访问控制域Di;
用户绑定交易TX_SA,将AN所管理的访问控制域中的终端用户与角色进行绑定;
权限绑定交易TX_OA,将设定的角色与访问控制权限绑定;
角色绑定交易TX_CA,将其他访问控制域Dj的角色与本域的角色进行绑定;
移除管理交易TX_RM,移除TX_SA、TX_OA或TX_CA设定的绑定关系。
进一步优选的,域注册交易TX_DR没有输入,只产生一个输出,且输出必须是一个域管理员提交的第一个交易;
用户绑定交易TX_SA、权限绑定交易TX_OA以及角色绑定交易TX_CA都只有一个输入和至少两个输出,且唯一的一个输入指向的是管理员上一次提交的交易的一个固定的输出,因此这些交易产生的输出中也必须有一个固定的输出为了下一次的交易引用,而其他的输出则执行交易对应的操作;
移除管理交易TX_RM至少有两个输入以及一个输出,其中的一个输入固定引用上一个交易的一个输出,其他的输入则引用那些需要被移除的输出。
进一步优选的,只有用户绑定交易TX_SA拥有使用脚本,管理员通过将每一条访问控制策略放入交易的每一个输出中来向区块链上存储规则,所有交易的所有输出都会被跟踪,直到输出被一个交易的输入引用并且使用解锁脚本解锁了它的锁定脚本;
当判断一个用户是否有访问控制权限时,只需要在所有未使用的交易输出UTXO中找到对应的用户绑定交易的输出,获得该用户的角色,然后再找到对应的权限绑定交易TX_OA的输出,获得该角色的权限,就得到了该用户所拥有的权限;使用移除管理交易TX_RM会引用需要移除的规则所对应的交易输出,使用解锁脚本解锁输出的锁定脚本,从而使得这些输出不再是UTXO,不能再被使用。
优选的,步骤2B)中,用户注册交易TX_UR必须是该用户提交的第一笔交易,该笔交易会产生一个输出,用户的第二笔交易将会引用该输出;访问申请交易TX_AA包含至少两个输入和两个输出,其中一对输入和输出用于引用上一笔交易以及给下一笔交易使用;另外一对或多对输入输出则用于申请访问权限,输入引用用户绑定交易TX_SA的输出,并使用解锁脚本来解锁输出中的使用脚本,输出会被全节点的基交易引用。此设计的好处是,用户可能会在不同的时刻多次申请访问权限,但是如果解锁了锁定脚本,该输出就无法再被使用,因此用户只解锁使用脚本。
优选的,步骤2B)中,被访问的终端检查用户的访问令牌T,搜索区块链上的UTXO中是否包含了对应的基交易的输出,如果存在该输出,且访问令牌T合法,则允许用户访问,反之拒绝用户的访问申请。
优选的,步骤2C)中,全节点通过跟踪的UTXO判断每一个交易的输入输出和交易体的合法性,通过的交易将会打包进区块,同时生成一个基交易,该基交易引用这一时刻所有合法的访问申请交易的输出,并根据输出信息生成用户访问令牌T,包含在基交易的输出中打包到区块中,打包好的区块广播至区块链网络中的其他全节点,通过共识算法决定区块是否上链。
本发明的有益效果在于:
本发明提出了一种基于区块链的自主跨域访问控制方法,提出了访问控制系统的区块链结构、区块头结构以及访问控制方法,通过建立半中心化联盟链(或中心化私有链),在区块链上进行所有设备之间的访问授权管理以及访问控制认证。部署在区块链上的访问控制策略具有难以篡改、可追溯的性质;访问控制认证在区块链网络上进行,减少物联网设备的资源消耗,并具有抗单点失效的特性。
附图说明
图1为本发明中区块链网络架构示意图;
图2为本发明中管理员交易与用户交易的示意图;
图3为本发明中运行时验证过程的示意图;
具体实施方式
下面通过实施例并结合附图对本发明做进一步说明,但不限于此。
实施例1:
如图1-3所示,本实施例提供一种基于区块链的自主跨域访问控制方法,包括以下步骤:
步骤1、区块链网络构建
1)在半中心化的联盟链或者中心化的私有链环境下,使用一个或多个全节点维护整个区块链网络,通过共识协议决定区块链上区块的产生;
2)由多个终端组成一个访问控制域,该访问控制域中设置一个管理员节点管理该访问控制域中终端的访问控制策略;当该访问控制域中有物联网终端需要管理,则该访问控制域中还需要设置一个或多个区块链网关为域中的物联网设备提供区块链网络服务;
其中,全节点、管理员节点以及区块链网关皆为逻辑上的网络节点,实际部署时,一个服务器可以同时扮演多个节点。此设计的好处是,逻辑上的网络节点可由一个服务器实体承担其角色,无需布置过多服务器,节省网络架设的设备成本。
区块链网络架构示意图如图1所示;
步骤2、自主跨域访问控制过程
自主跨域访问控制过程,包括访问控制策略管理过程、访问控制认证过程以及全节点验证过程;
2A)访问控制策略管理过程
采用基于角色的跨域访问控制模型描述访问控制策略,管理员节点AN通过提交交易管理访问控制域内设备(如存储服务器,管理服务器等设备)的访问控制策略;
首先,管理员节点AN将交易提交到全节点,由全节点通过全节点验证过程验证交易;然后,全节点将多个验证过的交易打包成一个区块,并通过共识协议与其他全节点一同判断该区块是否合法;最后,将合法的区块加入到区块链上;
管理员节点AN提交的交易包含如下信息:
域注册交易TX_DR,注册访问控制域Di;
用户绑定交易TX_SA,将AN所管理的访问控制域中的终端用户与角色进行绑定;
权限绑定交易TX_OA,将设定的角色与访问控制权限绑定;
角色绑定交易TX_CA,将其他访问控制域Dj的角色与本域的角色进行绑定;
移除管理交易TX_RM,移除TX_SA、TX_OA或TX_CA设定的绑定关系。
其中,域注册交易TX_DR没有输入,只产生一个输出,且输出必须是一个域管理员提交的第一个交易;
用户绑定交易TX_SA、权限绑定交易TX_OA以及角色绑定交易TX_CA都只有一个输入和至少两个输出,且唯一的一个输入指向的是管理员上一次提交的交易的一个固定的输出,因此这些交易产生的输出中也必须有一个固定的输出为了下一次的交易引用,而其他的输出则执行交易对应的操作;
移除管理交易TX_RM至少有两个输入以及一个输出,其中的一个输入固定引用上一个交易的一个输出,其他的输入则引用那些需要被移除的输出。
其中,只有用户绑定交易TX_SA拥有使用脚本,管理员通过将每一条访问控制策略放入交易的每一个输出中来向区块链上存储规则,所有交易的所有输出都会被跟踪,直到输出被一个交易的输入引用并且使用解锁脚本解锁了它的锁定脚本;
当判断一个用户是否有访问控制权限时,只需要在所有未使用的交易输出UTXO中找到对应的用户绑定交易的输出,获得该用户的角色,然后再找到对应的权限绑定交易TX_OA的输出,获得该角色的权限,就得到了该用户所拥有的权限;使用移除管理交易TX_RM会引用需要移除的规则所对应的交易输出,使用解锁脚本解锁输出的锁定脚本,从而使得这些输出不再是UTXO,不能再被使用。
2B)访问控制认证过程
用户首先通过用户注册交易TX_UR来注册用户信息,然后通过访问申请交易TX_AA来获取对某个访问控制域中某个终端资源的访问控制权限;用户的交易(主要指访问申请交易TX_AA)将提交给全节点,如果交易验证成功并存储到了区块链当中,那么用户就可以获得它所申请的资源的访问令牌T,用户就可以通过访问令牌T来访问终端资源;
用户注册交易TX_UR必须是该用户提交的第一笔交易,该笔交易会产生一个输出,用户的第二笔交易将会引用该输出;访问申请交易TX_AA包含至少两个输入和两个输出,其中一对输入和输出用于引用上一笔交易以及给下一笔交易使用;另外一对或多对输入输出则用于申请访问权限,输入引用用户绑定交易TX_SA的输出,并使用解锁脚本来解锁输出中的使用脚本,输出会被全节点的基交易引用。此设计的好处是,用户可能会在不同的时刻多次申请访问权限,但是如果解锁了锁定脚本,该输出就无法再被使用,因此用户只解锁使用脚本。
被访问的终端检查用户的访问令牌T,搜索区块链上的UTXO中是否包含了对应的基交易的输出,如果存在该输出,且访问令牌T合法,则允许用户访问,反之拒绝用户的访问申请。
2C)全节点验证过程
全节点通过区块链上的记录判断交易是否有效;对于TX_AA,如果全节点判断用户提交的TX_AA为有效,那么全节点就会生成一个基交易TX_BASE,用于发放用户申请资源的令牌;当交易被打包成区块后,所有的全节点将会根据共识协议判断区块的有效性,并决定区块是否上链。
全节点通过跟踪的UTXO判断每一个交易的输入输出和交易体(交易的整个数据结构)的合法性,通过的交易将会打包进区块,同时生成一个基交易,该基交易引用这一时刻所有合法的访问申请交易的输出,并根据输出信息生成用户访问令牌T,包含在基交易的输出中打包到区块中,打包好的区块广播至区块链网络中的其他全节点,通过共识算法决定区块是否上链。
其中,区块的数据结构包括:
A1区块大小:此区块的大小;
A2区块头信息,包括:
A21区块版本,为日后扩展升级准备;
A22前一区块哈希值:该区块的父区块的哈希值;
A23默克尔哈希树根:所有交易生成的默克尔哈希树的根节点的值;
A24时间戳:区块打包的时间;
A25此区块数字签名:使用管理员私钥对该区块进行数字签名;
A26管理员公钥:与管理员私钥对应的公钥;
A3交易数量:该区块打包的交易的总数量;
A4交易列表:所有交易的列表。
其中,各种交易的数据结构包括:
B1交易哈希值:该交易的哈希值;
B2交易类型:指示该交易的种类:0x00为基交易,0x01为管理员交易,0x02为用户交易;
B3交易的输入数量:交易有多少个输入;
B4交易的输入信息,包括:
B41前一个交易的哈希值:该交易输入引用的前一个交易的哈希值;
B42序列号:指示该输入为前一个交易的第几个输出;
B43解锁脚本:一段脚本,类似于比特币脚本,用于解锁指向的交易的输出中的锁定脚本;
B5交易的输出数量:交易有多少个输出;
B6交易的输出信息,包括:
B61操作语句:一段包含操作码的操作语句,所有节点通过该操作语句完成它们需要的操作;
B62锁定脚本:一段脚本,类似于比特币脚本,使得只有特定的用户才能使用解锁脚本解锁该脚本,从而使得对该输出的引用为合法;
B63使用脚本:(只有部分种类的交易包含该域)一段类似于锁定脚本的脚本,不同之处在于,当锁定脚本被解锁后,交易的输出就不能再被引用。但是不解锁锁定脚本,仅解锁使用脚本时,交易的输出仍然可以继续被引用。
B7时间戳:交易生成的时间。
实施例2:
如实施例1所述的一种基于区块链的自主跨域访问控制方法,其中步骤2A)访问控制策略管理过程,如图2左半部分所示,从初始化访问控制域开始,管理员执行如下步骤:
STEP 1.创建TX_DR,生成一个访问控制域,并获得该访问控制域的唯一地址;
STEP 2.访问控制域中所有的终端都需要自行提交TX_UR在区块链网络中进行注册;
STEP 3.管理员创建TX_SA:
STEP a交易类型设为0x01;
STEP b交易的输入数量设为1;
STEP c交易的输入信息引用TX_DR,即B41设为TX_DR的交易哈希值,B42设为1,根据管理员私钥生成解锁脚本填充B43;
STEP d设置交易的输出数量,与交易的输出个数相对应,即本次交易提交多少个用户与角色的对应关系,还要添加一个输出用于下一次管理员交易引用。值得注意的是,一个用户可能拥有多个角色;
STEP e在交易的每一个输出的B61操作语句中分别写入规则,根据管理员的公钥信息生成锁定脚本并填充B62,根据用户的公钥信息生成使用脚本填充B63。还需要生成一个输出用于下一次管理员交易引用;
STEP f生成时间戳;
STEP g生成交易的哈希值。
STEP 4.广播TX_SA至区块链网络;
STEP 5.生成TX_OA,与生成TX_SA类似,但是交易输出中没有使用脚本的设置;
STEP 6.生成TX_CA,与生成TX_SA类似,同样没有使用脚本的设置;
STEP 7.如需删除以前设置的规则:
STEP a获得需要删除的规则对应的交易的输出;
STEP b生成TX_RM,与生成TX_SA类似,但是输入中需要引用上一步中获得的所有的交易输出,同时该交易只生成一个输出用于下一次交易引用;
STEP 8.管理员根据需求使用交易管理访问控制规则。
实施例3:
如实施例1所述的一种基于区块链的自主跨域访问控制方法,其中步骤2B)访问控制认证过程,如图2右半部分所示,终端用户从注册用户开始到访问资源过程如下步骤所示:
STEP 1.创建TX_UR,生成一个新用户,并获得用户唯一地址;
STEP 2.用户创建TX_AA:
STEP a交易类型设为0x02;
STEP b设置交易的输入数量,用户需要访问哪些资源,就需要获得对应的,设置了用户角色的交易输出;
STEP c其中一个交易的输入信息引用TX_UR,即B41设为TX_UR的交易哈希值,B42设为1,根据用户私钥生成解锁脚本填充B43。其他的输入信息相似,引用设置了用户角色的TX_SA的对应输出;
STEP d设置交易的输出数量,与交易的输出个数相对应,即用户申请访问的不同资源的个数;
STEP e在交易的每一个输出的B61操作语句中分别写入用户终端的信息,用以与访问的资源快速建立连接,根据用户的公钥信息生成锁定脚本并填充B62。还需要生成一个输出用于下一次用户交易引用;
STEP f生成时间戳;
STEP g生成交易的哈希值。
STEP 3.广播TX_AA至区块链网络;
STEP 4.若TX_AA成功上链,则用户可以在新区块中获得全节点发布的基交易,并从中找到访问资源的令牌T;
STEP 5.用户终端向目标终端发起连接,并发送令牌T;
STEP 6.目标终端验证区块链基交易中是否包含该令牌T,然后验证令牌T的有效性,通过验证则使用令牌T中的相关信息与用户终端建立连接,并提供允许用户终端访问它所需的资源;
STEP 7.用户终端从目标终端获取所需的资源。
实施例4:
如实施例1所述的一种基于区块链的自主跨域访问控制方法,其中步骤2C)全节点验证过程如下:
STEP 1.所有全节点在运行时缓存接收到的交易;
STEP 2.收到交易后全节点验证交易有效性,运行时验证过程如图3所示:
STEP a判断交易的输入引用的输出是否可用;
STEP b使用交易的输入中的解锁脚本解锁引用的输出中的锁定脚本;
STEP c如果解锁成功,那么就在UTXO缓存中删除引用的输出,该交易被标记为验证成功,并缓存起来;
STEP d如果解锁失败,判断交易引用的输出是否有使用脚本,如果没有则标记该交易验证失败,并缓存起来;
STEP e如果有使用脚本,就使用交易的输入中的解锁脚本解锁引用的输出中的使用脚本;
STEP f如果解锁成功,该交易被标记为验证成功,并缓存起来;
STEP g如果解锁失败,则标记该交易验证失败,并缓存起来;
STEP 3.等到需要同步区块时,所有全节点开始共识协议,不同的共识协议细节不同;打包区块的节点将缓存打包成进区块数据结构,并广播到区块链网络中,其他节点验证区块中的交易信息与本地缓存的交易信息是否相符,最后通过共识协议所有全节点决定该区块是否上链;
STEP 4.如果区块上链失败,则重新生成区块并进行共识协议。
Claims (10)
1.一种基于区块链的自主跨域访问控制方法,其特征在于,包括以下步骤:
步骤1、区块链网络构建
1)在半中心化的联盟链或者中心化的私有链环境下,使用一个或多个全节点维护整个区块链网络,通过共识协议决定区块链上区块的产生;
2)由多个终端组成一个访问控制域,该访问控制域中设置一个管理员节点管理该访问控制域中终端的访问控制策略;当该访问控制域中有物联网终端需要管理,则该访问控制域中还需要设置一个或多个区块链网关为域中的物联网设备提供区块链网络服务;
步骤2、自主跨域访问控制过程
自主跨域访问控制过程,包括访问控制策略管理过程、访问控制认证过程以及全节点验证过程;
2A)访问控制策略管理过程
采用基于角色的跨域访问控制模型描述访问控制策略,管理员节点AN通过提交交易管理访问控制域内设备的访问控制策略;
首先,管理员节点AN将交易提交到全节点,由全节点通过全节点验证过程验证交易;然后,全节点将多个验证过的交易打包成一个区块,并通过共识协议与其他全节点一同判断该区块是否合法;最后,将合法的区块加入到区块链上;
2B)访问控制认证过程
用户首先通过用户注册交易TX_UR来注册用户信息,然后通过访问申请交易TX_AA来获取对某个访问控制域中某个终端资源的访问控制权限;用户的交易将提交给全节点,如果交易验证成功并存储到了区块链当中,那么用户就可以获得它所申请的资源的访问令牌T,用户就可以通过访问令牌T来访问终端资源;
2C)全节点验证过程
全节点通过区块链上的记录判断交易是否有效;对于TX_AA,如果全节点判断用户提交的TX_AA为有效,那么全节点就会生成一个基交易TX_BASE,用于发放用户申请资源的令牌;当交易被打包成区块后,所有的全节点将会根据共识协议判断区块的有效性,并决定区块是否上链。
2.如权利要求1所述的自主跨域访问控制方法,其特征在于,步骤1中,全节点、管理员节点以及区块链网关皆为逻辑上的网络节点,实际部署时,一个服务器可以同时扮演多个节点。
3.如权利要求1所述的自主跨域访问控制方法,其特征在于,所述区块的数据结构包括:
A1 区块大小:此区块的大小;
A2 区块头信息,包括:
A21 区块版本,为日后扩展升级准备;
A22 前一区块哈希值:该区块的父区块的哈希值;
A23 默克尔哈希树根:所有交易生成的默克尔哈希树的根节点的值;
A24 时间戳:区块打包的时间;
A25 此区块数字签名:使用管理员私钥对该区块进行数字签名;
A26 管理员公钥:与管理员私钥对应的公钥;
A3 交易数量:该区块打包的交易的总数量;
A4 交易列表:所有交易的列表。
4.如权利要求1所述的自主跨域访问控制方法,其特征在于,步骤2中,各种交易的数据结构包括:
B1 交易哈希值:该交易的哈希值;
B2 交易类型:指示该交易的种类:0x00为基交易,0x01为管理员交易,0x02为用户交易;
B3 交易的输入数量:交易有多少个输入;
B4 交易的输入信息,包括:
B41 前一个交易的哈希值:该交易输入引用的前一个交易的哈希值;
B42 序列号:指示该输入为前一个交易的第几个输出;
B43 解锁脚本:用于解锁指向的交易的输出中的锁定脚本;
B5 交易的输出数量:交易有多少个输出;
B6 交易的输出信息,包括:
B61 操作语句:一段包含操作码的操作语句,所有节点通过该操作语句完成它们需要的操作;
B62 锁定脚本:使得只有特定的用户才能使用解锁脚本解锁该脚本,从而使得对该输出的引用为合法;
B63 使用脚本:当锁定脚本被解锁后,交易的输出就不能再被引用,但是不解锁锁定脚本,仅解锁使用脚本时,交易的输出仍然可以继续被引用;
B7 时间戳:交易生成的时间。
5.如权利要求4所述的自主跨域访问控制方法,其特征在于,步骤2A)中,管理员节点AN提交的交易包含如下信息:
域注册交易TX_DR,注册访问控制域Di;
用户绑定交易TX_SA,将AN所管理的访问控制域中的终端用户与角色进行绑定;
权限绑定交易TX_OA,将设定的角色与访问控制权限绑定;
角色绑定交易TX_CA,将其他访问控制域Dj的角色与本域的角色进行绑定;
移除管理交易TX_RM,移除TX_SA、TX_OA或TX_CA设定的绑定关系。
6.如权利要求5所述的自主跨域访问控制方法,其特征在于,域注册交易TX_DR没有输入,只产生一个输出,且输出必须是一个域管理员提交的第一个交易;
用户绑定交易TX_SA、权限绑定交易TX_OA以及角色绑定交易TX_CA都只有一个输入和至少两个输出,且唯一的一个输入指向的是管理员上一次提交的交易的一个固定的输出,因此这些交易产生的输出中也必须有一个固定的输出为了下一次的交易引用,而其他的输出则执行交易对应的操作;
移除管理交易TX_RM至少有两个输入以及一个输出,其中的一个输入固定引用上一个交易的一个输出,其他的输入则引用那些需要被移除的输出。
7.如权利要求5所述的自主跨域访问控制方法,其特征在于,只有用户绑定交易TX_SA拥有使用脚本,管理员通过将每一条访问控制策略放入交易的每一个输出中来向区块链上存储规则,所有交易的所有输出都会被跟踪,直到输出被一个交易的输入引用并且使用解锁脚本解锁了它的锁定脚本;
当判断一个用户是否有访问控制权限时,只需要在所有未使用的交易输出UTXO中找到对应的用户绑定交易的输出,获得该用户的角色,然后再找到对应的权限绑定交易TX_OA的输出,获得该角色的权限,就得到了该用户所拥有的权限;使用移除管理交易TX_RM会引用需要移除的规则所对应的交易输出,使用解锁脚本解锁输出的锁定脚本,从而使得这些输出不再是UTXO,不能再被使用。
8.如权利要求5所述的自主跨域访问控制方法,其特征在于,步骤2B)中,用户注册交易TX_UR必须是该用户提交的第一笔交易,该笔交易会产生一个输出,用户的第二笔交易将会引用该输出;访问申请交易TX_AA包含至少两个输入和两个输出,其中一对输入和输出用于引用上一笔交易以及给下一笔交易使用;另外一对或多对输入输出则用于申请访问权限,输入引用用户绑定交易TX_SA的输出,并使用解锁脚本来解锁输出中的使用脚本,输出会被全节点的基交易引用。
9.如权利要求7所述的自主跨域访问控制方法,其特征在于,步骤2B)中,被访问的终端检查用户的访问令牌T,搜索区块链上的UTXO中是否包含了对应的基交易的输出,如果存在该输出,且访问令牌T合法,则允许用户访问,反之拒绝用户的访问申请。
10.如权利要求7所述的自主跨域访问控制方法,其特征在于,步骤2C)中,全节点通过跟踪的UTXO判断每一个交易的输入输出和交易体的合法性,通过的交易将会打包进区块,同时生成一个基交易,该基交易引用这一时刻所有合法的访问申请交易的输出,并根据输出信息生成用户访问令牌T,包含在基交易的输出中打包到区块中,打包好的区块广播至区块链网络中的其他全节点,通过共识算法决定区块是否上链。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010547945.0A CN111683101B (zh) | 2020-06-16 | 2020-06-16 | 一种基于区块链的自主跨域访问控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010547945.0A CN111683101B (zh) | 2020-06-16 | 2020-06-16 | 一种基于区块链的自主跨域访问控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111683101A CN111683101A (zh) | 2020-09-18 |
CN111683101B true CN111683101B (zh) | 2021-01-22 |
Family
ID=72455135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010547945.0A Active CN111683101B (zh) | 2020-06-16 | 2020-06-16 | 一种基于区块链的自主跨域访问控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111683101B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112351019B (zh) * | 2020-10-29 | 2021-08-13 | 北京邮电大学 | 一种身份认证系统及方法 |
CN112487443A (zh) * | 2020-11-11 | 2021-03-12 | 昆明理工大学 | 一种基于区块链的能源数据细粒度访问控制方法 |
CN112702315B (zh) * | 2020-12-07 | 2023-06-06 | 深圳供电局有限公司 | 跨域设备访问控制方法、装置、计算机设备和存储介质 |
CN112637211B (zh) * | 2020-12-24 | 2022-09-20 | 国网河北省电力有限公司信息通信分公司 | 一种基于区块链的跨域访问的认证方法及系统 |
CN113094753B (zh) * | 2021-05-08 | 2023-02-24 | 重庆银行股份有限公司 | 基于区块链的大数据平台hive数据修改方法以及系统 |
CN113542117B (zh) * | 2021-07-09 | 2022-06-10 | 重庆邮电大学 | 一种基于分层区块链的物联网设备资源访问控制方法 |
US11695573B2 (en) | 2021-07-23 | 2023-07-04 | International Business Machines Corporation | Blockchain controlled cross-domain data transfer |
CN113938477B (zh) * | 2021-09-07 | 2022-10-21 | 西安电子科技大学 | 一种基于区块链的跨域图片传播访问控制方法及系统 |
CN116776362A (zh) * | 2021-12-29 | 2023-09-19 | 西安链科信息技术有限公司 | 一种物联网资源访问系统、方法、介质、设备及终端 |
CN114938278B (zh) * | 2022-04-11 | 2023-10-31 | 北京邮电大学 | 一种零信任访问控制方法及装置 |
CN115396229B (zh) * | 2022-09-01 | 2024-02-20 | 西安电子科技大学 | 一种基于区块链的跨域资源隔离共享系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107995197A (zh) * | 2017-12-04 | 2018-05-04 | 中国电子科技集团公司第三十研究所 | 一种实现跨管理域身份和权限信息共享的方法 |
CN108270780A (zh) * | 2018-01-08 | 2018-07-10 | 中国电子科技集团公司第三十研究所 | 一种异构网络环境多中心数字身份管理方法 |
CN108737370A (zh) * | 2018-04-05 | 2018-11-02 | 西安电子科技大学 | 一种基于区块链的物联网跨域认证系统及方法 |
CN110061851A (zh) * | 2019-04-28 | 2019-07-26 | 广州大学 | 一种去中心化的跨信任域认证方法及系统 |
CN110287726A (zh) * | 2019-06-13 | 2019-09-27 | 上海交通大学 | 一种基于区块链的多域身份认证管理系统及方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018119930A1 (zh) * | 2016-12-29 | 2018-07-05 | 深圳前海达闼云端智能科技有限公司 | 交易验证处理方法、装置及节点设备 |
US20180247191A1 (en) * | 2017-02-03 | 2018-08-30 | Milestone Entertainment Llc | Architectures, systems and methods for program defined entertainment state system, decentralized cryptocurrency system and system with segregated secure functions and public functions |
WO2019005098A1 (en) * | 2017-06-30 | 2019-01-03 | Go Logic Decision Time, Llc | METHODS AND SYSTEMS FOR PROJECTIVE ASSERTION SIMULATION |
US10783272B2 (en) * | 2017-12-08 | 2020-09-22 | Nec Corporation | Method and system of preserving privacy for usage of lightweight blockchain clients |
CN108810073B (zh) * | 2018-04-05 | 2021-05-04 | 西安电子科技大学 | 一种基于区块链的物联网多域访问控制系统及方法 |
US11327735B2 (en) * | 2018-10-16 | 2022-05-10 | Intel Corporation | Attestation manifest derivation and distribution using software update image |
CN109743172B (zh) * | 2018-12-06 | 2021-10-15 | 国网山东省电力公司电力科学研究院 | 基于联盟区块链v2g网络跨域认证方法、信息数据处理终端 |
CN109981689B (zh) * | 2019-04-29 | 2020-05-12 | 清华大学 | 物联网场景下跨域逻辑强隔离与安全访问控制方法及装置 |
CN110910110B (zh) * | 2019-12-04 | 2024-05-28 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及计算机存储介质 |
-
2020
- 2020-06-16 CN CN202010547945.0A patent/CN111683101B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107995197A (zh) * | 2017-12-04 | 2018-05-04 | 中国电子科技集团公司第三十研究所 | 一种实现跨管理域身份和权限信息共享的方法 |
CN108270780A (zh) * | 2018-01-08 | 2018-07-10 | 中国电子科技集团公司第三十研究所 | 一种异构网络环境多中心数字身份管理方法 |
CN108737370A (zh) * | 2018-04-05 | 2018-11-02 | 西安电子科技大学 | 一种基于区块链的物联网跨域认证系统及方法 |
CN110061851A (zh) * | 2019-04-28 | 2019-07-26 | 广州大学 | 一种去中心化的跨信任域认证方法及系统 |
CN110287726A (zh) * | 2019-06-13 | 2019-09-27 | 上海交通大学 | 一种基于区块链的多域身份认证管理系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111683101A (zh) | 2020-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111683101B (zh) | 一种基于区块链的自主跨域访问控制方法 | |
CN110032865B (zh) | 一种权限管理方法、装置和存储介质 | |
Alphand et al. | IoTChain: A blockchain security architecture for the Internet of Things | |
CN110419193B (zh) | 用于安全智能家居环境的基于ksi的认证和通信方法及其系统 | |
JP5099139B2 (ja) | 公開鍵証明書状態の取得および確認方法 | |
US7600123B2 (en) | Certificate registration after issuance for secure communication | |
CN109327481B (zh) | 一种基于区块链的全网统一在线认证方法及系统 | |
CN112580102A (zh) | 基于区块链的多维度数字身份鉴别系统 | |
CN101068245B (zh) | 共享文件的发布、下载方法及文件共享可控系统 | |
Riabi et al. | A survey on Blockchain based access control for Internet of Things | |
CN112822675B (zh) | 面向MEC环境的基于OAuth2.0的单点登录机制 | |
Won et al. | Decentralized public key infrastructure for internet-of-things | |
CN113507458B (zh) | 一种基于区块链的跨域身份认证方法 | |
Wang et al. | DAG blockchain-based lightweight authentication and authorization scheme for IoT devices | |
CN113824563B (zh) | 一种基于区块链证书的跨域身份认证方法 | |
CN113343213A (zh) | 一种分散自主网络中基于区块链的多ca跨域认证方法 | |
Wei et al. | BAVP: blockchain-based access verification protocol in LEO constellation using IBE keys | |
Grover et al. | Cryptanalysis and improvement of a three-factor user authentication scheme for smart grid environment | |
Sadrishojaei et al. | Development of an Enhanced Blockchain Mechanism for Internet of Things Authentication | |
Yan et al. | Storage optimization for certificates in blockchain based PKI system | |
Ahmed et al. | Transparency of SIM profiles for the consumer remote SIM provisioning protocol | |
Sharma et al. | A survey of methods guaranteeing user privacy based on blockchain in internet-of-things | |
Kumar Arora et al. | Blockchain‐inspired lightweight trust‐based system in vehicular networks | |
Yan et al. | Distributed authentication scheme for industry internet platform application based on consortium blockchain | |
Popescu et al. | A security architecture for object-based distributed systems |
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 |