新聞中心

EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 設(shè)計(jì)應(yīng)用 > 安全存儲(chǔ)器如何在可信任執(zhí)行環(huán)境中發(fā)揮作用

安全存儲(chǔ)器如何在可信任執(zhí)行環(huán)境中發(fā)揮作用

作者: 時(shí)間:2017-06-12 來(lái)源:網(wǎng)絡(luò) 收藏
如今的手機(jī)具有許許多多的新應(yīng)用,包括存儲(chǔ)敏感數(shù)據(jù),以及提供像移動(dòng)付費(fèi)這類的安全業(yè)務(wù)。隨著利用手機(jī)存儲(chǔ)關(guān)鍵信息的現(xiàn)象前所未見(jiàn)地增長(zhǎng),如何保護(hù)手機(jī)不受那些能夠盜取或?yàn)E用信用卡號(hào)碼或安全數(shù)據(jù)內(nèi)容密鑰的流氓軟件的侵害,并保護(hù)數(shù)據(jù)的安全正變得日益重要。

手機(jī)需要一個(gè)可信任的執(zhí)行環(huán)境(),來(lái)確保敏感數(shù)據(jù)的安全存儲(chǔ)和處理而不被盜用。一個(gè)可信任的指的是任務(wù)的執(zhí)行如預(yù)期所想??尚湃蔚倪\(yùn)算機(jī)構(gòu)()采用行為名聲(behavioral reputation)的概念,此時(shí)指的是文檔中的“可信任運(yùn)算”??尚湃蔚男袨槭前踩夹g(shù)中的關(guān)鍵部分,因?yàn)樗谷藗兿嘈乓粋€(gè)的行為,進(jìn)而允許人們分析環(huán)境安全的各個(gè)方面。完整了解如何創(chuàng)建和維護(hù)一個(gè)可信任的EE,將有助于像手機(jī)支付這類的應(yīng)用。一旦客戶、銀行以及各種商業(yè)機(jī)構(gòu)都能充分信任這些應(yīng)用是安全的,這方面的應(yīng)用將會(huì)增加。

在《移動(dòng)手機(jī)的安全》一書(shū)中,Chris J. Mitchell認(rèn)為下面的幾個(gè)方面是與移動(dòng)運(yùn)算相關(guān)的主要安全問(wèn)題:鑒權(quán)、數(shù)據(jù)完整性、數(shù)據(jù)保密性以及非抵賴性(non-repudiation)。文中闡釋了安全在提供作為一個(gè)可信任EE的這些業(yè)務(wù)方面所扮演的關(guān)鍵作用,包括能夠支持多方相關(guān)者的豐富訪問(wèn)控制機(jī)制。

可信任的執(zhí)行環(huán)境

一個(gè)EE是一些定義一個(gè)運(yùn)算架構(gòu)的軟硬件的集合。一個(gè)EE可以是一個(gè)帶有的簡(jiǎn)單CPU,或者是一個(gè)運(yùn)行在負(fù)責(zé)管理一個(gè)處理器和各種外設(shè)的OS頂層JAVA。一個(gè)可信任的EE是一個(gè)其執(zhí)行與預(yù)期相一致的運(yùn)算環(huán)境。所指的行為名聲的概念,就是本文中的可信任運(yùn)算。

顯然,提供安全業(yè)務(wù)需要行為名聲。以及其它機(jī)構(gòu)所采用的評(píng)估行為名聲的方案是定義一個(gè)安全的啟動(dòng)過(guò)程,來(lái)驗(yàn)證手機(jī)的啟動(dòng)處于可信任狀態(tài)。這個(gè)可信任狀態(tài)的確認(rèn)是通過(guò)驗(yàn)證手機(jī)中所執(zhí)行代碼(OS及其它)的完整性來(lái)獲得的。

但是,僅僅是提供安全啟動(dòng)對(duì)于提供一個(gè)可信任的EE來(lái)說(shuō)是不夠的,因?yàn)橄到y(tǒng)在安全啟動(dòng)后會(huì)遭受流氓軟件的攻擊,在任何大型的OS中都有一些流氓軟件可以利用的安全漏洞。建議采用運(yùn)行期間的完整性檢查來(lái)確認(rèn)代碼的完整性。這些檢查可以周期性地進(jìn)行,也可以在關(guān)鍵事件發(fā)生前進(jìn)行。不過(guò),運(yùn)行期間的完整性檢查只能在攻擊發(fā)生時(shí)方可檢測(cè)到。雖然這可以降低破壞性的風(fēng)險(xiǎn),但在存在流氓軟件的環(huán)境中還不能提供一個(gè)可信任的EE。

基于閃存的安全性

