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