基于信任度的物联网访问控制模型研究

2022-11-25 07:26邓三军袁凌云孙丽梅
计算机工程与设计 2022年11期
关键词:信任度访问控制合约

邓三军,袁凌云,+,孙丽梅

(1.云南师范大学 民族教育信息化教育部重点实验室,云南 昆明 650500;2.云南师范大学 信息学院,云南 昆明 650500)

0 引 言

随着物联网的迅速发展和智能设备的广泛应用,物联网的隐私保护越来越受人们的重视。当大量的物联网设备收集、处理和共享数据时,需要有相应的访问控制机制来防止未经授权的资源访问,保护敏感的隐私数据。例如,物联网设备需要能够拒绝抽取其数据或控制其执行的未授权请求[1]。访问控制的主要功能是防止未经授权的用户操作,限制未授权用户对特定设备的操作。通过访问控制机制,不同权利级别的用户拥有各自级别的访问权限,各个用户只能访问操作对应权限下的隐私数据资源。能够有效保障数据的安全。因此,物联网的访问控制机制已成为保护数据安全和隐私的重要研究内容之一[2]。

近些年来许多研究者都是以RBAC模型为基础进行扩展研究的,因为传统的用户-角色-权限访问控制模型中,角色与权限直接关联,一旦系统为用户分配了角色,那么用户便具有了角色所关联的所有权限知道用户访问结束。这种访问控制模型可以在一定程度上解决物联网跨域访问控制、设备异构性和访问控制模型的可拓展性等问题。但是,RBAC是一种静态访问控制机制,不能够动态调整{user-role}、{role-permission}之间的对应关系[3]。因此,为了保证物联网访问控制授权的动态性,对RBAC模型的扩展研究引起了研究者们的广泛关注。如文献[4]Jason提出了基于智能合约的角色访问控制模型,该模型采用智能合约技术实现跨域访问,使应用程序能够独立分散运行,实现资源访问和操作等响应,验证用户角色的所有权限。虽然有利于提高访问控制的灵活性和安全性,但其访问权限细粒度划分还不够,访问控制的动态性还有待提高。文献[5]黄美蓉提出了一种基于特征提取的访问控制方法,把RBAC和BLP模型相结合解决了多级别、异时异地的用户授权管理问题,该方法在判断用户访问请求时具有较高的准确性。但没有分析其细粒度和安全性问题。

随着信任管理被引入到计算机领域中,在访问控制机制中也逐渐用到了信任模型。在文献[6]中,马佳乐等提出一种基于信任度的访问控制方法,通过增加用户管理模块实现对用户行为的信任的管理,但是其应用环境是针对云计算,并不适合物联网的访问控制。文献[7]李由由等提出一种基于信任度属性的用户实时映射模型,通过引入上下文环境和时间衰减性动态判断信任属性,但是模型中信任度的计算比较复杂。

因此,本文在现有研究的基础上,将RBAC和ABAC两种访问控制模型的优势相结合,提出了一种基于用户信任度和属性的访问控制模型(RBAC based on user trust and attribute,TA-RBAC),通过引入用户信任度分析,建立更灵活的授权机制,并将用户的用户总体信任值和访问控制策略信息等关键数据存储到区块链上,利用区块链不可篡改和可追溯等安全性特征保证其安全性。增强了原有访问控制模型的权限细粒度性、动态性和安全性。

1 基于信任度的访问控制模型构建

1.1 TA-RBAC模型描述

在TA-RBAC访问控制模型中,引入信任约束和用户属性集等模型元素,取消了直接的用户角色分配,以信任值作为动态角色分配的基础,只有当用户的信任值达到访问控制策略设置的信任阈值时,才能获得相应的角色及其权限[8]。同时,在用户与访问资源的交互过程中,访问控制模型会根据用户的属性、行为、推荐等情况,动态调整用户的信任值,实现访问控制权限的动态分配。TA-RBAC模型结构如图1所示。

图1 TA-RBAC模型结构

1.1.1 参数定义

模型中基于传统RBAC模型中得参数定义部分详见文献[10],此处不再赘述,仅给出本文改进模型部分的参数定义。

定义1 属性集:包括用户属性、可靠属性、性能属性和安全属性。

