朱朝阳 丁 箐 叶 勇 陈相舟
1(中国电力科学研究院信息通信研究所 北京 100192)2(中国科学技术大学软件学院 安徽 合肥 230051)
复杂云环境下基于推荐的信任协商框架设计
朱朝阳1丁 箐2叶 勇2陈相舟1
1(中国电力科学研究院信息通信研究所 北京 100192)2(中国科学技术大学软件学院 安徽 合肥 230051)
针对复杂云计算环境,提出一个推荐辅助的信任协商框架。云服务请求者首先从好友处获得所需服务的提供者候选,然后根据服务提供者的信任值综合考虑最终的提供者。信任的评估是双向的,服务提供者同样可以查询服务请求者的信任值,并以此判断是否提供服务。同时设计了相应的信任协商协议,保证云环境下的用户能够借助服务等级协议实现对服务相关参数的协商,并据此计算用户的信任值。模拟实验显示该设计能够提供复杂云环境下服务提供商和请求者间的双向互信。
云计算 信任协商 推荐
云计算是一种基于面向服务架构的计算模式,相比于传统的IT技术,云计算为远程客户提供了按需付费的服务环境。一个复杂云环境通常是由多个公有云和私有云组成,用户可以通过移动网络、无线网络等各种基础设施访问云,某种云服务可能在多个云中有不同的云服务提供商可以提供。移动客户在不同的存取时间、存取地点对于某种云服务的选择存在差异性,如何根据客户的即时需求,针对客户的当前情况,在众多符合条件的云服务提供商中挑选出最为合适的,同时确保客户不会滥用云计算资源,就成为了云计算成功实施过程中一个亟待解决的核心问题。目前较常见的做法是采用服务等级协议SLA(Service Level Agreement)实现服务提供者和服务请求者间的信任协商。一些研究集中于如何实现基于云平台的SLA管理框架,也即如何对SLA本身进行管理。自动信任协商ATN(Automated Trust Negotiation) 技术通过设计信任请求、传递、协商等过程的协议,使得服务提供者和请求方能够达成一致,但该技术并不关注如果双方违约的后果,例如服务提供方提供的服务没有达到事先约定的QoS。
本文在分析已有的移动云计算信任框架基础上,提出了一个复杂云环境下推荐辅助的信任协商协议。服务的请求者首先请求好友推荐服务提供者,根据好友提供的推荐列表,通过查询信任提供服务商TSP(Trust Service Provider)有关服务提供者的信任数据来实现对服务提供商的选择,该数据来自于TSP根据该服务提供商对以前SLA的完成情况的评估。同时,服务提供商也能够查询TSP来获得服务请求者的信任数据,以此实现双方互信。
对于基于SLA云服务选择的研究,目前一类方式集中于如何实现基于云平台的SLA管理框架、以及如何定义适合的SLA等。如Marco等研究了将传统IT服务中的SLA文档应用到云计算环境其包含的元素的变化[1]。Taher等则致力于将弹性策略引入到SLA文档,通过引入基于语义的SLA模板实现动态应用纠正从而改善服务质量[2]。Dheeraj等提出了一个云SLA模板来定义云计算中的一些决定性参数[3]。Chhetri等则通过扩展WS-Policy提出了一个基于策略的SLA定义,实现了对于亚马逊EC2计算资源的自动购买[4]。Andrés等使用WS-Agreement规范实现了SLA合成算法[5]。Aslam 以及Alessandra等则关注SLA本身生命周期管理的自动化[6-7],例如Alessandra提出了一个基于Rest请求的SLA协议。而另一类研究主要集中于如何利用SLA来实现云服务的鉴别、选择和优化等。如Seokho设计了一个多云环境下的代理来实现SLA自动协商[8]。Na 等针对个人云服务环境提出了一个合作SLA评估模型[9]。Liu 等使用SLA实现对云服务的动态监管,监管系统采用了Web服务技术[10]。Sudip 等首先对SLA中的元素进行了区分,然后结合多种信任模型实现对云服务信任的评估[11]。Falasi 将SLA定义扩展为多层,然后设计了一个监管模型来解决多个服务相互调用的问题[12]。Shi 考虑到在多租户环境下如何既满足租户的SLA需求,又尽可能地提高系统资源利用率,从而提出了一个受限的优化轮转调度策略[13]。Soodeh 提出在多云环境下如何基于SLA实现服务的选择[14]。由于仅仅依赖SLA参数协商并不能很好地实现云服务的选择,结合信任管理技术就成为了一个研究热点。
1996年Blaze等提出了信任管理的概念,并且将之应用到了分布式系统中的安全机制中[15]。云计算环境下信任和信任管理的综述可见于Kumar等发表的论文[16],Noor也提出了在云平台分析信任管理的一般方法[17]。由于云计算服务的复杂性,对于信任度的计算一般很难用一维向量来表达,因此更常见的方法是将其与SLA相结合,通过定义合适的SLA元素,设计相应的信任度计算模型[18]。Dillon 采用SLA来定义信任计算模型,并将其在云计算环境下具体实现[19]。Funmilade 提出采用市场方法实现了一个集中式的自我管理架构,其中引入了声誉概念[20]。Wang提出使用SLA模版池来实现云提供者和云消费者间的SLA协商,在平台中采用了声誉系统来评估提供者的可靠性[21]。Fan也采用了SLA参数来实现对信任度的评估,并据此实现了一个在多云环境下的信任管理框架[22]。
随着研究的深入,目前较普遍的认识是单一的SLA协商或者信任系统对于云计算的复杂环境都难以起到很好的效果,较好的方法是结合两者的优点。但从目前的研究文献来看,主要的探索还是集中在对于云服务的选择问题上,对于云用户的鉴别则相对较少。另外,目前多云环境下的信任管理框架对于信任系统中的共谋等攻击也没有很有效的解决方案,信任机制抗攻击的能力不高。针对这些问题,本文提出了一个推荐辅助的信任协商框架,较好地实现了云用户和云服务提供者间的双方互信。
2.1 复杂云环境
本文主要考虑如何结合SLA以及信任模型解决复杂云环境下服务请求者和提供者之间的互信问题,假设适合云环境的SLA参数等定义工作已经完成,具体的网络环境如图1所示。在一个多云的环境下,每个云中存在一个SLA服务器,其中存放了SLA模版库、云服务列表等。移动用户可以通过无线或有线网络访问任意一个云中的任意一个服务。环境中存在一个信任管理服务器,该服务器是所有云用户以及服务提供者都信任、且能够存取的,其用处主要是存取云用户以及服务提供者的信任值,并保持更新,提供信任查询服务。
图1 复杂云环境
2.2 信任协商框架
对于信任系统的有效实施,除了相关的信任度计算、信任值的存储和查询等基本元素外,如何抵御对信任系统的攻击,如常见的共谋攻击等也非常重要。现实生活中由于存在类似“习惯性好评”这样的现象,人们往往更相信好友的推荐。因此我们设计了一个基于推荐的信任协商框架,具体表现在用户选择云服务时首先要求其好友根据以往的经验推荐候选者,再查询其信任值进行综合评定,最后选定服务提供商。该方案本质上是一个主观信任与客观信任相结合的系统:好友的推荐信息是其以被推荐服务的第一手信息作为基础计算得到的局部信任,属于主观信任范畴;信任服务器存储的是该实体的全局信任,由所有参与交易的评价历史计算得到,属于客观信任范畴。
详细的信任协商框架如图2所示,移动客户端主要包括请求推荐模块、信任模块、服务监督模块、信任反馈模块、协商代理模块等;云端主要包括信任模块、协商代理模块、事后监督模块、信任反馈模块等;信任服务提供商主要包括信任管理模块、通信模块等。
图2 信任协商框架
当一个服务请求者需要请求云端服务时,完整的请求流程如下:
(1) 移动端的请求推荐模块根据自身的好友列表项对所有好友发起推荐请求,并在预先定义的时间内等候好友的推荐信息,根据好友的推荐信息选取前几名得到推荐最多的服务提供商,生成候选提供商列表。
(2) 移动端的信任模块根据候选提供商列表向信任服务提供商查询这些服务提供商的当前信任值。
(3) 移动端根据返回的信任值选择合适的服务提供商,其协商代理模块通过查询SLA服务器上的SLA模版库,得到典型模版,其协商代理模块向该提供商发起协商请求。
(4) 服务提供者的协商代理模块接收到协商请求后,由信任模块首先向信任服务提供商查询该用户的当前信任值,如属于信任范围,则开始协商过程。
(5) 协商过程结束后,服务启动,移动端的服务监督模块对实际运行任务进行监管,并记录运行情况。
(6) 服务结束后,移动端的信任反馈模块根据监管情况向信任服务提供商反馈计算得到的该服务器提供商的信任值。
(7) 服务提供商的事后监督模块负责监控用户行为、记录用户日志。服务结束后,信任反馈模块根据记录的用户行为计算该请求者的信任值,信任模块向信任服务提供商反馈该信任值。
(8) 信任服务提供商根据反馈,使用预设的信任计算模型更新对方信任值。
云用户方的伪代码,包含了服务请求的伪代码、以及作为好友推荐服务的伪代码如下:
1: function Ask_Service()
2: sendRREM(RREM, L);
//根据好友列表项发起推荐请求
3: wait();
//在预先定义的时间内等候好友的推荐信息
4: createCandidateList();
//根据推荐信息生成候选列表
5: sendTQM(P);
//向信任服务提供商查询信任值;
6: wait();
7: sort(P);
//按返回的信任值高低对候选提供商排序
8: for (i=0;i //选择合适的服务提供商 9: negotiate(p, SNM); //向该提供商发起协商请求 10: if (OK) //协商成功 11: request_service(); //请求服务 12: break; //不再选择后续的服务提供者 13: end if 14: end for 15: monitorService(); //监管运行的任务,记录运行情况 16: calculateTrust(p); //根据监管情况计算提供者信任值 17: update(TUM); //反馈该服务提供商的信任值; 18: end function 2: getRREM(); //解析消息 3: sendRRPM(RRPM); //回应推荐 4: end function 云服务提供者伪代码如下: 1: function Request_Received(TQM) 2: getTQM(); //解析消息 3: sendTQM(U); //查询该请求者的当前信任值 4: if (Ut>T) //属于信任范围 5: negotiate(U, SNM)(); //和请求者进行协商 6: if (OK) 7: start_service(); 8: end if 9: end if 10: calculateTrust(U); //根据用户行为记录计算请求者信任值 11: update(TUM); //向信任服务提供商反馈请求者的信任值; 12: end function (1) (2) GOstn(o(1),o(2),…,o(m))=γGOstn-1+ (3) (4) (5) 信任协商协议主要包括六种消息的结构:推荐请求消息(RREM)、推荐响应消息(RRPM)、信任查询消息(TQM)、信任响应消息(TRM)、SLA协商消息 (SNM)、信任更新消息(TUM)等,所有消息采用JSON格式封装数据,为简便起见,所有加密和数字签名等安全相关技术没有列出。由于篇幅所限,本文仅列出一些关键结构。下面显示了一个基本的RREM的例子,其中定义了请求者需要的服务类型和具体的SLA参数,metric定义了该参数相应的评估指标。 { ″resqusetor″: //请求发送者ID ″target″: //请求接受者ID ″timestamp″: //表示该查询的时间戳 ″service″:{ //需要的服务 ″type″:″IaaS″, //云服务类型 ″SLAParameter″: [{ ″name″: ″TransmissionRate″, //参数名 ″metric″: [″TransRateMetric″], “thresholds”:”1M” }] } } 下面显示了TRM的示例,其中trustValue值为服务提供商的信任矩阵。因为云服务参数的复杂性,在云服务中很难用一个单一的数值来表示服务提供商的信任值,因此采用转化算法将SLA参数转化为矢量矩阵,每个元素表示一个对应需求的相关信任值。对于TUM来说,针对某次服务的评价,一般只涉及到该信任值的某一维元素,因此评价值在该维设置相关信任值,其余列置0。 { ″responser″: //信任提供商ID ″target″ //请求发送者ID ″timestamp″: //表示该查询的时间戳 ″trustList″:{ //可信列表 ″tID″:, //请求ID ″uList″: [{ ″id″: 123, //服务提供商或请求者ID ″name″: ″ABC″, //服务提供或请求者名称 ″trustValue″: [0.5,0.6,0.8,0.7] }] } } 下面显示了SNM 的示例,其中constants定义该SLA协商可能的限制,比如服务请求双方的一些特殊要求;address定义服务存取入口点;SLAParameter元素定义了服务请求方和提供方需要协商的和该服务相关的具体参数,通过实现预设的计算公式,SLAParameter是可以具体计算的,一个较为典型的计算方法是如果有任意一个参数指标没有达到要求,则记为0,表示失败;否则记为1,表示成功。event元素定义了在什么情况下执行action元素定义的动作,主要的选择有OnFailures: SLAParameter计算值变为0时触发;OnChanged: SLAParameter计算值改变时触发等。action元素定义事件触发后的动作,如退出、阻塞等。 {″name″: ″SLA001″, //SLA名字 ″provider″:″ProA″, //服务提供者 ″consumer″:″ConB″, //服务请求者 ″period″: [{ ″start″: ″2013-3-17 09:00-20:00″, ″end″: ″2013-3-20 09:00-20:00″ }], ″obligation″: [{ ″schedule″:″20s″, ″constants″:[″constants1″, ″constants2″], ″address″:″http://www.cloud.com/abc″,″SLAParameter″: [{ ″name″:″TransmissionRate″, ″metric″: [″TransRateMetric″], ″thresholds″:″1M″ }], ″event″:″OnChanged″ //什么情况下触发动作 ″action″:″exit″ //动作定义 }] } 我们设计了一个多云的环境来测试我们提出的信任协商框架,该环境下共有20个不同的云服务提供商,其中90%是值得信任的,10%是不值得信任的;1 000个云服务请求者,同样90%是值得信任的,10%是不值得信任的。可信的云服务提供商有极大的比例按照协商的SLA参数完成云服务的提供,同时对用户的行为进行真实的反馈;不可信的提供商仅有极小的比例会按照协商的SLA参数完成云服务的提供,同时大多数情况下对用户的行为进行不真实的反馈。同样的,可信的服务请求者基本不会提交有危害的应用并且以很大的概率反馈真实的云服务商行为;而不可信的服务请求者很可能提交有危害的应用并且较大概率不会反馈真实的云服务商行为。具体的双方评分范围见表1所示,对于事先定义的可信的服务提供商或请求者,可信的对方给定的评价值为范围在0.8~1之间的一个随机数,代表正确的评价;而不可信的对方给定的评价值为范围在0~0.2之间的一个随机数,代表不正确的评价。相似的,对于事先定义的不可信的服务提供商或请求者,可信的对方给定的评价值为范围在0~0.2之间的一个随机数;而不可信的对方给定的评价值为范围在0.8~1之间的一个随机数。我们假设信任管理服务器是可信的,它负责信任信息的管理、查询等。模拟实验重复执行100次。 表1 双方评分范围 图3、图4分别显示了可信和不可信的服务提供商以及可信和不可信的服务请求者随着交易次数累积的信任值,图中可见对于不可信的服务提供商和服务请求者,其信任值大致稳定在0.2以下;而对于可信的服务提供商和服务请求者,其信任值也大致稳定在0.8以上。模拟实验显示了在系统中如果绝大多数的参与者为可信的情况下,信任系统能够有效地区分可信和不可信的服务提供商和请求者。在第二个模拟实验中,我们则主要测试如果系统中有较大比例的参与者没有按照实际情况反应交易状况的情况。 图3 服务提供商的信任值 图4 服务请求者的信任值 在第二个模拟实验中我们设定1 000个云服务请求者在云服务存取结束后有50%的概率不反馈云服务商行为,同时在反馈云服务商行为的请求时,有50%的概率习惯性给予所有的云服务商好评,但对于好友的查询则会返回真实的评价。我们设定每个服务请求者有10个好友,好友中可能存在不可信的请求者,每个好友推荐一个候选者,采用少数服从多数方式选出前三名。图5和图6分别显示了用户采用好友推荐和不采用好友推荐选取到不可信云服务提供商的重复执行的累计次数。我们能够看到在该种情况下,用户好友推荐对可信服务提供商的选择起到很重要的作用。 图5 采用好友推荐时选取到不可信提供商的次数 图6 采用好友推荐时选取到不可信提供商的次数 本文提出了一个复杂云计算环境下的推荐辅助的信任协商框架,以此实现云服务和云用户的双向选择问题。用户首先从好友处获得所需服务的提供者候选,然后根据服务提供者的信任值综合考虑最终的提供者,以此避免现实中常见的“习惯性好评”问题。服务提供者同样可以查询服务请求者的信任值,并以此判断是否提供服务。我们设计了相应的信任协商协议,云服务请求者采用服务等级协议和服务提供者进行协商,服务结束后,双方据此参数计算和更新双方的信任值。模拟实验表明该设计较好地满足了复杂云环境下的服务选择需求。 [1] Comuzzi M,Jacobs G,Grefen P.Understanding SLA Elements in Cloud Computing[J].Ifip Advances in Information & Communication Technology,2013,408:385-392. [2] Labidi Taher,Mtibaa Achraf,Gargouri Faiez.SLA ontology-based elasticity in cloud computing[J].Communications in Computer and Information Science,2015,539:145-152. [3] Rane D,Sarma M.CSLAT:an SLA template for cloud service management[J].International Journal of Communication Networks & Distributed Systems,2015,14(1):19-39. [4] Baruwal Chhetri M,Vo Q B,Kowalczyk R.AutoSLAM-A policy-based framework for automated SLA establishment in cloud environments[J].Concurrency & Computation Practice & Experience,2013,27(9):2413-2442. [5] García Andrés,Blanquer Ignacio.Cloud Services Representation using SLA Composition[J].Journal of Grid Computing,2015,13(1):35-51. [6] Ghumman W A.Automation of the SLA life cycle in cloud computing[J].Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics),2014,8377:557-562. [7] Benedictis A D,Rak M,Turtur M,et al.REST-Based SLA Management for Cloud Applications[C]//IEEE,International Conference on Enabling Technologies:Infrastructure for Collaborative Enterprises.IEEE,2015:93-98. [8] Son S,Kang D J,Kim J M.Design considerations to realize automated SLA negotiations in a multi-Cloud brokerage system[C]//International Conference on Collaborative Computing: Networking,Applications and Worksharing.IEEE,2014:466-468. [9] Na S,Eui-Nam H.A broker-based cooperative security-SLA evaluation methodology for personal cloud computing[J].Security & Communication Networks,2015,8(7):1318-1331. [10] Liu X,Xu F.Cloud Service Monitoring System Based on SLA[C]//International Symposium on Distributed Computing and Applications To Business,Engineering & Science.IEEE,2013:137-141. [11] Chakraborty S,Roy K.An SLA-based Framework for Estimating Trustworthiness of a Cloud[C]//IEEE,International Conference on Trust,Security and Privacy in Computing and Communications.IEEE,2012:937-942. [12] Falasi A A,Serhani M A,Dssouli R.A Model for Multi-levels SLA Monitoring in Federated Cloud Environment[C]//IEEE,International Conference on Ubiquitous Intelligence & Computing and 2013 IEEE,International Conference on Autonomic & Trusted Computing.IEEE Computer Society,2013:363-370. [13] Shi Y,Yu C,Wang J,et al.A SLA-based cloud resource provisioning optimisation mechanism for multi-tenant applications[J].International Journal of Autonomous & Adaptive Communications Systems,2015,8(4):374-391. [14] Farokhi S.Towards an SLA-Based Service Allocation in Multi-cloud Environments[C]//Ieee/acm International Symposium on Cluster,Cloud and Grid Computing.ACM,2014:591-594. [15] Blaze M,Feigenbaum J,Lacy J.Decentralized Trust Management[J].Proceedings of IEEE Conference security & Privacy,1996,30(1):164-173. [16] Kumar V,Madria S,Kashyap B,et al.A Survey of Trust and Trust Management in Cloud Computing[M]//Managing Trust in Cyberspace,Chapter:3,41-69. [17] Noor T H,Sheng Q Z,Maamar Z,et al.Managing Trust in the Cloud: State of the Art and Research Challenges[J].Computer,2016,49(2):34-45. [18] Aljoumah E,Al-Mousawi F,Ahmad I,et al.SLA in Cloud Computing Architectures:A Comprehensive Study[J].International Journal of Grid & Distributed Computing,2015,8:7-32. [19] Alhamad M,Dillon T,Chang E.SLA-Based Trust Model for Cloud Computing[C]//International Conference on Network-Based Information Systems.IEEE,2010:321-324. [20] Faniyi F,Bahsoon R.Self-managing SLA compliance in cloud architectures:a market-based approach[C]//International ACM Sigsoft Symposium on Architecting Critical Systems.ACM,2012:61-70. [21] Wang M C,Wu X,Zhang W,et al.A Conceptual Platform of SLA in Cloud Computing[C]//IEEE Ninth International Conference on Dependable,Autonomic and Secure Computing,DASC 2011,12-14 December 2011,Sydney,Australia.DBLP,2011:1131-1135. [22] Fan W,Perros H.A novel trust management framework for multi-cloud environments based on trust service providers[J].Knowledge-Based Systems,2014,70(C):392-406. TRUST NEGOTIATION FRAMEWORK DESIGN BASED ON RECOMMENDATION IN COMPLEX CLOUD ENVIRONMENT Zhu Chaoyang1Ding Qing2Ye Yong2Chen Xiangzhou1 1(InstituteofInformationandCommunication,ChinaElectricalPowerResearchInstitute,Beijing100192,China)2(SchoolofSoftwareEngineering,UniversityofScienceandTechnologyofChina,Hefei230051,Anhui,China) For a complex cloud computing environment, a recommended aided trust negotiation framework is proposed. The cloud service requester first obtains the provider candidate for the desired service from the friends, and then considers the final provider according to the trust value of the service provider. Trust evaluation is two-way, the service provider can also query the service requestor’s trust value, and to determine whether to provide services. At the same time, the corresponding trust negotiation protocol is designed to ensure that the users in the cloud environment can use service level agreement to negotiate the service-related parameters and calculate the trust value of the user. The simulation experiments show that the design can provide two-way mutual trust between the service providers and the requestors in the complex cloud environment. Cloud computing Trust negotiation Recommendation tion Request_ (RREM) 2016-06-22。国家自然科学基金项目(61379130)。朱朝阳,高工,主研领域:信息系统安全。丁箐,讲师。叶勇,副教授。陈相舟,工程师。 TP302 A 10.3969/j.issn.1000-386x.2017.06.0013 信任值计算
4 信任协商协议设计
5 模拟实验
6 结 语