許多對(duì)PC和手機(jī)的攻擊可以追溯到攻擊者修改非易失性中的數(shù)據(jù)/代碼?;陂W存的安全技術(shù)保護(hù)存儲(chǔ)器免受這類攻擊,防止未經(jīng)授權(quán)的修改。單單是在基帶處理器中提升安全保護(hù)的手機(jī)無(wú)法防止對(duì)閃存的修改。它只是能夠檢查到數(shù)據(jù)的修改而作為完整性檢查的一部分,這種檢查在某些情況下也顯得有點(diǎn)太遲。

TCG創(chuàng)建了可信任的平臺(tái)模組(TPM)的概念,當(dāng)其與PC集成到一起時(shí),為大量的應(yīng)用提供了改進(jìn)的基于硬件的安全性。TPM是一個(gè)存儲(chǔ)密鑰、密碼和數(shù)字鑒權(quán)的微控制器,通常安裝到PC的主板上。TCG的手機(jī)工作組將TPM這一概念擴(kuò)展到其MTM標(biāo)準(zhǔn)中手機(jī)的EE。與TPM和MTM不一樣,基于閃存的安全不僅僅是檢測(cè)完整性的失效,還確保完整性保持在一個(gè)合理的威脅模型(threat model)之下。該功能叫做完整性保護(hù)存儲(chǔ)器,對(duì)避開(kāi)針對(duì)手機(jī)的非易失性存儲(chǔ)器的攻擊非常重要。一個(gè)沒(méi)有基于閃存的安全系統(tǒng)的MTM只能夠檢測(cè)數(shù)據(jù)/代碼的變化,卻無(wú)法有效地避免。但MTM檢測(cè)到數(shù)據(jù)/代碼的變化時(shí),破壞可能已經(jīng)發(fā)生了。

基于閃存的安全所提供的完整性保護(hù)的另一個(gè)重要結(jié)果是數(shù)據(jù)的有效性。可信任EE的其它解決方案集中在數(shù)據(jù)的保密性上。例如,它們確保流氓軟件無(wú)法讀取用戶的信用卡號(hào)碼,但卻無(wú)法保證信用卡號(hào)碼不被病毒所刪除,從而導(dǎo)致成千上萬(wàn)的用戶無(wú)法使用他們的手機(jī)來(lái)進(jìn)行移動(dòng)支付。而基于閃存的安全技術(shù)則能夠同時(shí)提供上述保密性和有效性。

基于閃存的安全系統(tǒng)(圖1)采用多芯片封裝,包括非易失性存儲(chǔ)器(閃存)以及一片提供對(duì)非易失性存儲(chǔ)器的訪問(wèn)控制的安全處理器。該安全處理器還用作為一個(gè)可信任的EE,用于手機(jī)中提供安全業(yè)務(wù)。該安全處理器作為一個(gè)可信任EE是非常理想的,因?yàn)樗羁拷鎯?chǔ)完整性保護(hù)代碼、數(shù)據(jù)以及密鑰的非易失性存儲(chǔ)器。因?yàn)樗彩且粋€(gè)隔離的環(huán)境,只能執(zhí)行基于閃存的安全系統(tǒng)所提供的專用軟件,因而不會(huì)受到像緩沖器溢出這類的攻擊。

圖1:如何將基于閃存的安全系統(tǒng)嵌入到手機(jī)中。

本文引用地址:http://2s4d.com/article/201706/353454.htm

圖2所示的是一個(gè)安全系統(tǒng)的方框圖。其中,CPU是一片ARM7-TDMI處理器,運(yùn)行速率約60MHz。加密引擎支持均衡加密(AES、DES、3DES)和非對(duì)稱加密(PKI based on RSA)算法。安全處理器作為主處理器(基帶處理器應(yīng)用處理器)與閃存之間的看門(mén)狗,監(jiān)控所有對(duì)閃存的訪問(wèn)。由安全處理器所提供的安全服務(wù)包括加密和閃存器件保護(hù)。

圖2:基于閃存的安全系統(tǒng)方框圖。


安全處理器及安全閃存服務(wù)

安全處理器為手機(jī)上運(yùn)行的應(yīng)用提供一個(gè)可信任的EE。手機(jī)OEM和網(wǎng)絡(luò)運(yùn)營(yíng)商嚴(yán)格控制安全處理器上運(yùn)行的軟件,并且是與主機(jī)相互隔離的。只有經(jīng)驗(yàn)證且信任的程序才能安裝到安全處理器上。安全處理器上運(yùn)行的軟件比手機(jī)上運(yùn)行的一般OS要小得多,故軟件的驗(yàn)證比較容易。安全處理器提供與手機(jī)安全相關(guān)的四種安全服務(wù)(鑒權(quán)、數(shù)據(jù)完整性、數(shù)據(jù)保密性和非抵賴性)。圖3給出了基于閃存的安全系統(tǒng)的軟件結(jié)構(gòu)。在主機(jī)平臺(tái)上實(shí)現(xiàn)的API提供安全存儲(chǔ)服務(wù),以及加密服務(wù)。API將功能呼叫轉(zhuǎn)換成通過(guò)存儲(chǔ)器接口發(fā)往安全處理器的消息。

