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