APP下载

基于双滑动窗口的云服务可信评估①

2022-08-25于学军

计算机系统应用 2022年8期
关键词:调用滑动主观

李 宾, 于学军

(北京工业大学 信息学部, 北京 100124)

信息化社会的到来, 人们越来越离不开软件, 但随着软件规模的扩大又带来了软件的可信性问题, 不可信的软件会给人们的工作、学习、生活带来巨大的损失, 所以评估软件是否可信有着重大意义. 同时, 网络技术的发展使得云服务发展迅猛, 越来越多的服务商开始提供云服务, 将云服务部署到第三方云平台上供用户使用, 但也带来了更严重的云服务信任问题. 由于云服务只通过接口向外提供服务而无法得知云服务的具体实现所以云服务本身就存在信任缺失问题. 而且云平台没有完善的云服务可信评估模型, 只利用第三方云服务守则和少量用户使用云服务后的打分和评价机制. 这带来了更严重的信任缺失问题, 用户无法选择可信的云服务, 恶意云服务给用户造成了严重的损失.所以目前急需一个完善的云服务可信评估模型帮助用户进行服务筛选并对恶意云服务进行惩罚.

本研究判断云服务是否可信是基于“言行一致”的思想. “言”是云服务事先声明的行为, “行”是云服务真正实施的行为. “言行一致”即判断声明的行为和实施的行为是否一致, 从而判断云服务的可信性. “言行一致”思想符合了可信的定义, 是本研究对云服务可信评估的基本准则[1–3].

目前国内外均有对服务可信的研究, 并提出了各种可信评估的方法. 在国内方面, 张帆等人[4]利用无干扰来对云环境进行可信性分析, 这种分析方法给出行为可信判定等式, 建立了基于状态递归等价的行为可信充要条件, 提出了有效的行为可信性验证方法. 李圳[5]提出了利用滑动窗口来对云服务的可信性进行评, 但是仍然存在主观性太强的问题. 王鹏等人[6]将信息熵和模糊理论相结合, 挖掘出模糊矩阵中的客观信息并利用信息熵对其中的主观权重进行修正, 提出了一种基于信息熵权重和带修正指标的动态信任评估模型.张永胜等人[7]提出了考虑稳定性与可信评价的云服务推荐网络研究, 利用熵反应服务的稳定性从而排除不确定性较高的服务, 并且利用QoS计算用户相似度用于服务推荐网络计算信誉值. 张鹏程等人[8]为了给用户提供可信的网络服务和预测服务质量, 结合移动边缘计算的特点, 提出了一种面向隐私保护的QoS预测方法, 这种方法考虑了用户移动性强, QoS实时性强的问题. Raja等人[9]利用云层次分析法(AHP)将云服务按可信赖的优先级进行排序来提供可信任的云服务.Gong等人[10]提出了一种安全可靠的云服务信任模型,这种模型考虑了成本、利润和风险来对恶意用户进行惩罚. Kumar等人[11]提出了CCS-OSSR框架来选择最佳云服务, 该框架采用混合多标准决策对QoS 标准进行排序并与理想方案排序对比获得云服务排名. Wang等人[12]提出基于服务水平协议和隐私意识的动态云服务信任评估模型, 该模型综合了直接信任、间接信任和信誉信任计算综合信任. Hassan等人[13]提出了一种增强的QoS云服务可信评估模型, 利用协方差评估用户可信度, 使用反馈数据实时更新服务可信度. 现在国内外针对可信评估都提出了很多了评估模型, 但是由于云环境的无法获取程序执行过程的特点导致上述提到的各种模型都不能很好地解决云环境下评价过于主观导致评估不准确问题.

为了解决云环境下无法获取程序执行过程以及对于云服务的评价过于主观的导致评估不准确的问题,本文提出了一种利用双滑动窗口的机制来对云服务的可信评估进行处理. 双滑动窗口分别用于计算主观指标可信评估值和环境指标可信评估值从而解决用户评价主观性太强的问题, 之后通过实验验证了该评估模型的准确性.

1 云服务可信评估

1.1 云服务可信性

可信指的就是一种可信任的关系, 这种关系存在于被信任者和信任者之间, 更加强调于信任者对于被信任者能否做到自己承诺的事情, 也就是指“言行一致”. “言行一致”就是自己承诺的事情和实际做到的结果相符合. 在云服务中, 可信指的就是云服务商对于云服务事先声明服务和实际提供的服务相符合.

云服务可信评估就是指就是利用“言行一致”的思想, 根据云服务商声明的可信评估值和用户实际使用后给出的评价相对比. 每次调用完成后将用户的评价传递给云服务平台, 平台根据这些历史数据来对云服务进行评估判断云服务是否可信.

1.2 云服务可信评估方法

云服务可信评估的主要思想是基于“言行一致”[14].根据用户在调用服务完成后给出的评价作为用户的主观评价给出该服务的主观指标反馈值, 系统给出评价作为客观评价给出该服务环境指标反馈值, 然后将两部分的反馈值整合处理作为最后给出该云服务是否可信的结果的依据.

1.3 主观指标可信评估值

云服务是完成某项特定功能的服务, 并且云服务会声明服务具有准确、稳定、快速、资源消耗少等一系列服务质量. 而用户调用完云服务之后, 会根据云服务功能的完成情况和服务质量的完成情况会给出自己的反馈, 这就是主观指标可信反馈值.

主观指标可信反馈值会设置最低可信阈值, 低于此阈值时则认为不可信, 反之则认为主观指标可信反馈值是可信的. 用户会根据云服务总体完成情况与云服务声明的服务质量作对比并依据最低可信阈值给出主观指标可信反馈值.

主观指标可信反馈值是主观指标可信评估的基本数据单位, 主观指标可信评估值依据主观指标可信反馈值计算得出. 主观指标可信评估值是云服务可信评估的一部分, 反映了云服务可信评估中的主观部分.

1.4 环境指标可信评估值

由于主观指标可信反馈值是云用户给出的主观的反馈, 所以存在云用户的主观性过强导致给出的主观指标可信反馈值较正常情况偏差过大, 或者恶意云服务提供不可信服务造成偷跑流量占用内存过多等恶意行为而云用户却对其感受不明显导致恶意云服务无法被识别的问题.

为了解决上述问题, 引入了环境指标的概念. 环境指标是指在云服务的调用过程中产生的一系列与可信相关的参数, 这些参数都是客观存在的不会因为用户的主观感受而带来偏差, 比如响应时间、流量消耗、内存消耗等指标. 在云服务的调用过程中, 由云平台对环境指标进行搜集, 并给出环境指标可信反馈值. 由于是云平台搜集数据自动给出的反馈值, 不依赖于云用户的反馈, 所以环境指标可信反馈值是客观的反馈.

环境指标可信评估值是云平台根据环境指标可信反馈值计算得出, 是一种客观的评估值. 将主观指标可信评估值和环境指标可信评估值结合在一起就实现了主客观相结合的云服务可信评估方法.

在本节的内容中介绍了云服务可信的概念和云服务可信评估的模型. 在上述的模型中使用了主观指标可信评估值和环境指标可信评估值来作为可信评估的基本数据. 但是现有的模型还有一些问题不能解决, 比如用户对环境指标不敏感所以给出主观指标可信反馈值时主观性太强导致反馈结果不准确以及云服务提供一段时间可信服务后转而提供不可信服务但根据历史反馈仍被评估是可信服务等问题. 所以接下来本文提出了一种基于双滑动窗口的云服务可信评估的方法.

2 基于双滑动窗口的云服务可信评估模型

2.1 滑动窗口介绍

在云服务可信评估模型中有3个基本性质需要满足, 分别是时间相关性和记录有效数量以及快速下降.时间相关性和记录有效数量是指越新的可信反馈值权重应该越大且太过久远的数据应该被淘汰, 因为进行云服务可信评估值时越新的数据越能反应云服务当前的可信状态所以应该给予高权重, 而太过久远的数据对于当前的可信状态反应不准确, 所以应该排除. 快速下降是指当产生不可信的可信反馈时, 云服务的可信评估值应该快速下降为不可信.

为了解决上述问题, 本文引入了滑动窗口机制[15].滑动窗口是一种特殊的数据结构. 滑动窗口内数据为可信反馈值, 新产生的可信反馈值会从滑动窗口的一侧进入滑动窗口中并记录进入时间. 滑动窗口设有最大窗口值, 当数据未填充至最大值时, 将未填充数据置为初始值, 当数据填充至最大值时, 最久远的数据就会从另一侧流出. 当产生不可信的反馈时, 将窗口内的可信反馈值设为默认值. 滑动窗口满足了上述的3条性质, 同时, 针对主观指标和环境指标可信评估分别设置主观指标滑动窗口和环境指标滑动窗口, 示意图如图1所示. 下面分别介绍两个滑动窗口.

图1 双滑动窗口示意图

2.2 主观指标滑动窗口

主观指标滑动窗口中存放的是主观指标的可信反馈值. 当云用户调用云服务完成后, 云用户根据云服务完成情况给出主观指标的可信反馈值. 云平台会搜集主观指标可信反馈值, 并根据滑动窗口数据添加规则将主观指标可信反馈值放入主观指标滑动窗口.采用历史主观反馈数据进行可信评估, 所以会产生一些信任缺失的问题, 比如恶意云服务在前期提供正常服务, 经过一段时间的积累后迅速转而提供恶意云服务, 但由于历史数据的存在导致该云服务仍被认为是可信导致可信评估不准确. 为了避免解决上述问题, 滑动窗口还需满足一个性质, 信任值的缓慢增长. 缓慢增长是指云服务的可信评估值应该随可信反馈值次数的增加而缓慢增长. 因为存在恶意用户和主观性过大的问题导致少数几次的可信反馈记录并不能完全反应主观指标的可信性.

为了满足上述提到的性质, 滑动窗口需要添加初始信任窗口和实际信任窗口. 当反馈数据未填充满初始信任窗口时, 未填充的可信评估值按初始值计算. 填充满时, 按照实际可信反馈值计算. 主观指标滑动窗口示意图如图1上半部分所示.

2.3 环境指标滑动窗口

当云服务调用完成后, 系统还要自动搜集的环境指标, 并根据环境指标计算得到环境指标可信反馈值,并将环境指标可信反馈值放入环境指标滑动窗口. 由于环境指标可信反馈值系统自动搜集, 环境指标可信反馈值都是真实有效的, 所以环境指标可信评估无需满足缓慢增长性质, 环境指标滑动窗口无需设置初始信任窗口和实际信任窗口. 环境指标滑动窗口示意图如图1下半部分所示.

由于系统搜集到的环境指标是具体的数值, 而我们需要根据环境指标得到环境指标可信反馈值, 所以引入环境指标模型, 下面介绍环境指标模型.

环境指标的调用过程中产生的和可信相关的参数,是一种客观的指标. 在理想环境下, 同一个云服务在调用时会产生相同的环境参数. 但是在实际情况下, 由于操作系统的不稳定, 网络的波动等因素导致环境参数会有一定的误差和范围. 环境指标模型就是通过解析环境参数, 确定误差范围, 最终给出环境指标可信反馈值的计算方法.

环境指标模型的构建流程如下:

(1)通过对可信的云服务进行多次调用, 搜集每次产生的环境指标数据, 将其称之为样本集.

(2)将样本集中每一项指标根据欧氏距离计算得出样本中心点.

(3)将样本集中每一项指标的最远欧氏距离作为该指标的环境指标模型, 所有指标构成的中心点和范围即为该服务的环境指标模型.

假设调用云服务产生的响应时间以及消耗的流量为环境指标, 构建的环境指标示意图如图2所示, 样本点的示意图如图3所示. 矩形O是样本测试行为数据集的中心点, 大量测试行为都集中在矩形O内 , 矩形O外为噪点.

图2 环境指标示意图

图3 样本点环境指标示意图

如果我们想得到α 点环境指标可信评估值, 那么我们需要得出α 点在每个环境指标的可信值, 并计算出平均值即为α 点的环境指标可信评估值. 我们规定: 每个环境指标中心点的可信度 τ (Oi,Oi)的可信度为100%,并且可信度随着距离中心点Oi的距离增大而减小, 并以Ri的距离作为最低可信阈值,Ri边缘上的可信度为τ(Oi,Ri), 且可信阈值根据实际情况可自行设置. 当距离样本中心点的距离di为 2Ri时可信度最底, 那么这个环境指标的可信度可看做0%. 由此, 我们可以根据欧式距离来对环境指标进行可信度计算.

