李 敏,秦志光
(1. 電子科技大學(xué)計算機科學(xué)與工程學(xué)院 成都 611731; 2. 四川師范大學(xué)計算機學(xué)院 成都 610101)
能力開放平臺[1]是近幾年來國內(nèi)外興起的一種網(wǎng)絡(luò)開放模式。2007年由Facebook最先推出開放平臺至今,國內(nèi)外著名的互聯(lián)網(wǎng)公司及電信運營商(如Google APP、人人網(wǎng)、中國電信等)都陸續(xù)進(jìn)入了開放平臺時代。移動互聯(lián)網(wǎng)能力開放平臺[2-3]有以下兩大特點:第一是能對底層異構(gòu)的業(yè)務(wù)能力進(jìn)行抽象和封裝,以統(tǒng)一Open API[4]的形式開放給第三方應(yīng)用,從而降低開發(fā)門檻;其二是第三方開發(fā)的應(yīng)用以服務(wù)的形式統(tǒng)一部署到開放平臺中。
由于能力開放平臺具有的開放特性,不可避免地會受到很多的安全威脅,如開放平臺始祖Facebook就遭受了終端用戶隱私泄漏、開放接口越權(quán)等安全問題。隨著攻擊手段的提高,更多針對能力開發(fā)平臺的安全攻擊將不斷涌現(xiàn)。綜合分析,能力開放平臺主要面臨如下安全問題:1) 開放接口的越權(quán)調(diào)用:能力開放平臺開放的能力資源大部分是計費的,基于利益驅(qū)使,可能會遭受越權(quán)訪問;2) 第三方應(yīng)用加入平臺帶來的安全非獨立性問題:第三方應(yīng)用不僅可以部署到平臺中作為服務(wù)提供給終端用戶,還可以作為能力提供給其他的開發(fā)者,因此第三方應(yīng)用可能會成為整個平臺的一個安全后門;3) 訪問終端用戶數(shù)據(jù)帶來的賬戶隱私威脅:第三方應(yīng)用訪問終端用戶的私有數(shù)據(jù)(如好友列表、位置、照片等信息)時,需要得到終端用戶授權(quán),此時,需要有一種機制去保證在不泄露用戶賬戶信息的情況下進(jìn)行安全的授權(quán)。
因此,搭建一個可信的開放平臺[5]成為了能力開放平臺發(fā)展的重要任務(wù)之一。本文從移動互聯(lián)網(wǎng)下能力開發(fā)平臺的安全問題入手,提出安全目標(biāo),并設(shè)計了層次安全服務(wù)模型,對其中關(guān)鍵技術(shù)進(jìn)行了闡述,最后通過具體項目的實現(xiàn),進(jìn)一步體現(xiàn)了該層次安全模型的優(yōu)點。
能力開放平臺作為一種新穎模式,目前還缺乏較完善的安全架構(gòu)和標(biāo)準(zhǔn)。文獻(xiàn)[2]從一般平臺安全框架,即應(yīng)用安全性、網(wǎng)絡(luò)安全性和系統(tǒng)物理安全性來考慮。文獻(xiàn)[3]也提到分層安全性,并提出以認(rèn)證和訪問控制為核心的安全模型。以上文獻(xiàn)主要是利用傳統(tǒng)的信息安全機制來解決安全問題,該方法能夠解決一般平臺可能遭受的漏洞和攻擊,但是針對開放特性帶來的特殊安全問題不具有很強的針對性。本文正是在此基礎(chǔ)上,根據(jù)能力開放平臺的新特性完成安全策略和機制的設(shè)計和研究,最終達(dá)到安全機制的完美融合,保證能力開放平臺真正意義上的功能開放。
對于開放接口的合法調(diào)用,需要用到訪問控制技術(shù)。文獻(xiàn)[6-7]均提出基于行為的訪問控制(action based access control,ABAC),該模型適用于復(fù)雜的云環(huán)境,其中用戶到角色的分配同環(huán)境、時態(tài)等行為狀態(tài)相關(guān),能有效滿足云環(huán)境下用戶多變性要求,但是仍然不能滿足能力開放平臺的特殊要求。在進(jìn)行能力開放前,能力開放平臺與開發(fā)者之間會簽訂的一份服務(wù)水平協(xié)議[8](service level agreement,SLA)。一方面,SLA明確了能力開放平臺應(yīng)提供的服務(wù)質(zhì)量(quality of service,QoS)的水平指標(biāo);另一方面,SLA明確了客戶的相關(guān)權(quán)利及責(zé)任。能力開放平臺需要結(jié)合SLA進(jìn)行訪問控制,實現(xiàn)接口的合法開放。如何在資源總量有限的前提下滿足盡可能多的SLA,一直都是一個學(xué)術(shù)研究的熱點。文獻(xiàn)[9-10]分別提出了線性規(guī)劃及迭代選擇算法,文獻(xiàn)[11]提出了啟發(fā)式算法,文獻(xiàn)[12]提出了HPSO算法,文獻(xiàn)[13]提出了協(xié)同動態(tài)調(diào)度等有效方法。但是由于開放平臺的參與者數(shù)量龐大,這類方法直接用到能力開放平臺中會造成時間效率過低,因此需要一種更高效簡單的基于SLA的分配算法。
能力開放平臺的開放性還體現(xiàn)在第三方應(yīng)用的融入,由于第三方應(yīng)用自身含有的惡意成分及隱藏的攻擊性,因此有必要對要加入平臺的第三方應(yīng)用進(jìn)行一定的安全監(jiān)測,防止其成為整個平臺的攻擊后門。本文可借鑒現(xiàn)有的靜態(tài)掃描和動態(tài)的沙盒監(jiān)測相結(jié)合的技術(shù),有效地保證平臺的安全。
在授權(quán)給第三方應(yīng)用訪問終端用戶的私有數(shù)據(jù)時,可考慮利用開放的授權(quán)協(xié)議[14](open authorization,Oauth)保證用戶賬戶的隱私安全。該協(xié)議不要求資源擁有者(終端用戶)將賬戶名及密碼提交給第三方應(yīng)用,而是將終端用戶引導(dǎo)到認(rèn)證鑒權(quán)服務(wù)器進(jìn)行鑒權(quán),保證第三方應(yīng)用無法觸及到終端用戶的賬戶信息,從而確保了賬戶的隱私安全,實現(xiàn)了安全的授權(quán)。
能力開放平臺的模型如圖1所示。該模型在PaaS平臺的概念模型[15]基礎(chǔ)上,結(jié)合開放平臺特性,提出的適用于移動互聯(lián)網(wǎng)的能力開放平臺結(jié)構(gòu)。
圖1 移動互聯(lián)網(wǎng)下能力開放平臺模型
在該模型中,UP層是能力開放平臺的目標(biāo)使用者,即應(yīng)用開發(fā)者(developer,Dev);AP層是UP層中各種開發(fā)者開發(fā)的不同類型的第三方應(yīng)用(application,APP);RP層有一系列通用容器(general container,GC)組成,主要包含了各種能力API、安全中間件API及第三方應(yīng)用的部署容器,其中第三方應(yīng)用也可以作為能力資源提供給其他的應(yīng)用,該層還包括向下的能力適配模塊;PP層由一系列能力(Cap/Capability)組成,包括:短信、彩信等電信能力,地圖、云存儲等IT能力及終端用戶的私有數(shù)據(jù)能力。
針對上述對面向移動互聯(lián)網(wǎng)的能力開放平臺的安全問題及相應(yīng)的安全機制的分析,結(jié)合圖1所示平臺模型,本文提出移動互聯(lián)網(wǎng)下能力開放平臺的層次安全服務(wù)模型,如圖2所示。該層次安全模型在UP層和AP層之間增加對每個開發(fā)者的身份認(rèn)證。在AP層和RP層之間加入安全核心安全服務(wù)層。在安全核心層中,在APP部署到平臺中時,需要對APP進(jìn)行接入審核;在APP調(diào)用能力API時,需要基于SLA的訪問控制來控制APP對能力資源的合法調(diào)用,如果調(diào)用的是私有數(shù)據(jù),需要用到OAuth進(jìn)行安全的授權(quán);安全服務(wù)層主要提供安全中間件,其目的是將安全服務(wù)作為能力資源開放給APP。如APP可以調(diào)用安全中間件服務(wù)器封裝好的“數(shù)據(jù)加密”這個安全服務(wù),開發(fā)出具有“數(shù)據(jù)加密”安全屬性的應(yīng)用,這一安全性的達(dá)到無需Dev自己開發(fā)。安全中間件提供的安全服務(wù)可以進(jìn)行修改、增加和刪除,但對于APP是透明的,而安全功能的改變也不會影響到APP的主體功能。
圖2 層次安全服務(wù)模型
在能力開放平臺運行的各個階段中,該安全服務(wù)模型分層次提供了以下安全服務(wù)。
1) APP開發(fā)階段:當(dāng)一個已經(jīng)注冊并同平臺鑒定了能力使用合約的開發(fā)者進(jìn)行APP的開發(fā)時,首先需要進(jìn)行身份的認(rèn)證,確認(rèn)為合法用戶才能登陸平臺提供的開發(fā)環(huán)境。
2) APP部署階段:當(dāng)APP開發(fā)結(jié)束,需要部署到平臺中時,要經(jīng)過測試階段進(jìn)行接入審核,當(dāng)確定為安全的APP時,才可以加入到部署運行GC中。
3) APP運行階段:當(dāng)APP運行時,需要用基于SLA的訪問控制來限定APP只能調(diào)用簽約的能力。在這一階段,安全中間件提供的安全服務(wù)同樣作為能力資源開放給合法的第三方應(yīng)用。如果APP訪問終端用戶的私有資源時,需要利用OAuth協(xié)議對APP進(jìn)行安全授權(quán)。
該層次安全模型有如下4個主要貢獻(xiàn):1) 利用基于SLA訪問控制,有效地防止了能力資源的合法訪問,其中SLA的動態(tài)調(diào)度算法最大限度的保障了用戶的QoS;2) 對第三方應(yīng)用的接入審核,最大限度地解決了安全的非獨立性問題;3) 利用OAuth2.0協(xié)議實現(xiàn)私有數(shù)據(jù)的授權(quán),保護了用戶的賬戶隱私;4)對APP提供的安全中間件服務(wù),滿足了APP對于安全性的一般要求,提高APP的開發(fā)效率,從而提高了整個平臺的實用性及靈活性。
在APP運行階段,當(dāng)APP去調(diào)用能力時,首先會經(jīng)過訪問控制模塊進(jìn)行角色權(quán)限的判別,會得到一個可訪問權(quán)限集P(包括訪問范圍Acc_scope及操作Opr)。如果Acc_scope中存在私有數(shù)據(jù),參考OAuth2.0進(jìn)行授權(quán),得到訪問令牌Access Token,APP再經(jīng)由認(rèn)證鑒權(quán)服務(wù)器訪問可訪問權(quán)限范圍內(nèi)的能力資源和安全中間件資源;如果沒有私有數(shù)據(jù),則無需經(jīng)過授權(quán)即可訪問到相關(guān)資源。具體執(zhí)行過程如圖3所示,授權(quán)流程中,終端用戶并沒有直接將賬戶信息交由APP,而是通過重定向到認(rèn)證鑒權(quán)服務(wù)器來進(jìn)行身份識別,從而保護了用戶賬戶隱私,達(dá)到了安全授權(quán)的目的。
3.2.1 基本模型
在控制APP對能力資源的訪問中,本文提出了基于SLA的訪問控制模型如圖4所示,該模型在傳統(tǒng)的訪問控制模型基礎(chǔ)上提出SLA約定,角色與權(quán)限之間有一定的優(yōu)先層次關(guān)系,該模型很好地保障了用戶的QoS。圖中消費者即能力的訪問者,指第三方應(yīng)用(APP),其他概念同一般的訪問控制模型。角色和權(quán)限都分別設(shè)置了層次關(guān)系。
規(guī)則 1 高級別的角色擁有低級別的角色權(quán)限,即權(quán)限向下繼承。在SLA約定中,不同角色的優(yōu)先級別決定了APP的響應(yīng)順序。
規(guī)則 2 允許同級別的APP對能力資源有只讀權(quán)限,高級別APP對低級別能力資源有所有權(quán)限(讀/寫、執(zhí)行),低級別APP對高于自己級別的能力資源只具有最小權(quán)限(即只可以讀取合約規(guī)定的部分能力資源)。
圖3 基于安全授權(quán)認(rèn)證鑒權(quán)
圖4 基于SLA的訪問控制模型
3.2.2 SLA約定
對于SLA的衡量主要有服務(wù)響應(yīng)時間、吞吐量及可用性等??紤]到實現(xiàn)的方便性及時間效率,SLA的動態(tài)調(diào)度算法主要考慮服務(wù)的響應(yīng)時間,而響應(yīng)時間通常同平臺當(dāng)前的請求密度相關(guān)。該算法適用于當(dāng)現(xiàn)有資源難以滿足全部活躍用戶SLA時,對資源進(jìn)行動態(tài)分配與調(diào)度,滿足級別高的用戶,從而實現(xiàn)能力資源的較優(yōu)配置。
定義 1 請求密度(request density,RD)。應(yīng)用在單位時間內(nèi)發(fā)起的能力訪問請求的頻度,表示了應(yīng)用為平臺帶來的負(fù)載壓力。計算公式為:
RD=Σri/t(1)
式中,Σri表示在時間窗t內(nèi)應(yīng)用的請求數(shù)目;t表示請求處理時間窗。
在資源總量一定情況下,請求密度閾值(rd1)用于判斷平臺的穩(wěn)定性。只要請求數(shù)量的增加不會使請求密度超過該閾值,平臺對于APP的響應(yīng)時間基本不會受影響,即不用去考慮APP優(yōu)先級;而當(dāng)請求密度超出rd1時,響應(yīng)時間會隨著請求密度的增加而增大,此時必須選擇高優(yōu)先級的用戶來保證其SLA。
在討論算法前,平臺會根據(jù)開發(fā)者鑒定的不同的開發(fā)協(xié)議及開發(fā)者自身的不同類型(個人、企業(yè)等)來決定開發(fā)者的等級(同樣,該等級會映射到開發(fā)者開發(fā)的APP)。
算法 1SLA的動態(tài)調(diào)度算法:
該算法中,當(dāng)有新請求或者輪詢等待隊列,有請求ri到達(dá)時,首先更新平臺的請求密度RD,如果RD低于密度閾值rd1,則將ri加入到就緒隊列,對就緒隊列按角色層次進(jìn)行排序,按其優(yōu)先級別響應(yīng);如果RD不低于密度閾值rd1,分成兩種情況討論:1) 如果ri優(yōu)先級大于就緒隊列隊尾優(yōu)先級,則將就緒隊列隊尾請求rj刪除并將rj加入到等待隊列,同時將ri加入到就緒隊列,處理情況同RD 算法1的時間效率主要取決于定時對于Q2的輪詢及對Q1的排序,如果Q1的長度為m,Q2的長度為n,則輪詢Q2的時間復(fù)雜度為O(n),而對于sort(Q1)可以選擇時間效率和穩(wěn)定性較好的堆排序,時間復(fù)雜度為O(mlogm)。 在第三方應(yīng)用APP作為服務(wù)加入到平臺之前,必須經(jīng)過接入審核系統(tǒng),確認(rèn)為安全可信的APP才能加入到部署運行GC中,如圖5所示,以保證整個平臺的可控性。 接入審核系統(tǒng)分為3個階段進(jìn)行審核。 基礎(chǔ)審核:主要包括內(nèi)容安全(有無非法言論,如政治敏感、色情、暴力等)審核及基礎(chǔ)規(guī)范審核。 服務(wù)質(zhì)量審核:主要針對應(yīng)用的服務(wù)質(zhì)量、響應(yīng)速度的審核,還包括應(yīng)用環(huán)境兼容性。 安全審核:主要利用靜態(tài)掃描分析和動態(tài)沙盒仿真審核。沙盒仿真測試是將沙盒和仿真技術(shù)結(jié)合起來,以沙盒為容器,把被測APP放入沙盒中監(jiān)控執(zhí)行,通過記錄日志來分析APP的安全性。利用沙盒仿真測試有幾個優(yōu)勢:1) 檢測過程完善;2) APP中包含的各種攻擊對整個平臺不造成任何影響。 圖5 APP接入審核 身份認(rèn)證在安全服務(wù)層次中適用于兩個方面:一方面是對Dev進(jìn)行身份認(rèn)證;另一方面是圖3中第8步對授權(quán)者的身份驗證。由于討論的能力開放平臺是面向移動互聯(lián)網(wǎng)的,終端用戶主要由桌面終端和移動終端組成,考慮用戶在線和離線兩種情況:1) 用戶在線,主要提供以下兩種身份認(rèn)證方式:① 用戶名/密碼方式;② 動態(tài)消息驗證碼,需要移動終端(如手機、IPAD等)的參與,其特征在于一次產(chǎn)生一個新的消息驗證碼并具有一定的時效性,有效地防止了用戶名/密碼的重放攻擊。2) 用戶離線,可以利用短消息及動態(tài)消息驗證碼相結(jié)合進(jìn)行身份驗證。 本文搭建了一個能力開放平臺,以一個基于位置的服務(wù)(LBS)應(yīng)用為例進(jìn)行相關(guān)測試。 1) 開發(fā)階段:經(jīng)過認(rèn)證的開發(fā)者在在線或離線開發(fā)生成環(huán)境中開發(fā)LBS應(yīng)用,需要調(diào)用開發(fā)平臺提供的地圖能力API及安全中間件提供的加密API; 2) 應(yīng)用部署階段:在測試環(huán)境中經(jīng)過圖4的接入審核,得到一個安全標(biāo)識后即可部署到部署運行服務(wù)器中; 3) 應(yīng)用運行階段:當(dāng)用戶調(diào)用LBS服務(wù),如查詢最近的餐廳位置時,LBS需要得到用戶授權(quán)獲取用戶當(dāng)前位置(如圖6中給LBS取名為test)。根據(jù)SLA的訪問控制獲取地圖能力及加密能力(如圖7)。 經(jīng)測試分析,本文提出的層次安全服務(wù)模型能解決開放接口的越權(quán)調(diào)用、阻止第三方應(yīng)用成為攻擊后門及保證授權(quán)過程中用戶賬戶安全等問題,同時在資源總量一定的前提下,基于SLA的動態(tài)調(diào)度算法能較好地進(jìn)行資源的分配,盡量滿足級別高的應(yīng)用的請求。 圖6 授權(quán)頁面 圖7 獲取訪問令牌 為解決能力開放平臺中能力開放和第三方融入帶來的安全問題,本文提出了一個實用的層次安全服務(wù)模型。該層次安全模型提供了身份認(rèn)證、安全核心層及安全服務(wù)層,其中安全核心層提供了基于OAuth安全授權(quán)的認(rèn)證鑒權(quán)、基于SLA的訪問控制及APP接入審核,安全服務(wù)層提供安全中間件服務(wù)。通過實際項目的應(yīng)用,該模型能為能力開放平臺提供完善的安全防護并能靈活地將安全作為服務(wù)提供給第三方應(yīng)用,從而提高了整個平臺的安全性及方便性。一般開放平臺同能力開放平臺有相似的安全問題,但是基于SLA的訪問控制模型不一定適用于一般開放平臺,因此下一步將研究一個更為通用的訪問控制模型,以保證資源的合法開放,從而進(jìn)一步研究適用于一般開放平臺的安全服務(wù)模型。 [1] HAI H E, MEI N S, JUN D S, et al. A new service delivery open platform (SDOP) architecture[C]//IEEE International Symposium on IT in Medicine & Education. Jinan: IEEE,2009. [2] 高嘉陽, 孟繁燾. Web開放平臺安全體系的研究與設(shè)計[J].宇航計測技術(shù), 2010, 30(5): 39-42.GAO Jia-yang, MEN Fan-tao. Research and design of secutity system for web open platform[J]. Journal of Astronautic Metrology and Measurement, 2010, 30(5):39-42. [3] 高嘉陽. Web開放平臺安全機制的研究與設(shè)計[D]. 北京:北京郵電大學(xué), 2009.GAO Jia-yang. Research and design of security mechanism for Web open platform[D]. Beijing: Beijing University of Posts and Telecommunications, 2009. [4] KIM E, KIM K, PETER H, et al. A multi-view API impact analysis for open SPL platform[C]//The 12th International Conference on Advanced Communication Technology(ICACT). Phoenix Park: [s.n.], 2010. [5] ENGLAND P, LAMPSON B, MANFERDELLI J, et al. A trusted open platform[J]. IEEE Journal of Computer, 2003,36(7): 55-62. [6] 林果園, 賀珊, 黃皓, 等. 基于行為的云計算訪問控制安全模型[J]. 通信學(xué)報, 2012, 33(3): 59-67.LIN Guo-yuan, HE Shan, HUANG Hao, et al. Access control security model based on behavior in cloud computing environment[J]. Journal of Communications,2012, 33(3): 59-67. [7] 李鳳華, 王巍, 馬建峰, 等. 基于行為的訪問控制模型及其行為管理[J]. 電子學(xué)報, 2008, 3(10): 1881-1890.LI Feng-hua, WANG Wei, MA Jian-feng, et al. Action-based access control model and administrator of actions[J]. Acta Electronica Sinica, 2008, 3(10): 1881-1890. [8] 胡春華, 陳曉紅, 吳敏, 等. 云計算中基于SLA的服務(wù)可信協(xié)商與訪問控制策略[J]. 中國科學(xué)信息科學(xué), 2012,42(3): 314-332.HU Chun-hua, CHEN Xiao-hong, WU Min, et al. A service trust negotiation and access control strategy based on SLA in cloud computing[J]. Scientia Sinica Informationis, 2012,42(3): 314-332. [9] CARDOSO J, SHETH A, MILER J, et al. Quality of service for workflows and Web service processes[J]. Web Semantics,2004, 1(3): 281-308. [10] SU Sen, LI Fei, YANG Fang-chun. Iterative selection algorithm for service composition in distributed environments[J]. Science in China Series F: Information Sciences, 2008, 51(11): 1841-1856. [11] OH S C, LEE D, KUMARA S R, et al. Effective Web service composition in diverse and large-scale service networks[J]. IEEE Transaction on Services Computing,2008, 1(1): 15-32. [12] HU Chun-hua, WU Min, LIU Guo-ping, et al. QoS scheduling algorithm based on hybrid particle swarm optimization strategy for Web services workow[C]//The 6th International Conference on Grid and Cooperative Computing. Los Alamitos: [s.n.], 2007. [13] JIANG Wei-jin, ZHANG Lian-mei, WANG Pu. Dynamic scheduling model of computing resource based on MAS cooperation mechanism[J]. Science in China Series F:Information Sciences, 2009, 52(8): 1302-1320. [14] Network Working Group. The OAuth 2.0 Authorization Protocol draft-ietf-oauth-v2-20[S/OL]. [2012-08-22].http://tools.ietf.org/html/draft-ietf-oauth-v2-20,2011. [15] 徐鵬, 陳思, 蘇森. 互聯(lián)網(wǎng)應(yīng)用PaaS平臺體系結(jié)構(gòu)[J].北京郵電大學(xué)學(xué)報, 2011, 35(1): 120-124.XU Peng, CHEN Si, SU Sen. Architecture of PaaS for Internet applications[J]. Journal of Beijing University of Posts and Telecommunications, 2011, 35(1): 120-124.3.3 接入審核
3.4 身份認(rèn)證
4 測試與分析
5 結(jié) 束 語