基于合约的Web服务个性化访问控制方法①

2021-11-05 03:38赵晓芳宋永浩段东圣
高技术通讯 2021年9期
关键词:访问控制合约信任

胡 斌 赵晓芳 宋永浩 于 雷 段东圣 张 程

(*中国科学院计算技术研究所 北京100190)

(**中国科学院大学 北京100049)

(***国家计算机网络应急技术处理协调中心 北京100029)

0 引言

基于信任的动态访问控制(trust based access control,TBAC)[1-2]是解决Web服务与用户之间脆弱的信任关系[3]的一种重要方法。它基于用户的历史行为表现,结合服务提供商(service provider,SP)自定义的数据分析模型动态给出一个标量值作为调整访问控制权限的依据。

然而,无中心网络环境下,用户历史行为数据的准确收集是一项困难的工作。一方面,不存在中心化的机构或者服务来收集用户的历史行为数据。用户与服务之间交互所产生的行为数据,往往分散在许多不同的服务之中。因此,指定用户的行为数据收集是一项困难的工作[4-5]。另一方面,准确和全面的数据收集又与网络用户的隐私保护诉求冲突[3]。此外,围绕个性化访问控制研究,普遍停留在以角色或行为组为单位的层面。陆悠等人[6]及钱继安等人[7]在研究中通过建立策略、规范与角色之间的映射关键,实现以角色为粒度的粗放型个性化访问控制。Zerkouk 等人[8]虽然提出了基于用户行为的细粒度个性化访问控制,监控信息却违背了用户对隐私保护的诉求。如何调和数据收集及分享和隐私保护之间的冲突是制约动态访问控制技术发展的难点。

本文经过问题分析和基于前期研究[9]基础,提出一种基于合约的个性化动态访问控制方法(smart contract based personalized access control,SC-PAC)。该方法中,SP 与用户建立智能合约,并通过合约内的权益及规则定义,建立个性化访问控制关系。用户访问Web服务前,通过合约在用户本地自动运行SP 提供的计算模型,分析用户的历史行为数据,将计算结果反馈给SP 作为动态访问控制的依据。这种方式在满足SP 对用户行为数据准确性要求的同时,也满足了用户对自身行为数据的隐私保护诉求。此外,基于SC-PAC 的访问控制方法通过允许SP 配置和调整智能合约内的策略、模型和参数,可以有效提升SP 对用户的个性化访问控制,极大提升服务的安全防护程度。

本文组织如下,第1 节是相关研究工作,第2 节描述SC-PAC 设计,第3 节进行案例与实验设计以及结果分析,最后在第4 节总结全文。

1 相关研究

1.1 TBAC

信任是社会关系中的重要方面,在安全领域、数据访问领域、推荐系统等方面都有着重要的影响力。TBAC 就是这种社会关系在数据访问领域融合的表现。区别于传统的访问控制技术,TBAC 在社会关系的动态性认识上向前迈出了一步。相较于其他的动态访问控制技术,TBAC 则通过对用户在社会关系中的可信度评估来分析和判断应该分配怎样的权限以及是否需要调整现有权限。

基于TBAC 的应用研究众多,Sajjad 等人[10]提出一种基于邻居节点可信度计算的方法来执行入侵检测并在信任计算与安全等级之间建立了标量连接。Adams 等人[11]则将TBAC 运用到了Ad-hoc 网络的协作,它综合节点的历史交互数据以及其他反馈信息评估节点可信度,动态建立协作。Toumi 等人[12]运用TBAC 管理多组织环境中的用户和组织机构,引入两种动态信任向量并基于知识、声誉以及经验分别进行计算和评估。Yan 等人[13]将TBAC运用到云计算领域,通过研究云服务提供商之间的信任关系来提升安全资源保护。Tran 等人[14]在研究中提出通过直接信任、间接信任、直接贡献以及间接贡献等指标来评估访问权限的方法。Yu 等人[15]则指出,推荐、看法等不确定性信息会影响模型的计算结果可靠性。更重要的是,用户行为数据收集与用户的隐私保护诉求有冲突。Bedekar 等人[3]在研究中指出了用户信息在隐私保护方面面临的一些挑战,例如个人隐私数据的售卖。为解决前述问题,Hu 等人[9]在研究中提出新的方法为计算模型提供可靠的用户历史行为数据和隐私保护的数据分享方法。

