首页 / 专利库 / 银行与财务事项 / 区块链处理实体 / 一种基于区块链技术的访问控制方法及系统

一种基于链技术的访问控制方法及系统

阅读:73发布:2020-08-08

专利汇可以提供一种基于链技术的访问控制方法及系统专利检索,专利查询,专利分析的服务。并且一种基于 区 块 链 技术的 访问 控制方法及系统,该方法将区块链技术与属性基访问控制相结合,包括:客体属性入链,以策略为依据,将属性和策略的判定过程绑定在所有区块链 节点 上。将访问授权从集中式转变为分布式,借助区块链的共识机制以实现对判定结果在全网的一致性检验,并且在区块链上永久地记录下访问记录交易的授权操作。该方法具有抗单点失效、授权方式灵活、访问边界精确、记录可审计特点。本 发明 适用于企业、政府等具有数据隐私保护需求且基于区块链平台实现多分支机构协同工作的运行环境,可做到动态可扩展地管理系统内用户的访问权限,并围绕策略和属性实现细颗粒度的权限管理,对保护分布式网络环境下的信息系统安全具有重要现实意义。,下面是一种基于链技术的访问控制方法及系统专利的具体信息内容。

1.一种基于链技术的访问控制方法,其特征在于,所述方法通过用户将访问请求发送至联盟节点模块UNM,由策略执行单元PEU接收并进行处理,并将访问请求重新组织其数据结构形成访问记录交易atx,发送至策略判定单元PDU,数据存储单元DSU调用链操作单元COU的读read方法查询访问记录交易atx是否存在于区块链模块BCM中,以获取其访问请求的判定结果;若链操作单元COU返回访问记录交易atx,则表明判定成功,策略执行单元PEU要求数据存储单元DSU执行访问请求中的操作;否则,策略执行单元PEU丢弃该访问请求。
2.根据权利要求1所述的访问控制方法,其特征在于,所述方法的具体步骤为:
步骤1)用户将访问请求发送至联盟节点模块UNM,所述联盟节点模块UNM中的策略执行单元PEU提取访问请求中的实体,并将访问请求中的实体组织成访问记录交易atx发送至策略判定单元PDU中;
步骤2)查询实体属性:策略判定单元PDU接收并处理访问记录交易atx,提取访问记录交易atx中的实体,分别向属性获取模块AGM和链操作单元COU获取实体的属性集合,并将获取得到实体的属性集合发送给策略判定单元PDU;
步骤3)策略匹配:所述策略判定单元PDU将接收到的所述实体的属性集合发送给策略管理模块PAM请求适用的策略,所述策略管理模块PAM根据得到的实体的属性集合与策略数据库中存储的访问策略进行检索和匹配,策略管理模块PAM将检索和匹配结果返回给策略判定单元PDU;
步骤4)计算判定结果:所述策略判定单元PDU根据收集的实体属性集合和策略集合的匹配结果,计算判定结果,并动态地调用属性获取模块AGM的getenv方法获取当前环境条件,如果通过判定,则将访问记录交易atx发送给链操作单元COU并调用其写write方法;如果判定不通过,则丢弃访问记录交易atx;
步骤5)执行请求操作:策略执行单元PEU向数据存储单元DSU请求访问资源,数据存储单元DSU调用链操作单元COU的读read方法查询区块链模块BCM中是否存在该访问记录交易atx;如果存在,则响应该请求并将执行结果返回;如果不存在,则丢弃该访问请求。
3.根据权利要求2所述的访问控制方法,其特征在于,所述访问控制方法还包括以下步骤:资源发布步骤:
1)资源数据存取:数据存储单元DSU接收拥有者发送的资源描述和内容,将资源存储到对象数据库中;
2)客体属性入链:数据存储单元DSU根据拥有者提交的描述和资源提取客体属性,发送至联盟节点模块UNM中;
3)策略发布:策略管理模块PAM接收拥有者为上传资源制定的策略文件,并存储至策略数据库中。
4.根据权利要求2所述的访问控制方法,其特征在于,所述步骤3中的策略由多个规则的任意布尔代数组合形成,每个所述规则由多个谓词的任意布尔代数组合形成。
5.根据权利要求2所述的访问控制方法,其特征在于,所述的实体组织成访问记录交易atx具体步骤为:对用户u利用身份认证技术验证其身份的合法性并获得用户的身份标识sid,将资源r转换成统一资源标识符uri,操作o转换成动作标识act,添加系统设置默认的有效期exp,最后附带上节点k的公钥PKnk,封装成交易格式如下:
atx={sid,uri,act,exp,PKnk,sig},
请求者向区块链中的节点k发起访问请求,因此由节点k完成对实体的转换和交易数据格式的封装,对交易签名并将交易数据扩散至网络中等待被记录入块,节点k签名计算如下:
sig=Sign(SKnk,sid||uri||act||exp||PKnk)。
6.一种根据权利要求1-5任一项所述的访问控制方法的访问控制系统,其特征在于,所述系统包括:联盟节点模块UNM、区块链模块BCM、略管理模块PAM和属性获取模块AGM;
其中,所述区块链模块BCM:用于链式数据结构存储交易,每一个交易表示系统事件的触发,每一个区块记录一段时间内发生的系统事件;
所述联盟节点模块UNM,用于维护区块链模块BCM中的所有系统成员,且系统成员之间关系是对等的,即节点集合;
所述策略管理模块PAM:用于实现策略的管理,接受拥有者制定的策略用于发布,且提供对访问请求所涉及属性相匹配的策略集合;
所述属性获取模块AGM:用于向联盟节点模块UNM中的策略判定单元PDU提供与访问请求相关的属性集合。
7.根据权利要求6所述的访问控制系统,其特征在于,所述联盟节点模块UNM包括链操作单元COU、策略执行单元PEU、策略判定单元PDU和数据存储单元DSU;
其中,所述链操作单元COU:直接连接至区块链模块BCM,提供写write方法用于区块的生成,以及读read方法用于区块和交易数据的查询;
所述策略执行单元PEU:用于根据策略的判定结果执行主体对客体所请求操作,与主体有直接的交互,处理和响应请求;
所述策略判定单元PDU:用于根据收集的策略和属性对主体的访问请求计算判定结果;
所述数据存储单元DSU:用于提供客体存取服务的模块,部署在区块链节点上,连接对象数据库持久化客体的数据,并将客体的相关属性发布至区块链中。
8.根据权利要求6所述的访问控制系统,其特征在于,所述数据存储单元DSU布置在至少一个节点上。

