何 凡, 冷 靜
(1.武漢理工大學 計算機科學與技術學院 湖北 武漢 430070; 2.湖北警官學院 信息技術系 湖北 武漢 430034)
當前,全球范圍內(nèi)網(wǎng)絡安全威脅和風險日益突出,沈昌祥院士提出用可信計算構(gòu)筑網(wǎng)絡安全[1].可信計算的基本思想體現(xiàn)在可信計算平臺(trusted computing platform,TCP)的設計中,先在平臺中建立一個信任根,即可信平臺模塊(trusted platform module,TPM),再建立一條信任鏈,從信任根開始到硬件平臺、可信計算支撐軟件、操作系統(tǒng)、應用軟件,逐級測量認證,從而把信任擴展到整個可信計算平臺,并確保整個平臺的可信[2].
可信計算支撐軟件(trusted computing supporting software,TCSS)是TCP的重要組成部分,它在應用軟件與TPM之間搭建了通訊的橋梁,應用程序通過調(diào)用可信計算支撐軟件的接口來使用TPM提供的安全功能[3].
國內(nèi)外的可信計算支撐軟件大多數(shù)參照可信計算組織(trusted computing group,TCG)的可信軟件棧規(guī)范,代表性的產(chǎn)品有:IBM公司發(fā)布的開源軟件TrouSerS[4]、奧地利格拉茨技術大學IAIK開發(fā)的 Trusted Computing API for Java[5]、聯(lián)想公司的Client Security Solution8.3[6].
現(xiàn)有的TCSS多按照TCG規(guī)范定義了軟件的功能接口,但TCG規(guī)范中對TCSS要達到的安全功能需求和安全目標沒有明確的定義.本文在通用準則(common criteria,CC)的基礎上,結(jié)合對TCSS安全功能劃分和實際應用需求,提出一種可信計算支撐軟件的實現(xiàn)方案,并實現(xiàn)了可信計算支撐軟件的原型.
TCG規(guī)范中定義的可信計算支撐軟件也稱TCG軟件棧(TCG software stack,TSS),是一種為上層的應用程序提供訪問TPM接口的軟件系統(tǒng),是可信計算平臺體系中必不可少的組成部分[7].
TSS是多層次體系結(jié)構(gòu),對本地和遠程的可信計算平臺都能提供服務支持.TSS的體系結(jié)構(gòu)具體可分為TCG服務提供層(TCG service provider,TSP)、TCG核心服務層(TCG core service,TCS)和TCG設備驅(qū)動庫(TCG device driver library,TDDL),各個層次都定義了規(guī)范化的函數(shù)接口.TSP主要作為本地和遠程應用的可信代理,TCS用于提供公共服務的集合,而TDDL負責與TPM的交互.
通用準則CC是國際上廣泛認可的信息安全評估標準,能夠為信息技術產(chǎn)品的安全功能要求和安全保證措施提供通用的標準[8].CC 也可以指導具有安全功能相關IT產(chǎn)品的開發(fā)和評估過程.
在CC的體系中,保護輪廓(protection profile,PP)是安全性評估的依據(jù),是對IT安全產(chǎn)品的一組安全要求的描述,是抽象層次較高的安全需求說明書.CC發(fā)展委員會還提出了一種基于合作性保護輪廓的安全測評框架[9].PP有助于提高IT產(chǎn)品開發(fā)和評估過程的規(guī)范性,通過對評估對象(target of evaluation,TOE)進行描述,以確定TOE的安全要求.TOE通常被定義為參照規(guī)范實現(xiàn)的軟件、固件和硬件,本文研究的TOE為可信計算支撐軟件.
在開發(fā)階段建立的安全要求對滿足用戶的安全目標意義重大,CC不強制要求采用特定的開發(fā)方法和模型.CC指導TOE的開發(fā)過程是將抽象安全目標逐步細化為最終實現(xiàn)的過程,該過程的基礎是將安全要求細化為安全目標中的TOE概要規(guī)范,使每個低層次的細化代表具有更為詳細的設計分解,最低的抽象表示是TOE實現(xiàn)本身,每個層次的細化是更高層次的實例化[10].文獻[11]從設計分解的角度論述了CC的基本評估模型,并提出了對安全功能要求進行半形式化的方法.
安全功能需求定義用于描述產(chǎn)品應該提供的安全功能,CC為安全功能需求的描述制定了規(guī)范的類描述方式,從而保障產(chǎn)品開發(fā)的規(guī)范性.
所有TOE安全功能要求從根本上均來源于對TOE的用途和環(huán)境的考慮,TCSS的設計要求和規(guī)范的導出過程可分成多個層次,首先確定TCSS的安全環(huán)境,接著確定TCSS的安全目標,然后導出TCSS的安全要求,包括功能要求、保證要求和環(huán)境要求,最后導出安全功能規(guī)范,可以參照安全功能規(guī)范完成對TCSS的設計和測試.
CC中定義了安全功能要求,用類、族和組件來表示,一個功能類包含一個或多個功能族,一個功能族又包含一個或多個組件,每個組件提供一組安全功能元素.我們以TCG規(guī)范定義的TCSS為研究對象,TCG服務提供層(TSP)、TCG核心服務層(TCS)和TCG設備驅(qū)動庫(TDDL)各層次抽取出的安全功能為功能類;每個安全功能又劃分為不同的子功能模塊,即對應為功能族;每個模塊有不同的接口函數(shù),即對應組件,且接口函數(shù)間存在著相互依賴的關系.
參照TCG可信軟件棧規(guī)范滿足可信計算平臺的安全需求,并實現(xiàn)TCSS自身的設計功能目標,遵照不同規(guī)范實現(xiàn)TCSS的分析和設計,本文對可信計算規(guī)范進行抽取,定義出了TCSS的安全功能,如圖1所示.不同的規(guī)范中定義的函數(shù)功能接口有差異,各TCSS產(chǎn)品的實現(xiàn)機制會有不同,但只要TCSS能實現(xiàn)相對應的安全功能,同樣能達到設計目標.
圖1 TCSS安全功能劃分Fig.1 Division diagram of TCSS security function
下面具體分析TCSS的TSP層安全功能和相關子功能的關系.將TSP劃分為完整性保護、可信認證和密碼支持3個安全功能.TSP的各安全功能又可分解為相關子功能,完整性保護包括HASH功能和TPM管理;可信認證包括上下文管理、策略管理和PCR管理;密碼支持包括密鑰管理和數(shù)據(jù)加解密.
TCSS的設計采用自頂向下方法,確定功能類和對應的功能族,再逐步求精設計相關的組件.下面以密碼支持類為例,詳細描述TCSS的設計過程.
CC中對密碼支持類(FCS類)由兩個功能族組成[12]:密鑰管理(FCS_CKM)和密碼運算(FCS_COP).參照CC中對安全功能類、功能族和組件的劃分,對TSP的密碼支持安全功能進行分析.密鑰管理子功能對應FCS_CKM功能族,解決密鑰管理方面的問題;數(shù)據(jù)加解密子功能對應FCS_COP功能族,與密鑰在運算中的使用情況相關.FCS_CKM功能族包括4個組件:密鑰生成(FCS_CKM.1)、密鑰分發(fā)(FCS_CKM.2)、密鑰使用(FCS_CKM.3)和密鑰銷毀(FCS_CKM.4),F(xiàn)CS_COP功能族的組件為密碼運算(FCS_COP.1).密碼支持功能各組件間的依賴關系如圖2所示,可以看出在完成密碼支持安全功能的過程中,密鑰生成組件最先執(zhí)行,密鑰銷毀組件最后執(zhí)行.
圖2 密碼支持功能組件依賴關系圖Fig.2 Dependency diagram of cryptographic support function
密鑰生成、密鑰分發(fā)、密鑰使用、密鑰銷毀和密碼運算等組件中分別設計具體的功能函數(shù).表1描述了TSP層密碼支持類的部分函數(shù)功能劃分.
表1 TSP層密碼支持類的部分函數(shù)功能劃分
本文可信計算支撐軟件的開發(fā)平臺為支持TPM2.0的Intel小型機,操作系統(tǒng)為Ubuntu10.04,編譯器版本為GCC3.3.根據(jù)完整性保護、可信認證和密碼支持等安全功能的要求設計實現(xiàn)了31個功能函數(shù),該TCSS的功能函數(shù)設計是TCG規(guī)范中定義軟件棧的子集,實現(xiàn)了核心的安全功能,同時還增加了對中國標準的加密算法SM4的調(diào)用支持.
通過對所有TCSS實現(xiàn)的函數(shù)接口進行功能測試,全部達到規(guī)范的功能要求,下面以對SM4算法調(diào)用的測試為例,介紹TCSS原型的工作流程.先創(chuàng)建主密鑰(PrimaryKey),授權后再生成SM4密鑰對,用私鑰進行簽名,公鑰驗證簽名.圖3描述了整個測試流程,其中Tspi_TPM2_CreatePrimaryKey函數(shù)的功能是產(chǎn)生1個主密鑰,其函數(shù)測試界面如圖4所示.
圖3 SM4密鑰簽名流程Fig.3 Process of SM4 key signing
圖4 Tspi_TPM2_CreatePrimaryKey函數(shù)測試界面Fig.4 Test interface of Tspi_TPM2_CreatePrimaryKey
Tspi_TPM2_CreatePrimaryKey測試界面中相關字節(jié)的參數(shù)說明如下:
發(fā)送的數(shù)據(jù)包是十六進制的形式顯示,2位數(shù)表示1個字節(jié). 下面對圖中標識出的重要數(shù)據(jù)做一下說明.
1) 前2個字節(jié)代表參數(shù)TPMI_ST_COMMAND_TAG的值為TPM_ST_SESSIONS=0x8002,表示命令有一個或多個連接的會話,授權值在當前的范圍;
2) 第7~10個字節(jié)代表參數(shù)TPM_CC 的值TPM_CC_CreatePrimary=0x00000131,表示生成了主密鑰;
3) 第11~14個字節(jié)代表參數(shù)TPM_AUTH_HANDLE 的值TPM_RH_PLATFORM=0x4000000C,表明是平臺身份的密鑰;
4) 設置PrimaryKey密碼為0x 00 ff,接收到TPM返回的數(shù)據(jù),生成的句柄為0x 80 00 00 00,表示為普通的臨時對象,傳給下一個函數(shù)Tspi_TPM2_CreateKey.
測試結(jié)果表明,接收到TPM返回的數(shù)據(jù),平臺的主密鑰創(chuàng)建成功.
本文借鑒通用準則CC的思想,提出了一種TCSS的設計方法,在分析TCSS的安全功能需求的基礎上抽取安全功能集,并確定對應的子功能和核心功能函數(shù),結(jié)合實際應用需求實現(xiàn)了一種TCSS的原型.最后對已完成的TCSS相關功能函數(shù)進行了測試.實驗表明:本文實現(xiàn)的TCSS原型能提供密碼支持服務、可信認證、完整性保護等安全目標,也支持對國家密碼算法SM4的調(diào)用.今后將進一步完善支持TPM2.0規(guī)范的TCSS設計工作,實現(xiàn)對遠程應用的支持.
參考文獻:
[1] 沈昌祥. 用可信計算構(gòu)筑網(wǎng)絡安全[J]. 求是, 2015(20): 33-34.
[2] 沈昌祥, 張煥國, 王懷民等. 可信計算的研究與發(fā)展[J].中國科學(E輯:信息科學), 2010, 40(2):139-166.
[3] PROUDLER G, CHEN L, DALTON C. Trusted computing platforms: TPM2.0 in context[M].Switzerland:Springer, 2014.
[4] International business machine. TrouSerS[EB/OL]. (2008-10-03) [2017-05-28].http://trousers.sourceforge.net/.
[5] IAIK Graz University of Technology.Trusted computing API for Java[EB/OL].(2011-12-05) [2017-5-28]. https://jcp.org/en/jsr/detail?id=321.
[6] 聯(lián)想集團. ThinkVantage 客戶端安全軟件8.3 [EB/OL].(2014-02-28) [2017-05-26]. http://think.lenovo.com.cn/support/driver/detail.aspx?docID=DR1256885488596.
[7] Trusted computing group. TCG software stack (TSS) specifiction,version 1.2, errata A [EB/OL]. (2009-03-01) [2017-05-21].http://www.trustedcomputinggroup.org/resources/tcg_software_stack_tss_specification.
[8] Common criteria for information technology security evaluation, part 1 introduction and general model,Version 3.1, revision 5[S]. Common criteria recognition arrangement management committee,2017:11-12.
[9] CCRA Management Committee.CCRA:arrangement on the recognition of common criteria certificates in the field of information technology security[EB/OL].(2014-07-02) [2017-05-28].http://www.commoncriteriaportal.org/ccra/.
[10] 中國國家標準化管理委員會. GB/T 18336.1—2008, 信息技術安全技術 信息技術安全性評估準則 第 1 部分:簡介和一般模型[S].北京:中國標準出版社,2008:11-12.
[11] 石竑松, 高金萍, 賈煒, 等. CC標準中安全架構(gòu)與策略模型的分析方法[J]. 清華大學學報(自然科學版), 2016, 56(5): 493-498.
[12] Common criteria for information technology security evaluation,part 2 security functional components,Version 3.1, revision 5[S]. Common criteria recognition arrangement management committee,2017:48-51.