1.2 智能合约

合约是提供服务的一种重要方式。Ruohomaa和Kutvonen[16]指出,通过明确表达隐含期望的合约可以鼓励更多的信任进而减少不确定性。然而,合约通常与商业服务内容密切相关。例如,Schnjakin等人[17]以合约形式呈现服务和业务,给用户一个清晰的服务内容。由于技术难度和业务衔接问题,合约的适用具有挑战性。智能合约概念最早由Szabo于1997 年提出,它主要是指依靠一段可执行的计算机代码来完成一段确定的业务逻辑。智能合约通过以太坊[18]区块链平台被大家广为熟知,并被许多知名区块链平台(如Hyperledger Fabric[19])广泛采纳和用于交易。区块链提供了一个可靠的分散环境,其智能合约具有可以强制执行、交易可跟踪的特点。

许多研究都利用区块链和智能合约技术来解决当前的安全问题。例如,Chen 等人部署了基于区块链技术的高性价比的支付收付监管系统[20]。随着智能合约的使用及与食品行业标准的结合,Tao 等人[21]实现了整个产业链的不合格食品的自动检测和预警。Yong 等人[22]通过区块链和智能合约技术解决疫苗过期和疫苗记录欺诈问题。Hu 等人[9]将分布式数据收集问题转换为基于智能合约的数据管理,为信任计算提供了高质量的用户历史行为数据。

本文在前期工作[9]基础上,即以基于智能合约的数据管理方法为基础,为信任计算提供关于用户的高质量历史行为数据。本文更进一步地提出基于智能合约的个性化动态访问控制方法(SC-PAC),将前述可靠的用户历史行为数据应用于服务安全控制,实现动态的访问权限和安全策略的分配。同时,通过智能合约自动执行安全策略,对用户的交互行为进行监控和更新。本文提出的SC-PAC 为基于TBAC 的方法提供了更准确的用户行为数据,也为SP 提供了个性化和动态的访问控制机制。

2 SC-PAC 设计

2.1 SC-PAC 框架

本文提出的基于智能合约的个性化动态访问控制方法(SC-PAC)中合约服务是基础,它包含对用户历史行为数据的管理,将SP 的访问控制协议转换为智能代码并自动监管用户行为,对发现的违规行为上报以及评估用户可信度。

本文在前期研究工作[9]基础上,给出了SCPAC 架构图,如图1 所示。它包括服务于用户端的基于智能合约的数据服务(smart contract based data sharing,SCDS)模块和用户端本地存储用户交互行为数据的用户信任证书(trust certificate,TC),以及服务于SP 的服务相关智能合约(service related smart contract,SRSC)管理模块,还包括抵抗信息欺诈的区块链基础设施以及抗欺诈账本模块。TC 以及抗欺诈账本设计参考文献[9]。本文的SCDS 包含与文献[9]一致的交互行为管理、数据分享设计。不同之处在于,前者统一通过一个智能合约管理、分享用户数据,而SCDS 将许多服务以用户的智能合约的方式进行独立发布,即SCDS 包含了许多特定功能的智能合约,它是用户端智能合约集合。例如:信任计算合约、哈希计算合约、TC 读取合约等。这样的设计,一方面减小了合约因智能代码过多而可能包含的逻辑错误量,另一方面允许灵活的合约服务选择与组合服务。SRSC 是服务端发布的服务交互监管协议,代表了依照SP 意志对用户行为监控的服务过程,也是动态访问控制的核心所在。它以SCDS 计算得到的用户可信度作为输入,匹配SP 的安全等级,动态分配访问权限和安全策略并基于安全策略对交互行为进行监控。

图1 SC-PAC 框架

个性化模块则包含了SP 的安全策略、可信度计算模型及参数配置等内容,代表了SP 对服务安全的个性化需要。

2.2 SC-PAC服务流程

如图2 所示,基于智能合约的网络服务访问控制方法包括如下步骤。

图2 SC-PAC 流程

(1)初始状态下,用户发布其SCDS 智能合约集,包括验证TC 有效性以及可信度计算等。服务端则发布自己的安全策略以及信任模型等。

(2)用户发起访问网络服务端的访问请求。

(3)服务端调取用户发布的TC 有效性验证服务,验证签名并计算出一个哈希值(root hash,RH)。服务端收到此RH 值,并通过用户的TC 编号(ID)从账本中读取用户的根哈希(RH)。通过二者比对区分是否存在数据欺诈。