说明书全文

一种基于链技术的访问控制方法及系统

技术领域

[0001] 本发明涉及一种基于区块链构建的安全访问方法。将已有的基于属性的访问控制架构结合区块链平台既有的特点形成在区块链上的访问控制方法及系统的基于区块链技术的访问控制方法及系统。

背景技术

[0002] 区块链技术因其去中心化、不可篡改、数据公开透明等特征引起了人们的广泛关注,并运用在各个领域试图解决因信任缺失而造成的难以估计的损失,其第一个应用比特币在多年的试验和稳定运行中表明了该技术的潜和可行性。区块链本质上是一种分布式记账系统,由网络中的多个节点采用对等技术共同运行维护,且每个节点持有该账本的一个备份。在区块链中,利用一系列数据结构形成的最小单元被称为交易(Transaction),表示一次系统事件的触发,将一段时间内通过校验的交易打包形成区块(Block),表示这段时间内的交易被确认。区块链技术利用哈希函数的抗碰撞性,在区块的数据结构中设置哈希指针,将一系列区块按照时间顺序串联构成链式结构,并在所有节点上运行一致性算法共识产生新的区块,确保链的单向不分叉。
[0003] 然而,随着区块链技术的发展和应用,节点之间关系对等使得系统内容用户的访问权限基本无差别,这种完全开放的记账系统难以满足有复杂需求的应用场景,并按照用户的意愿有效地保护其数据隐私。
[0004] 现有的解决方案将区块链看成类似于存储的分布式系统或集群,通过引入传统的访问控制方法进行访问权限的管理,设立授权中心过滤用户的访问请求,只有被授权的用户才能获得结果,以此实现对用户隐私数据的保护。这种传统的访问控制方法应用于区块链带来的问题包括:1)可靠性降低:由于另外设置的授权中心,要求用户通过统一的接口访问,使得分布式结构又转变为集中式结构,授权中心的单点失效将会导致授权机制不可用,降低了系统的可靠性。
[0005] 2)多样化不足:区块链的开放性使得用户规模和身份的不确定性增加,传统的访问控制无法定义足够的方法以满足所有可能出现的情况。
[0006] 3)缺乏扩展性:授权中心预定义对用户的授权管理,规定了用户可以访问哪些区块链上的数据,而区块链中动态变化的用户将使得该方法缺乏扩展性,难以适应系统内用户的动态变化。
[0007] 4)管理开销大:区块链中的用户规模大,且用户可动态地的加入和离开,需要授权中心频繁地为不同用户建立权限映射,增加了管理开销。

发明内容

