李林峰, 孔祥營(yíng), 張振華
(江蘇自動(dòng)化研究所, 江蘇 連云港 222061)
最初的專用網(wǎng)因?yàn)閷?duì)網(wǎng)絡(luò)安全的需求不高,主要側(cè)重解決互聯(lián)互通問(wèn)題。但近年來(lái),別國(guó)爆出的專用網(wǎng)遭受新型的APT攻擊、預(yù)置“特殊后門”等網(wǎng)絡(luò)攻擊事件說(shuō)明物理隔絕的專用網(wǎng)正面臨著嚴(yán)峻的安全考驗(yàn),有必要將安全防護(hù)作為一項(xiàng)重要的設(shè)計(jì)因素予以考慮。特別是在軍事專用網(wǎng)中,由于其作戰(zhàn)任務(wù)明確,且對(duì)信息系統(tǒng)有高可靠、高實(shí)時(shí)的要求,以往在主機(jī)上配置防火墻、入侵檢測(cè)系統(tǒng)、漏洞掃描等安全設(shè)備的防御措施已不足以應(yīng)對(duì)現(xiàn)代日趨復(fù)雜的攻擊方法。根據(jù)專用網(wǎng)節(jié)點(diǎn)數(shù)量有限,網(wǎng)絡(luò)拓?fù)湎鄬?duì)固定,專用網(wǎng)接入人員與接入設(shè)備受限等特點(diǎn),可針對(duì)性地引入先進(jìn)的新型安全技術(shù),充分利用專用網(wǎng)自身優(yōu)勢(shì)來(lái)提高專用網(wǎng)的安全性能。
可信計(jì)算技術(shù)的提出是為了提高計(jì)算機(jī)系統(tǒng)自底向上的可監(jiān)控性,它通過(guò)可信平臺(tái)模塊對(duì)計(jì)算機(jī)的可信度進(jìn)行了取證,使計(jì)算機(jī)在身份鑒別時(shí)有了高可靠的依據(jù)。可信網(wǎng)絡(luò)連接[1-4](Trusted Network Connection, TNC)技術(shù)是由可信計(jì)算組織(Trusted Computing Group, TCG)下的可信網(wǎng)絡(luò)連接工作組(Trusted Network Communication Subgroup, TNC-SG)提出的多層次、可擴(kuò)展的網(wǎng)絡(luò)訪問(wèn)控制框架,和Cisco NAC、Microsoft NAP等商業(yè)訪問(wèn)控制框架有很好的互操作性。可信網(wǎng)絡(luò)連接中的訪問(wèn)控制是一種“白名單” 思想,即僅容許可信度滿足要求的主機(jī)接入網(wǎng)絡(luò)。這樣的接入機(jī)制在軟硬件環(huán)境相對(duì)確定的網(wǎng)絡(luò)環(huán)境中能提供最大程度的安全保障。在公司內(nèi)網(wǎng)、工控網(wǎng)絡(luò)、軍事作戰(zhàn)網(wǎng)絡(luò)等網(wǎng)絡(luò)環(huán)境中計(jì)算機(jī)的軟硬件一般采取定期升級(jí)版本的維護(hù)方式,而且每臺(tái)主機(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框架的實(shí)體由三部分組成:訪問(wèn)請(qǐng)求者(Access Request, AR)、策略執(zhí)行者(Policy Execution Point, PEP)和策略決定者(Policy Determination Point, PDP)。接入認(rèn)證的過(guò)程又可以分為三個(gè)層次:網(wǎng)絡(luò)訪問(wèn)層(Network Access Layer, NAL)、完整性評(píng)估層(Integrity Evaluation Layer, EVL)、完整性度量層(Integrity Measurement Layer, IML)。為了體現(xiàn)與現(xiàn)有接入技術(shù)的良好兼容性,網(wǎng)絡(luò)訪問(wèn)層的實(shí)現(xiàn)可以采用802.1x、VPN等安全協(xié)議,完整性評(píng)估層主要完成平臺(tái)身份的鑒別,完整性度量層完成平臺(tái)完整性的收集。TNC框架提出的接入流程主要包含三個(gè)過(guò)程:用戶身份認(rèn)證、平臺(tái)身份認(rèn)證和平臺(tái)完整性認(rèn)證。每個(gè)過(guò)程中交互的消息格式以及與現(xiàn)有協(xié)議的接口[5-8]已被寫(xiě)入標(biāo)準(zhǔn)。正是TNC框架模塊化和分層次的設(shè)計(jì),使它能和已有技術(shù)很好地兼容。因此它被工業(yè)界和學(xué)術(shù)界廣泛地接受與實(shí)現(xiàn)。
當(dāng)然,TNC框架自身也存在著安全性缺陷,主要體現(xiàn)在以下幾個(gè)方面:
1) 缺乏雙向認(rèn)證。TNC框架的流程中只有服務(wù)端認(rèn)證客戶端的過(guò)程,客戶端無(wú)從得知自身是否接入了正確的網(wǎng)絡(luò),這樣的結(jié)構(gòu)使得黑客可以偽裝服務(wù)端的IP地址來(lái)騙客戶端接入,從而盜取客戶端的隱私、機(jī)密等重要信息。
2) 平臺(tái)隱私缺乏保護(hù)。TNC框架的認(rèn)證依據(jù)是經(jīng)過(guò)哈希算法的二進(jìn)制形式的平臺(tái)配置信息,這使得服務(wù)端可以通過(guò)逆向工程獲知平臺(tái)配置等敏感信息。在黑客攻陷或偽裝服務(wù)端成功后,客戶端的信息即被泄露。
3) 單點(diǎn)認(rèn)證方式的可靠性低。TNC框架默認(rèn)采用單個(gè)認(rèn)證節(jié)點(diǎn)的結(jié)構(gòu),這使服務(wù)端成為黑客攻擊的首要目標(biāo)。在服務(wù)端被攻陷時(shí)訪問(wèn)控制策略即刻失效,而且管理員無(wú)從得知服務(wù)端的狀態(tài),這是很嚴(yán)重的安全隱患。
針對(duì)問(wèn)題1需要改進(jìn)網(wǎng)絡(luò)訪問(wèn)層的通信協(xié)議,使客戶、服務(wù)端在建立連接過(guò)程中實(shí)現(xiàn)雙向的身份鑒別。目前支持雙向身份鑒別的協(xié)議有EAP-TTLS[9]、EAP-TLS[10]等,也有學(xué)者設(shè)計(jì)了基于對(duì)稱密鑰[11]的認(rèn)證方案。針對(duì)問(wèn)題2需要找到平臺(tái)二進(jìn)制信息的替代方案,目前的解決方案主要有利用可信第三方的證書(shū)證明[12]、 基于組件屬性的零知識(shí)證明[13]方案等。針對(duì)問(wèn)題3本文提出用分布式集群代替單點(diǎn)認(rèn)證的結(jié)構(gòu),即利用分布式系統(tǒng)中的容錯(cuò)方法合理規(guī)避掉被黑客攻陷節(jié)點(diǎn)的干擾,從而達(dá)到容忍入侵的目的。目前這類方法主要采用拜占庭系統(tǒng),常用的拜占庭一致性算法有PBFT[14-15](Practical Byzantine Fault Tolerance), HQ[16], Zyzzyva[17]。
就專用網(wǎng)而言,其對(duì)訪問(wèn)控制系統(tǒng)的可靠性和性能有較高要求,因此本文對(duì)RITM的可靠性和性能提升方面進(jìn)行研究。
RITM由三個(gè)實(shí)體組成,即訪問(wèn)請(qǐng)求點(diǎn)(Request Point, RP)、接入執(zhí)行點(diǎn)(Execution Point, EP)和接入決策集群中的各個(gè)決策點(diǎn)(Determination Point, DP)。RITM的接入過(guò)程參考TNC的接入過(guò)程設(shè)計(jì),也分為用戶身份認(rèn)證、平臺(tái)身份認(rèn)證和平臺(tái)完整性認(rèn)證。如圖2所示。與之不同的是,RITM將認(rèn)證決策的權(quán)力交由群組完成,于是在每個(gè)過(guò)程中接入執(zhí)行點(diǎn)都將認(rèn)證數(shù)據(jù)拷貝分發(fā)給群組中每個(gè)節(jié)點(diǎn)。在節(jié)點(diǎn)同步完成認(rèn)證后先進(jìn)行一致性檢查,認(rèn)證結(jié)果的不同將使節(jié)點(diǎn)分為兩組,再在占多數(shù)的組中進(jìn)行選舉,由這一組的代表節(jié)點(diǎn)將本組的認(rèn)證結(jié)果發(fā)給執(zhí)行點(diǎn)。執(zhí)行點(diǎn)按照代表節(jié)點(diǎn)所在組的個(gè)數(shù)決定是否接受認(rèn)證結(jié)果,依據(jù)拜占庭算法,當(dāng)群組節(jié)點(diǎn)數(shù)為3f+1,當(dāng)該組節(jié)點(diǎn)個(gè)數(shù)不少于2f+1時(shí)接受結(jié)果,否則放棄結(jié)果。
在RITM模型里,如圖3所示,認(rèn)證集群里每個(gè)決策點(diǎn)都包含一致性檢查器和選舉器兩個(gè)功能模塊和一張分組表。一致性檢查器的作用是認(rèn)證結(jié)束后收集并分析各個(gè)決策點(diǎn)的認(rèn)證結(jié)果,判別信息來(lái)源的真假,并最終修改分組表,使每個(gè)節(jié)點(diǎn)都知道自己的分組。選舉器的作用是按分組表運(yùn)行選舉算法,在本組中在協(xié)商出代表節(jié)點(diǎn),最終的認(rèn)證結(jié)果將由代表節(jié)點(diǎn)交付接入執(zhí)行點(diǎn)。
RITM內(nèi)的安全協(xié)議設(shè)計(jì)流程如圖4所示。協(xié)議主要包括四個(gè)階段:認(rèn)證初始化階段、一致性檢查階段、分組選舉階段和策略交付階段。在認(rèn)證階段開(kāi)始之前,EP需要隨機(jī)生成與集群節(jié)點(diǎn)數(shù)一樣多的隨機(jī)數(shù)和生存時(shí)間,在給每個(gè)隨機(jī)數(shù)添加標(biāo)識(shí)后加密并作本地保存,并將它和生存時(shí)間以及RP提供的身份、完整性信息一起發(fā)送給集群里的每個(gè)節(jié)點(diǎn)。節(jié)點(diǎn)在收到數(shù)據(jù)后開(kāi)始獨(dú)立完成認(rèn)證工作。在認(rèn)證完成后進(jìn)入一致性檢查階段,集群中各個(gè)節(jié)點(diǎn)將相互交換兩輪信息來(lái)更新分組表,使安全節(jié)點(diǎn)被劃分到一個(gè)組中。然后進(jìn)入選舉階段,在占大多數(shù)的組中運(yùn)行選舉方法選出一個(gè)代表節(jié)點(diǎn)來(lái)交付認(rèn)證結(jié)果,代表節(jié)點(diǎn)將收集組內(nèi)其他節(jié)點(diǎn)的加密隨機(jī)數(shù)并和自己的認(rèn)證結(jié)果一起發(fā)給EP。EP根據(jù)收到的加密隨機(jī)數(shù)個(gè)數(shù)決定是否執(zhí)行收到的認(rèn)證結(jié)果。
協(xié)議的形式化描述如下:
前提假設(shè):假設(shè)一個(gè)服務(wù)器集群里包含n個(gè)認(rèn)證節(jié)點(diǎn),即AS={as1,as2…asn}。集群里的每個(gè)節(jié)點(diǎn)知道其他節(jié)點(diǎn)的公鑰,集群里不安全節(jié)點(diǎn)的數(shù)目為k,則不安全節(jié)點(diǎn)的總數(shù)在超過(guò)時(shí)?(n-1)/3」,EP會(huì)拒絕接受認(rèn)證結(jié)果,集群必須進(jìn)行維護(hù)。EP生成的隨機(jī)數(shù)僅自身可知。
1) 認(rèn)證初始化階段
步驟1EP生成n個(gè)隨機(jī)數(shù)N1,N2…Nn和生存時(shí)間T,給每個(gè)隨機(jī)數(shù)分配標(biāo)識(shí)并用密鑰Ks加密作為秘密,即Si=EKs{Ni,idi},i∈{1,2…n}。EP按順序?qū)⒚孛芎推脚_(tái)信息以及生存時(shí)間T發(fā)送給集群里的每個(gè)節(jié)點(diǎn),確保不同的節(jié)點(diǎn)收到不同的秘密。
EP→DPi:EPKi{Si,T,infor}
2) 一致性檢查階段
步驟2每個(gè)DP按流程完成終端平臺(tái)信息的認(rèn)證工作,并將認(rèn)證結(jié)果Γi用自己的私鑰簽名后發(fā)給其他的DP。
DPi→DPj:Sigi(Γi),(i≠j)
步驟3每個(gè)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(一致性檢查過(guò)程)每個(gè)DP收到其他DP的認(rèn)證結(jié)果集Δj后先驗(yàn)證集中每項(xiàng)Γj的簽名是否正確,再依次與自己的認(rèn)證結(jié)果Γi比較,如果不同則將分組表中的第j個(gè)DP移動(dòng)到另一個(gè)不可信分組中。
BEGIN
IF (Γj≠Γi) THEN
Move(DPj)→untrustedlist
END
3) 分組選舉階段
步驟5(選舉過(guò)程)每個(gè)安全認(rèn)證節(jié)點(diǎn)生成一個(gè)1~1000之間的唯一隨機(jī)數(shù)Ri,每個(gè)DP向自己分組表里安全的DP發(fā)送自己的隨機(jī)數(shù)Ri。當(dāng)收到其他DP的隨機(jī)數(shù)時(shí),如果自己的隨機(jī)數(shù)大,則返回Bigger消息給它;當(dāng)收到其他節(jié)點(diǎn)的Bigger消息時(shí)則停止發(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)某個(gè)節(jié)點(diǎn)向分組表中其他所有節(jié)點(diǎn)發(fā)送過(guò)Bigger消息后,該DP將作為代表并發(fā)送Winner消息通知其他節(jié)點(diǎn)。組內(nèi)其他節(jié)點(diǎn)在收到Winner消息向代表節(jié)點(diǎn)DP(s)發(fā)送保存的秘密Si。 BIGIN IF (DPi←DP(s):Sigs(Winner)) THEN DPi→DP(s):EPKs{Si} END 4) 策略交付階段 步驟7代表節(jié)點(diǎn)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é)議具備抗重放攻擊的特點(diǎn),執(zhí)行點(diǎn)在認(rèn)證開(kāi)始階段給集群里的每個(gè)認(rèn)證節(jié)點(diǎn)都發(fā)送了生存時(shí)間,只有在規(guī)定的時(shí)間窗內(nèi)完成認(rèn)證才被視為有效,這樣可以防止惡意第三方截獲會(huì)話并重放攻擊。 其次,冗余容侵模型協(xié)議在簽名不可偽造的前提假設(shè)下,具備不可欺瞞的特點(diǎn)。協(xié)議通過(guò)兩輪消息交換,使集群里安全的認(rèn)證節(jié)點(diǎn)獲知其他節(jié)點(diǎn)給出的接入策略,因?yàn)楸蝗肭值墓?jié)點(diǎn)無(wú)法篡改其他節(jié)點(diǎn)的簽名,安全的認(rèn)證節(jié)點(diǎn)可以根據(jù)認(rèn)證結(jié)果的是否一致來(lái)確定某個(gè)節(jié)點(diǎn)的安全性。 此外,冗余容侵模型具有高度去中心化的結(jié)構(gòu)特點(diǎn)。冗余容侵模型協(xié)議每次完成一致性檢查后從安全的節(jié)點(diǎn)中以唯一隨機(jī)作為依據(jù)選舉代表節(jié)點(diǎn),這種特點(diǎn)使得每次認(rèn)證會(huì)話里的代表節(jié)點(diǎn)都不確定,具有隨機(jī)性,這就增加了黑客攻擊的難度,在一定程度上提升了模型的安全性。 認(rèn)證服務(wù)冗余容侵模型的時(shí)間性能主要與認(rèn)證服務(wù)集群的規(guī)模以及請(qǐng)求接入的終端平臺(tái)的信息數(shù)據(jù)量有關(guān)。這里在不計(jì)入每個(gè)決策點(diǎn)用于認(rèn)證的時(shí)間開(kāi)銷前提下,比較RITM協(xié)議與經(jīng)典的一致性、選舉協(xié)議如PBFT加Bully[18],以及工程應(yīng)用中常見(jiàn)的Paxos協(xié)議[19]的效率。 假設(shè)在一個(gè)包含n個(gè)節(jié)點(diǎn)的集群中,有k個(gè)不安全節(jié)點(diǎn)。表1是三種協(xié)議的效率,這里以交換信息的輪數(shù)作為單位。 表1 幾種協(xié)議消息交互輪數(shù) 注:表里的Paxos協(xié)議為執(zhí)行點(diǎn)作唯一接收者的情況。 在實(shí)際使用中,考慮到集群的部署成本,n一般不會(huì)太大,由于所有的認(rèn)證節(jié)點(diǎn)是并發(fā)完成認(rèn)證的,這和單臺(tái)服務(wù)器認(rèn)證消耗的時(shí)間一樣多。集群完成一致性檢查和選舉的時(shí)間開(kāi)銷可以預(yù)見(jiàn)是不隨需驗(yàn)證的平臺(tái)信息數(shù)據(jù)量的增加而增加的,反觀認(rèn)證耗費(fèi)的時(shí)間是與平臺(tái)信息數(shù)據(jù)量呈線性增長(zhǎng)的。這使得冗余容侵模型在平臺(tái)信息量大的終端環(huán)境下能以較小的時(shí)間開(kāi)銷提高系統(tǒng)的安全可靠性,性價(jià)比很高。 目前基于TNC架構(gòu)的網(wǎng)絡(luò)接入系統(tǒng)大多采用單點(diǎn)認(rèn)證的方式,這種架構(gòu)的系統(tǒng)難以應(yīng)對(duì)認(rèn)證服務(wù)器被黑客入侵的情況。本文提出的認(rèn)證服務(wù)冗余容侵模型能夠保證在大多數(shù)情況下,部分認(rèn)證節(jié)點(diǎn)被入侵系統(tǒng)依然能進(jìn)行接入認(rèn)證工作。并為這種特殊模型設(shè)計(jì)了安全協(xié)議,確保認(rèn)證服務(wù)器集群內(nèi)部、接入執(zhí)行點(diǎn)與服務(wù)器集群之間的可信通信。這將為提高專用網(wǎng)可靠性與實(shí)時(shí)性起到有效的作用。 [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ì)算機(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]. 計(jì)算機(jī)工程與設(shè)計(jì),2011,32(12):3993-3996. [12] 魏達(dá), 賈翔鵬, 王健等. 基于可信證書(shū)的可信網(wǎng)絡(luò)接入模型及實(shí)現(xiàn)[J]. 吉林大學(xué)學(xué)報(bào)(工學(xué)版),2010,40(2):496-500. [13] 趙世軍, 馮登國(guó). 基于屬性證明的可信網(wǎng)絡(luò)接入方案[J]. 武漢大學(xué)學(xué)報(bào)(理學(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é)束語(yǔ)