【技术实现步骤摘要】
一种基于智能合约的多级认证与访问控制系统及方法
本专利技术涉及面向物联网的访问控制领域,特别涉及一种基于智能合约的多级认证与访问控制系统及方法。
技术介绍
在物联网环境下,无处不在的设备互连极大的加速了数据收集、聚合与共享。但是这种互连可能给物联网系统带来严重的安全问题,因为攻击者可以入侵系统,部署自己的设备来非法访问资源。因此关于适用于物联网的访问控制的研究日益重要。传统的物联网中的访问控制大都基于已知的访问控制模型,例如基于角色的访问控制模型(RBAC),基于属性的访问控制模型(ABAC),基于能力的访问控制模型(CapBAC)。但是在这些方案中,验证请求者的访问权利通常是由一个中心化实体完成,这便存在单点故障的风险。为解决此风险,基于能力的分布式访问控制被提出,访问权限的验证过程由被请求的设备执行。但这也增加了被请求方的负担,对于资源受限的物联网设备更是一种挑战,同时访问记录也没有办法做到不可篡改,公开可查。区块链作为一个分布式,不可篡改的账本于2016年便被研究人员使用到访问控制中,但是,其中一种对于区块链的使用也仅仅是作为一个分布式不可变数据库来存储设置好的访问策略,对于区块链系统中的计算能力并未使用。另一种便是利用区块链作为分布式访问控制管理者。于2016年提出的FairAccess便是使用区块链中的tokens作为访问权限,同时tokens的传递也就代表了访问权限的转移。在发送tokens时,可以通过锁定交易输出脚本在原有权限上增加限制。但这种通过锁定脚本的方式,其计算能力有很大的限制, ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。