為了消除對(duì)安全處理器的惡意消息攻擊,利用精心定義的語(yǔ)法和語(yǔ)義設(shè)計(jì)這些消息被。在一個(gè)消息中,每個(gè)變量長(zhǎng)度的數(shù)據(jù)域的開(kāi)始帶有一個(gè)特殊標(biāo)記,隨后是域長(zhǎng)度,它在數(shù)據(jù)之前。這與C字符串不一樣,其長(zhǎng)度只有當(dāng)你瀏覽字符串并發(fā)現(xiàn)一個(gè)無(wú)效字符后方可知道其長(zhǎng)度。有一個(gè)消息分析器來(lái)分析消息并檢查是否是有效的語(yǔ)法,直到語(yǔ)法檢查通過(guò)后才對(duì)數(shù)據(jù)進(jìn)行處理,這就對(duì)緩沖器溢出這類的攻擊提供了保護(hù)。然后,才根據(jù)消息中特定域?qū)⑾⒎职l(fā)到正確的中介(agent)。該中介根據(jù)消息中的規(guī)定為緩沖器分配足夠的空間,并經(jīng)消息分析器驗(yàn)證。只有有限的中介來(lái)處理有限的消息,這些中介將仔細(xì)地分析安全漏洞。消息不能生成能夠在安全處理器中執(zhí)行的任意的本地代碼。消息中沒(méi)有功能指針。

安全處理器提供安全存儲(chǔ)器服務(wù),包括存儲(chǔ)密鑰、證書(shū)、代碼和數(shù)據(jù)??梢愿鶕?jù)應(yīng)用中的安全需求來(lái)制訂這些內(nèi)容的訪問(wèn)權(quán)限。

圖3:基于閃存的安全軟件結(jié)構(gòu)。


安全分區(qū)

非易失性存儲(chǔ)器可以被分成獨(dú)立的存儲(chǔ)器分區(qū),每個(gè)分區(qū)具有單獨(dú)的訪問(wèn)控制。有一個(gè)單獨(dú)的硬件強(qiáng)制性訪問(wèn)控制來(lái)控制程序的讀取、程序的擦除,以及改變分區(qū)的訪問(wèn)權(quán)限的其它動(dòng)作。訪問(wèn)可以通過(guò)密碼控制,為了增強(qiáng)安全性,也可以采用PKI鑒權(quán)。在不同的壽命階段,由不同的保管者來(lái)創(chuàng)建這些分區(qū)。例如,網(wǎng)絡(luò)運(yùn)營(yíng)商可以創(chuàng)建一個(gè)代碼分區(qū),其中包括OS和運(yùn)營(yíng)商的其他驗(yàn)證軟件。該分區(qū)將只有一個(gè)讀取訪問(wèn),沒(méi)有任何的鑒權(quán),故代碼可以任意地執(zhí)行。而同時(shí),程序的擦除卻需要運(yùn)營(yíng)商的PKI鑒權(quán)。這就防止了主機(jī)平臺(tái)上運(yùn)行的任何流氓軟件來(lái)修改代碼分區(qū)。從而在并非只是啟動(dòng)過(guò)程中的所有時(shí)間內(nèi),維持了OS和其他相關(guān)軟件的完整性。

具有豐富的訪問(wèn)控制的安全分區(qū)提供了數(shù)據(jù)完整性和保密性。該分區(qū)可以被保護(hù),免于未授權(quán)的人利用密碼或PKI鑒權(quán)來(lái)讀取訪問(wèn)。從而提供了所需數(shù)據(jù)的保密性。相似地,分區(qū)還可以被保護(hù)避免未授權(quán)的寫(xiě)操作,從而保持了數(shù)據(jù)的完整性。

該訪問(wèn)控制還具有一個(gè)附加功能,即定義了單獨(dú)分區(qū)的可用性。例如,在通過(guò)SIM卡鎖檢查之前,主代碼分區(qū)被鎖定到只能讀取。這就迫使在SIM卡鎖檢查沒(méi)有通過(guò)之前無(wú)法使用手機(jī)。

存儲(chǔ)對(duì)象