定义2 信任约束:作为用户和角色的中间联系纽带,代替了用户和角色之间的直接指派关系,通过信任度计算模型计算用户访问请求的信任度,信任度取值范围为0-1。

定义3 可信度阈值:表示激活角色所需的最小信任度值。

1.1.2 访问控制流程设计

TA-RBAC模型的访问控制工作流程是对RBAC模型的扩展。图2为TA-RBAC访问控制的工作流程。详细步骤如下。

图2 TA-RBAC模型访问控制流程

(1)当用户访问物联网资源时,需要激活用户角色,当访问控制模型收到访问请求时,模型根据资源的信任度计算机制计算用户的信任值,得到用户的总体信任值,然后判断该值是否满足模型预设的最小信任度阈值,若满足,则激活用户角色。否则,拒绝用户访问请求。

(2)模型根据信任度授权规则,判断计算的所得的用户总体信任度值判断该用户所属的权限区间,并授予其相应的权限。

(3)用户执行其所获得权限内的访问操作。

(4)模型记录整个访问过程中用户的操作行为,并将其作为历史信任度值的计算参考。

(5)用户结束访问,模型更新用户总体信任度值,并将更新后的用户信任度值访问控制策略存储到区块链,供其它访问控制机制计算其信任度时参考。

1.2 信任度计算

用户信任度值由直接信任和间接信任计算的总信任值表示。其中,间接信任包括历史信任和推荐信任。Direct_T(u)、Indirect_T(u) 和Final_T(u) 分别表示直接信任度、间接信任度和总体信任度。

1.2.1 直接信任度计算

对于用户直接信任度值的计算,采用模糊层次分析法(fuzzy analytic hierarchy process,FAHP)[9]。该方法通过将用户的访问行为分解为不同的特征属性,然后将每个特征属性划分成多个更小的证据类型,见表1。这样用户行为的模糊不确定性评估问题就被细化为一个简单信任证据加权和问题。其计算步骤如下。

表1 用户行为信任值评估证据类型

(1)用户行为证据的预处理。该过程包括两个方面:

1)用户行为信任证据的采集与更新。通过使用网络流量监测工具以及入侵检测系统等来获取用户行为证据。

2)用户行为信任证据数据的标准化处理。为了便于统计,必须对数据进行标准化处理,将其处理为[0,1]区间内递增的无量纲值,用信任证据矩阵E=(eij)mn表示。

(2)计算权重向量矩阵,以用户的可靠属性P为例,与可靠属性相关的证据p1,p2,…,pn, 对于这n个证据,根据其重要性,两两对比,得到n阶初始矩阵

(1)

(3)构造P的传递矩阵表示为e=pij,i,j∈[0,N], 其中,若pi比pj更重要,则pij=0; 反之pij=1; 若pi和pj同等重要,则pij=0.5。

(2)

从而得到相应的初始判断矩阵dij=(epij)n×n, 对dij的每一行求和得到Q=(q1,q2,…,qn)T, 其中

(3)

然后对Q进行正规化,得到可靠属性P的权重向量Wp=(w1,w2,…,wn)T, 其中

(4)

以同样的方式计算出性能属性和安全属性的权重向量,最后计算出安全属性S、可靠属性P和性能属性R相对于用户行为信任值的总体权重W

(5)

(4)利用信任证据矩阵和属性权重向量计算信任评估向量F。根据E×W, 矩阵对角值就是信任属性评估值向量F=(f1,f2,…,fm)。

(5)用户直接信任度值的计算。即

(6)

1.2.2 间接信任度计算

当用户第一次获得对某一个资源系统的访问权限时,信任度计算模型将根据用户的操作行为生成第一个历史信任值History_T(u)=Direct_T(u)。 随着访问量的增加,用户的历史信任度会随着时间的推移逐渐改变

(7)

其中,Final_Ti(u) 为用户的总体信任度,ti表示访问时间,记录着用户从开始访问到结束访问的时间,当n=0时,表示用户是第一次访问资源,没有对应的历史信任值。

因此,根据用户访问其它组织资源时获得的信任度值,计算出的用户推荐信任度值就作为间接信任度计算的主要依据。假设用户u此前已经与n个物联网设备有过交互,第i个设备对用户u的信任度值为Fi_u(t), 其自身的推荐权重因子为S(i), 则用户u的推荐信任度计算公式为

