安全存儲器如何在可信任執行環(huán)境中發(fā)揮作用
手機需要一個(gè)可信任的執行環(huán)境(EE),來(lái)確保敏感數據的安全存儲和處理而不被盜用。一個(gè)可信任的EE指的是任務(wù)的執行如預期所想??尚湃蔚倪\算機構(TCG)采用行為名聲(behavioral reputation)的概念,此時(shí)指的是文檔中的“可信任運算”??尚湃蔚男袨槭前踩夹g(shù)中的關(guān)鍵部分,因為它使人們相信一個(gè)EE的行為,進(jìn)而允許人們分析環(huán)境安全的各個(gè)方面。完整了解如何創(chuàng )建和維護一個(gè)可信任的EE,將有助于像手機支付這類(lèi)的應用。一旦客戶(hù)、銀行以及各種商業(yè)機構都能充分信任這些應用是安全的,這方面的應用將會(huì )增加。
在《移動(dòng)手機的安全》一書(shū)中,Chris J. Mitchell認為下面的幾個(gè)方面是與移動(dòng)運算相關(guān)的主要安全問(wèn)題:鑒權、數據完整性、數據保密性以及非抵賴(lài)性(non-repudiation)。文中闡釋了安全存儲器在提供作為一個(gè)可信任EE的這些業(yè)務(wù)方面所扮演的關(guān)鍵作用,包括能夠支持多方相關(guān)者的豐富訪(fǎng)問(wèn)控制機制。
可信任的執行環(huán)境
一個(gè)EE是一些定義一個(gè)運算架構的軟硬件的集合。一個(gè)EE可以是一個(gè)帶有存儲器的簡(jiǎn)單CPU,或者是一個(gè)運行在負責管理一個(gè)處理器和各種外設的OS頂層JAVA虛擬機。一個(gè)可信任的EE是一個(gè)其執行與預期相一致的運算環(huán)境。TCG所指的行為名聲的概念,就是本文中的可信任運算。
顯然,提供安全業(yè)務(wù)需要行為名聲。TCG以及其它機構所采用的評估行為名聲的方案是定義一個(gè)安全的啟動(dòng)過(guò)程,來(lái)驗證手機的啟動(dòng)處于可信任狀態(tài)。這個(gè)可信任狀態(tài)的確認是通過(guò)驗證手機中所執行代碼(OS及其它)的完整性來(lái)獲得的。
但是,僅僅是提供安全啟動(dòng)對于提供一個(gè)可信任的EE來(lái)說(shuō)是不夠的,因為系統在安全啟動(dòng)后會(huì )遭受流氓軟件的攻擊,在任何大型的OS中都有一些流氓軟件可以利用的安全漏洞。建議采用運行期間的完整性檢查來(lái)確認代碼的完整性。這些檢查可以周期性地進(jìn)行,也可以在關(guān)鍵事件發(fā)生前進(jìn)行。不過(guò),運行期間的完整性檢查只能在攻擊發(fā)生時(shí)方可檢測到。雖然這可以降低破壞性的風(fēng)險,但在存在流氓軟件的環(huán)境中還不能提供一個(gè)可信任的EE。
基于閃存的安全性
許多對PC和手機的攻擊可以追溯到攻擊者修改非易失性存儲器中的數據/代碼?;陂W存的安全技術(shù)保護存儲器免受這類(lèi)攻擊,防止未經(jīng)授權的修改。單單是在基帶處理器中提升安全保護的手機無(wú)法防止對閃存的修改。它只是能夠檢查到數據的修改而作為完整性檢查的一部分,這種檢查在某些情況下也顯得有點(diǎn)太遲。
TCG創(chuàng )建了可信任的平臺模組(TPM)的概念,當其與PC集成到一起時(shí),為大量的應用提供了改進(jìn)的基于硬件的安全性。TPM是一個(gè)存儲密鑰、密碼和數字鑒權的微控制器,通常安裝到PC的主板上。TCG的手機工作組將TPM這一概念擴展到其MTM標準中手機的EE。與TPM和MTM不一樣,基于閃存的安全不僅僅是檢測完整性的失效,還確保完整性保持在一個(gè)合理的威脅模型(threat model)之下。該功能叫做完整性保護存儲器,對避開(kāi)針對手機的非易失性存儲器的攻擊非常重要。一個(gè)沒(méi)有基于閃存的安全系統的MTM只能夠檢測數據/代碼的變化,卻無(wú)法有效地避免。但MTM檢測到數據/代碼的變化時(shí),破壞可能已經(jīng)發(fā)生了。
基于閃存的安全所提供的完整性保護的另一個(gè)重要結果是數據的有效性??尚湃蜤E的其它解決方案集中在數據的保密性上。例如,它們確保流氓軟件無(wú)法讀取用戶(hù)的信用卡號碼,但卻無(wú)法保證信用卡號碼不被病毒所刪除,從而導致成千上萬(wàn)的用戶(hù)無(wú)法使用他們的手機來(lái)進(jìn)行移動(dòng)支付。而基于閃存的安全技術(shù)則能夠同時(shí)提供上述保密性和有效性。
基于閃存的安全系統(圖1)采用多芯片封裝,包括非易失性存儲器(閃存)以及一片提供對非易失性存儲器的訪(fǎng)問(wèn)控制的安全處理器。該安全處理器還用作為一個(gè)可信任的EE,用于手機中提供安全業(yè)務(wù)。該安全處理器作為一個(gè)可信任EE是非常理想的,因為它最靠近存儲完整性保護代碼、數據以及密鑰的非易失性存儲器。因為它也是一個(gè)隔離的環(huán)境,只能執行基于閃存的安全系統所提供的專(zhuān)用軟件,因而不會(huì )受到像緩沖器溢出這類(lèi)的攻擊。
![]() |
圖1:如何將基于閃存的安全系統嵌入到手機中。 本文引用地址:http://dyxdggzs.com/article/201706/353454.htm |
圖2所示的是一個(gè)安全系統的方框圖。其中,CPU是一片ARM7-TDMI處理器,運行速率約60MHz。加密引擎支持均衡加密(AES、DES、3DES)和非對稱(chēng)加密(PKI based on RSA)算法。安全處理器作為主處理器(基帶處理器應用處理器)與閃存之間的看門(mén)狗,監控所有對閃存的訪(fǎng)問(wèn)。由安全處理器所提供的安全服務(wù)包括加密和閃存器件保護。
![]() |
圖2:基于閃存的安全系統方框圖。 |
安全處理器及安全閃存服務(wù)
安全處理器為手機上運行的應用提供一個(gè)可信任的EE。手機OEM和網(wǎng)絡(luò )運營(yíng)商嚴格控制安全處理器上運行的軟件,并且是與主機相互隔離的。只有經(jīng)驗證且信任的程序才能安裝到安全處理器上。安全處理器上運行的軟件比手機上運行的一般OS要小得多,故軟件的驗證比較容易。安全處理器提供與手機安全相關(guān)的四種安全服務(wù)(鑒權、數據完整性、數據保密性和非抵賴(lài)性)。圖3給出了基于閃存的安全系統的軟件結構。在主機平臺上實(shí)現的API提供安全存儲服務(wù),以及加密服務(wù)。API將功能呼叫轉換成通過(guò)存儲器接口發(fā)往安全處理器的消息。
為了消除對安全處理器的惡意消息攻擊,利用精心定義的語(yǔ)法和語(yǔ)義設計這些消息被。在一個(gè)消息中,每個(gè)變量長(cháng)度的數據域的開(kāi)始帶有一個(gè)特殊標記,隨后是域長(cháng)度,它在數據之前。這與C字符串不一樣,其長(cháng)度只有當你瀏覽字符串并發(fā)現一個(gè)無(wú)效字符后方可知道其長(cháng)度。有一個(gè)消息分析器來(lái)分析消息并檢查是否是有效的語(yǔ)法,直到語(yǔ)法檢查通過(guò)后才對數據進(jìn)行處理,這就對緩沖器溢出這類(lèi)的攻擊提供了保護。然后,才根據消息中特定域將消息分發(fā)到正確的中介(agent)。該中介根據消息中的規定為緩沖器分配足夠的空間,并經(jīng)消息分析器驗證。只有有限的中介來(lái)處理有限的消息,這些中介將仔細地分析安全漏洞。消息不能生成能夠在安全處理器中執行的任意的本地代碼。消息中沒(méi)有功能指針。
安全處理器提供安全存儲器服務(wù),包括存儲密鑰、證書(shū)、代碼和數據??梢愿鶕弥械陌踩枨髞?lái)制訂這些內容的訪(fǎng)問(wèn)權限。
![]() |
圖3:基于閃存的安全軟件結構。 |
安全分區
非易失性存儲器可以被分成獨立的存儲器分區,每個(gè)分區具有單獨的訪(fǎng)問(wèn)控制。有一個(gè)單獨的硬件強制性訪(fǎng)問(wèn)控制來(lái)控制程序的讀取、程序的擦除,以及改變分區的訪(fǎng)問(wèn)權限的其它動(dòng)作。訪(fǎng)問(wèn)可以通過(guò)密碼控制,為了增強安全性,也可以采用PKI鑒權。在不同的壽命階段,由不同的保管者來(lái)創(chuàng )建這些分區。例如,網(wǎng)絡(luò )運營(yíng)商可以創(chuàng )建一個(gè)代碼分區,其中包括OS和運營(yíng)商的其他驗證軟件。該分區將只有一個(gè)讀取訪(fǎng)問(wèn),沒(méi)有任何的鑒權,故代碼可以任意地執行。而同時(shí),程序的擦除卻需要運營(yíng)商的PKI鑒權。這就防止了主機平臺上運行的任何流氓軟件來(lái)修改代碼分區。從而在并非只是啟動(dòng)過(guò)程中的所有時(shí)間內,維持了OS和其他相關(guān)軟件的完整性。
具有豐富的訪(fǎng)問(wèn)控制的安全分區提供了數據完整性和保密性。該分區可以被保護,免于未授權的人利用密碼或PKI鑒權來(lái)讀取訪(fǎng)問(wèn)。從而提供了所需數據的保密性。相似地,分區還可以被保護避免未授權的寫(xiě)操作,從而保持了數據的完整性。
該訪(fǎng)問(wèn)控制還具有一個(gè)附加功能,即定義了單獨分區的可用性。例如,在通過(guò)SIM卡鎖檢查之前,主代碼分區被鎖定到只能讀取。這就迫使在SIM卡鎖檢查沒(méi)有通過(guò)之前無(wú)法使用手機。
存儲對象
基于閃存的安全系統被用來(lái)存儲數據、代碼、密鑰、證書(shū)以及代幣。移動(dòng)設備通常將密鑰存在ROM中,但與閃存相比其靈活性較差且容量有限。在非易失性存儲器中加密的密鑰也能夠提供保密性,但無(wú)法防止密鑰被流氓軟件擦除。而基于閃存的安全系統則允許存儲一個(gè)虛擬的數量無(wú)限的密鑰。在任何時(shí)候可以利用OTA更新來(lái)增加更多的密鑰。通過(guò)將存儲對象存儲到合適的分區中,可以提供保密性,完整性和鑒權。
動(dòng)態(tài)加密和加密服務(wù)
安全處理器還提供一個(gè)動(dòng)態(tài)加密功能。該功能允許主機向存儲器發(fā)送純文本,文本在寫(xiě)入閃存時(shí)被加密。所用的加密算法是AES-CTR。
密碼服務(wù)是PKCS#11 API的一個(gè)子集。API獨立于主機平臺,并支持對稱(chēng)密鑰和公鑰。API將功能呼叫轉換成送往安全處理器的消息,在這里利用加密閃存內核進(jìn)行處理。密鑰的完整性和保密性得到很好的保護,因為它們不會(huì )離開(kāi)安全處理器。由安全處理器提供的加密服務(wù)允許人們在安全處理器與外部服務(wù)器之間創(chuàng )建一個(gè)安全的通信信道。該通信通道的安全與主機平臺無(wú)關(guān)。從而可以實(shí)現FOTA和移動(dòng)商業(yè)這類(lèi)的應用。安全處理器提供一個(gè)高級的設備鑒權,這是由于根密鑰根本不會(huì )離開(kāi)安全處理器。
結論
基于閃存的安全系統提供了一個(gè)可信任的EE,以及一個(gè)具有豐富的訪(fǎng)問(wèn)控制機制的安全非易失性存儲器,支持多方保管。具有PKI的安全非易失性存儲器意味著(zhù)代碼和數據的完整性得到保護,結果使數據完整性和保密性更加安全。鑒權和非抵賴(lài)性是安全處理器的結果,構成一個(gè)具有嵌入式加密閃存內核的隔離式可信任EE。此外,安全非易失性存儲器使得數據在任何時(shí)候都可用。僅僅利用編碼是不可能實(shí)現這一性能的。利用加密學(xué),像MTM這類(lèi)的其它方案雖然能夠監測到數據是否被篡改,但卻無(wú)法防止篡改。如果沒(méi)有保護,病毒還能摧毀成千上萬(wàn)手機上的信用卡號,從而使得用戶(hù)無(wú)法進(jìn)行移動(dòng)支付。
有基于閃存的安全系統提供的存儲器完整性保護使得密鑰的配置更加靈活。具有較大的容量來(lái)存儲加密密鑰和數字證書(shū)。更進(jìn)一步,還能夠通過(guò)空中無(wú)線(xiàn)接口進(jìn)行密鑰更新。
對PC和手機的許多攻擊可以追溯到非易失性存儲器中數據和代碼的篡改?;陂W存的安全系統保護存儲器免受這類(lèi)攻擊,而其他類(lèi)型的手機安全方案則不能。像MTM或基帶安全解決方案倚賴(lài)的是安全啟動(dòng)以及在運行時(shí)間內檢查數據和代碼有無(wú)變化。實(shí)際上,在檢查時(shí),修改的代碼可能已經(jīng)對敏感數據進(jìn)行了篡改。而防止對數據和代碼的篡改,構建一個(gè)可信任的EE是至關(guān)重要的。
采用基于閃存的安全存儲器來(lái)創(chuàng )建并維護一個(gè)可信任EE將有助于實(shí)現更先進(jìn)的手機應用,例如手機支付安全和可靠性應用,并增加公共機構和消費者的采用。
編輯:博子
評論