(4)调用用户的信任计算服务,并将其信任模型作为输入和启动信任计算。

(5)获得用户反馈的可信度结果。

(6)服务端依据可信度结果与安全等级的匹配,动态分配服务安全策略。

(7)服务端启动SRSC 合约服务,并将前述安全策略作为交互的监控依据。

(8)服务端SRSC 将监控结果上报至SCDS。

(9)SCDS 据此结果更新用户端TC 文件(包括TC 文件中的RH 更新)。

(10)如果结果存在不良记录,则SCDS 将运算得到此不良记录的哈希结果值。

(11)将哈希结果插入用户的账本,更新其账本中的RH 值。

3 案例研究

为了评估SC-PAC,分别从信任模型、参数、访问策略3 个维度综合分析合约的个性化效果。首先,参照FIRE[23]、PET[24]及SPORAS[25]等出色的计算信任模型,设计了一个基于累积声誉与风险的TBAC 模型,其次设计了实验,最后对实验结果进行分析。

3.1 信任模型设计

从Trustwave 近3 年的全球安全报告总结发现,数据泄露已经成为威胁网络安全的一个重要因素并且以聚集的趋势集中出现在某几个服务行业。例如2019 年遭受影响的行业中有18%在零售业,11%在金融业。那么,显然同行业的近况对于其他服务SP来说显得非常重要。传统信任模型的数据收集方法受限于其他不同服务在信息收集上的角度以及信息分享的意愿程度,评估者收集的关于特定用户的行为数据一般是零碎、模糊的,难以形成有序、准确的用户行为画像。而指定行为发生的上下文环境对于分析和预测用户下一次的行为表现又有极为重要的作用。例如,FIRE[23]、PET[24]、Dossier[25]等在信任模型建模中以时间函数作为评定行为影响力的重要方法。显然,目前的模糊、不准确的行为数据对于进行下一步行为预测无法起到预期作用。本文在实验设计中引入了服务关联性参数来丰富计算信任模型。

考虑如下场景,用户u通过交互I访问服务p提供的服务。用户u出示TC 作为信任证书,此证书包含了此用户的网络服务交互总量Nall和不良记录的总量Nbad,并且通过服务p提供的信任计算模型可以计算得到一个可信度T。用户u的交互历史标记为I={Ii| i∈Nall},其不良交互历史标记Ibad=。每次交互的评估结果被赋予0 或1 的值,其中Ii=1 代表了良好的交互,而Ii=0 代表了一次违规交互。

用户u的不良交互历史可能包含了许多的不同服务。那么,从不良交互历史就能轻易得知u过去是否对特定p有过违规的记录(称之为相关度)以及在哪一次交互产生了违规行为。标记u与服务p之间的不良行为总量为Nrelated(Nrelated≤Nbad),并且这些与服务p相关的交互记录构建起了一个相关性序列,标记为Irelated=。

用户u在接下来访问服务p交互行为中执行违规行为的概率(称之为风险)记为R(u,p)。式(1)展示了u访问服务p的风险方程。

式(1)中包含了两类风险:第一,用户u接下来执行违规行为的概率,记为Pbad(u);第二,用户u接下来对服务p执行违规行为的概率,记为Prelated in bad(u| p)。参数γ是介于[0,1]区间内的服务相关性系数,其值越大意味着风险考虑中越关心用户u可能对服务p执行违规行为的概率,越小则意味着更关心用户u最近的交互行为对接下来的行为的影响程度。式(2)和(3)分别展示了式(1)中的两种风险概率模型,并且都考虑了时间因素的影响,即随着时间的推移,过去的行为对未来行为的影响力越来越小。式(4)使用了一个权重模型来模拟前述时间因素的影响,其系数θ定义了权重函数的衰减速率。

基于风险模型R,SP 就可以通过计算得知用户u接下来在服务中的表现,并做出以何种访问权限来提供服务的决定。这就为SP 提供了更积极和可靠的决策依据。一旦用户u对服务p的服务请求得到通过,则意味着u通过了服务p的风险评估。同时服务p会为其动态分配一个合适的访问权限。本文通过为服务p分配一个介于[0,D]之间的可信度标量(本文设置D=100),并将此标量与服务安全等级建立映射,实现自动化的动态权限分配机制。