(8)

基于用户的历史信任和推荐信任,得出用户间接信任度值

Indirect_T(u)=α×History_T(u)+β×Recommed_T(u)

(9)

其中,α+β=1。 当用户不是第一次与该物联网设备交互,此时的间接信任度计算主要依据为用户此前与该设备的历史信任度,在间接信任度的计算中,两者所在的比重为:History_T(u)>Recommend_T(u)。 如果用户第一次与物联网设备交互,则用户的历史信任度为0,即History_T(u)=0; 便将推荐信任度作为间接信任度值计算的主要参考。

1.2.3 总体信任度计算

通过直接信任值和间接信任值的线性组合计算总信任值

(10)

其中,k为用户访问的总次数,a为常数,用于调整不同阶段用户直接信任和间接信任的权重,当用户初次访问物联网设备时,访问次数k为0,Final_T(u) 主要由Direct_T(u) 决定;随着用户访问量的增加,k增大,Direct_T(u) 的权重减小,Indirect_T(u) 的权重增大,Final_T(u) 主要由Indirect_T(u) 决定。

1.2.4 信任度等级划分

在实验中,将用户信任度等级设置为g=(1,2,3,4,5,6), 在资源访问的实际交互过程中,绝大部分用户行为是基本可信或者中等可信的,而恶意用户和特级用户只是一少部分。因此,将每个信任区间的间隔分别设置(0.1,0.25,0.5,0.75,0.9),相应的信任等级和信任值区间对应以及对应的角色和访问权限关系见表2。

表2 用户信任度等级区间划分

2 面向TA-RBAC的智能合约设计

Nick Szabo于1994年首次提出了智能合约的概念。它是一种合约技术,能够以计算机代码定义相关约束的条款。当合约的所有参与者根据条款达成协议时,智能合约中事先约定的权利和义务将以代码的形式自动执行,并在整个合约执行过程中保持不变,以便最终数据不会被篡改[10]。区块链的安全性、去中心化和不可篡改性为智能合约的运作提供了一个安全、开放和可追踪的理想平台。为了完成物联网设备的访问控制,将物联网设备的访问控制授权、用户角色的激活、模型的信任阈值设置、访问控制策略的存储交给部署在以太坊的4个智能合约来完成,分别是阈值设定合约(SVC)、角色激活合约(RAC)、权限授予合约(VRC)和策略存储合约(PSC)[11]。其具有如下特征:①允许模型组织向用户分配角色。②允许模型以透明的方式管理修改信息。③允许模型向分配给用户的角色授予合理的权限。④根据用户信任状态和设置的访问信任度阈值,允许合约自动运行或停止。

智能合约(SC)设计如下:

SVC合约:此合约是根据物联网设备所处的环境以及历史访问控制模型所获得的数据来设定本模型的最低可信度阈值。输入最低可信度阈值,输出阈值设定成功与否,如算法1所示。

算法1:阈值设定合约SV CONTRACT

输入:可信度阈值TrustValue。

输出:Set value succeed/failed。

(1)begin

(2)if input == null

(3)return error

(4)end if

(5)if val == nil

(6)return TrustValue already exist

(7)val = APIStub.SetState(TrustValue)//调用SetState()方法, 设置可信度阈值

(8)if val == nil

(9)return Set value succeed

(10)else

(11)return Set value failed

(12)end

RAC合约:该合约的功能是根据模型计算出的用户总体信任值与模型设定的最小信任阈值的比较来确定是否激活用户角色,只有成功激活角色的用户才能进行后续授权操作。输入总体信任度值,输出用户角色激活成功与否,如算法2所示。

算法2:用户角色激活合约 RA CONTRACT

输入:用户总体信任度值Final_T(u)

输出:Activate the role succeed/failed

(1)begin

(2)if input == null

(3)return error

(4)else if Final_T(u) > SetValue

(5)return Activate the role succeed

(6)else

(7)return Activate the role failed

(8)end

