一种基于智能合约的多级认证与访问控制系统及方法技术方案

技术编号:29618226 阅读:56 留言:0更新日期:2021-08-10 18:38
本发明专利技术涉及一种基于智能合约的多级认证与访问控制系统及方法,包括:主体设备,作为资源请求方或用户,是一个物联网设备,或是一个实体,主体设备在第一次发送访问请求时需要通过智能合约完成相应等级的认证以获得该安全等级;客体集群,客体集群是一个或多个物联网设备,即资源所有者,所述的物联网设备拥有相同的功能或为了完成同一个子任务而划分在一个集群中;所述智能合约由域管理者编写与部署,定义了访问策略及认证方法,其他实体通过发送交易的形式与其交互,完成注册资源、多级认证和请求访问等操作;各主体设备都连接到区块链上,所述区块链是底层的分布式账本,由矿工维护并延长,每个参与区块链系统的主体设备实体都有唯一的地址与之对应。

【技术实现步骤摘要】
一种基于智能合约的多级认证与访问控制系统及方法
本专利技术涉及面向物联网的访问控制领域,特别涉及一种基于智能合约的多级认证与访问控制系统及方法。
技术介绍
在物联网环境下,无处不在的设备互连极大的加速了数据收集、聚合与共享。但是这种互连可能给物联网系统带来严重的安全问题,因为攻击者可以入侵系统,部署自己的设备来非法访问资源。因此关于适用于物联网的访问控制的研究日益重要。传统的物联网中的访问控制大都基于已知的访问控制模型,例如基于角色的访问控制模型(RBAC),基于属性的访问控制模型(ABAC),基于能力的访问控制模型(CapBAC)。但是在这些方案中,验证请求者的访问权利通常是由一个中心化实体完成,这便存在单点故障的风险。为解决此风险,基于能力的分布式访问控制被提出,访问权限的验证过程由被请求的设备执行。但这也增加了被请求方的负担,对于资源受限的物联网设备更是一种挑战,同时访问记录也没有办法做到不可篡改,公开可查。区块链作为一个分布式,不可篡改的账本于2016年便被研究人员使用到访问控制中,但是,其中一种对于区块链的使用也仅仅是作为一个分布式不可变数据库来存储设置好的访问策略,对于区块链系统中的计算能力并未使用。另一种便是利用区块链作为分布式访问控制管理者。于2016年提出的FairAccess便是使用区块链中的tokens作为访问权限,同时tokens的传递也就代表了访问权限的转移。在发送tokens时,可以通过锁定交易输出脚本在原有权限上增加限制。但这种通过锁定脚本的方式,其计算能力有很大的限制,不适合在场景复杂的物联网中使用。基于智能合约的访问控制便充分利用了区块链中的计算能力以及其自身的自动执行的特性。2018年提出的RBAC-SC便是基于智能合约实现的RBAC模型,可以动态的实现角色的添加与删除,以及角色拥有者对其他节点进行背书。但由于被请求方自行验证角色的合法性而在物联网环境中不适用。同年还有不基于传统访问控制模型的方案,由请求方以及被请求方预先指定资源的访问策略,之后智能合约根据制定的策略判定请求的合法性,在低交互性的物联网环境中显然不适用。同时其请求的时延在30秒以下,对于时延敏感的工业互联网上不可行。物联网环境中,设备较多,同时也较为分散,为降低传统访问控制系统中存在的单点故障的风险,分布式访问控制被提出。区块链技术由于其本身的分布式的特点,也是一种潜在的解决办法。将基于区块链的访问控制框架与物联网结合会遇到一些挑战:物联网设备一般都是资源受限制的,例如计算资源或存储资源,所以大部分计算,例如基于公钥密码的计算,不能在物联网设备端直接进行。其次,由于网络的复杂性以及带宽限制,用户以及资源所有者交互的频度将大大受限,类似用户和资源所有者提前对访问策略进行共识以及制定的操作将受到很大影响。于是,不能直接将现有的基于区块链的访问控制框架直接应用在物联网领域中。
技术实现思路
为解决该问题,本专利技术提出了一种基于智能合约的多级认证与访问控制系统及方法,减少了用户与资源所有者的交互,增加了只需少许信息便可完成的认证过程,在有多次访问请求的情形下提高了效率。方法涵盖了分层访问策略、认证方法、抵御DoS攻击的策略的设计。本专利技术的技术方案为:一种基于智能合约的多级认证与访问控制系统,包括:主体设备,作为资源请求方或用户,是一个物联网设备,或是一个实体,主体设备在第一次发送访问请求时需要通过智能合约完成相应等级的认证以获得该安全等级;客体集群,客体集群是一个或多个物联网设备,即资源所有者,所述的物联网设备拥有相同的功能或为了完成同一个子任务而划分在一个集群中;同一个集群中的设备收集或计算的数据在同一个安全等级之下;客体集群依据安全等级对应的认证方法的难度将数据“注册”到智能合约上;所述智能合约由域管理者编写与部署,定义了访问策略及认证方法,其他实体通过发送交易的形式与其交互,完成注册资源、多级认证和请求访问等操作;各主体设备都连接到区块链上,所述区块链是底层的分布式账本,由矿工维护并延长,每个参与区块链系统的主体设备实体都有唯一的地址与之对应。进一步的,本专利技术还提出一种基于智能合约的多级认证与访问控制方法,在网络部署阶段,由域管理者完成网络部署,将写有访问策略的智能合约部署到区块链上,并广播合约地址;在注册阶段,资源所有者依据安全等级的认证难度注册自己的资源、域管理者设置角色授予者以及域管理者授予可信用户对应的角色;其中设置角色授予者将用于完成基于角色的认证;在认证阶段,主体设备根据已有的信息,通过智能合约进行相应安全等级的多级认证,多级认证包括基于密码的认证以及基于角色的认证;若用户通过认证,区块链将记录用户地址以及其成功认证的最高安全等级,并返回认证结果及其他信息;除非域管理者修改某安全等级的认证方法,用户便可以一直依赖成功认证的安全等级访问该等级下的资源。进一步的,当成功完成多级认证之后,用户便能够通过发送交易的形式请求访问目标资源,其中交易信息包括目标资源,对资源的操作,以及资源所有者的地址;当智能合约收到访问请求,它首先检查发来访问请求的用户是否已被锁定;如果未被锁定,将继续检查用户记录的最高安全等级是否大于或等于被访问资源的等级,如果是,则访问被允许,请求结果将返回用户,并通知被访问资源的所有者。进一步的,所述基于密码的认证,包括:(1)域管理者使用私钥对用户的唯一地址进行签名,形成该用户的密码:其中Sign()为签名函数,SKDO表示域管理者的私钥;addressuser表示用户的唯一地址;(2)当智能合约收到来自用户的密码认证请求以及密码passwd,计算用户地址的哈希值:hashData=keccak(msg.sender)其中keccak()是哈希函数;所述msg.sender为发送请求的用户的地址;(3)利用计算的hashData以及passwd提取签名者地址:extractedAdress=ecrecover(hashData,passwd)其中ecrecover()是恢复地址的函数;(4)若提取出的extractedAdress和域管理者地址addressDO相等,则基于密码的认证通过,在区块链上记录用户地址以及认证等级为1,向用户返回认证结果。进一步的,所述基于角色的认证,包括:在多级认证中设置基于属性的认证,同时选择角色作为其中的属性,具体步骤如下:(1)当智能合约收到用户的角色认证请求,该请求中包含准备认证的等级level,首先查询该用户是否已完成安全等级为1的密码认证以及level是否大于1,若不满足,返回认证失败;(2)若已完成密码认证,则检查是否有角色授予者授予过该用户角色,同时此授予者是否被域管理者记录,若不满足,返回认证失败;(3)读取该用户被授予的角色,判断该角色的安全等级是否大于level,若是,在区块链上记录用户地址以及认证等级为2,向用户返回认证结果;否则返本文档来自技高网
...

