本发明属于数据访问控制,具体涉及一种基于区块链的访问控制的方法、装置和设备。
背景技术:
1、随着互联网的不断发展,在多个不同组织间需要实现数据的共享,需要访问其他组织的资源的情况下也要将自己的资源等信息提供给其他组织,还要保证自己数据的安全。对于数据安全保护来说,访问控制技术的完善与成熟对其至关重要。
2、区块链是按照时间顺序,将数据区块以顺序相连的方式组合成的链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。区块链本质上是一个去中心化的数据库,是一个将分布式存储、点对点传输、共识机制、加密算法集中运用的新型应用模式,目的是通过去中心化和去信任的方式集体维护一个可靠的数据库。区块链所具有的去中心化,高信任,不可纂改,可溯源的特性,可以极好的满足数据的安全需求。
3、访问控制(access control)指系统对用户身份及其所属的预先定义的策略组限制其使用数据资源能力的手段。常见的访问控制模型有dac(discretionary accesscontrol,自主访问控制)、rbac(role based access control,基于角色的访问控制)、mac(mandatory access control,强制访问控制)和abac(attribute based access control,基于属性的访问控制)等。由于dac的监管较为困难,rbac适合在复杂场景下提供访问控制保护,mac对实施的要求很高,在实际工作中很难办到,因此,常使用具有高度灵活性的abac模型来进行资源的访问控制。但在abac模型使用过程中,存在着当用户数量过大或组织结构发生变化时,不能满足更高细粒度的问题。
技术实现思路
1、为此,本发明提供一种基于区块链的访问控制的方法、装置和设备,以实现更高细粒度的访问控制。
2、为实现以上目的,本发明采用如下技术方案:
3、第一方面,本发明提供一种基于区块链的访问控制的方法,应用于区块链,所述方法包括:
4、获取用户发起的资源访问请求;其中,所述资源访问请求包括所述用户的基本信息;
5、根据所述用户的基本信息,判断所述用户是否为未记录新用户;
6、若所述用户不是未记录新用户,则获取用户的可信度值,将所述用户的可信度值与预设阈值进行比较;
7、若所述用户的可信度值满足所述预设阈值,则根据用户的历史访问记录和abac模型的预设访问属性,判断所述用户是否满足访问条件;其中,所述abac模型的预设访问属性主要包括用户属性、被访问资源的属性、权限属性和环境属性;
8、当所述用户不满足所述访问条件,则确定所述资源访问请求失败,驳回所述资源访问请求。
9、进一步地,所述若所述用户的可信度值满足所述预设阈值,则根据用户的历史访问记录和abac模型的预设访问属性,判断所述用户是否满足访问条件,包括:
10、根据所述用户的历史访问记录的情况,判断所述用户是否为首次请求访问被访问资源;
11、若所述用户是首次请求访问所述被访问资源,则根据所述abac模型的预设访问属性确定所述用户是否对所述被访问资源具有操作权限;
12、若所述abac模型的预设访问属性中存在至少一项不满足预设访问限制要求,则确定所述用户对所述被访问资源不具有操作权限,则所述用户不满足所述访问条件。
13、进一步地,所述根据所述用户的历史访问记录的情况,判断所述用户是否为首次请求访问被访问资源,包括:
14、若所述用户的历史访问记录中对所述被访问资源的访问次数为0,则确定所述用户是首次请求访问所述被访问资源;
15、若所述用户的历史访问记录中对所述被访问资源的访问次数不为0,则确定所述用户不是首次请求访问所述被访问资源。
16、进一步地,在确定所述用户不是首次请求访问所述被访问资源之后,所述方法还包括:
17、将所述被访问资源的资源地址发送给所述用户,所述资源访问请求成功。
18、进一步地,所述方法还包括:
19、若所述用户是未记录新用户或所述用户的可信度值不满足所述预设阈值,则发起共识投票,生成共识投票的结果;其中,所述共识投票的结果包括通过或不通过。
20、进一步地,在所述生成共识投票的结果之后,所述方法还包括:
21、若所述共识投票的结果为通过,则根据所述abac模型的预设访问属性,判断所述用户是否对所述被访问资源具有操作权限;
22、若所述abac模型的预设访问属性中存在至少一项不满足预设访问限制要求,则确定所述用户对所述被访问资源不具有操作权限;
23、当所述用户对所述被访问资源不具有操作权限或所述共识投票的结果为不通过,则确定所述资源访问请求失败,驳回所述资源访问请求。
24、进一步地,所述方法还包括:
25、若所述abac模型的预设访问属性均满足预设访问限制要求,则确定所述用户对所述被访问资源具有操作权限,将所述被访问资源的资源地址发送给所述用户,所述资源访问请求成功。
26、进一步地,所述方法还包括:
27、根据所述用户的所述资源访问请求成功或所述资源访问请求失败更新所述用户的可信度值。
28、第二方面,本发明提供一种基于区块链的访问控制的装置,应用于区块链,所述装置包括:
29、请求获取模块,用于获取用户发起的资源访问请求;其中,所述资源访问请求包括所述用户的基本信息;
30、第一判断模块,用于根据所述用户的基本信息,判断所述用户是否为未记录新用户;
31、可信度比较模块,用于若所述用户不是未记录新用户,则获取用户的可信度值,将所述用户的可信度值与预设阈值进行比较;
32、第二判断模块,用于若所述用户的可信度值满足所述预设阈值,则根据用户的历史访问记录和abac模型的预设访问属性,判断所述用户是否满足访问条件;其中,所述abac模型的预设访问属性主要包括用户属性、被访问资源的属性、权限属性和环境属性;
33、请求驳回模块,用于当所述用户不满足所述访问条件,则确定所述资源访问请求失败,驳回所述资源访问请求。
34、第三方面,本发明提供一种基于区块链的访问控制的设备,包括:
35、一个或者多个存储器,其上存储有可执行程序;
36、一个或者多个处理器,用于执行所述存储器中的所述可执行程序,以实现上述任一项所述方法的步骤。
37、本发明采用以上技术方案,至少具备以下有益效果:
38、本发明应用于区块链,包括获取用户发起的资源访问请求;其中,资源访问请求包括用户的基本信息;根据用户的基本信息,判断用户是否为未记录新用户;若用户不是未记录新用户,则获取用户的可信度值,将用户的可信度值与预设阈值进行比较;若用户的可信度值满足预设阈值,则根据用户的历史访问记录和abac模型的预设访问属性,判断用户是否满足访问条件;当用户不满足访问条件,则确定资源访问请求失败,驳回资源访问请求。通过在区块链上依次判断用户的可信度值和abac模型的预设访问属性,充分利用区块链的特性,实现更高细粒度的访问控制。
39、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
1.一种基于区块链的访问控制的方法,其特征在于,应用于区块链,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述若所述用户的可信度值满足所述预设阈值,则根据用户的历史访问记录和abac模型的预设访问属性,判断所述用户是否满足访问条件,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述用户的历史访问记录的情况,判断所述用户是否为首次请求访问被访问资源,包括:
4.根据权利要求3所述的方法,其特征在于,在确定所述用户不是首次请求访问所述被访问资源之后,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,在所述生成共识投票的结果之后,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
8.根据权利要求1~7所述的方法,其特征在于,所述方法还包括:
9.一种基于区块链的访问控制的装置,其特征在于,应用于区块链,所述装置包括:
10.一种基于区块链的访问控制的设备,其特征在于,包括: