李 賓, 于學軍
(北京工業大學 信息學部, 北京 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云服務可信評估模型, 利用協方差評估用戶可信度, 使用反饋數據實時更新服務可信度. 現在國內外針對可信評估都提出了很多了評估模型, 但是由于云環境的無法獲取程序執行過程的特點導致上述提到的各種模型都不能很好地解決云環境下評價過于主觀導致評估不準確問題.
為了解決云環境下無法獲取程序執行過程以及對于云服務的評價過于主觀的導致評估不準確的問題,本文提出了一種利用雙滑動窗口的機制來對云服務的可信評估進行處理. 雙滑動窗口分別用于計算主觀指標可信評估值和環境指標可信評估值從而解決用戶評價主觀性太強的問題, 之后通過實驗驗證了該評估模型的準確性.
可信指的就是一種可信任的關系, 這種關系存在于被信任者和信任者之間, 更加強調于信任者對于被信任者能否做到自己承諾的事情, 也就是指“言行一致”. “言行一致”就是自己承諾的事情和實際做到的結果相符合. 在云服務中, 可信指的就是云服務商對于云服務事先聲明服務和實際提供的服務相符合.
云服務可信評估就是指就是利用“言行一致”的思想, 根據云服務商聲明的可信評估值和用戶實際使用后給出的評價相對比. 每次調用完成后將用戶的評價傳遞給云服務平臺, 平臺根據這些歷史數據來對云服務進行評估判斷云服務是否可信.
云服務可信評估的主要思想是基于“言行一致”[14].根據用戶在調用服務完成后給出的評價作為用戶的主觀評價給出該服務的主觀指標反饋值, 系統給出評價作為客觀評價給出該服務環境指標反饋值, 然后將兩部分的反饋值整合處理作為最后給出該云服務是否可信的結果的依據.
云服務是完成某項特定功能的服務, 并且云服務會聲明服務具有準確、穩定、快速、資源消耗少等一系列服務質量. 而用戶調用完云服務之后, 會根據云服務功能的完成情況和服務質量的完成情況會給出自己的反饋, 這就是主觀指標可信反饋值.
主觀指標可信反饋值會設置最低可信閾值, 低于此閾值時則認為不可信, 反之則認為主觀指標可信反饋值是可信的. 用戶會根據云服務總體完成情況與云服務聲明的服務質量作對比并依據最低可信閾值給出主觀指標可信反饋值.
主觀指標可信反饋值是主觀指標可信評估的基本數據單位, 主觀指標可信評估值依據主觀指標可信反饋值計算得出. 主觀指標可信評估值是云服務可信評估的一部分, 反映了云服務可信評估中的主觀部分.
由于主觀指標可信反饋值是云用戶給出的主觀的反饋, 所以存在云用戶的主觀性過強導致給出的主觀指標可信反饋值較正常情況偏差過大, 或者惡意云服務提供不可信服務造成偷跑流量占用內存過多等惡意行為而云用戶卻對其感受不明顯導致惡意云服務無法被識別的問題.
為了解決上述問題, 引入了環境指標的概念. 環境指標是指在云服務的調用過程中產生的一系列與可信相關的參數, 這些參數都是客觀存在的不會因為用戶的主觀感受而帶來偏差, 比如響應時間、流量消耗、內存消耗等指標. 在云服務的調用過程中, 由云平臺對環境指標進行搜集, 并給出環境指標可信反饋值. 由于是云平臺搜集數據自動給出的反饋值, 不依賴于云用戶的反饋, 所以環境指標可信反饋值是客觀的反饋.
環境指標可信評估值是云平臺根據環境指標可信反饋值計算得出, 是一種客觀的評估值. 將主觀指標可信評估值和環境指標可信評估值結合在一起就實現了主客觀相結合的云服務可信評估方法.
在本節的內容中介紹了云服務可信的概念和云服務可信評估的模型. 在上述的模型中使用了主觀指標可信評估值和環境指標可信評估值來作為可信評估的基本數據. 但是現有的模型還有一些問題不能解決, 比如用戶對環境指標不敏感所以給出主觀指標可信反饋值時主觀性太強導致反饋結果不準確以及云服務提供一段時間可信服務后轉而提供不可信服務但根據歷史反饋仍被評估是可信服務等問題. 所以接下來本文提出了一種基于雙滑動窗口的云服務可信評估的方法.
在云服務可信評估模型中有3個基本性質需要滿足, 分別是時間相關性和記錄有效數量以及快速下降.時間相關性和記錄有效數量是指越新的可信反饋值權重應該越大且太過久遠的數據應該被淘汰, 因為進行云服務可信評估值時越新的數據越能反應云服務當前的可信狀態所以應該給予高權重, 而太過久遠的數據對于當前的可信狀態反應不準確, 所以應該排除. 快速下降是指當產生不可信的可信反饋時, 云服務的可信評估值應該快速下降為不可信.
為了解決上述問題, 本文引入了滑動窗口機制[15].滑動窗口是一種特殊的數據結構. 滑動窗口內數據為可信反饋值, 新產生的可信反饋值會從滑動窗口的一側進入滑動窗口中并記錄進入時間. 滑動窗口設有最大窗口值, 當數據未填充至最大值時, 將未填充數據置為初始值, 當數據填充至最大值時, 最久遠的數據就會從另一側流出. 當產生不可信的反饋時, 將窗口內的可信反饋值設為默認值. 滑動窗口滿足了上述的3條性質, 同時, 針對主觀指標和環境指標可信評估分別設置主觀指標滑動窗口和環境指標滑動窗口, 示意圖如圖1所示. 下面分別介紹兩個滑動窗口.

圖1 雙滑動窗口示意圖
主觀指標滑動窗口中存放的是主觀指標的可信反饋值. 當云用戶調用云服務完成后, 云用戶根據云服務完成情況給出主觀指標的可信反饋值. 云平臺會搜集主觀指標可信反饋值, 并根據滑動窗口數據添加規則將主觀指標可信反饋值放入主觀指標滑動窗口.采用歷史主觀反饋數據進行可信評估, 所以會產生一些信任缺失的問題, 比如惡意云服務在前期提供正常服務, 經過一段時間的積累后迅速轉而提供惡意云服務, 但由于歷史數據的存在導致該云服務仍被認為是可信導致可信評估不準確. 為了避免解決上述問題, 滑動窗口還需滿足一個性質, 信任值的緩慢增長. 緩慢增長是指云服務的可信評估值應該隨可信反饋值次數的增加而緩慢增長. 因為存在惡意用戶和主觀性過大的問題導致少數幾次的可信反饋記錄并不能完全反應主觀指標的可信性.
為了滿足上述提到的性質, 滑動窗口需要添加初始信任窗口和實際信任窗口. 當反饋數據未填充滿初始信任窗口時, 未填充的可信評估值按初始值計算. 填充滿時, 按照實際可信反饋值計算. 主觀指標滑動窗口示意圖如圖1上半部分所示.
當云服務調用完成后, 系統還要自動搜集的環境指標, 并根據環境指標計算得到環境指標可信反饋值,并將環境指標可信反饋值放入環境指標滑動窗口. 由于環境指標可信反饋值系統自動搜集, 環境指標可信反饋值都是真實有效的, 所以環境指標可信評估無需滿足緩慢增長性質, 環境指標滑動窗口無需設置初始信任窗口和實際信任窗口. 環境指標滑動窗口示意圖如圖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%. 故根據單位距離下可信度變化率一致性進行推導, 可以得出單個環境指標的可信度為:

綜合所有環境指標得出環境指標反饋值:

前面介紹了基于雙滑動窗口的云服務可信評估的模型及組成部分, 接下來會對基于雙滑動窗口的云服務可信評估的流程進行詳細介紹, 圖4是云服務可信評估的總體流程示意圖.

圖4 云服務可信評估的總體流程示意圖
云服務可信評估的流程中主要有3種角色, 云服務提供商、用戶、云平臺. 其中云平臺是整個評估過程中的核心角色, 負責搜集數據, 計算可信評估值. 云服務商是云平臺上提供服務的實體, 負責提供特定功能的云服務供用戶調用. 用戶某個服務的具體使用者,調用服務并給出反饋值. 下面詳解介紹每一步驟.
(1) 用戶提出申請想要調用完成某種功能的云服務.
(2) 云平臺從符合要求的云服務中選擇一個云服務供用戶調用.
(3) 云平臺使用滑動窗口根據用戶自身的主觀指標可信反饋值計算主觀指標可信評估值.
利用滑動窗口計算主觀指標可信評估值的方式如下:
在用戶對云服務的調用次數較少, 反饋數據還未能填充滿滑動窗口時, 可信評估值的計算如式(3)所示:

其中,Tsub為 主觀指標的可信評估值,Tsub-i為 第i次主觀指標可信反饋值,tnow和trec分別為當前時間和記錄時間,length為 滑動窗口大小,n為 已填充的反饋值,Tinit為初始可信評估值.
當反饋數據填充滿滑動窗口時, 可信評估值的計算公式如式(4)所示:

(4) 云平臺根據搜集到的環境指標可信反饋值同樣采用式(3)計算環境指標可信評估值Tenv.
(5) 云平臺根據主觀指標可信評估值和環境指標可信評估值給出該云服務是否可信. 當主觀指標可信評估值和環境指標可信評估值均為可信時則該云服務被認定為可信, 否則則認為不可信.

(6) 用戶調用云服務完成后給出主觀指標可信反饋值, 系統搜集環境指標并使用環境指標模型給出環境指標可信反饋值, 并將兩者都存入對應的滑動窗口中, 作為可信評估的基本數據來源.
(7) 系統對比該云服務調用前后可信評估是否一致, 搜集對比數據用于判斷評估的準確性.
以上就是基于雙滑動窗口的云服務可信評估模型的詳細過程, 我們通過雙滑動窗口的方式實現了主客觀相結合的可信評估, 降低了用戶的主觀性帶來的影響, 避免云服務提供環境指標不可信的惡意服務. 下面,通過模擬實驗驗證該模型的優點, 并與其他模型進行對比.
為了驗證基于雙滑動窗口的云服務可信評估模型的優越性, 本文采用了雙滑動窗口可信評估模型, 單主觀指標和單環境指標滑動窗口可信評估模型以及不采用滑動窗口的可信評估模型進行對比. 實驗所用操作系統為Windows 10, 編程語言為Java, 數據存儲采用Redis.
計算環境指標可信評估值首先需要環境指標模型.本測試基于車牌識別云服務, 環境指標設定為流量消耗、響應時間. 模擬一個云平臺, 并在云平臺上提供一個可信的車牌識別云服務. 通過多次調用可信的車牌識別云服務獲取了環境指標的真實數據并計算出樣本中心點. 參照環境指標模型的構建流程, 通過環境指標的數據建立了環境指標模型.
為了使模擬實現盡可能反映真正云服務的情況,本文按照本研究內容定義了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次.
本實驗為了突出雙滑動窗口的優越性所以采用最常用的時間衰減因子, 對比的項目則是不同可信評估模型正確可信評估的次數. 我們定義惡意云服務商提供的惡意行為為最常見的信任濫用行為, 即惡意云服務會在前期提供善意云服務進行信任的累計, 當積累一段時間可信反饋后會利用原來積累的信任值快速轉而提供不可信的服務, 達到自身的目的. 本研究設定的最低可信閾值為0.8, 當給出的可信反饋值或者可信評估值到達0.8及以上時, 就認為其為可信的, 反之則認為是不可信的. 在信任累計階段所有云服務都提0.8–1.0信任值的服務, 在信任濫用階段不同的惡意服務會對對應的指標提供0.2–0.4可信度的服務. 本實驗定義了20個云服務, 50名用戶. 采用可信評估正確的次數和總調用次數的比值作為統計數據, 實驗結果如圖5所示.
圖5中橫坐標代表可信評估進行到第幾輪次, 縱坐標代表每一輪正確進行了可信評估的比例. 在第11輪時開始信任濫用, 惡意云服務提供不可信的云服務. 我們可以看到在第11輪時, 所有模型的正確的可信評估比例都有很大下降. 因為在第11輪惡意云服務開始提供不可信的服務, 由于可信評估都是采用歷史數據進行可信評估導致所有的模型的可信評估比例都有較大下降. 而采用雙滑動窗口模型明顯收到惡意云服務的影響程度較低, 且更快速地恢復到完全正確的可信評估, 因為主觀指標和環境指標不可信云服務雙滑動窗口都可以檢測到并讓其可信評估值快速下降,使可信調用比例快速上升. 對比不使用滑動窗口的模型, 由于只能根據歷史數據進行可信評估導致惡意云服務提供不可信服務時更難被檢測出, 使得可信調用比例緩慢上升. 在使用單滑動窗口的兩組對照中, 由于主觀指標不可信云服務比環境指標不可信云服務更多,所以云服務的調用過程中采用主觀指標滑動窗口的模型相對于采用環境指標滑動窗口的模型就能識別到更多不可信云服務使得其可信評估的比例更高. 上述的實驗結論證明滑動窗口可以更準確地評估惡意云服務,雙滑動窗口的云服務可信評估模型對主客觀不可信的云服務都有較準確的評估.

圖5 不同可信評估模型正確可信評估正確的比例
為了解決在云服務的可信評估問題, 本研究在滑動窗口的基礎上提出了基于雙滑動窗口的云服務可信評估模型, 使用主客觀相結合的方法來對惡意云服務進行識別. 相較以往的研究, 本研究可以更好地識別出環境指標不可信的云服務并且降低用戶主觀性過強帶來的可信評估不準確的問題, 并通過實驗驗證了上述結論.
但是惡意用戶給出惡意評價的情況, 而是在認為用戶的敏感性較高且不存在惡意用戶, 但實際情況可能會存在部分惡意用戶故意給出惡意評價情況. 所以未來可以針對用戶敏感性以及惡意用戶等與用戶相關的問題來對云服務可信評估做進一步的研究.