[0008] 为解决上述提到的问题,充分发挥区块链分布式带来的优势,在数据隐私保护和用户权限管理方面实现访问控制的动态可扩展,本发明引入属性的概念,结合属性基访问控制架构,提出一种新的基于区块链的访问控制系统。
[0009] 本发明提供一种基于区块链的访问控制方法及系统,用于动态地管理用户的访问授权,解决区块链中用户权限的平等无差别问题,从而满足更多复杂条件下的实际需求。
[0010] 本发明的技术方案是:一种基于区块链技术的访问控制方法,所述方法所涉及的功能模块包括:1)区块链模块BCM:用链式数据结构存储交易,每一个交易表示系统事件的触发,每一个区块记录一段时间内发生的系统事件。
[0011] 2)联盟节点模块UNM:维护区块链模块BCM的所有系统成员,成员之间关系是对等的,可以是计算机节点,也可以是计算机上某个运行的程序,相互连接形成对等网络,执行一致性算法产生相同的区块写入公开账本中。
[0012] 3)策略管理模块PAM:实现策略的管理,接受拥有者制定的策略用于发布,且提供对访问请求所涉及属性相匹配的策略集合。
[0013] 4)属性获取模块AGM:向联盟节点模块UNM中的策略判定单元PDU提供与访问请求相关的属性集合。
[0014] 所述的基于区块链的访问控制方法的区块链模块BCM包含两种交易类型,分别是:1)访问记录交易atx:记录由用户发起的访问请求,提取出主体、客体和动作三类实体构成该交易的内容。
[0015] 2)客体属性交易otx:记录由拥有者发布的资源的客体属性,提取用于描述资源的属性集合构成该交易的内容。
[0016] 所述的基于区块链的访问控制方法的联盟节点模块UNM,包括:1)链操作单元COU:直接连接至区块链模块BCM,提供写write方法用于区块的生成,以及读read方法用于区块和交易数据的查询。
[0017] 2)策略执行单元PEU:向用户提供的访问接口,响应用户的访问请求。
[0018] 3)策略判定单元PDU:针对访问记录交易atx,收集策略和属性,计算并公布判定结果。
[0019] 4)数据存储单元DSU:部署在部分联盟节点模块UNM上实现资源的存取和索引发布,所以该单元不是每个区块链节点必须具备的。
[0020] 所述的联盟节点模块UNM中的策略执行单元PEU,执行的操作包括:1)接收访问请求:用户将访问请求发送至联盟节点模块UNM,由策略执行单元PEU接收并进行处理。
[0021] 2)发布访问记录:提取访问请求中的实体,重新组织其数据结构形成访问记录交易atx,发送至联盟节点模块UNM中。
[0022] 3)获取判定结果:调用链操作单元COU的读read方法查询访问记录交易atx是否存在于区块链模块BCM中,以获取其访问请求的判定结果。
[0023] 4)执行请求操作:若链操作单元COU返回了访问记录交易atx,则表明判定成功,策略执行单元PEU要求数据存储单元DSU执行访问请求中的操作;否则,策略执行单元PEU丢弃该访问请求,处理下一个。
[0024] 所述的联盟节点模块UNM中的策略判定单元PDU,判定流程包括:1)接收访问记录:策略执行单元PEU将访问记录交易atx发送至联盟节点模块UNM,由策略判定单元PDU接收并处理。
[0025] 2)查询实体属性:提取访问记录交易atx中的主体、客体和动作标识,调用属性获取模块AGM的获取主体属性getsub方法,得到用户的主体属性集合;调用链操作单元COU的读read方法查询该资源相关的所有客体属性交易otx,按照时间顺序计算出该资源当前的客体属性集合;动作属性直则直接由动作标识转换得到。
[0026] 3)属性匹配策略:将上一步中的属性集合合并,发送至策略管理模块PAM,调用匹配策略matched方法得到适用于当前访问请求的策略集合。
[0027] 4)获取环境条件:策略集合中遗漏的环境条件,在进行计算判定时通过调用属性获取模块AGM的获取环境条件getenv方法获得。
[0028] 5)计算判定结果:根据以上策略和属性,计算该访问请求的判定结果。若判定通过,将访问记录交易atx发送至链操作单元COU,调用其写write方法记录到区块链模块BCM中;否则,丢弃该交易。
[0029] 所述的联盟节点模块UNM中的数据存储单元DSU,提供的方法和操作包括:1)存储资源put方法:接收拥有者提交的资源描述和内容,校验描述与内容匹配则表示该提交有效,并存入资源数据库中。
[0030] 2)客体属性入链:对于新上传的资源提取其客体属性,组织数据结构形成客体属性交易otx,调用至链操作单元COU的写write方法记录在区块链模块BCM中。并根据该资源在数据库中的变动,通过在该交易末尾添加新的交易形成业务流,从而可以即时更新资源在链上的客体属性。
[0031] 3)获取资源get方法:根据访问记录交易atx,提取其中的资源标识,调用链操作单元COU的读read方法查询该交易是否存在于区块链模块BCM中。若存在,表示访问授权,取出资源返回;若不存在,则丢弃该交易,处理下一个。
[0032] 所述的基于区块链的访问控制方法的策略管理模块PAM,包括:1)发布策略publish方法:接收拥有者向策略管理模块PAM提交的访问策略描述和内容,校验策略格式正确则表示策略有效并存储至策略数据库中。
[0033] 2)匹配策略matched方法:接收联盟节点模块UNM中的策略判定单元PDU发来的属性集合,在策略数据库中匹配与之相关的策略,构成集合并返回。
[0034] 所述的基于区块链的访问控制方法的属性获取模块AGM,包括:1)获取主体属性getsub方法:属性数据库中存储着注册用户的相关信息,根据访问请求中的主体,数据获取模块AGM将从属性数据库中提取该用户的所有属性,并构成集合返回给策略判定单元PDU。
[0035] 2)获取环境条件getenv方法:各种设备和装置如时钟、GPS、传感器等连接着属性获取模块AGM,并且可以实时地获取当前的环境条件,根据策略判定单元PDU发起的查询请求,属性获取模块AGM将即时采集这些信息并构成集合响应该请求。
[0036] 所述的基于区块链的访问控制方法的资源发布操作,包括:1)资源数据存取:数据存储单元DSU接收拥有者发送的资源描述和内容,将资源存储到对象数据库中。
[0037] 2)客体属性入链:数据存储单元DSU根据拥有者提交的描述和数据提取客体属性,发送至联盟节点模块UNM中。
[0038] 3)策略发布:策略管理模块PAM接收拥有者为上传资源制定的策略文件,并存储至策略数据库中。
[0039] 所述的基于区块链的访问控制方法的访问控制流程,包括:1)发布访问记录:用户将访问请求发送至策略执行单元PEU,该单元提取访问请求中的主体、客体和动作,组织成访问记录交易atx发送至联盟节点模块UNM中。
[0040] 2)查询实体属性:策略判定单元PDU接收并处理访问记录交易atx,提取访问记录交易atx中的实体,分别向属性获取模块AGM和链操作单元COU获取访问请求中涉及的实体的属性集合。
[0041] 3)策略匹配:策略判定单元PDU将属性集合发送给策略管理模块PAM请求适用的策略,根据该属性集合对数据库进行检索和匹配,策略管理模块PAM将结果返回给策略判定单元PDU。
[0042] 4)计算判定结果:策略判定单元PDU利用收集的属性和策略集合,计算判定结,并动态地调用属性获取模块AGM的getenv方法获取当前环境条件。如果通过判定,则将访问记录交易atx发送给链操作单元COU并调用其写write方法;如果判定不通过,则丢弃访问记录交易atx。
[0043] 5)执行请求操作:策略执行单元PEU向数据存储单元DSU请求访问资源,数据存储单元DSU调用链操作单元COU的读read方法查询区块链模块BCM中是否存在该访问记录交易atx。如果存在,则响应该请求并将执行结果返回;如果不存在,则丢弃该访问请求。
[0044] 本发明的有益效果是:由于采用上述技术方案,本发明具有以下特点:在本发明提出的基于区块链的访问控制系统中,以策略为依据,将判定过程被绑定在所有节点上,访问授权从集中式转变为分布式,借助区块链的共识机制以实现对判定结果在全网的一致性检验,并且在区块链上永久地记录下访问控制触发的授权操作。这种方法带来的益处包括:
1)抗单点失效:对访问请求计算判定结果不再依靠某一个授权中心,而是由区块链中的所有节点共识产生,可有效抵抗单个节点的故障和被攻击。
[0045] 2)授权方式灵活:策略文件作为访问判定的依据,而不是由传统的中央控制器给出授权结果,通过修改策略以实现授权的变化更为简单。
[0046] 3)访问边界精确:以属性的概念描述系统中的各个实体,颗粒度细,适用于大规模用户和资源的系统,可以给访问权限以更清晰的划分。
[0047] 4)记录可审计:这是由区块链本身的特性所具备的,对用户访问请求的授权记录以交易形式上链,可确保这些信息不被篡改并且可以追溯。
[0048] 本发明所述适用于企业、政府等具有数据隐私保护需求且基于区块链平台实现多分支机构协同工作的运行环境,可做到动态可扩展地管理系统内用户的访问权限,并围绕策略和属性实现细颗粒度的权限管理,对保护分布式网络环境下的信息系统安全具有重要现实意义。附图说明
[0049] 图1是结合区块链平台的访问控制系统各单元模块之间的关系图。
[0050] 图2是根据区块链访问控制系统针对用户请求进行访问控制的过程图。
[0051] 图3是访问控制执行时的程序流程图