基于閃存的安全系統(tǒng)被用來(lái)存儲(chǔ)數(shù)據(jù)、代碼、密鑰、證書(shū)以及代幣。移動(dòng)設(shè)備通常將密鑰存在ROM中,但與閃存相比其靈活性較差且容量有限。在非易失性存儲(chǔ)器中加密的密鑰也能夠提供保密性,但無(wú)法防止密鑰被流氓軟件擦除。而基于閃存的安全系統(tǒng)則允許存儲(chǔ)一個(gè)虛擬的數(shù)量無(wú)限的密鑰。在任何時(shí)候可以利用OTA更新來(lái)增加更多的密鑰。通過(guò)將存儲(chǔ)對(duì)象存儲(chǔ)到合適的分區(qū)中,可以提供保密性,完整性和鑒權(quán)。

動(dòng)態(tài)加密和加密服務(wù)

安全處理器還提供一個(gè)動(dòng)態(tài)加密功能。該功能允許主機(jī)向存儲(chǔ)器發(fā)送純文本,文本在寫(xiě)入閃存時(shí)被加密。所用的加密算法是AES-CTR。

密碼服務(wù)是PKCS#11 API的一個(gè)子集。API獨(dú)立于主機(jī)平臺(tái),并支持對(duì)稱密鑰和公鑰。API將功能呼叫轉(zhuǎn)換成送往安全處理器的消息,在這里利用加密閃存內(nèi)核進(jìn)行處理。密鑰的完整性和保密性得到很好的保護(hù),因?yàn)樗鼈儾粫?huì)離開(kāi)安全處理器。由安全處理器提供的加密服務(wù)允許人們?cè)诎踩幚砥髋c外部服務(wù)器之間創(chuàng)建一個(gè)安全的通信信道。該通信通道的安全與主機(jī)平臺(tái)無(wú)關(guān)。從而可以實(shí)現(xiàn)FOTA和移動(dòng)商業(yè)這類的應(yīng)用。安全處理器提供一個(gè)高級(jí)的設(shè)備鑒權(quán),這是由于根密鑰根本不會(huì)離開(kāi)安全處理器。

結(jié)論

基于閃存的安全系統(tǒng)提供了一個(gè)可信任的EE,以及一個(gè)具有豐富的訪問(wèn)控制機(jī)制的安全非易失性存儲(chǔ)器,支持多方保管。具有PKI的安全非易失性存儲(chǔ)器意味著代碼和數(shù)據(jù)的完整性得到保護(hù),結(jié)果使數(shù)據(jù)完整性和保密性更加安全。鑒權(quán)和非抵賴性是安全處理器的結(jié)果,構(gòu)成一個(gè)具有嵌入式加密閃存內(nèi)核的隔離式可信任EE。此外,安全非易失性存儲(chǔ)器使得數(shù)據(jù)在任何時(shí)候都可用。僅僅利用編碼是不可能實(shí)現(xiàn)這一性能的。利用加密學(xué),像MTM這類的其它方案雖然能夠監(jiān)測(cè)到數(shù)據(jù)是否被篡改,但卻無(wú)法防止篡改。如果沒(méi)有保護(hù),病毒還能摧毀成千上萬(wàn)手機(jī)上的信用卡號(hào),從而使得用戶無(wú)法進(jìn)行移動(dòng)支付。

有基于閃存的安全系統(tǒng)提供的存儲(chǔ)器完整性保護(hù)使得密鑰的配置更加靈活。具有較大的容量來(lái)存儲(chǔ)加密密鑰和數(shù)字證書(shū)。更進(jìn)一步,還能夠通過(guò)空中無(wú)線接口進(jìn)行密鑰更新。

對(duì)PC和手機(jī)的許多攻擊可以追溯到非易失性存儲(chǔ)器中數(shù)據(jù)和代碼的篡改?;陂W存的安全系統(tǒng)保護(hù)存儲(chǔ)器免受這類攻擊,而其他類型的手機(jī)安全方案則不能。像MTM或基帶安全解決方案倚賴的是安全啟動(dòng)以及在運(yùn)行時(shí)間內(nèi)檢查數(shù)據(jù)和代碼有無(wú)變化。實(shí)際上,在檢查時(shí),修改的代碼可能已經(jīng)對(duì)敏感數(shù)據(jù)進(jìn)行了篡改。而防止對(duì)數(shù)據(jù)和代碼的篡改,構(gòu)建一個(gè)可信任的EE是至關(guān)重要的。

采用基于閃存的安全存儲(chǔ)器來(lái)創(chuàng)建并維護(hù)一個(gè)可信任EE將有助于實(shí)現(xiàn)更先進(jìn)的手機(jī)應(yīng)用,例如手機(jī)支付安全和可靠性應(yīng)用,并增加公共機(jī)構(gòu)和消費(fèi)者的采用。

編輯:博子


關(guān)鍵詞: 存儲(chǔ)器 EE TCG 虛擬機(jī)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