【技术保护点】
1.一种基于智能合约的多级认证与访问控制系统,其特征在于,包括:/n主体设备,作为资源请求方或用户,是一个物联网设备,或是一个实体,主体设备在第一次发送访问请求时需要通过智能合约完成相应等级的认证以获得该安全等级;/n客体集群,客体集群是一个或多个物联网设备,即资源所有者,所述的物联网设备拥有相同的功能或为了完成同一个子任务而划分在一个集群中;同一个集群中的设备收集或计算的数据在同一个安全等级之下;客体集群依据安全等级对应的认证方法的难度将数据“注册”到智能合约上;/n所述智能合约由域管理者编写与部署,定义了访问策略及认证方法,其他实体通过发送交易的形式与其交互,完成注册资源、多级认证和请求访问等操作;/n各主体设备都连接到区块链上,所述区块链是底层的分布式账本,由矿工维护并延长,每个参与区块链系统的主体设备实体都有唯一的地址与之对应。/n

【技术特征摘要】
1.一种基于智能合约的多级认证与访问控制系统,其特征在于,包括:
主体设备,作为资源请求方或用户,是一个物联网设备,或是一个实体,主体设备在第一次发送访问请求时需要通过智能合约完成相应等级的认证以获得该安全等级;
客体集群,客体集群是一个或多个物联网设备,即资源所有者,所述的物联网设备拥有相同的功能或为了完成同一个子任务而划分在一个集群中;同一个集群中的设备收集或计算的数据在同一个安全等级之下;客体集群依据安全等级对应的认证方法的难度将数据“注册”到智能合约上;
所述智能合约由域管理者编写与部署,定义了访问策略及认证方法,其他实体通过发送交易的形式与其交互,完成注册资源、多级认证和请求访问等操作;
各主体设备都连接到区块链上,所述区块链是底层的分布式账本,由矿工维护并延长,每个参与区块链系统的主体设备实体都有唯一的地址与之对应。