具体实施方式

[0052] 下面结合具体实施对本发明的技术方案做进一步说明。
[0053] 如图1-图3所示,本发明一种基于区块链技术的访问控制方法,所述方法通过用户将访问请求发送至联盟节点模块UNM,由策略执行单元PEU接收并进行处理,并将访问请求重新组织其数据结构形成访问记录交易atx,发送至联盟节点模块UNM中,数据存储单元DSU调用链操作单元COU的读read方法查询访问记录交易atx是否存在于区块链模块BCM中,以获取其访问请求的判定结果;若链操作单元COU返回访问记录交易atx,则表明判定成功,策略执行单元PEU要求数据存储单元DSU执行访问请求中的操作;否则,策略执行单元PEU丢弃该访问请求,处理下一个。
[0054] 所述方法的具体步骤为:步骤1)用户将访问请求发送至联盟节点模块UNM,所述联盟节点模块UNM中的策略执行单元PEU提取访问请求中的实体,并将访问请求中的实体组织成访问记录交易atx发送至联盟节点模块UNM中;
步骤2)查询实体属性:策略判定单元PDU接收并处理访问记录交易atx,提取访问记录交易atx中的实体属性,分别向属性获取模块AGM和链操作单元COU获取实体的属性集合,并将获取得到实体的属性集合发送给策略判定单元PDU;
步骤3)策略匹配:所述策略判定单元PDU将接收到的所述实体的属性集合发送给策略管理模块PAM请求适用的策略,所述策略管理模块PAM根据得到的实体的属性集合与数据库中与存储访问策略进行检索和匹配,策略管理模块PAM将检索和匹配结果返回给策略判定单元PDU;
步骤4)计算判定结果:所述策略判定单元PDU根据收集的实体的属性集合和策略集合的匹配结果,计算判定结果,并动态地调用属性获取模块AGM的getenv方法获取当前环境条件,如果通过判定,则将访问记录交易atx发送给链操作单元COU并调用其写write方法;如果判定不通过,则丢弃访问记录交易atx;
步骤5)执行请求操作:策略执行单元PEU向数据存储单元DSU请求访问资源,数据存储单元DSU调用链操作单元COU的读read方法查询区块链模块BCM中是否存在该访问记录交易atx;如果存在,则响应该请求并将执行结果返回;如果不存在,则丢弃该访问请求。
[0055] 所述访问控制方法还包括以下步骤:资源发布步骤:1)资源数据存取:数据存储单元DSU接收拥有者发送的资源描述和内容,将资源存储到对象数据库中;
2)客体属性入链:数据存储单元DSU根据拥有者提交的描述和资源提取客体属性,发送至联盟节点模块UNM中;
3)策略发布:策略管理模块PAM接收拥有者为上传资源制定的策略文件,并存储至策略数据库中。
[0056] 所述步骤3中的策略由多个规则的任意布尔代数每个所述规则由多个谓词的任意布尔代数形成。
[0057] 所述实体包括主体、客体、动作和环境。
[0058] 所述的实体组织成访问记录交易atx具体步骤为:对用户u利用身份认证技术验证其身份的合法性并获得用户的身份标识sid,将资源r转换成统一资源标识符uri,操作o转换成动作标识act,添加系统设置默认的有效期exp,最后附带上节点k的公钥PKnk,封装成交易格式如下:atx={sid,uri,act,exp,PKnk,sig},
请求者向区块链中的节点k发起访问请求,因此由节点k完成对实体的转换和交易数据格式的封装,对交易签名并将交易数据扩散至网络中等待被记录入块,节点k签名计算如下:
sig=Sign(SKnk,sid||uri||act||exp||PKnk)。
[0059] 上述基于区块链技术的访问控制方法的访问控制系统,所述系统包括:联盟节点模块UNM、区块链模块BCM、略管理模块PAM和属性获取模块AGM;其中,所述区块链模块BCM:用于链式数据结构存储交易,每一个交易表示系统事件的触发,每一个区块记录一段时间内发生的系统事件;
所述联盟节点模块UNM,用于维护区块链模块BCM中的所有系统成员,且系统成员之间关系是对等的,即节点集合;
所述策略管理模块PAM:用于实现策略的管理,接受拥有者制定的策略用于发布,且提供对访问请求所涉及属性相匹配的策略集合;
所述属性获取模块AGM:用于向联盟节点模块UNM中的策略判定单元PDU提供与访问请求相关的属性集合。
[0060] 所述联盟节点模块UNM包括链操作单元COU、策略执行单元PEU、策略判定单元PDU和数据存储单元DSU;其中,所述链操作单元COU:直接连接至区块链模块BCM,提供写write方法用于区块的生成,以及读read方法用于区块和交易数据的查询;
所述策略执行单元PEU:用于根据策略的判定结果执行主体对客体所请求操作,与主体有直接的交互,处理和响应请求;
所述策略判定单元PDU:用于根据收集的策略和属性对主体的访问请求计算判定结果;
所述数据存储单元DSU:用于提供客体存取服务的模块,部署在区块链节点上,连接对象数据库持久化客体的数据,并将客体的相关属性发布至区块链中。
[0061] 所述数据存储单元DSU布置在至少一个节点上。
[0062] 在本实施例中,执行单元和判定单元是区块链节点的两个功能模块,执行单元对用户进行身份认证,并将访问记录发布至区块链中完成访问授权;判定单元校验访问请求在当前策略和属性条件下的有效性,作为访问记录被写入区块的前提条件。此外,数据存储单元部署在区块链的一个节点上进行客体属性的发布,同样包含上述两个功能。
[0063] 在本实施例中,消息的来源认证通过发送方的数字签名实现,包括单元与单元之间以及区块链节点对交易数据的验证,令s=Sign(sk,m)表示私钥sk对消息m的签名,其中m=m1||m2||…||mn,||表示多个消息的连结。
[0064] 在本实施例中,区块链是一种单向递增的交易数据链,维护该公开账本的所有节点接收网络中的交易数据,以及提供区块和交易数据的查询服务:1) 发送交易:用函数sendTx(tx)表示,tx是发送的交易内容,利用对等网络广播至全网并在通过验证后写入区块;
2) 获取区块:用函数blk=gainBlk(bid)表示,bid是区块的哈希指针,返回值blk是具有特定格式的区块数据;
3) 获取交易:用函数tx=gainTx(tid)表示,tid是交易的哈希指针,返回值tx是包含在某个区块中的交易内容。
[0065] 在本实施例中,属性采用键值对attr=name:value表示,name是属性名,value是相应属性值,用{attr}表示属性集合。哈希值计算表示为h=hash(m),m是任意字符串。
[0066] 为更清晰地描述本实施例,我们给出所述基于区块链的访问控制方法及系统中各个单元模块涉及的参数和函数定义:1)数据存储单元:运行在区块链网络中的一个做块节点上,提供客体数据的存服务表示为put(k,v)和取服务表示为v=get(k),v是客体对象的内容,k是用于获取客体的唯一标识符。令该单元持有的一对公私钥为(PKs,SKs),用于发布客体属性时对数据进行签名认证。
[0067] 2)策略管理模块:管理作为判定依据的策略,连接策略数据库提供策略的发布服务表示为publish(po)和匹配服务表示为pol=matched(atl),po是单个策略,pol是一个策略集合,atl是一个属性集合。令单元持有的一对公私钥为(PKp,SKp),用于在响应策略匹配结果时对数据进行签名认证。
[0068] 3)属性获取模块:接收判定单元的实体属性请求,在获取环境条件方面,函数eva=getenv(eid)表示检测设备通用接口,其中eid是环境条件名称,eva是返回的动态属性值;在获得主体属性方面,函数sva=getsub(sid)表示从属性数据库中得到指定主体的属性,其中sid是用户的身份标识,sva是查询到的该用户的主体属性集合。令单元持有的一对公私钥为(PKa,SKa)。
[0069] 4)链操作单元:联盟节点中的其他单元都依赖该单元进行区块链上的数据操作,令单元持有的密钥对为(PKni,SKni),其中i=1,2,...,m,m是区块链网络中的节点规模。
[0070] 在本实施例中,谓词是属性的二元关系,表示成函数F(x,y),其中x和y分别代指属性变量或属性值,F是对两个属性进行谓词判定的方法,可转换成xFy的单层二叉树形式,它们的根F表示该谓词判定的结果。
[0071] 规则由多个谓词的任意布尔代数形成,其判定结果可表示为谓词多叉树的根。用R表示该规则的判定结果,组合方式为V,规则格式如下:R={F1,F2,...,Fn,V},
策略由多个规则的任意布尔代数形成,其判定结果可表示为规则多叉树的根。用P表示该策略的判定结果,组合方式为W,策略格式如下:
P={R1,R2,...,Rn,W},
利用以上定义和描述,介绍本发明所述基于区块链的访问控制方法及系统的具体实施例,它主要通过资源发布和访问控制两部分实现,资源发布是预操作,由拥有者触发,之后则是访问控制具体流程,由用户触发。
[0072] 一、资源发布拥有者将资源上传至数据存储单元,且制定相应的策略并提交至策略管理模块中,所述过程包括资源数据存取、客体属性入链和策略发布三个步骤:
1、资源数据存取
拥有者填写表单,向数据存储单元提交资源的描述,包括名称、类型、大小和所有者,并上传资源数据,表示为:
obj={title,type,owner,size,data},
数据存储单元校验流程如下:
1)资源名称title是否遵循系统的命名要求;
2)描述类型type与资源格式是否一致;
3)资源所有者owner与当前提交的用户是否相同;
4)资源大小size与上传数据的长度是否符合。
[0073] 若通过上述校验,数据存储单元为客体分配一个统一资源标识符uri,并调用存服务put(uri,obj)将资源持久化至对象数据库中。
[0074] 当需要读取或修改某个资源时,根据统一资源标识符uri,数据存储单元调用对象数据库函数obj=get(uri)获得资源数据。提取其字段内容并作相应的修改使得原对象变为obj’,数据存储单元对新的对象同样进行上述校验流程,若通过则调用put(uri,obj’)使其修改生效,2、客体属性入链
数据存储单元对外发布存储在对象数据库中的资源,将资源的客体属性以交易的形式发布至区块链中,通过添加新的交易以更新资源对应的客体属性,形成针对该资源的一条业务流。每条业务流记录某一资源相关客体属性的变化,定义客体属性记录在区块链中的数据格式为:
otx={oid,op,in,out,sig},
其中,oid是指向交易链中上一个客体属性交易的哈希指针;op是取值为set或del的操作类型,set标记为设置客体属性,del标记为删除客体属性;in是一个属性集合,表示为添加客体属性;out也是一个属性集合,表示为删除某些客体属性;sig是对该交易数据的签名,计算如下:
sig=Sign(SKs,oid||op||in||out),
数据存储单元更新资源发布在区块链上的属性,形成一条针对该资源的客体属性链,客体属性的改变将通过具有哈希指针的交易完成在区块链上的记录,这条链的生存周期从资源的添加、多次修改直到删除。资源产生一条客体属性链包括如下三个操作:
1)添加一个资源,数据存储单元提取客体属性集合为{n1:v1,n2:v2,n3:v3},分配一个新的统一资源标识符uri,令哈希指针oid1=uri,操作类型op1=set,添加属性集合in1={n1:v1,n2:v2,n3:v3},删除属性集合out1={},计算签名值:
sig1=Sign(SKs,oid1||op1||in1||out1),
调用sendTx(otx1)以发布该资源。其中,otx1={oid1,op1,in1,out1,sig1}。
[0075] 2)修改资源属性,令n2=v4且删除属性n3,数据存储单元令哈希指针为上一个交易的哈希值oid2=hash(otx1),操作类型op2=set,添加属性集合in2={n2:v4},删除属性集合out2={n2:v2,n3:v3},计算签名值:sig2=Sign(SKs,oid2||op2||in2||out2),
调用sendTx(otx2)以更新资源属性。其中,otx2={oid2,op2,in2,out2,sig2}。
[0076] 3)对象数据库删除资源,数据存储单元相应地作废区块链上的客体属性,令哈希指针为上一个交易的哈希值oid3=hash(otx2),操作类型op3=del,添加属性集合in3={},删除属性集合out3={},计算签名值:sig3=Sign(SKs,oid3||op3||in3||out3),
调用sendTx(otx3)以作废该资源。其中,otx3={oid3,op3,in3,out3,sig3},
3、策略发布
拥有者填写表单,向策略管理单元提交对所属资源的访问策略,包括策略标识、匹配目标、策略内容和所有者,表示为:
po={pid,target,policy,owner},
其中,pid唯一的标识一个策略,策略管理单元校验流程如下:
1)策略标识pid是否与策略数据库中已有的策略冲突;
2)匹配目标target的格式是否为三个实体的属性集合;
3)策略内容policy是否满足定义的格式并能转换成多叉树;
4)资源所有者owner与当前提交的用户是否相同。
[0077] 若通过上述校验,策略管理单元调用publish(po)将策略存储至数据库中,并利用匹配目标的属性集合构建反向查找表用于快速策略检索。
[0078] 二、访问控制用户向联盟节点发送访问请求,将触发系统进行访问控制判定并执行,所述过程包括发布访问记录、查询实体属性、策略匹配、获取环境条件、计算判定结果和执行请求操作五个步骤:
1、发布访问记录
用户发起的访问请求由实体(u,r,o)构成,u是发起请求的用户,r是被访问的资源,o是请求执行的操作。
[0079] 策略执行单元对外开放接口,接受请求者发来的用实体表示的访问请求,对用户u利用身份认证技术验证其身份的合法性并获得用户的身份标识sid,将资源r转换成统一资源标识符uri,操作o转换成动作标识act,添加系统设置默认的有效期exp,最后附带上节点k的公钥PKnk,封装成交易格式如下:atx={sid,uri,act,exp,PKnk,sig},
请求者向区块链中的节点k发起访问请求,因此由节点k完成对实体的转换和交易数据格式的封装,对交易签名并将交易数据扩散至网络中等待被记录入块,节点k签名计算如下:
sig=Sign(SKnk,sid||uri||act||exp||PKnk),
2、查询实体属性
策略判定单元接收访问记录交易,查询访问请求中实体对应的主体、客体和动作属性,分别为:
1)主体属性:根据用户的身份标识sid,通过调用属性获取模块提供的函数接口sva=getsub(sid)获得该用户对应的主体属性集合sva。
[0080] 2)客体属性:根据统一资源标识符uri,调用链操作单元的读read方法获得对应该资源的一条业务流,通过遍历计算出该资源的客体属性集合,例如:存在一条关联某一资源的交易链,当前包含三个交易分别是:
otx1={uri,set,{n1:v1,n2:v2,n3:v3},{},sig1},
otx2={hash(otx1),set,{n2:v4},{n2:v2},sig2},
otx3={hash(otx2),set,{},{n3:v3},sig3},
上述三个交易根据其哈希指针正好可以按顺序形成一条业务流,当读到交易otx1时,该哈希指针的格式为统一资源标识符uri,表示一个新的资源被添加,令集合S={}。该资源的客体属性集合计算过程如下:
因此,可以提取出当前区块链某个资源的最新客体属性集合S。当读取到操作类型为删除时,则表示该资源已被删除不包含客体属性。
[0081] 3)动作属性:根据动作标识act,直接将其转换成动作属性集合ava,3、策略匹配
策略管理模块接受策略判定单元发来的属性集合,匹配策略数据库中与之相关的策略,构成策略集合并签名返回给判定单元。例如,存在一条策略P包含两个规则:
R1:医生可以读和写病例,
R2:病人只可以查看病例,
令策略P中的两个规则的组合方式 。在策略P中,共涉及主体色属性为医生或病人,动作标识属性为读或写,以及客体类型属性为病例。因此,策略P构成的多叉树由以下五个谓词组成:
F1:主体.角色=医生,F2:主体.角色=病人,
F3:动作.标识=读,F4:动作.标识=写,
F5:客体.类型=病例,
所以上述的两个规则对应的组合方式分别为:
,
综上,策略P={R1,R2,W},其中R1={F1,F3,F4,F5,V1},R2={F2,F3,F5,V2}。
[0082] 匹配目标T将这五个谓词按实体分类构成该策略的关键字,其中F1和F2包含于主体集合S={F1,F2}中,F3和F4包含于动作集合A={F3,F4}中,F5包含于客体集合O={F5}中。因此匹配目标可表示为T={S,O,A}。
[0083] 策略判定单元发来访问请求的属性集合,例如医生要写病例,是一个包含三个属性的集合att={F1,F4,F5}。调用策略管理模块的pol=matched(att)函数匹配在目标中主客体和动作都包含该集合内属性的策略集,当前策略P被匹配上,于是有函数返回值pol={P}。
[0084] 最后,策略管理模块将返回这次策略匹配的结果ret={pol,sig},其中包含的签名计算为sig=Sign(SKp,pol),4、计算判定结果
策略判定单元监听区块链网络中的访问记录交易,将交易添加到判定队列中等待处理,针对访问记录收集的实体属性集合为 ,向策略管理模块发送匹
配请求,调用函数pol=matched(att)获取与可应用于该访问记录的策略集pol,迭代地计算策略集pol中的策略与属性集合att的判定结果,计算过程中的环境条件通过调用属性获取模块提供的函数接口eva=getenv(eid)实时动态地获得,eva是指定环境条件对应的属性集合。
[0085] 根据系统预先设置的策略合并算法得到最终的针对访问记录的判定结果,若判定结果为通过,且交易的签名计算正确,基于区块链的共识算法,链操作单元最终将该访问记录写入区块中,即表示访问记录被授权,5、执行请求操作
策略执行单元计算该访问记录交易的哈希值aid=hash(atx),将aid发送给数据存储单元请求对资源的操作。数据存储单元调用区块链提供的交易数据获取函数atx=gainTx(aid)拿到访问记录atx。
[0086] 数据存储单元对访问记录做如下验证:1)提取签名sig,验证该签名来源与当前请求节点是否一致;
2)提取有效期exp,检查当前时间是否在有效期内。
[0087] 若上述过程校验通过,则数据存储单元提取统一资源标识符uri,并调用函数obj=get(uri)获取客体数据obj,并对该数据执行act操作,将结果返回给策略执行单元完成该访问请求。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