◆李衛(wèi)明
(杭州弗蘭科信息安全科技有限公司 浙江 333000)
新形勢下,社會進入了大數(shù)據(jù)時代,社會發(fā)展產生的數(shù)據(jù)逐漸遞增,每年幾乎翻一倍,在數(shù)據(jù)開放的社會,用戶將信息存儲于公共服務平臺。平臺的開放性,意味著無論是否是用戶意愿,用戶信息都可能主動或被動的泄露,輕則受到騷擾,重則威脅用戶財產甚至生命安全[1]。此時,傳統(tǒng)的封堵查殺被動防御方式已經無法保障服務平臺的數(shù)據(jù)安全,而在可信計算下,對服務平臺數(shù)據(jù)進行加密,從傳統(tǒng)的被動防御轉變?yōu)橹鲃臃烙欣谔岣邤?shù)據(jù)的安全存儲水平,盡可能降低用戶的數(shù)據(jù)泄露風險,充分發(fā)揮服務平臺的作用。
可信計算概念的第一次正式提出,可以追溯到1983年美國國防部制定的《可信計算機系統(tǒng)評價準則》(Trusted Computer System Evaluation Criteria,TCSEC)。TCSEC中提出了可信計算機(Trusted Computer)和可信計算基(Trusted Computing Base)的概念。1999年,IBM、HP、Intel、微軟等企業(yè)發(fā)起并成立了可信計算平臺聯(lián)盟(Trusted Computing Platform Alliance,TCPA),后改名為可信計算組織(Trusted Computing Group,TCG)[4]。TCG認為,可信計算的總體目標是提高計算機系統(tǒng)的安全性?,F(xiàn)階段的主要目標是提供平臺可信性的遠程證明,確保系統(tǒng)數(shù)據(jù)的完整性、數(shù)據(jù)的安全存儲[2]。
可信計算的基本思想是通過信任傳遞確保整個計算機系統(tǒng)的可信,其中涉及3個基本概念:信任根、信任傳遞和可信度量。首先,在計算機系統(tǒng)中建立一個信任根,而可信計算平臺中安裝的可信平臺模塊即為信任根。信任根的可信性由物理安全、計算安全和管理安全共同確保。再建立一條信任鏈,從信任根開始,通過完整性度量和完整性存儲技術對系統(tǒng)關鍵信息的可信賴性進行度量和存儲,實現(xiàn)信任的鏈式傳遞[3]。
TCG規(guī)定的可信計算技術作為一種成熟的可信計算技術,在國際上有著廣泛應用??尚庞嬎阒饕宋鍌€關鍵技術概念。其一,簽注密鑰。作為2048位的密鑰對,包含了RSA公共秘鑰與私有密鑰,在芯片出廠后,已經隨機生成,并不能隨意改變,能夠對芯片內的敏感信息進行認證、加密并發(fā)送。其二,安全輸入與輸出。主要是指計算機用戶數(shù)據(jù)庫與交互軟件的保護路徑。新形勢下,在計算機系統(tǒng)中,惡意軟件擁有諸多攔截方式,如:鍵盤監(jiān)聽、截屏。其三,儲存器屏蔽。作為一般存儲保護技術的拓展,為數(shù)據(jù)信息提供了獨立存儲區(qū)域,通過對數(shù)據(jù)存儲器進行屏蔽,即使入侵者能夠控制操作系統(tǒng),也能保障信息安全。其四,密封存儲。主要是將私有信息與軟硬件平臺的配置信息同一捆綁,以此保護用戶私有信息。不過,該種方式下,數(shù)據(jù)僅能在相同軟硬件的組合環(huán)境中讀取。其五,遠程認證。當用戶電腦改變,授權方既能感知。
SGX全稱Intel Software Guard Extensions,是Intel開發(fā)的新的處理器技術,是對英特爾體系(IA)的一個擴展。它可以在計算平臺上提供一個可信空間,保障用戶關鍵代碼和數(shù)據(jù)的機密性和完整性,增強軟件的安全性。
SGX包含三大要素:安全區(qū)、認證和密封。安全區(qū)是SGX的核心。如果不先建立安全區(qū),將不能夠進行認證或密封。實質上,安全區(qū)是應用程序根據(jù)一套CPU指令在地址空間建立受保護的區(qū)域。該區(qū)域可封裝合法的軟件代碼,未經授權的軟件無法訪問受保護區(qū)域,而經授權的軟件可通過專用CPU指令啟用、構建和加載動態(tài)鏈接庫文件與應用程序交互。
SGX技術可為機密信息提供高級別的保護,抵御惡意軟件的攻擊。即便遭受惡意軟件的攻擊,它也能夠保障數(shù)據(jù)的機密性和完整性[4]。
可信加密服務平臺技術是基于英特爾SGX(Software Guard Extensions)技術,將用戶的合法數(shù)據(jù)存儲在一個安全可信的環(huán)境中,保護其不被惡意軟件攻擊,即便是操作系統(tǒng)本身也無法獲取到該隔離環(huán)境中的數(shù)據(jù),從而能夠保證數(shù)據(jù)在加解密運算過程中無法被惡意竊取。
白盒加密是一種加密算法技術。傳統(tǒng)的加密默認是在黑盒環(huán)境中實施的,即攻擊者只能看到輸入(如明文)或輸出(如密文)等有限信息。如果攻擊者可以完全控制加密的終端,可以知道加密的中間值、加密算法、甚至修改執(zhí)行代碼。那么稱為是白盒攻擊[5]。
密鑰白盒是將密碼算法白盒化的過程,從本質上說是提高加解密程序的復雜度,致使逆向人員無法分析還原出密鑰。白盒算法能夠抵御白盒攻擊,幫助解決密鑰的運行安全問題。
可信加密服務平臺技術研究目標:
(1)確保用戶的數(shù)據(jù)存儲安全,數(shù)據(jù)的存儲安全依賴于密鑰的生命周期安全;
(2)確保用戶的密鑰生成、存儲安全,即使數(shù)據(jù)庫被拖庫,密鑰安全仍然能夠得到保證;
(3)確保用戶密鑰的分發(fā)安全,即使分發(fā)密鑰的通信鏈路被監(jiān)聽,仍然能夠保證密鑰的傳輸安全;
(4)能夠保證即使在攻擊者已經獲得平臺的實際控制并直接攻擊內存的境況下也能保證密鑰的安全和隱秘;
(5)能夠保證加解密數(shù)據(jù)的機密性和完整性并不會被正常的系統(tǒng)軟件對平臺資源進行管理和控制的功能所擾亂;
(6)允許用戶保護敏感信息不被運行在更高特權等級下的欺詐軟件非法訪問和修改。
可信加密服務平臺技術的架構:
可信加密服務平臺技術架構包括數(shù)據(jù)加解密接口層、SGX可信容器、SGX驅動層、SGX芯片,借助Intel處理器的SGX技術,通過CPU的硬件模式切換,加解密服務進入可信模式執(zhí)行,只使用必需的硬件構成一個完全隔離的特權模式。系統(tǒng)具體效果圖如圖1。
圖1 系統(tǒng)圖
可信加密服務平臺技術包括密鑰管理服務器(KMS)、可信加密模塊兩部分。KMS負責密鑰的生成、存儲、分發(fā)等功能;可信加密模塊提供加解密接口,并能抵御白盒攻擊,保護加密模塊所需的密鑰,如圖2。
圖2 可信加密模塊
密鑰管理服務器用于安全生成、存儲、分發(fā)、管理密鑰。密鑰由硬件加密卡生成,生成后由加密卡加密存儲,加密密鑰由硬件加密卡存儲、管理,下發(fā)密鑰時由加密卡解密并以會話密鑰加密形成密文。
3.1.1 密鑰的生成安全
密鑰的生成安全由加密卡保障,生成算法使用國密算法,所用到的隨機數(shù)是由加密卡產生的真隨機數(shù),保證算法的安全性[6]。
3.1.2 密鑰的存儲安全
密鑰以密文形式存儲,加密密鑰只存在于加密卡中,加密解密算法的運行安全、密鑰加密密鑰的存儲安全由硬件保證,且安全性通過國家密碼管理局認證。
3.1.3 密鑰的分發(fā)安全
密鑰由會話密鑰保護,會話密鑰由公鑰加密保護。密鑰下發(fā)時為保證密鑰的安全,使用客戶端生成的會話密鑰來加密下發(fā)。會話密鑰只存在于請求密鑰時客戶端內存中,傳輸時以密鑰服務器的公鑰作為加密密鑰加密形成密文,只有擁有配對私鑰的密鑰服務器才能解開。
一個典型的密鑰分發(fā)流程如圖3所示。
圖3 密鑰分發(fā)流程
3.1.4 密鑰服務器的可靠性
密鑰服務器可靠性通過增加冗余設備形成主備部署、集群部署模式,單機故障時密鑰請求發(fā)送到備用服務器上。密鑰服務器數(shù)據(jù)實時熱備,保證數(shù)據(jù)可用性。
白盒算法的核心思想是混淆(一種特殊的混淆)。它的目的是為了保護在白盒環(huán)境下(不可信環(huán)境)的密鑰,從而在白盒環(huán)境下安全進行加解密操作。
白盒加密算法將密鑰和原來的加密算法進行混淆。一種具體實現(xiàn)形式是在塊加密進行一些改動設計,引入查找表的概念。在密碼程序運行的任何階段,原始密鑰信息完全融入加解密算法之中,原始密鑰信息已經不存在。即只能輸入明文得到密文,或者相反操作得到明文。動態(tài)白盒技術還可以在保持白盒庫不變的情況下更換密鑰,極大提升白盒密碼產品的靈活性。
3.2.1 加密流程和接口
(1)可信加密模塊接收KMS分發(fā)的密鑰key,key經過白盒處理后得到wb_key。
(2)得到wb_key后,白盒算法使用wb_key對輸入明文進行加密。
由于白盒算法中已經沒有密鑰出現(xiàn),因此運行環(huán)境的密鑰安全得到保護。為保證白盒處理key的運行安全,將這一步操作放入SGX可信容器執(zhí)行,即利用處理器提供的一些指令創(chuàng)建一個可信執(zhí)行環(huán)境,將key的白盒處理程序加載到可信容器中,保證key的白盒處理是安全可信的。
3.2.2 獲取密鑰
客戶端通過發(fā)送用戶ID、個人身份標識等信息向密鑰管理服務器(簡稱KMS)請求獲取SM9密鑰,KMS接收到用戶請求后通過特定的函數(shù)生成SM9密鑰,再將密鑰加密后分發(fā)到客戶端。
3.2.3 更新密鑰
客戶端通過發(fā)送用戶ID、個人身份標識等信息向KMS請求更新SM9密鑰,KMS銷毀老密鑰,重新生成一個新密鑰,再將密鑰加密后分發(fā)到客戶端。
3.2.4 銷毀密鑰
密鑰管理服務器對已經沒有權限訪問數(shù)據(jù)的用戶進行銷毀密鑰,防止信息泄露。
3.2.5 算法初始化
客戶端在進行加解密操作之前,向KMS請求,完成密鑰初始化。
3.2.6 數(shù)據(jù)加密
客戶端傳輸數(shù)據(jù)之前,采用SM2、SM3、SM4等高強度國密算法,實現(xiàn)對明文數(shù)據(jù)加密。
3.2.7 數(shù)據(jù)解密
客戶端接收到密文之后,采用SM2、SM3、SM4等高強度國密算法,實現(xiàn)對密文數(shù)據(jù)解密。
3.2.8 服務接口能力
服務實現(xiàn)外部接口設計,給客戶端提供加解密接口,外部直接在客戶端調用接口,即可實現(xiàn)相關業(yè)務功能
可信加密服務平臺技術采用了白盒密碼技術、SGX技術和SM2、SM3、SM4等高強度國密算法等構建了一個可信加密服務。實現(xiàn)了數(shù)據(jù)在計算、傳輸、存儲過程中的保密性,保障了數(shù)據(jù)安全;同時也實現(xiàn)了密鑰的生成、存儲、分發(fā)、運行、管理等密鑰全生命周期的安全。有效解決了數(shù)據(jù)存儲的安全問題,避免了用戶數(shù)據(jù)的丟失與篡改,提高了用戶對網絡平臺的信任值,推動了網絡的進一步發(fā)展。