李林峰, 孔祥營, 張振華
(江蘇自動化研究所, 江蘇 連云港 222061)
最初的專用網(wǎng)因為對網(wǎng)絡(luò)安全的需求不高,主要側(cè)重解決互聯(lián)互通問題。但近年來,別國爆出的專用網(wǎng)遭受新型的APT攻擊、預(yù)置“特殊后門”等網(wǎng)絡(luò)攻擊事件說明物理隔絕的專用網(wǎng)正面臨著嚴(yán)峻的安全考驗,有必要將安全防護(hù)作為一項重要的設(shè)計因素予以考慮。特別是在軍事專用網(wǎng)中,由于其作戰(zhàn)任務(wù)明確,且對信息系統(tǒng)有高可靠、高實時的要求,以往在主機(jī)上配置防火墻、入侵檢測系統(tǒng)、漏洞掃描等安全設(shè)備的防御措施已不足以應(yīng)對現(xiàn)代日趨復(fù)雜的攻擊方法。根據(jù)專用網(wǎng)節(jié)點數(shù)量有限,網(wǎng)絡(luò)拓?fù)湎鄬潭?專用網(wǎng)接入人員與接入設(shè)備受限等特點,可針對性地引入先進(jìn)的新型安全技術(shù),充分利用專用網(wǎng)自身優(yōu)勢來提高專用網(wǎng)的安全性能。
可信計算技術(shù)的提出是為了提高計算機(jī)系統(tǒng)自底向上的可監(jiān)控性,它通過可信平臺模塊對計算機(jī)的可信度進(jìn)行了取證,使計算機(jī)在身份鑒別時有了高可靠的依據(jù)??尚啪W(wǎng)絡(luò)連接[1-4](Trusted Network Connection, TNC)技術(shù)是由可信計算組織(Trusted Computing Group, TCG)下的可信網(wǎng)絡(luò)連接工作組(Trusted Network Communication Subgroup, TNC-SG)提出的多層次、可擴(kuò)展的網(wǎng)絡(luò)訪問控制框架,和Cisco NAC、Microsoft NAP等商業(yè)訪問控制框架有很好的互操作性??尚啪W(wǎng)絡(luò)連接中的訪問控制是一種“白名單” 思想,即僅容許可信度滿足要求的主機(jī)接入網(wǎng)絡(luò)。這樣的接入機(jī)制在軟硬件環(huán)境相對確定的網(wǎng)絡(luò)環(huán)境中能提供最大程度的安全保障。在公司內(nèi)網(wǎng)、工控網(wǎng)絡(luò)、軍事作戰(zhàn)網(wǎng)絡(luò)等網(wǎng)絡(luò)環(huán)境中計算機(jī)的軟硬件一般采取定期升級版本的維護(hù)方式,而且每臺主機(jī)安裝的操作系統(tǒng)、應(yīng)用軟件的種類等都可以提前確定,采用可信網(wǎng)絡(luò)連接可以滿足這類網(wǎng)絡(luò)環(huán)境的安全需求。
本文將在分析與研究可信網(wǎng)絡(luò)連接在專用網(wǎng)中的應(yīng)用的基礎(chǔ)上提出一種冗余結(jié)構(gòu)的容忍入侵模型(redundant intrusion tolerant model, RITM)框架。
目前可信網(wǎng)絡(luò)連接的框架如圖1所示。
TNC框架的實體由三部分組成:訪問請求者(Access Request, AR)、策略執(zhí)行者(Policy Execution Point, PEP)和策略決定者(Policy Determination Point, PDP)。接入認(rèn)證的過程又可以分為三個層次:網(wǎng)絡(luò)訪問層(Network Access Layer, NAL)、完整性評估層(Integrity Evaluation Layer, EVL)、完整性度量層(Integrity Measurement Layer, IML)。為了體現(xiàn)與現(xiàn)有接入技術(shù)的良好兼容性,網(wǎng)絡(luò)訪問層的實現(xiàn)可以采用802.1x、VPN等安全協(xié)議,完整性評估層主要完成平臺身份的鑒別,完整性度量層完成平臺完整性的收集。TNC框架提出的接入流程主要包含三個過程:用戶身份認(rèn)證、平臺身份認(rèn)證和平臺完整性認(rèn)證。每個過程中交互的消息格式以及與現(xiàn)有協(xié)議的接口[5-8]已被寫入標(biāo)準(zhǔn)。正是TNC框架模塊化和分層次的設(shè)計,使它能和已有技術(shù)很好地兼容。因此它被工業(yè)界和學(xué)術(shù)界廣泛地接受與實現(xiàn)。
當(dāng)然,TNC框架自身也存在著安全性缺陷,主要體現(xiàn)在以下幾個方面:
1) 缺乏雙向認(rèn)證。TNC框架的流程中只有服務(wù)端認(rèn)證客戶端的過程,客戶端無從得知自身是否接入了正確的網(wǎng)絡(luò),這樣的結(jié)構(gòu)使得黑客可以偽裝服務(wù)端的IP地址來騙客戶端接入,從而盜取客戶端的隱私、機(jī)密等重要信息。
2) 平臺隱私缺乏保護(hù)。TNC框架的認(rèn)證依據(jù)是經(jīng)過哈希算法的二進(jìn)制形式的平臺配置信息,這使得服務(wù)端可以通過逆向工程獲知平臺配置等敏感信息。在黑客攻陷或偽裝服務(wù)端成功后,客戶端的信息即被泄露。
3) 單點認(rèn)證方式的可靠性低。TNC框架默認(rèn)采用單個認(rèn)證節(jié)點的結(jié)構(gòu),這使服務(wù)端成為黑客攻擊的首要目標(biāo)。在服務(wù)端被攻陷時訪問控制策略即刻失效,而且管理員無從得知服務(wù)端的狀態(tài),這是很嚴(yán)重的安全隱患。
針對問題1需要改進(jìn)網(wǎng)絡(luò)訪問層的通信協(xié)議,使客戶、服務(wù)端在建立連接過程中實現(xiàn)雙向的身份鑒別。目前支持雙向身份鑒別的協(xié)議有EAP-TTLS[9]、EAP-TLS[10]等,也有學(xué)者設(shè)計了基于對稱密鑰[11]的認(rèn)證方案。針對問題2需要找到平臺二進(jìn)制信息的替代方案,目前的解決方案主要有利用可信第三方的證書證明[12]、 基于組件屬性的零知識證明[13]方案等。針對問題3本文提出用分布式集群代替單點認(rèn)證的結(jié)構(gòu),即利用分布式系統(tǒng)中的容錯方法合理規(guī)避掉被黑客攻陷節(jié)點的干擾,從而達(dá)到容忍入侵的目的。目前這類方法主要采用拜占庭系統(tǒng),常用的拜占庭一致性算法有PBFT[14-15](Practical Byzantine Fault Tolerance), HQ[16], Zyzzyva[17]。
就專用網(wǎng)而言,其對訪問控制系統(tǒng)的可靠性和性能有較高要求,因此本文對RITM的可靠性和性能提升方面進(jìn)行研究。
RITM由三個實體組成,即訪問請求點(Request Point, RP)、接入執(zhí)行點(Execution Point, EP)和接入決策集群中的各個決策點(Determination Point, DP)。RITM的接入過程參考TNC的接入過程設(shè)計,也分為用戶身份認(rèn)證、平臺身份認(rèn)證和平臺完整性認(rèn)證。如圖2所示。與之不同的是,RITM將認(rèn)證決策的權(quán)力交由群組完成,于是在每個過程中接入執(zhí)行點都將認(rèn)證數(shù)據(jù)拷貝分發(fā)給群組中每個節(jié)點。在節(jié)點同步完成認(rèn)證后先進(jìn)行一致性檢查,認(rèn)證結(jié)果的不同將使節(jié)點分為兩組,再在占多數(shù)的組中進(jìn)行選舉,由這一組的代表節(jié)點將本組的認(rèn)證結(jié)果發(fā)給執(zhí)行點。執(zhí)行點按照代表節(jié)點所在組的個數(shù)決定是否接受認(rèn)證結(jié)果,依據(jù)拜占庭算法,當(dāng)群組節(jié)點數(shù)為3f+1,當(dāng)該組節(jié)點個數(shù)不少于2f+1時接受結(jié)果,否則放棄結(jié)果。
在RITM模型里,如圖3所示,認(rèn)證集群里每個決策點都包含一致性檢查器和選舉器兩個功能模塊和一張分組表。一致性檢查器的作用是認(rèn)證結(jié)束后收集并分析各個決策點的認(rèn)證結(jié)果,判別信息來源的真假,并最終修改分組表,使每個節(jié)點都知道自己的分組。選舉器的作用是按分組表運(yùn)行選舉算法,在本組中在協(xié)商出代表節(jié)點,最終的認(rèn)證結(jié)果將由代表節(jié)點交付接入執(zhí)行點。
RITM內(nèi)的安全協(xié)議設(shè)計流程如圖4所示。協(xié)議主要包括四個階段:認(rèn)證初始化階段、一致性檢查階段、分組選舉階段和策略交付階段。在認(rèn)證階段開始之前,EP需要隨機(jī)生成與集群節(jié)點數(shù)一樣多的隨機(jī)數(shù)和生存時間,在給每個隨機(jī)數(shù)添加標(biāo)識后加密并作本地保存,并將它和生存時間以及RP提供的身份、完整性信息一起發(fā)送給集群里的每個節(jié)點。節(jié)點在收到數(shù)據(jù)后開始獨立完成認(rèn)證工作。在認(rèn)證完成后進(jìn)入一致性檢查階段,集群中各個節(jié)點將相互交換兩輪信息來更新分組表,使安全節(jié)點被劃分到一個組中。然后進(jìn)入選舉階段,在占大多數(shù)的組中運(yùn)行選舉方法選出一個代表節(jié)點來交付認(rèn)證結(jié)果,代表節(jié)點將收集組內(nèi)其他節(jié)點的加密隨機(jī)數(shù)并和自己的認(rèn)證結(jié)果一起發(fā)給EP。EP根據(jù)收到的加密隨機(jī)數(shù)個數(shù)決定是否執(zhí)行收到的認(rèn)證結(jié)果。
協(xié)議的形式化描述如下:
前提假設(shè):假設(shè)一個服務(wù)器集群里包含n個認(rèn)證節(jié)點,即AS={as1,as2…asn}。集群里的每個節(jié)點知道其他節(jié)點的公鑰,集群里不安全節(jié)點的數(shù)目為k,則不安全節(jié)點的總數(shù)在超過時?(n-1)/3」,EP會拒絕接受認(rèn)證結(jié)果,集群必須進(jìn)行維護(hù)。EP生成的隨機(jī)數(shù)僅自身可知。
1) 認(rèn)證初始化階段
步驟1EP生成n個隨機(jī)數(shù)N1,N2…Nn和生存時間T,給每個隨機(jī)數(shù)分配標(biāo)識并用密鑰Ks加密作為秘密,即Si=EKs{Ni,idi},i∈{1,2…n}。EP按順序?qū)⒚孛芎推脚_信息以及生存時間T發(fā)送給集群里的每個節(jié)點,確保不同的節(jié)點收到不同的秘密。
EP→DPi:EPKi{Si,T,infor}
2) 一致性檢查階段
步驟2每個DP按流程完成終端平臺信息的認(rèn)證工作,并將認(rèn)證結(jié)果Γi用自己的私鑰簽名后發(fā)給其他的DP。
DPi→DPj:Sigi(Γi),(i≠j)
步驟3每個DP在收到其他DP的認(rèn)證結(jié)果Γi后匯總,結(jié)合自己的認(rèn)證結(jié)果合并,組成結(jié)果集Δi={Γi,Sigj(Γj),Sigk(Γk)…Sigm(Γm)},再將認(rèn)證結(jié)果集用私鑰簽名發(fā)送給其他DP。
DPi→DPj:Sigi(Δi),(i≠j)
步驟4(一致性檢查過程)每個DP收到其他DP的認(rèn)證結(jié)果集Δj后先驗證集中每項Γj的簽名是否正確,再依次與自己的認(rèn)證結(jié)果Γi比較,如果不同則將分組表中的第j個DP移動到另一個不可信分組中。
BEGIN
IF (Γj≠Γi) THEN
Move(DPj)→untrustedlist
END
3) 分組選舉階段
步驟5(選舉過程)每個安全認(rèn)證節(jié)點生成一個1~1000之間的唯一隨機(jī)數(shù)Ri,每個DP向自己分組表里安全的DP發(fā)送自己的隨機(jī)數(shù)Ri。當(dāng)收到其他DP的隨機(jī)數(shù)時,如果自己的隨機(jī)數(shù)大,則返回Bigger消息給它;當(dāng)收到其他節(jié)點的Bigger消息時則停止發(fā)送Ri,并等待Winner消息。
BEGIN
IF (DPi←DPj:Sigj(Rj)) THEN
IF (Ri>Rj) THEN
DPi→DPj:Sigi(Bigger)
IF (Ri WaitSigs(Winner) IF (DPi←DPj:Sigj(Bigger)) THEN WaitSigs(Winner) END 步驟6當(dāng)某個節(jié)點向分組表中其他所有節(jié)點發(fā)送過Bigger消息后,該DP將作為代表并發(fā)送Winner消息通知其他節(jié)點。組內(nèi)其他節(jié)點在收到Winner消息向代表節(jié)點DP(s)發(fā)送保存的秘密Si。 BIGIN IF (DPi←DP(s):Sigs(Winner)) THEN DPi→DP(s):EPKs{Si} END 4) 策略交付階段 步驟7代表節(jié)點DP(s)收集其他組內(nèi)安全DP的秘密Si,匯總后和自身的認(rèn)證結(jié)果一起用EP的公鑰PKE加密并發(fā)給EP。由EP根據(jù)判別條件決定是否執(zhí)行認(rèn)證結(jié)果。 DP(s)→EP:EPKE{Γs,Si,Sj…Sl} 認(rèn)證服務(wù)冗余容侵模型的安全協(xié)議具備抗重放攻擊的特點,執(zhí)行點在認(rèn)證開始階段給集群里的每個認(rèn)證節(jié)點都發(fā)送了生存時間,只有在規(guī)定的時間窗內(nèi)完成認(rèn)證才被視為有效,這樣可以防止惡意第三方截獲會話并重放攻擊。 其次,冗余容侵模型協(xié)議在簽名不可偽造的前提假設(shè)下,具備不可欺瞞的特點。協(xié)議通過兩輪消息交換,使集群里安全的認(rèn)證節(jié)點獲知其他節(jié)點給出的接入策略,因為被入侵的節(jié)點無法篡改其他節(jié)點的簽名,安全的認(rèn)證節(jié)點可以根據(jù)認(rèn)證結(jié)果的是否一致來確定某個節(jié)點的安全性。 此外,冗余容侵模型具有高度去中心化的結(jié)構(gòu)特點。冗余容侵模型協(xié)議每次完成一致性檢查后從安全的節(jié)點中以唯一隨機(jī)作為依據(jù)選舉代表節(jié)點,這種特點使得每次認(rèn)證會話里的代表節(jié)點都不確定,具有隨機(jī)性,這就增加了黑客攻擊的難度,在一定程度上提升了模型的安全性。 認(rèn)證服務(wù)冗余容侵模型的時間性能主要與認(rèn)證服務(wù)集群的規(guī)模以及請求接入的終端平臺的信息數(shù)據(jù)量有關(guān)。這里在不計入每個決策點用于認(rèn)證的時間開銷前提下,比較RITM協(xié)議與經(jīng)典的一致性、選舉協(xié)議如PBFT加Bully[18],以及工程應(yīng)用中常見的Paxos協(xié)議[19]的效率。 假設(shè)在一個包含n個節(jié)點的集群中,有k個不安全節(jié)點。表1是三種協(xié)議的效率,這里以交換信息的輪數(shù)作為單位。 表1 幾種協(xié)議消息交互輪數(shù) 注:表里的Paxos協(xié)議為執(zhí)行點作唯一接收者的情況。 在實際使用中,考慮到集群的部署成本,n一般不會太大,由于所有的認(rèn)證節(jié)點是并發(fā)完成認(rèn)證的,這和單臺服務(wù)器認(rèn)證消耗的時間一樣多。集群完成一致性檢查和選舉的時間開銷可以預(yù)見是不隨需驗證的平臺信息數(shù)據(jù)量的增加而增加的,反觀認(rèn)證耗費(fèi)的時間是與平臺信息數(shù)據(jù)量呈線性增長的。這使得冗余容侵模型在平臺信息量大的終端環(huán)境下能以較小的時間開銷提高系統(tǒng)的安全可靠性,性價比很高。 目前基于TNC架構(gòu)的網(wǎng)絡(luò)接入系統(tǒng)大多采用單點認(rèn)證的方式,這種架構(gòu)的系統(tǒng)難以應(yīng)對認(rèn)證服務(wù)器被黑客入侵的情況。本文提出的認(rèn)證服務(wù)冗余容侵模型能夠保證在大多數(shù)情況下,部分認(rèn)證節(jié)點被入侵系統(tǒng)依然能進(jìn)行接入認(rèn)證工作。并為這種特殊模型設(shè)計了安全協(xié)議,確保認(rèn)證服務(wù)器集群內(nèi)部、接入執(zhí)行點與服務(wù)器集群之間的可信通信。這將為提高專用網(wǎng)可靠性與實時性起到有效的作用。 [1] TCG trusted network connect TNC architecture for interoperability version 1.1[S].http:∥www.trustedcomputinggroup.org, 2006. [2] Federated trusted network connect(TNC) version 1.0, Revision 27 [EB/OL].[2009-05-18].https:∥www.trustedcomputinggroup.org/wp-content/uploads/TNC-F ̄e ̄d ̄e ̄r ̄a ̄t ̄e ̄d-TNC-v1.0-r27.pdf. [3] TCG trusted network connect TNC architecture for interoperability specification version 1.3 [EB/OL].[2008-09-15].https:∥www.trustedcomputinggroup.org/specs/TNC. [4] TCG trusted network connect TNC architecture for interoperability specification version1.4[EB/OL].http:∥www.trustedcomputinggroup.org/resources/tcg-architecture-overview-version-14,2009. [5] TNC IF-TNCCS: Protocol Bindings for SoH, Version 1.0[EB/OL].[2007-05-21].https:∥www.trustedcomputinggroup.org/wp-content/uploads/IF-TNCCS-SOH-v1.0-r8.pdf. [6] TNC IF-PEP: Protocol Bindings for RADIUS Specification, Version 1.1[EB/OL]. [2007-02-01].https:∥trustedcomputinggroup.org/wp-content/uploads/TNC-IF-PEP-v1.1-rev-0.8.pdf. [7] TNC IF-IMC Version 1.1, Revision 5 [EB/OL].[2006-05-01].https:∥trustedcomputinggroup.org/wp-content/uploads/TNC-IFIMC-v1-1-r5.pdf. [8] TNC IF-IMV Version 1.0, Revision 3[EB/OL].[2005-05-03].https:∥trustedcomputinggroup.org/wp-content/uploads/TNC-IFIMV-v1-0-r3.pdf. [9] 張立茹, 鄢楚平, 詹葆榮.基于EAP-TTLS的可信網(wǎng)絡(luò)接入認(rèn)證技術(shù)[J].計算機(jī)與現(xiàn)代化, 2013(10):111-116. [10] D. Simon, B. Aboba, R Hurst. "The RFC Series and RFC Editor". RFC 5216. Retrieved March, 2008. [11] 符湘萍,吳振強(qiáng). 可信網(wǎng)絡(luò)接入認(rèn)證協(xié)議的設(shè)計與分析[J]. 計算機(jī)工程與設(shè)計,2011,32(12):3993-3996. [12] 魏達(dá), 賈翔鵬, 王健等. 基于可信證書的可信網(wǎng)絡(luò)接入模型及實現(xiàn)[J]. 吉林大學(xué)學(xué)報(工學(xué)版),2010,40(2):496-500. [13] 趙世軍, 馮登國. 基于屬性證明的可信網(wǎng)絡(luò)接入方案[J]. 武漢大學(xué)學(xué)報(理學(xué)版),2012,58(6):519-525. [14] Lamport L, Shostak R, Pease M. The byzantine generals problem[J]. ACM Trans on Programming Languages & Systems. 1982, 4(3): 382-401. [15] Castro M. Practical byzantine fault tolerance and proactive recovery[J]. ACM Trans on Computer Systems(TOCS). 2002, 20(4): 398-461. [16] Cowling J, Myers D, Liskov B, Rodrigues R, Shrira L. HQ replication: A hybrid quorum protocol for Byzantine fault tolerance. In: Proc. of the 7th Symp. on Operating Systems Design and Implementation. Berkeley: USENIX Association, 2006, 177. [17] Kotla R, Alvisi L, Dahlin M, Clement A, Wong E. Zyzzyva: Speculative Byzantine fault tolerance. In: Proc. of the 21st ACM SIGOPS Symp. on Operating Systems Principles. New York: ACM Press, 2007, 4558. [18] GARCIA-MONILA H. Elections in a distributed computing system[J]. IEEE Transactions on Computers, 1982, 100(1): 48-59. [19] Lamport L. Paxos Made Simple[J]. ACM SIGACT News, 2001, 32(4): 18-25.3.2 協(xié)議安全性分析
4 冗余容侵模型效率
5 結(jié)束語