韓培勝,趙 勇,常朝穩(wěn),秦 晰
(1.北京工業(yè)大學(xué) 計算機學(xué)院,北京100124;2.信息工程大學(xué) 密碼工程學(xué)院,河南 鄭州450004)
可信計算基TCB-(trusted computing base)[1]是計算機系統(tǒng)安全訪問控制[2]等安全機制的基礎(chǔ),在應(yīng)用系統(tǒng)中,應(yīng)用層TCB 負責實現(xiàn)應(yīng)用層的訪問控制等安全機制,然而,由于應(yīng)用層TCB在計算機體系結(jié)構(gòu)中位于硬件層、操作系統(tǒng)層之上,層次較高,極易受到來自底層-(操作系統(tǒng)層或硬件層)的攻擊而被旁路和破壞,造成系統(tǒng)安全機制失效。為了解決該問題,文獻-[3,4]提出了一種單機終端上的TCB縱向擴展的機制,以防止在單機終端上應(yīng)用系統(tǒng)TCB被旁路或破壞。
隨著以服務(wù)為核心計算模式的發(fā)展[5],單機計算模式無法滿足企業(yè)應(yīng)用服務(wù)系統(tǒng)作為計算中心的需求,為此,企業(yè)應(yīng)用系統(tǒng)一般通過將不同的業(yè)務(wù)功能部署在不同的服務(wù)器上以構(gòu)成集群系統(tǒng),整個系統(tǒng)的訪問控制等安全功能也是由集群中各節(jié)點的TCB相互協(xié)作來實現(xiàn)。此時,由于集群節(jié)點數(shù)據(jù)傳輸?shù)牟豢尚判裕瑐卧?、假冒、破壞等攻擊手段極易實施,安全上下文信息在各集群節(jié)點TCB間傳遞時很容易受到破壞,另外,集群中假冒或被破壞的TCB也有可能影響整個系統(tǒng)安全機制正常運行,可以看出,在集群環(huán)境中,上述文獻提出的單機擴展機制并不能解決這些問題。
為此,本文提出了一種集群TCB的概念,通過在集群中構(gòu)建一個全局的虛擬TCB來確保應(yīng)用系統(tǒng)安全機制正常發(fā)揮作用,解決單機TCB擴展機制在集群環(huán)境下存在的問題,以保障應(yīng)用系統(tǒng)的安全。
如圖1所示,在一個典型的集群系統(tǒng)中,集群由各集群節(jié)點相互連接構(gòu)成,應(yīng)用系統(tǒng)中的每個子系統(tǒng)分別部署于不同的集群節(jié)點中,每個應(yīng)用子系統(tǒng)依賴于該節(jié)點TCB提供安全支撐,各節(jié)點TCB之間相互連接構(gòu)成了一個全局的集群TCB,該TCB作為整個應(yīng)用系統(tǒng)的虛擬TCB存在,為該應(yīng)用系統(tǒng)提供安全支撐,下面以形式化的方式給出集群TCB的定義。
圖1 集群TCB結(jié)構(gòu)
定義1 節(jié)點TCB,集群中每個集群節(jié)點的TCB 定義為節(jié)點TCB,節(jié)點TCB 為安全硬件、操作系統(tǒng)安全組件、應(yīng)用層安全組件的集合,節(jié)點i的TCB記為Ti。
定義2 可信連接管道,集群中兩個節(jié)點TCB 相互連接并傳遞安全上下文信息的可信通道稱為可信連接管道,Ti和Tj可信連接管道記為Pij= (Ti,Tj)。
定義3 集群TCB,集群中各節(jié)點TCB及節(jié)點TCB間可信連接管道的集合稱為集群TCB。
根據(jù)集群TCB中各節(jié)點TCB 連接的特點,集群TCB可用無向圖的方式表示,將有n 個節(jié)點的集群TCB 記為G,集群TCB 可表示為:G=<V,E>,其中V= {T1,T2,…Tn},E= {Pij|節(jié)點i與j之間存在可信連接管道}。
由集群TCB 的定義可以看出,可信連接管道是集群TCB的一個重要組成部分,其安全性將直接影響集群TCB的安全,下面將給出可信連接管道的構(gòu)建方法。
為了保障集群TCB連接的安全性,可信連接管道應(yīng)該是安全可信的,具體來說,其應(yīng)具備以下特性:
(1)身份可信性,即確保節(jié)點TCB 的身份是合法的,通過身份可信,能夠防止非授權(quán)節(jié)點非法接入對集群TCB的干擾和破壞;
(2)狀態(tài)可信性,即確保節(jié)點TCB的完整性狀態(tài)是正常的,通過狀態(tài)可信,能夠在合法節(jié)點處于不安全狀態(tài)時,防止其對集群TCB整體的安全狀態(tài)造成影響;
(3)消息可信性,即確保節(jié)點TCB間消息傳遞是完整不受干擾的,通過消息可信,能夠防止安全上下文信息在傳遞時不被篡改和偽造。
為了實現(xiàn)這些安全特性,可信連接管道以公鑰密碼體系[6]為基礎(chǔ)、利用可信計算[7]思想建立。為了確保集群節(jié)點身份的可信,如圖2 所示,集群系統(tǒng)設(shè)立了證書中心CA,為每個節(jié)點分別頒發(fā)了一張數(shù)字證書,證書對應(yīng)的節(jié)點私鑰存放在節(jié)點硬件安全模塊中,同時該模塊中還內(nèi)置了CA 的根證書;為了使節(jié)點能夠及時獲取已經(jīng)撤銷的證書信息,系統(tǒng)設(shè)立了LDAP 服務(wù)器,CA 能夠通過LDAP服務(wù)器發(fā)布證書撤銷列表CRL,各節(jié)點也能夠通過LDAP及時下載更新CRL;為了確保節(jié)點工作狀態(tài)的可信性,集群系統(tǒng)中設(shè)立了狀態(tài)評估中心,該中心能夠評估每個節(jié)點的狀態(tài)的完整性,同時為了表示狀態(tài)評估中心的身份,CA也為狀態(tài)評估中心頒發(fā)了數(shù)字證書。
圖2 基于CA 的證書體系結(jié)構(gòu)
如圖3所示,TA和TB分別是集群系統(tǒng)中節(jié)點A 和節(jié)點B的節(jié)點TCB,TA和TB之間建立可信連接管道的步驟分為3個階段,分別是身份認證階段、狀態(tài)評估階段、消息通訊階段,本文在公鑰證書體系的基礎(chǔ)上,通過設(shè)計專用安全協(xié)議,用以確保3個階段的安全性。
圖3中消息中各符號說明如下:NX,節(jié)點X 產(chǎn)生的隨機數(shù);CERTX,節(jié)點X 的證書;ENCX(Y),采用節(jié)點X 的公鑰加密數(shù)據(jù)Y;SIGX(Y),采用節(jié)點X 的私鑰對數(shù)據(jù)Y簽名;K,會話密鑰;HMK(Y),采用會話密鑰K 對報文Y 計算HMAC (加密散列值)[8];SN,遞增消息序列號;STX,節(jié)點X 的狀態(tài)信息;R,節(jié)點狀態(tài)評估結(jié)果;MSG,TCB節(jié)點間訪問控制上下文消息。下面分別對各階段處理過程進行說明:
(1)身份認證:身份認證階段負責完成可信連接管道雙方身份的確認,并協(xié)商出保護后期通訊完整性的會話密鑰,其步驟如下:
步驟1 節(jié)點A 生成隨機數(shù)NA,連同A 的證書一起發(fā)送給B;
步驟2 節(jié)點B驗證A 的證書有效性,如果證書有效,則生成會話密鑰K 和隨機數(shù)NB,用自己的私鑰對K 和NA簽名,并用A的公鑰加密,最后連同NB和B證書發(fā)送給A;
圖3 可信連接管道的建立過程
步驟3 節(jié)點A 驗證B的證書有效性,如果證書有效,則用自己的私鑰解開加密消息,然后用B的證書驗證B 對消息簽名有效性,并檢查消息中的NA與步驟1中生成隨機數(shù)的是否一致,上述過程中有一個驗證失敗則斷開連接;所有驗證通過后,A 保存會話密鑰K,對K 和NB進行哈希運算,之后再用K 加密哈希值發(fā)送給B;
步驟4 B使用K 解密收到的消息,計算K 和NB的哈希值,檢查是否與解密后的明文一致,如果一致則認證身份認證成功,否則認為身份認證失敗并斷開連接。
上述步驟2和步驟3中,雙方分別驗證了對方證書的有效性,具體的證書有效性驗證方法如下:首先基于根證書驗證對方證書的簽名,然后檢查證書的有效期限是否到期,最后通過CRL檢查證書是否已經(jīng)被CA 撤銷,所有檢查通過后才認為證書是合法的。
(2)狀態(tài)評估:狀態(tài)評估主要是檢查節(jié)點TCB的完整性狀態(tài)是否合法,實施時由狀態(tài)評估中心統(tǒng)一對終端的狀態(tài)進行評估,并給出結(jié)果,主要步驟如下:
步驟1 節(jié)點A 通過文獻 [3]所述擴展方式計算節(jié)點TCB各部件完整性狀態(tài)STA,利用私鑰對完整性狀態(tài)進行簽名,加入遞增序列號SN,并利用K 計算其HMAC 值,將這些信息一起發(fā)送給B;節(jié)點B收到消息后,利用K 計算HMAC值驗證消息完整性,并檢查A 簽名的有效性,之后用自己的私鑰對STA簽名并發(fā)送給狀態(tài)評估中心;
步驟2 狀態(tài)評估中心收到該消息后,評估TCB 完整狀態(tài)有效性,并返回帶自己簽名的評估結(jié)果;B 收到評估結(jié)果后,檢查狀態(tài)評估中心簽名有效性,如果狀態(tài)評估失敗,則斷開連接,如果評估成功,則將自己的狀態(tài)消息發(fā)送給A;A 收到消息后重復(fù)以上過程驗證B 狀態(tài)有效性。
(3)消息通訊:消息通訊主要用于傳遞訪問控制的上下文信息,整個消息包括遞增序列號,訪問控制上下文信息和采用K 加密得到的HMAC,接收者收到信息后需要驗證HMAC 的有效性。每當傳遞一條消息后,雙方各自保存的遞增序列號都會增加1,如果某個節(jié)點發(fā)現(xiàn)收到的消息序列號小于當前保存的消息序列號,則丟棄該消息。
由上文可知,可信連接管道建立分為3 個階段,下面對其安全性分別進行分析。
(1)身份認證安全性分析:身份認證由安全協(xié)商協(xié)議完成,本文采用BAN 邏輯進行協(xié)議安全性證明[9],以下是具體的證明過程。
初始化假設(shè)如下:
3)A|≡#NA,由于NA由A 自己生成,因此A 相信NA是新鮮的;
6)B|≡#NB,由于NB由B生成,因此B相信NB是新鮮的。
協(xié)議理想化如下
根據(jù)BAN 邏輯接收規(guī)則,由理想化式 (2)知
根據(jù)邏輯接收規(guī)則,由式 (4)和1)得
根據(jù)邏輯消息含義規(guī)則,由式 (5)和2)得
根據(jù)新鮮性規(guī)則,由3)得
根據(jù)臨時值驗證規(guī)則,由式 (6)和式 (7)得
根據(jù)信仰規(guī)則,由式 (8)得
根據(jù)仲裁規(guī)則,由式 (9)和4)得
根據(jù)消息含義規(guī)則,由理想化式 (3)和5)知
根據(jù)新鮮性規(guī)則,由6)得
根據(jù)臨時值驗證規(guī)則,由式 (11)和式 (12)得
根據(jù)信仰規(guī)則,由式 (13)得
由以上證明,得到了一級信仰式 (10)和6)以及二級信仰式 (9)和式 (14),說明A 和B 均信任會話密鑰K,且A 相信B信任會話密鑰K,同時B相信A 信任會話密鑰K,身份認證協(xié)議安全性證明完畢。
(2)狀態(tài)評估階段安全性分析:在狀態(tài)評估階段,通過對節(jié)點TCB各部件完整性狀態(tài)的評估,能夠反映出當前節(jié)點TCB是否受到破壞,一旦某個節(jié)點TCB 受到破壞,其將無法連接任何一個正常節(jié)點,確保了整個集群TCB狀態(tài)的可信性。
在節(jié)點TCB與狀態(tài)評估中心交互的過程中,狀態(tài)評估結(jié)果經(jīng)過了狀態(tài)評估中心的私鑰進行簽名,同時所有消息均帶有唯一序列號,防止消息被重用,確保了狀態(tài)評估結(jié)果的權(quán)威性和可信性。
(3)消息通訊階段安全性分析:在消息通訊階段,所有消息均采用基于會話密鑰的HMAC保護,攻擊者必須知道會話密鑰才能夠偽造消息,而會話密鑰是在身份認證階段通過公鑰保護傳輸?shù)?,攻擊者無法獲取,一旦消息被篡改,通過HMAC計算便能夠發(fā)現(xiàn),從而保護了消息的完整性,同時每次通訊消息序列號都會遞增,能夠防止重放攻擊[10]的發(fā)生。
由以上分析可以看出,可信連接管道建立機制通過在安全協(xié)商基礎(chǔ)上引入狀態(tài)評估,實現(xiàn)了身份、狀態(tài)和消息的可信性,確保了可信連接管道的安全可信。
由集群TCB定義可知,若干個節(jié)點TCB 通過可信連接管道相互連接構(gòu)成一個無向圖,最終形成的無向圖G 應(yīng)具有如下性質(zhì):
性質(zhì)1:圖G 中不存在孤立節(jié)點。
性質(zhì)2:圖G 中不含有平行邊,即兩個節(jié)點間只存在一條連接。
性質(zhì)3:圖G 中允許存在回路。
為了滿足集群TCB 性質(zhì)要求,集群TCB 構(gòu)建必須依據(jù)一定的規(guī)則和步驟建立,不能是無序的,否則極易發(fā)生連接重復(fù)和連接孤島的情況,為此,本文制定了一種由初始可信節(jié)點逐步擴展的構(gòu)建機制,其構(gòu)建過程如下:
步驟1 在初始狀態(tài)下,集群TCB 是空集,即G=<V,E>,V=Φ,E=Φ;
步驟2 選定一個集群節(jié)點T1為初始可信節(jié)點,并把該T1加入到圖G 中,此時V= {T1},E=Φ;
步驟3 節(jié)點Ti與V 中的某一個節(jié)點Tj利用可信連接管道構(gòu)建機制建立安全可信連接,此時,如果Ti不屬于V,則V=V∩ {Ti},E=E∩ {Pij};若Ti屬于V,且Pij不屬于E,則E=E∩ {Pij},否則認為出現(xiàn)平行邊,需要斷開當前連接;
步驟4 重復(fù)步驟3,最終建立起的圖G 包含所有可信節(jié)點。
通過以上步驟可以看出,集群TCB的構(gòu)建過程是從一個節(jié)點TCB的可信開始,通過逐個驗證的方法,逐步擴展其可信邊界,最終將整個集群的可信TCB節(jié)點都納入到可信集合中,通過該過程構(gòu)建的集群TCB同時也符合了集群TCB的基本性質(zhì)。在實施過程中,應(yīng)確保集群TCB關(guān)系明確、結(jié)構(gòu)層次清楚,實施時可以采用星形、樹形結(jié)構(gòu)等層次結(jié)構(gòu)良好的方式來組織節(jié)點間連接關(guān)系,以便于管理和維護。
如圖4左邊所示為星形TCB 構(gòu)建方式,其中T1為初始可信節(jié)點,其它節(jié)點以T1為中心分別建立可信連接管道。此種擴展方式優(yōu)點是結(jié)構(gòu)簡單、易于實施,缺點是節(jié)點T1壓力較大,可能存在性能上的瓶頸。如圖4右邊所示為樹形的TCB 構(gòu)建方式,其中T1為初始可信節(jié)點,T2、T3分別與T1建立可信連接管道后,便成為可信節(jié)點,此時T2、T3又可與自己的子節(jié)點建立可信連接,依次類推,最終形成了以節(jié)點T1為根的樹形結(jié)構(gòu)。此種擴展方式的優(yōu)點是組織結(jié)構(gòu)靈活,分散了根結(jié)點的壓力,缺點是管理組織相對復(fù)雜。
圖4 基于星形和樹形的TCB構(gòu)建方式
構(gòu)建方式可以根據(jù)集群的規(guī)模和復(fù)雜度等情況進行選擇,當集群節(jié)點數(shù)量較少且結(jié)構(gòu)簡單時,可以采用星形結(jié)構(gòu),當集群節(jié)點數(shù)量較多且系統(tǒng)部署結(jié)構(gòu)復(fù)雜時,可以采用擴展性好的樹形結(jié)構(gòu),根據(jù)集群實際情況,也可采用星形和樹形相結(jié)合的構(gòu)建方式。
本文提出的一種基于可信連接的集群TCB構(gòu)建技術(shù)通過構(gòu)建一個可信的全局虛擬TCB,將TCB的擴展范圍從單機延伸到了網(wǎng)絡(luò)集群環(huán)境,該技術(shù)使安全上下文在節(jié)點間傳輸時不會被假冒和破壞,解決了目前TCB擴展機制無法應(yīng)用于集群環(huán)境的問題,經(jīng)過形式化的證明,所提出的擴展方法是安全可信的。該技術(shù)可用于解決企業(yè)集群系統(tǒng)中應(yīng)用系統(tǒng)TCB的安全問題,也可廣泛應(yīng)用于云計算、大數(shù)據(jù)處理等集群計算模式的系統(tǒng)中,為這些系統(tǒng)提供有效的安全保障。
[1]CSC-STD-001-83.Department of defense trusted computer system evaluation criteria[S].2000.
[2]LI Fenghua.Research status and development trends of access control model[J].Acta Electronica Sinica,2012,40 (4):805-813 (in Chinese).[李鳳華.訪問控制模型研究進展及發(fā)展趨勢 [J].電子學(xué)報,2012,40 (4):805-813.]
[3]LI Yong,WANG Fei.Research of trusted expand model of TCB [J].Computer Engineering and Applications,2010,46(13):1-3 (in Chinese).[李勇,王飛.TCB可信擴展模型研究 [J].計算機工程與應(yīng)用,2010,46 (13):1-3]
[4]LIAO Jianhua,ZHAO Yong.Channel-based TCB extension model[J].Journal of Beijing University of Technology,2010,36 (5):592-596 (in Chinese).[廖建華,趙勇.基于管道的TCB擴展 模 型 [J].北 京 工 業(yè) 大 學(xué) 學(xué) 報,2010,36 (5):592-596.]
[5]Tsai Wei-Tek.Service-oriented cloud computing architecture[C]//7th International Conference on Information Technology:New Generations,2010:684-689.
[6]Canetti R,Shahaf D,Vald M.Composable authentication with global PKI [DB/OL].http://eprint.iacr.org/2014/432.pdf,2014.
[7]SHEN Changxiang,ZHANG Huanguo, WANG Huaimin.Research and development of trusted computing [J].Scientia Sinica Informationis,2010,40 (2):139-166 (in Chinese).[沈昌祥,張煥國,王懷民.可信計算的研究與發(fā)展 [J].中國科學(xué):信息科學(xué),2010,40 (2):139-166.]
[8]Neal Koblitz,Alfred Menezes.Another look at HMAC [J].Journal of Mathematical Cryptology,2013,7 (3):225-251.
[9]WANG Zhengcai,XU Daoyun.Reliability analysis and improvement of BAN logic[J].Computer Engineering,2012,38 (17):110-115(in Chinese).[王正才,許道云.BAN邏輯的可靠性分析與改進[J].計算機工程,2012,38 (17):110-115.]
[10]Muntean C,Dojen R,Coffey T.Establishing and preventing a new replay attack on a non-repudiation protocol[C]//IEEE 5th International Conference on Intelligent Computer Communication and Processing,2009:283-290.