VRC合约:当用户被激活角色之后,模型需要根据其总体信任度值区分其所属权限等级,并授予其合适的权限,此时就需要使用VRC合约完成此项工作。输入用户总体信任度值,输出用户权限等级,如算法3所示。

算法3:VR CONTRACT

输入:用户总体信任度值Final_T(u)

输出:权限等级 bad user、General user、Primary user、Intermediate user、Advance user或Premium user

(1)begin

(2)if input == null

(3)return error

(4)else if Final_T(u) < 0.1

(5)return bad user

(6)else if Final_T(u) > 0.1 && Final_T(u) ≤ 0.25

(7)return General user

(8)else if Final_T(u) > 0.25 && Final_T(u) ≤ 0.5

(9)return Primary user

(10)else if Final_T(u) > 0.5 && Final_T(u) ≤ 0.75

(11)return Intermediate user

(12)else if Final_T(u) > 0.75 && Final_T(u) ≤ 0.9

(13)return Advance user

(14)else if Final_T(u) > 0.9 && Final_T(u) ≤ 1

(15)return Premium user

(16)end

PSC合约:此合约主要用于存储访问控制策略信息。通过该合约,模型访问控制策略信息和用户信任值以事务的形式存储在区块链中,以保证关键信息的安全性。输入策略文件,输出策略存储成功与否,如算法4所示。

算法4:策略存储合约 PS CONTRACT

输入:策略文件 policy file

输出:Storage succeed/failed

(1)begin

(2)if input == null

(3)return error

(4)else if policy file not exist

(5)policy file 请求存储

(6)creat structure data for policy file

(7)policy file{Id Address Time}

(8)data = APIstub.GetState(policy file)

(9)if data == nil

(10)return Storage succeed

(11)else

(12)return Storage failed

(13)end

3 实验结果及分析

通过仿真实验,对本文提出的基于信任度的物联网访问控制模型的有效性以及模型效率进行测试和分析。通过XACML提供的标准测试包进行测试,并在个人计算机(Personal Computer,PC)上构建以太坊区块链实验平台,在每个实验节点上安装由go语言编写的geth客户端,使用Remix集成开发环境编写和编译智能合约,采用web3.js与各geth客户端进行交互,完成智能合约部署。实验环境详见表3。

表3 实验环境配置

3.1 授权动态性分析

本文主要根据用户在不同时刻所获得的权限等级的变化情况来反映用户总体信任度值对模型授权的影响,并以此验证模型访问控制授权的动态性。

通过入侵检测等网络测试技术获得用户的行为证据值,再根据FAHP的原理做范化处理后,分别得到可靠属性平均值R=(r1,r2,r3,r4)、 性能属性平均值P=(p1,p2,p3,p4,p5,p6,p7,p8) 和安全属性平均值S=(s1,s2,s3,s4)。 然后分析计算每个属性的权重值,最后通过式(4)计算出用户的直接信任度值。在此基础上,根据式(5)~式(8)得出用户的最终信任度值。

对物联网设备在10个不同的时刻进行10次访问,其中随机进行合法访问和非法访问,得出用户信任度值以及权限等级的变化情况如图3所示。

图3 不同实验时刻用户信任度值和权限等级变化情况

图3展示了传统RBAC模型和TA-RBAC模型在不同实验时刻的信任度值以及权限等级的变化情况。如图所示,传统RBAC模型中用户权限等级保持不变;TA-RBAC模型中用户信任度值随着用户在不同的实验次序的不同访问行为而发生变化,用户的权限等级也随之变化。进一步分析实验结果可知,传统RBAC模型中,在访问会话时当用户根据需求被分配到角色之后,就意味着用户获得了该角色所具有的全部权限且该用户在后续访问中的角色和权限不会再发生变化;而在本文所设计的TA-RBAC模型中,用户拥有的角色和访问权限会随着用户总体信任度值的变化而动态变化。这样,用户在之后的访问中若有危险行为,用户的总体信任度值就会就降低,其权限等级也会随之降低。

实验中,随着非法访问操作次数的增加,用户信任度值发生了显著变化。如图4所示,用户信任度值随着非法行为次数的增加呈明显下降趋势,这与实际情况相符。据此,TA-RBAC模型能够按照预期及时完成用户角色和访问权限的更新。

图4 用户总体信任度值变化趋势