2.一种基于智能合约的多级认证与访问控制方法,应用于权利要求1的系统,其特征在于,包括:
在网络部署阶段,由域管理者完成网络部署,将写有访问策略的智能合约部署到区块链上,并广播合约地址;
在注册阶段,资源所有者依据安全等级的认证难度注册自己的资源、域管理者设置角色授予者以及域管理者授予可信用户对应的角色;其中设置角色授予者将用于完成基于角色的认证;
在认证阶段,主体设备根据已有的信息,通过智能合约进行相应安全等级的多级认证,多级认证包括基于密码的认证以及基于角色的认证;若用户通过认证,区块链将记录用户地址以及其成功认证的最高安全等级,并返回认证结果及其他信息;除非域管理者修改某安全等级的认证方法,用户便可以一直依赖成功认证的安全等级访问该等级下的资源。


3.根据权利要求2所述的一种基于智能合约的多级认证与访问控制方法,其特征在于,包括:
当成功完成多级认证之后,用户便能够通过发送交易的形式请求访问目标资源,其中交易信息包括目标资源,对资源的操作,以及资源所有者的地址;当智能合约收到访问请求,它首先检查发来访问请求的用户是否已被锁定;如果未被锁定,将继续检查用户记录的最高安全等级是否大于或等于被访问资源的等级,如果是,则访问被允许,请求结果将返回用户,并通知被访问资源的所有者。


4.根据权利要求2所述的一种基于智能合约的多级认证与访问控制方法,其特征在于,所述基于密码的认证,包括:
(1)域管理者使用私钥对用户的唯一地址进行签名,形成该用户的密码:



其中Sign()为签名函数,SKDO表示域管理者的私钥;addressuser表示用户的唯一地址;
(2)当智能合约收到来自用户的密码认证请求以及密码passwd,计算用户地址的哈希值:
hashData=keccak(msg.sender)
其中keccak()是哈希函数;所述msg.sender为发送请求的用户的地址;
(3)利用计算的hashData以及passwd提取签名者地址:
extractedAdress=ecrecover(hash...

【专利技术属性】
技术研发人员:林宪正周旺金铭
申请(专利权)人:中国科学技术大学
类型:发明
国别省市:安徽;34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1