定义信任(记为T)为用户历史行为的一种累积表现。从社会学的角度来看,需要引入惩罚或者奖励机制来抑制或者鼓励对应的网络行为。因此,在第i次交互中,有可信度Ti-1的用户u会因其行为受到奖励,记为Re(i)。式(6)展示了可信度T的计算过程。

这种递归式的信任计算过程模拟了累计信任的过程。参数σ是阻尼函数Φ中加速因子,它控制了可信度T的变化速率。从文献[26]的研究中可以知道,参数σ应该被设置为σ≤0.11D,并且Ti(u)已经被证实是大于0 且小于100 的值。系数1/μ是学习因子,它控制了奖励效果。1/μ越小,则可信度T会越稳定。

3.2 实验设计

SC-PAC 的个性化通过合约的可配置实现,即合约的个性化。它包括SP 可指定信任模型及其运行时参数,可以指定运行安全策略。

为分析SC-PAC 方法的个性化特点,本节设计了两大类实验:首先,设计实验对3.1 节的信任模型在不同参数(学习因子、服务相关系数)控制下的表现,一方面验证本文设计的信任模型的有效性,即作为一个有效的信任模型,在信任度学习速率表现、异常响应等方面有正确的表现。另一个方面,验证参数调整对于个性化访问控制的作用。它具体包括下文所述的实验1 和2;其次,模拟了基于合约的访问控制场景,分析基于合约的方法所能带来的动态和个性化访问控制效果。它具体包括下文所述的实验3。

实验1本实验主要测试3.1 节中信任模型的信任获取速率以及对异常行为的反应。实验中随机生成了包含2000 次访问行为的序列S,它包含了3次异常交互行为且索引位置分别为977、997 和1117。本次实验中的服务相关系数γ设置为0.6,衰减速率参数θ=11。阻尼函数Φ中的加速因子设置为σ=11。

实验2该实验的评估指标是不良行为容忍度(misbehaving tolerance)。本文将不良行为容忍度定义为模型在停止包含不良行为的请求之前所遇到的不良行为数量。假设所有这些模型都面对同一个用户,初始状态是包含1500 次已结束的交互记录,其中包含30 次不良行为记录,并且假定所有这些不良行为都与SP 无关。接下来,该用户将故意违规访问SPN次。

实验3本实验以hyperledger fabric 为区块链实验环境,基于GoAhead 搭建了2 个简易网络服务。用户与2 个服务之间分别签订智能合约,合约包括3.1 节的信任模型,并设定两个SP 使用了相同的风险阈值0.6 和相同的相关度0.4,也包括相同的4级访问控制策略设置。初始状态下,用户连续访问一个SP,当信任值大于75 时,它随机执行不良行为。本文有意设置这个用户执行几个不良行为来触发风险阈值,然后这个用户因为风险太高而被拒绝服务。该用户必须访问第2 个SP,并始终保持良好的表现以赚取更多的累积信任,进而可以再次访问第1 个SP。这个模拟实验试图说明基于合约的方法对用户的访问痕迹和权限、风险变化的动态性和个性化控制效果。

3.3 结果分析

合约可靠性分析智能合约作为可自动执行的、可验证的代码,能够提供可靠的控制机制。此外,区块链账本可追溯的特性,也允许对合约执行历史进行验证。最重要的是,基于前期研究成果,合约方法能够对平衡数据共享和隐私保护之间的冲突起到重要的作用。具体地,通过合约方法在用户端管理和存储历史行为数据。SP 需要使用用户数据时,通过在用户端执行合约内的信任模型,计算得到可信度结果并反馈给SP,即在隐私保护前提下,为SP提供关于用户的丰富历史行为数据。