3.2 网络延迟和吞吐量分析

实验结果表明,在传统的RBAC模型中引入信任属性,不仅减少了非法用户的非法访问次数,而且在一定程度上解决了网络拥塞问题。在实验中,我们首先比较了传统RBAC模型和TA-RBAC模型在网络时延方面的差异。实验结果如图5所示。

图5 平均网络延迟对比

从图5的实验结果可以看出,在没有用户请求的情况下,TA-RBAC和传统RBAC模型的网络都没有受到影响,两者之间没有明显差异,随着请求数量的逐渐增加,TA-RBAC和传统RBAC模型的网络延迟也随着增大。然而,在相同的访问请求数下,TA-RBAC模型的优势逐渐体现出来,其网络延迟始终低于传统RBAC模型的网络延迟。进一步分析表明,在TA-RBAC模型中引入了信任度值,信任度值的变化控制了访问权限的授予,通过智能合约的自动化执行,提高了模型处理访问请求的速度,在提高模型效率的同时,降低了网络延迟。

就吞吐量而言,如图6所示,随着访问量的增加,两种模型的吞吐量都呈降低趋势,但是TA-RBAC模型一直处于优势位置,这主要得益于TA-RBAC模型引入了信任度属性,增加了模型访问控制授权的动态性,相比于传统RBAC模型固定的授权模式,其拥有更高的效率,这使得单位时间内所处理的访问控制请求数量增加,从而增加了网络的吞吐量。基于区块链的智能合约运行使得访问控制策略的授权过程更加准确高效。

图6 平均吞吐量对比

3.3 模型安全性分析

为了验证本文所提模型在阻止恶意用户访问及安全性方面的优势,通过与传统基于角色的访问控制模型以及基于智能合约的访问控制模型进行对比。由图3.9可知,当恶意用户比例分别是10%,20%,30%,40%,50%,60%,70%时,本文所提出的TA-RBAC模型、基于智能合约模型和传统RBAC模型的用户交互成功率都有不同程度的下降,但是,传统RBAC模型的下降速度最慢,尤其是当恶意用户比例超过60%时,访问成功率仍然维持在90%以上,而本文所提出的模型访问成功率已下降到0.5以下。这是因为TA-RBAC模型中引入了用户信任度分析,当用户进行恶意访问时,模型通过监测用户的恶意访问行为,计算出的用户信任度也会降低,当用户的信任度下降到阈值以下,就无法再访问系统资源,所以用户访问数量一定时,恶意用户的比例越高,访问成功的用户数量就越低,访问成功率也越低。基于智能合约的访问控制模型的访问成功率也维持在相对较低的水平,这是因为智能合约是部署在区块链链上自动运行的脚本代码,通过智能合约调用实现访问控制策略上链执行和存储,使恶意用户无法篡改和盗取访问控制策略信息,从而确保了访问控制机制的稳定安全运行。

图7 访问成功率随恶意用户所占比例的关系

因此,相对于传统RBAC模型,本文所提出的AT-RBAC 模型能够更好限制用户的恶意访问行为,更好保证物联网数据资源的安全性。

4 结束语

本文针对传统RBAC模型在物联网访问控制中缺乏访问控制授权动态性以及访问控制授权决策效率低下等问题,提出了一种基于信任度和属性的物联网访问控制模型TA-RBAC,阐述了TA-RBAC模型的信任度值计算机制以及模型的访问控制过程,利用区块链存储访问控制策略,保障了其安全性,通过信任度属性和智能合约提高了模型访问控制授权决策过程的效率和准确性。最后,通过实验验证了该模型的有效性,可以更好保护物联网设备资源的安全。然而,本文中访问控制策略等关键信息都直接存储在区块链中,这将增加区块链存储压力。因此,下一步的研究工作主要集中在解决区块链的存储负担上。

猜你喜欢
信任度访问控制合约
一种跨策略域的林业资源访问控制模型设计
全球民调:中国民众对政府信任度最高
ONVIF的全新主张:一致性及最访问控制的Profile A
动态自适应访问控制模型
汽车养护品行业运行环境分析及提高客户信任度的途径
2014,如何获得信任
从操作系统层面谈信息安全与自主访问控制