我们已知环境指标i距离中心点的距离为xi, 中心点的可信度τ (Oi,Oi)为 100%, 边缘上的可信度为τ (Oi,Ri),距离di为 2Ri的可信度为τ (Oi,2Ri)为0%. 故根据单位距离下可信度变化率一致性进行推导, 可以得出单个环境指标的可信度为:

综合所有环境指标得出环境指标反馈值:

2.4 评估流程

前面介绍了基于双滑动窗口的云服务可信评估的模型及组成部分, 接下来会对基于双滑动窗口的云服务可信评估的流程进行详细介绍, 图4是云服务可信评估的总体流程示意图.

图4 云服务可信评估的总体流程示意图

云服务可信评估的流程中主要有3种角色, 云服务提供商、用户、云平台. 其中云平台是整个评估过程中的核心角色, 负责搜集数据, 计算可信评估值. 云服务商是云平台上提供服务的实体, 负责提供特定功能的云服务供用户调用. 用户某个服务的具体使用者,调用服务并给出反馈值. 下面详解介绍每一步骤.

(1) 用户提出申请想要调用完成某种功能的云服务.

(2) 云平台从符合要求的云服务中选择一个云服务供用户调用.

(3) 云平台使用滑动窗口根据用户自身的主观指标可信反馈值计算主观指标可信评估值.

利用滑动窗口计算主观指标可信评估值的方式如下:

在用户对云服务的调用次数较少, 反馈数据还未能填充满滑动窗口时, 可信评估值的计算如式(3)所示:

其中,Tsub为 主观指标的可信评估值,Tsub-i为 第i次主观指标可信反馈值,tnow和trec分别为当前时间和记录时间,length为 滑动窗口大小,n为 已填充的反馈值,Tinit为初始可信评估值.

当反馈数据填充满滑动窗口时, 可信评估值的计算公式如式(4)所示:

(4) 云平台根据搜集到的环境指标可信反馈值同样采用式(3)计算环境指标可信评估值Tenv.

(5) 云平台根据主观指标可信评估值和环境指标可信评估值给出该云服务是否可信. 当主观指标可信评估值和环境指标可信评估值均为可信时则该云服务被认定为可信, 否则则认为不可信.

(6) 用户调用云服务完成后给出主观指标可信反馈值, 系统搜集环境指标并使用环境指标模型给出环境指标可信反馈值, 并将两者都存入对应的滑动窗口中, 作为可信评估的基本数据来源.

(7) 系统对比该云服务调用前后可信评估是否一致, 搜集对比数据用于判断评估的准确性.

以上就是基于双滑动窗口的云服务可信评估模型的详细过程, 我们通过双滑动窗口的方式实现了主客观相结合的可信评估, 降低了用户的主观性带来的影响, 避免云服务提供环境指标不可信的恶意服务. 下面,通过模拟实验验证该模型的优点, 并与其他模型进行对比.

3 实验仿真以及结果分析

为了验证基于双滑动窗口的云服务可信评估模型的优越性, 本文采用了双滑动窗口可信评估模型, 单主观指标和单环境指标滑动窗口可信评估模型以及不采用滑动窗口的可信评估模型进行对比. 实验所用操作系统为Windows 10, 编程语言为Java, 数据存储采用Redis.

3.1 仿真数据

计算环境指标可信评估值首先需要环境指标模型.本测试基于车牌识别云服务, 环境指标设定为流量消耗、响应时间. 模拟一个云平台, 并在云平台上提供一个可信的车牌识别云服务. 通过多次调用可信的车牌识别云服务获取了环境指标的真实数据并计算出样本中心点. 参照环境指标模型的构建流程, 通过环境指标的数据建立了环境指标模型.

为了使模拟实现尽可能反映真正云服务的情况,本文按照本研究内容定义了3种角色, 分别是平台, 用户, 以及云服务. 为了验证双滑动窗口的有效性, 将云服务分为主观、环境指标可信或不可信云服务. 其意义是云服务调用完成后给出的主观、环境指标的可信反馈值是否可信.

实验采用的参数如下:

时间衰减因子λ :e-0.5×轮次差

窗口大小: 50

用户数量: 50. 所有用户均为善意用户, 即对云服务会给出真实的主观指标可信反馈值.

云服务数量: 20, 其中10个可信云服务, 5个主观指标不可信云服务, 3个环境指标不可信云服务, 2个均为不可信的云服务.

信任滥用开始时间: 11, 即第11轮恶意云服务开始信任滥用, 提供恶意云服务.

可信评估阈值: 0.8, 可信时给出0.8–1.0可信评估值, 不可信时给出0.2–0.4可信评估值.

每轮调用次数: 信任积累阶段每轮100次, 共一轮5 000次. 信任滥用阶段每轮50次, 共一轮2 500次.

3.2 结果分析

本实验为了突出双滑动窗口的优越性所以采用最常用的时间衰减因子, 对比的项目则是不同可信评估模型正确可信评估的次数. 我们定义恶意云服务商提供的恶意行为为最常见的信任滥用行为, 即恶意云服务会在前期提供善意云服务进行信任的累计, 当积累一段时间可信反馈后会利用原来积累的信任值快速转而提供不可信的服务, 达到自身的目的. 本研究设定的最低可信阈值为0.8, 当给出的可信反馈值或者可信评估值到达0.8及以上时, 就认为其为可信的, 反之则认为是不可信的. 在信任累计阶段所有云服务都提0.8–1.0信任值的服务, 在信任滥用阶段不同的恶意服务会对对应的指标提供0.2–0.4可信度的服务. 本实验定义了20个云服务, 50名用户. 采用可信评估正确的次数和总调用次数的比值作为统计数据, 实验结果如图5所示.

图5中横坐标代表可信评估进行到第几轮次, 纵坐标代表每一轮正确进行了可信评估的比例. 在第11轮时开始信任滥用, 恶意云服务提供不可信的云服务. 我们可以看到在第11轮时, 所有模型的正确的可信评估比例都有很大下降. 因为在第11轮恶意云服务开始提供不可信的服务, 由于可信评估都是采用历史数据进行可信评估导致所有的模型的可信评估比例都有较大下降. 而采用双滑动窗口模型明显收到恶意云服务的影响程度较低, 且更快速地恢复到完全正确的可信评估, 因为主观指标和环境指标不可信云服务双滑动窗口都可以检测到并让其可信评估值快速下降,使可信调用比例快速上升. 对比不使用滑动窗口的模型, 由于只能根据历史数据进行可信评估导致恶意云服务提供不可信服务时更难被检测出, 使得可信调用比例缓慢上升. 在使用单滑动窗口的两组对照中, 由于主观指标不可信云服务比环境指标不可信云服务更多,所以云服务的调用过程中采用主观指标滑动窗口的模型相对于采用环境指标滑动窗口的模型就能识别到更多不可信云服务使得其可信评估的比例更高. 上述的实验结论证明滑动窗口可以更准确地评估恶意云服务,双滑动窗口的云服务可信评估模型对主客观不可信的云服务都有较准确的评估.

图5 不同可信评估模型正确可信评估正确的比例

4 结论与展望

为了解决在云服务的可信评估问题, 本研究在滑动窗口的基础上提出了基于双滑动窗口的云服务可信评估模型, 使用主客观相结合的方法来对恶意云服务进行识别. 相较以往的研究, 本研究可以更好地识别出环境指标不可信的云服务并且降低用户主观性过强带来的可信评估不准确的问题, 并通过实验验证了上述结论.

但是恶意用户给出恶意评价的情况, 而是在认为用户的敏感性较高且不存在恶意用户, 但实际情况可能会存在部分恶意用户故意给出恶意评价情况. 所以未来可以针对用户敏感性以及恶意用户等与用户相关的问题来对云服务可信评估做进一步的研究.

猜你喜欢

调用滑动主观
后印象
有主观小量倾向的“数+量/名+之+形/动”格式
挣多少钱,才可以买到快乐
基于Android Broadcast的短信安全监听系统的设计和实现
一种动态足球射门训练器
对立与存在
关于滑动变阻器的规格问题
利用RFC技术实现SAP系统接口通信
C++语言中函数参数传递方式剖析