合约个性化分析智能合约是SP 与用户之间建立的一对一的服务关系。SP 可以在合约中设置个性化的信任计算模型,研究者因对信任理解差异、选择的数学方法不同等,会设计出不同的信任模型,例如FIRE[23]、PET[24]、Dossier[25]等研究中的信任模型。合约的机制允许SP 对指定用户的分析采用不同的信任计算模型,极大丰富了SP 对用户的分析方法。SP 也可以对相同的模型设置不同的参数。例如,采用3.1 节设计的信任模型,配置不同的学习因子、服务相关性系数等参数。图3 所示为实验1的结果,表示3.1 节的信任模型在不同的学习因子下信任获取速率会有不同。学习因子越大则信任累积速率越快。一般,有较高安全需求的SP 可以设定较为缓慢的学习速率,即较小的学习因子值。这让潜在的攻击者通过积累足够的可信度发起攻击更为困难。即便发起了攻击行为,信任模型也能够通过迅速降低信任值做出响应。图4 展示的是实验2的结果,即在同样的信任模型下,不同的风险阈值参数可以对异常行为有不同的反应速率。可以从图4看到,设定γ=0.6 时,第一次异常交互的出现就触发了风险阈值进而阻断了后续的异常流量。当降低γ值至0.2 时,SP 需要7 次连续的异常交互才会阻断后续的异常流量。允许SP 配置不同的服务相关系数γ,可以实现灵活控制服务。这种机制给了SP更多的个性化选择空间,那些有较高安全需求的SP,可以设置一个较高的γ(通常等于或者接近风险阈值)。更重要的是,基于合约的方法能够可靠地为SP提供关于用户的历史行为数据做分析,即具备准确刻画用户画像的条件。这也有利于信任模型的设计,例如本文引入的服务相关性参数。基于丰富的历史行为数据,研究者可以从各种不同的角度设计出丰富的信任模型,这也意味着有更多个性化的信任模型支撑下的访问控制。

图3 3 种不同学习因子下累积信任值变化速率

图4 不同风险阈值参数下的异常拦截表现

合约的动态性访问控制分析实验3 在可信度与访问控制权限间建立了4 级映射关系,拥有响应的可信度值才能拥有相应的访问权限。图5 显示了模拟实验3 的运行结果,从图中可以看到,在第705次交互中,用户触发风险阈值并被拒绝服务。然后用户转向访问其他SP 并以正常的访问方式以图降低其风险并获得更多的信任值。如图5 所示,间隙区域(gap)是此用户在其他SP 上的访问踪迹。在其他SP 与原SP 之间没有服务相关性的情况下,用户基于原有的历史交互行为访问其他SP 也不会触发风险阈值,进而可以通过良好的行为表现重新获取较高的累积信任值。例如,原SP 是金融业服务,用户基于合约方法执行了某些违反规定的操作,并被记录到区块链账本。当此用户继续访问此SP时,因前述操作被拒之门外。此时,如果此用户转而访问其他类似的金融业服务时,仍有可能被其过往历史拒之门外,这就动态地保护了类似的其他相关服务。此用户可选的策略是访问与金融业服务不相关的其他服务,例如食品服务,并以良好的表现来提升其综合可信度。在图5 中,约200 次交互之后,此用户能够再次访问初始SP服务。如果此用户在后续交互中再次执行异常行为并再次触发风险阈值,SP 可以通过其合约中的个性化模块动态调整参数,提高对此用户服务的风险阈值,做到对用户的个性化安全服务和动态的访问控制。

图5 基于合约自动响应的动态访问控制表现

4 结论

对用户画像的准确刻画是制约访问控制可靠性的一个重要因素,尤其是在Web服务环境中,用户的行为数据往往分布在许多不同的服务中,Web服务难以准确地掌握用户的行为信息。许多研究在基于信任计算的访问控制研究中,通过引入服务评价、推荐等信息,以期丰富对用户的认识,提升可信度值的可靠性。然而,研究离准确描述用户信息仍有距离,对用户信息量的缺失也约束了信任计算模型的设计。此外,许多个性化访问控制的研究集中在以角色为单位的粗粒度访问控制,无法做到针对用户的细粒度个性化访问控制。在一些有限范围的应用场景下,虽然实现了行为级别的细粒度控制,但又缺乏有效的隐私信息保护。本文在前期工作基础上,提出了基于智能合约的个性化访问控制方法,可以为Web服务提供关于指定用户的高质量的行为数据信息,也充分考虑了用户隐私保护。这种方法一方面可以提升现有信任模型的可信度结果可靠性,另一方面也允许Web服务通过智能合约的策略、模型以及参数控制实现对用户的个性化访问控制。

猜你喜欢
访问控制合约信任
嘤嘤嘤,人与人的信任在哪里……
ONVIF的全新主张:一致性及最访问控制的Profile A
动态自适应访问控制模型
浅析云计算环境下等级保护访问控制测评技术
大数据平台访问控制方法的设计与实现
信任
合约必守,谁能例外!——对“情势变更”制度不可寄于过高期望