孫夏聲,王遠強
(中國電子科技集團公司第三十研究所,四川 成都 610041)
傳統(tǒng)網(wǎng)絡(luò)采用的是“邊界”防護的安全模型,“內(nèi)網(wǎng)”是假定無條件安全和可信的。這種安全模型存在問題:一方面,邊界防護無法防護企業(yè)內(nèi)網(wǎng)的非法訪問行為;另一方面,一旦邊界被突破,攻擊者就可以暢通無阻地訪問企業(yè)內(nèi)網(wǎng)的所有資源。Google公司針對這種情況,部署實施了一種新的企業(yè)安全方法——BeyondCorp。本文借鑒其設(shè)計思路,基于可信密碼模塊(Trusted Cryptographic Module,TCM)的可信計算平臺,通過使用多種安全認證和授權(quán)手段,提出了一套輕量化的、適用于企業(yè)內(nèi)網(wǎng)的安全訪問模型。
2014年12月,Google陸續(xù)發(fā)表了5篇BeyondCorp 論文,全面介紹了BeyondCorp的結(jié)構(gòu)和實施情況[1]。BeyondCorp的核心思想是摒棄企業(yè)特權(quán)網(wǎng)絡(luò),即“零信任網(wǎng)絡(luò)”概念:不信任任何網(wǎng)絡(luò),訪問只依賴于設(shè)備和用戶憑證,不再關(guān)心網(wǎng)絡(luò)位置。用戶可以從任何網(wǎng)絡(luò)發(fā)起訪問,除網(wǎng)絡(luò)延遲以外,對企業(yè)資源的本地和遠程訪問體驗基本一致。
BeyondCorp的關(guān)鍵組件包括:(1)安全識別設(shè)備,包括設(shè)備清單數(shù)據(jù)庫、設(shè)備標識;(2)安全識別用戶,包括用戶和群組數(shù)據(jù)庫、單點登錄系統(tǒng);(3)從網(wǎng)絡(luò)中消除信任,包括部署無特權(quán)網(wǎng)絡(luò)、有線和無線網(wǎng)絡(luò)接入的802.1x認證;(4)外化應(yīng)用和工作流,包括面向互聯(lián)網(wǎng)的訪問代理、公共的DNS記錄;(5)實現(xiàn)基于清單的訪問控制,包括對設(shè)備和用戶的信任推斷、訪問控制引擎、訪問控制引擎的消息管道。
BeyondCorp的組件和訪問流如圖1所示。
圖1 BeyondCorp組件和訪問流
BeyondCorp的核心在業(yè)務(wù),關(guān)注的是數(shù)據(jù),是網(wǎng)絡(luò)流量的不可信。Google從2011年開始實施和部署B(yǎng)eyondCorp,投入了大量資源,是小公司和機構(gòu)無法負擔的。本文借鑒其安全設(shè)計思路,剝離主要用于互聯(lián)網(wǎng)的訪問代理、信任推斷以及更高階的自學習自適應(yīng),保留關(guān)鍵組件中的驗證用戶、驗證設(shè)備和權(quán)限控制,將其引用到傳統(tǒng)的內(nèi)網(wǎng)安全訪問中,形成一種輕量化的網(wǎng)絡(luò)安全訪問模型,即基于TCM的網(wǎng)絡(luò)安全訪問模型。
國際上通用的可信計算規(guī)范由可信計算組織(Trusted Computing Group,TCG)制定,核心是可信平臺芯片(Trusted Platform Module,TPM)和可信軟件棧(Trusted Software Stack,TSS)。TCM對應(yīng)TPM,是我國具有自主知識產(chǎn)權(quán)的可信芯片。對應(yīng)TSS的是TCM服 務(wù) 模 塊(TCM Service Module,TSM)。 TCM和TPM的主要區(qū)別如表1所示[2],其中TCM存儲主密鑰(Storage Master Key,SMK)獨創(chuàng)性地使用了對稱密鑰。
表1 TCM和TPM的區(qū)別
基于TCM和TSM,對本地進行軟硬件可信度量后的計算環(huán)境稱為TCM可信計算平臺。可信度量的依據(jù)是信任鏈傳遞:每一步的度量值作為下一步度量輸入的一部分,逐步計算出最后的度量結(jié) 果[3]。信任鏈傳遞的過程如圖2所示。
圖2 信任鏈傳遞
度量初始值記錄在TCM可信存儲區(qū)中,設(shè)備完成初始度量后的每次開啟過程執(zhí)行度量比對,比對不一致則認為設(shè)備不再可信。
可信網(wǎng)絡(luò)接入(Trusted Network Connect,TNC) 是TCG在網(wǎng)絡(luò)安全方面提出的可信接入控制技術(shù),主要基于802.1x接入控制協(xié)議,實現(xiàn)基于端口的網(wǎng)絡(luò)接入控制,架構(gòu)如圖3所示。
圖3 TNC體系架構(gòu)
TNC架構(gòu)中,PDP負責對終端進行平臺身份認證和完整性驗證,PEP根據(jù)PDP的驗證結(jié)果進行授權(quán)訪問控制?;赥CM和TNC實現(xiàn)的可信交換機可以充當PEP和PDP的角色,滿足終端接入可信網(wǎng)絡(luò)的應(yīng)用需求[4]。可信交換機應(yīng)用方式如圖4所示。
圖4 可信交換機應(yīng)用方式
2000年,ITU X.509(2000)頒布(RFC3281),其中完整定義了屬性證書(Attribute Certificate,AC), 該標準也被稱為X.509 V4。AC將持有者的名字和一系列“屬性”綁定,這些屬性用來表明證書持有人的用戶群組身份、角色以及安全權(quán)限等。
基于AC的訪問控制機制有基于角色的訪問控制(Role-Based Access Control,RBAC)[5]和 基 于屬性的權(quán)限控制(Attribute-Based Access Control,ABAC)[6]等。兩者實現(xiàn)較為復(fù)雜,在內(nèi)網(wǎng)環(huán)境中可采用基于屬性證書實現(xiàn)的安全訪問服務(wù)方案[7]。該方案的應(yīng)用體系結(jié)構(gòu)如圖5所示。
圖5 基于屬性證書的應(yīng)用體系結(jié)構(gòu)
借鑒Google的BeyondCorp架構(gòu),基于TCM可惜計算平臺,結(jié)合可信交換機、用戶公鑰證書(Public Key Certificate,PKC)驗證和基于屬性證書的訪問控制技術(shù),構(gòu)建了一個輕量化的基于TCM的網(wǎng)絡(luò)安全訪問模型,模型架構(gòu)如圖6所示。
圖6 基于TCM的網(wǎng)絡(luò)安全訪問模型架構(gòu)
3.1.1 人員
人事部門根據(jù)人員、部門以及業(yè)務(wù)等信息,制定“用戶/組數(shù)據(jù)庫”,同時為每一個員工配發(fā)唯一的TCM模塊。證書權(quán)威(Certificate Authority,CA)依據(jù)用戶/組數(shù)據(jù)庫信息,為每一個用戶簽發(fā)PKC,這是用戶的唯一標識。PKC作為模塊證書,存儲在TCM中。所有的PKC同步在PKC目錄服務(wù)器上,供對外查詢使用。
3.1.2 設(shè)備
全部設(shè)備均由企業(yè)統(tǒng)一采購,預(yù)裝TSM,并建立設(shè)備資產(chǎn)庫。資產(chǎn)庫建立設(shè)備和人員的綁定關(guān)系。CA為每一臺設(shè)備簽發(fā)設(shè)備證書,設(shè)備證書作為平臺身份證書寫入到與人員配對的TCM中。
TCM接插到設(shè)備上,第一次加電啟動完成初始化度量,完成TCM和設(shè)備的強綁定。經(jīng)過可信度量的設(shè)備被記錄到可信設(shè)備白名單中。可信設(shè)備白名單可動態(tài)管理設(shè)備狀態(tài),如已報失的設(shè)備將被至為不可信/掛失,該設(shè)備將不再具有安全訪問能力。
3.1.3 權(quán)限
企業(yè)根據(jù)人員、業(yè)務(wù)和安全考慮,制定用于資源訪問的資源庫。資源庫統(tǒng)一管理企業(yè)內(nèi)網(wǎng)中的應(yīng)用服務(wù)資源。根據(jù)粒度不同,資源可以是服務(wù)器級別的、服務(wù)級別的,也可以是微服務(wù)架構(gòu)中“微服務(wù)。
CA為屬性權(quán)威(Attribute Authority,AA)授權(quán)。AA根據(jù)用戶/組和資源信息,為每個用戶簽發(fā)屬性證書。屬性證書中詳細定義用戶訪問每個資源的權(quán)限。
系統(tǒng)初始化完成后,當新的終端需要接入企業(yè)內(nèi)網(wǎng)時,要進行一次完整的安全訪問過程,包括設(shè)備認證、用戶認證和訪問控制請求。統(tǒng)一認證核心負責整個安全訪問請求的調(diào)度和判決。統(tǒng)一認證過程(不包括TNC)交互如圖7所示。
圖7 安全訪問過程
3.2.1 設(shè)備認證
終端設(shè)備接入可信交換機,即進行TNC接入認證過程。認證使用的是終端上TCM中的平臺身份證書。TNC認證通過后,終端可向應(yīng)用服務(wù)發(fā)起連接請求。應(yīng)用服務(wù)接收到請求后,首先要求終端(TSM實現(xiàn)客戶端代理功能)回復(fù)TCM模塊的唯一標識(TCM Identity,TCMID),然后向統(tǒng)一認證發(fā)送安全訪問請求。安全訪問請求至少包含要求網(wǎng)絡(luò)訪問的終端TCMID和被訪問的資源信息。
統(tǒng)一認證根據(jù)TCMID在可信設(shè)備白名單中查詢該終端的相關(guān)信息,并以此判斷終端設(shè)備是否合法。設(shè)備認證成功后,繼續(xù)用戶認證過程,否則返回判決失敗。
3.2.2 用戶認證
完成設(shè)備認證后,統(tǒng)一認證向請求網(wǎng)絡(luò)訪問的用戶終端發(fā)送挑戰(zhàn)請求,請求中包含挑戰(zhàn)碼。終端使用TCM平臺加密私鑰對挑戰(zhàn)碼等信息進行簽名,然后作為挑戰(zhàn)應(yīng)答回復(fù)給統(tǒng)一認證。
統(tǒng)一認證收到挑戰(zhàn)應(yīng)答后,向PKC目錄服務(wù)請求TCMID對應(yīng)的PKC,使用該PKC驗證挑戰(zhàn)應(yīng)答報文。如果查詢PKC失敗或者驗證挑戰(zhàn)應(yīng)答失敗,則向應(yīng)用服務(wù)返回判決失敗,否則繼續(xù)進行下一步的訪問控制過程。
3.2.3 訪問控制
統(tǒng)一認證根據(jù)終端TCMID和資源信息,向AC目錄服務(wù)查詢對應(yīng)的屬性證書。統(tǒng)一認證根據(jù)獲得的AC,驗證用戶是否具有所授資源的權(quán)限,最終將判決結(jié)果返回應(yīng)用服務(wù)器。應(yīng)用服務(wù)器根據(jù)判決結(jié)果確定是否響應(yīng)用戶發(fā)起的訪問請求。
在安全訪問過程的每一個協(xié)議包中,都設(shè)置時間戳(timestamp)和隨機數(shù)(nonce)。隨機數(shù)保證數(shù)據(jù)包不被重放,時間戳用來設(shè)置一個時間間隔如60 s,以縮小nonce的規(guī)模。60 s的取值來源于HTTP請求的常見延遲時間。
在保留原有X.509有效期的同時,為了降低CRL撤銷列表帶來的復(fù)雜性,通過PKC/AC目錄服務(wù),將過期的證書直接做刪除索引處理。這樣既可以減少證書驗證的時間,也可以有效實現(xiàn)身份/權(quán)限撤銷。
使用TCM平臺加密證書對屬性證書中的涉密屬性進行加密,只有能夠解密該屬性的驗證者,才能獲知屬性的內(nèi)容,降低屬性外泄造成損失的風險。
基于TCM的網(wǎng)絡(luò)安全訪問模型,是對Beyond Corp框架的思考和探索。模型中的組件已經(jīng)具備成熟的技術(shù)和工程實現(xiàn),如TCM計算平臺和可信交換機;授權(quán)過程獨立使用AC,可以不必改造現(xiàn)有證書系統(tǒng),不影響原有PKC的簽發(fā)和使用。輕量化的實現(xiàn)思路,易于系統(tǒng)的構(gòu)建、移植和部署,在保證安全性的同時,提供了較強的可用性。