錢(qián) 錦 劉建華
(1.西安郵電大學(xué)計(jì)算機(jī)學(xué)院 西安 710061)(2.西安郵電大學(xué)信息中心 西安 710061)
如今相對(duì)脆弱的終端成為了信息安全的薄弱環(huán)節(jié),對(duì)終端的安全證明提出了更高的要求,可信計(jì)算組織TCG(Trusted Computing Group)認(rèn)為如果終端的行為總是以預(yù)期的方式,達(dá)到預(yù)期的目標(biāo),那么這樣的實(shí)體是可信的[12]。
TCG通過(guò)嵌入在硬件的可信平臺(tái)模塊(Trust?ed Platform Module,TPM)實(shí)現(xiàn)了自下往上的安全模式,基于TPM,遠(yuǎn)程證明實(shí)現(xiàn)了端對(duì)端的終端系統(tǒng)信任關(guān)系。TCG提出的可信計(jì)算體系中,遠(yuǎn)程證明是基于二進(jìn)制散列值,因此被稱(chēng)為二進(jìn)制證明[13~14],但是它最大的缺點(diǎn)是對(duì)平臺(tái)配置隱私的暴露,證明過(guò)程中都要求出示整個(gè)平臺(tái)的配置的完整性度量值[15]。
針對(duì)二進(jìn)制證明的缺點(diǎn),Sadeghi等提出利用屬性取代二進(jìn)制完整性值作為度量和證明的基礎(chǔ)[16],屬性證明旨在解決二進(jìn)制遠(yuǎn)程證明的私密性、擴(kuò)展性、可升級(jí)性等問(wèn)題,使證明者即使沒(méi)有獲得該平臺(tái)的配置信息也能證明該平臺(tái)是可信的[11]。
然而現(xiàn)有的基于屬性的遠(yuǎn)程證明還存在很多缺陷:1)現(xiàn)有的屬性證明的粒度很粗,都是對(duì)整個(gè)平臺(tái)的安全屬性進(jìn)行證明。2)屬性的撤銷(xiāo)很困難[1]。
本文基于屬性遠(yuǎn)程證明,針對(duì)屬性證明粒度很粗的特點(diǎn),設(shè)計(jì)分析算法,對(duì)不同終端的的安全要求進(jìn)行細(xì)粒度分析,諸如真實(shí)性、抗抵賴性、保密性等,在具體問(wèn)題中對(duì)這些性質(zhì)的權(quán)重要求還會(huì)有偏差,這些都可以由服務(wù)提供者(Service Provider,SP)自己根據(jù)需求決定,通過(guò)算法分析得到理想的結(jié)果后再對(duì)其進(jìn)行遠(yuǎn)程證明,旨在解決基于屬性的遠(yuǎn)程證明粒度粗的問(wèn)題,提高遠(yuǎn)程證明的可靠性。
遠(yuǎn)程屬性證明系統(tǒng)包含五個(gè)主要部分[1]:生產(chǎn)廠商(S),撤銷(xiāo)和發(fā)布屬性證書(shū)的證書(shū)認(rèn)證機(jī)構(gòu)(CA),用戶本身,即需要被遠(yuǎn)程證明的主機(jī)(U),服務(wù)提供者,即提出遠(yuǎn)程證明的一端(SP),驗(yàn)證中心,驗(yàn)證屬性證書(shū)是否已被撤銷(xiāo)(VC)。
用戶收到服務(wù)提供者對(duì)平臺(tái)屬性的證明請(qǐng)求后,最終選出最符合安全要求的終端平臺(tái),計(jì)算平臺(tái)屬性簽名向服務(wù)提供者提供遠(yuǎn)程證明,具體如下圖1所示。
圖1 遠(yuǎn)程屬性證明模型圖
屬性遠(yuǎn)程證明過(guò)程如下圖2所示。
圖2 遠(yuǎn)程屬性證明過(guò)程圖
屬性遠(yuǎn)程證明過(guò)程偽代碼:
1 global define ca_attribute;
2 global define secure_request;
3 global define update_attribute;
4 global define origin_attribute;
5def attes(t):
6 while(1)://始終監(jiān)聽(tīng)證明請(qǐng)求
7 i(fsecure_request):
8 u=compare(u1,u2,u3);//
算法分析
9 if(u_ca_attribute)://查
看證書(shū)
10 remote_attest
(u);//屬性證明
11 exit 0;
12 def check():
13 if(update_attribute ! =origin_attri?bute)://更新屬性證書(shū)
14 update(attribute);
15 exit 0;
現(xiàn)有的屬性證明粒度很粗,是對(duì)整個(gè)平臺(tái)的安全屬性進(jìn)行證明,無(wú)法對(duì)平臺(tái)的配置狀態(tài)和運(yùn)行狀態(tài)進(jìn)行更加細(xì)致的安全證明[1],本文提出的算法重新定義了屬性,將屬性的意義擴(kuò)展了,凸顯了細(xì)粒度的特性。
定義1(屬性)屬性Ap表示為一系列終端平臺(tái)的安全屬性Ai,對(duì)于終端,Ai表示為“終端平臺(tái)軟硬件符合的安全指標(biāo)或描述”,形式化表示如下:
定義2(證明請(qǐng)求)證明請(qǐng)求Rp表示為一系列安全要求對(duì)()組成的集合,對(duì)于待驗(yàn)證終端,()表示為“服務(wù)提供方對(duì)應(yīng)用終端提出的安全要求以及該安全要求在總的終端選擇決策中占的權(quán)重”。形式化表示如下:
定義3(安全要求權(quán)重比)安全要求權(quán)重比Wp表示為一系列安全要求權(quán)重比Wij的集合,Wij由計(jì)算得到,表示不同安全要求對(duì)于最終決策的影響力,計(jì)算公式如下:
Wp的形式化表示如下:
算法采用層次分析法(AHP)對(duì)平臺(tái)屬性進(jìn)行分析,參數(shù)主要基于證明請(qǐng)求Rp和安全要求權(quán)重比Wp,主要步驟如下:
1)構(gòu)造階梯層次機(jī)構(gòu)
圖3 層次分析法模型
2)構(gòu)造兩兩比較判斷矩陣
構(gòu)造準(zhǔn)測(cè)層的成對(duì)比較矩陣A0、A1、A2、A3,對(duì)于每一個(gè)矩陣,其結(jié)構(gòu)即A2根據(jù)用戶端的組件屬性證書(shū)確定各個(gè)因素之間的比較尺度,而A3則根據(jù)服務(wù)提供端發(fā)出的對(duì)不同服務(wù)的安全要求權(quán)重比Wp來(lái)決定,其中
3)一致性校驗(yàn)
4)層次排序
在構(gòu)造了成對(duì)比較矩陣后,對(duì)于方案層B相對(duì)于準(zhǔn)則層A的排序,我們分別用A0、A1、A2的最大特征根n的歸一化向量分別表示方案層相對(duì)于準(zhǔn)測(cè)層的排序,而準(zhǔn)則層A相對(duì)于目標(biāo)層Z的排序則用A3的最大特征根n的歸一化向量{a1,a2,a3,…,am}進(jìn)行排序,
則方案層相對(duì)于目標(biāo)層的層次總排序即B層方案對(duì)總目標(biāo)的權(quán)值為,B1:a1b11+a2b12+a3b13+…+amb1m,B2:a1b21+a2b22+a3b23+…+amb2m,B3:a1b31+a2b32+a3b33+…+amb3m,B1,B2,B3分別表示在對(duì)所有準(zhǔn)則綜合判定的基礎(chǔ)上的方案權(quán)值大小,最終根據(jù)這個(gè)權(quán)值的大小決策。
5)決策
最后的決策按照B層方案對(duì)總目標(biāo)的權(quán)值大小,進(jìn)行決策,選取較大的方案,即從P1,P2,P3中選取了一個(gè)作為證明對(duì)象,符合了服務(wù)提供端的安全要求。
方案確定后再對(duì)該方案進(jìn)行遠(yuǎn)程證明,而不需要對(duì)所有的相關(guān)組件進(jìn)行屬性證明,使屬性證明更加細(xì)粒度。
通過(guò)在終端平臺(tái)寫(xiě)算法腳本,接受來(lái)自服務(wù)提供端的安全請(qǐng)求,完成屬性分析,偽代碼如下:
1 def attribute_attest:
2 generate_matrix( Rp,Wp);//構(gòu)造成對(duì)比較矩陣,Rp、Wp為服務(wù)提供方的安全參數(shù)
3i(fconsistency_check())://進(jìn)行一致性校驗(yàn)
4 W1=calculate(matrix,λ);//計(jì)算權(quán)重
5 W2=calculate(matrix,λ);
6 W3=calculate(matrix,λ);
7 result=max(W1,W2,W3);//最終決策
8 return result;
我們?cè)赨buntu 14.04平臺(tái)上通過(guò)Xen搭建了vTPM,并安裝了TPM模擬器,實(shí)現(xiàn)了兩個(gè)可信平臺(tái),一個(gè)作為服務(wù)器,一個(gè)作為客戶端,具體TPM信息如圖4所示。
采用網(wǎng)上支付情形做實(shí)例,分別對(duì)計(jì)算機(jī)網(wǎng)絡(luò)安全環(huán)境、操作系統(tǒng)安全、數(shù)據(jù)庫(kù)安全等屬性安全入手,進(jìn)行屬性分析,做遠(yuǎn)程證明,終端運(yùn)行算法代碼的時(shí)間可忽略不計(jì),我們考慮單純的屬性遠(yuǎn)程證明時(shí)間和本文算法下的屬性遠(yuǎn)程證明時(shí)間,證明性能對(duì)比結(jié)果如圖5所示。
圖5 屬性證明性能對(duì)比圖
由上圖容易發(fā)現(xiàn)證明一個(gè)插件數(shù)量眾多的組件耗費(fèi)的時(shí)間可觀,使用屬性遠(yuǎn)程證明只需證明系統(tǒng)能夠大大減少證明時(shí)間,提高證明效率,在用戶端增加了分析算法后能對(duì)組件進(jìn)行分析,選取最合適的終端。
通過(guò)本文算法能夠有效找出最符合服務(wù)提供者安全性要求的終端平臺(tái),成功應(yīng)對(duì)了當(dāng)出現(xiàn)更加細(xì)致的證明需求時(shí),屬性證明過(guò)于簡(jiǎn)單的問(wèn)題。在算法分析中只涉及性能參數(shù)的對(duì)比,并不涉及終端的類(lèi)型、版本等隱私信息,在安全性上有保障,在效率上有提高。