嵌入式系統(tǒng)的安全性
嵌入式系統(tǒng)的安全性往往最后才會(huì)被考慮到。工程師們?cè)谠O(shè)計(jì)產(chǎn)品時(shí)往往以迅速上市為目標(biāo),而將安全性問(wèn)題留待將來(lái)的版本升級(jí)時(shí)再行解決。這也并非不合邏輯,因?yàn)楦呒?jí)別的安全性會(huì)增加產(chǎn)品的成本,并延遲上市時(shí)間。 然而,許多系統(tǒng)一開始時(shí)就需要高級(jí)別的安全性。有些情況下,安全要求出自政府或某些貿(mào)易組織。例如,Visa和MasterCard信用卡公司制訂的PCI要求,對(duì)于銷售點(diǎn)終端或PIN鍵盤的安全性要求提供了詳細(xì)說(shuō)明。在其他一些情況下,安全性設(shè)計(jì)被用來(lái)保護(hù)企業(yè)營(yíng)收。安全應(yīng)用能夠阻止逆向工程設(shè)計(jì),防止產(chǎn)品被仿制,或者提供真正的篡改偵測(cè)功能。 安全微控制器究竟做了些什么呢,為什么安全微控制器對(duì)于敏感應(yīng)用如此之重要? 只有密鑰安全,系統(tǒng)才會(huì)安全 安全性不僅僅取決于加密環(huán)節(jié)。盡管加密算法和密鑰管理程序的選擇很關(guān)鍵,但它們常常并不是安全應(yīng)用中的薄弱環(huán)節(jié)。設(shè)想這樣一種場(chǎng)景,Alice和Bob各有一部只能彼此通信的安全電話。電話的加密措施牢不可破,即使使用當(dāng)今世界所有的計(jì)算能力,也需要一個(gè)世紀(jì)才能破解。那么,薄弱環(huán)節(jié)在哪兒呢?電話!如果攻擊者控制了其中的一個(gè)電話,他或她就可以佯裝Alice或Bob,立刻得到他們的秘密信息。攻擊者甚至用不著偷電話,只要趁Alice或Bob不覺(jué),簡(jiǎn)單地安裝一個(gè)竊聽裝置就可以了。 在此場(chǎng)景中,加密措施并未被攻破,而是執(zhí)行加密的設(shè)備,或者“密鑰”,安全性被輕而易舉地攻破了。在嵌入式系統(tǒng)中,密鑰通常是一個(gè)很大的密碼,被加密程序用來(lái)加密信息或認(rèn)證數(shù)據(jù)。所以,一個(gè)安全嵌入式系統(tǒng)最為重要的工作就是保護(hù)該密鑰。如果系統(tǒng)遭到攻擊,必須清除該密鑰,防止其落入攻擊者之手。密鑰的破壞使設(shè)備無(wú)法工作,避免攻擊者獲取敏感信息,例如銀行帳號(hào)和密碼。 為保證密鑰的安全性,密鑰應(yīng)永不離開嵌入式系統(tǒng)的邊界,否則就為攻擊者攻破設(shè)備的安全屏障提供了捷徑(見圖1)。設(shè)計(jì)專門的存儲(chǔ)器保存密鑰的做法不可取,因?yàn)槲?a >控制器和存儲(chǔ)器之間的通信是可見的。最安全的做法是使密鑰停留在處理器內(nèi)部,并用它實(shí)現(xiàn)數(shù)據(jù)的加密和認(rèn)證。這就是說(shuō),系統(tǒng)微控制器需要有內(nèi)部的非易失存儲(chǔ)器。
引發(fā)線和塑料保護(hù) 即使密鑰數(shù)據(jù)只保存在微控制器中,攻擊者還是有可能發(fā)現(xiàn)安全信息。例如,如果攻擊者可以訪問(wèn)微控制器地址和數(shù)據(jù)總線,他就可以通過(guò)插入指令的辦法使密鑰數(shù)據(jù)暴露于外部I/O口。更高級(jí)的攻擊者還可以移除微控制器的塑料封裝,使用微探針讀取內(nèi)部存儲(chǔ)器的內(nèi)容。所以,安全系統(tǒng)需要采取措施阻止這種訪問(wèn),甚至在必要時(shí)令微控制器擦除其存儲(chǔ)器內(nèi)容。應(yīng)對(duì)這一安全挑戰(zhàn)的一個(gè)簡(jiǎn)單方法是將整個(gè)“敏感區(qū)域”(例如微控制器、時(shí)鐘和存儲(chǔ)器)密封在某種足夠牢靠的材料內(nèi),可能需要將印制板上的一塊區(qū)域用塑料填充或用金屬罩覆蓋。感應(yīng)線裝置可以用來(lái)感測(cè)高溫或外殼的移動(dòng)。然而,如果微控制器處于低功耗狀態(tài)而不能采取行動(dòng),這種感測(cè)就沒(méi)有作用。 DS5250:真正安全的密鑰保護(hù)方案 DS5250—Dallas Semiconductor精湛的安全微控制器技術(shù)的結(jié)晶,解決了這些問(wèn)題,可協(xié)助設(shè)計(jì)者實(shí)現(xiàn)高度安全的系統(tǒng),足以滿足政府和金融應(yīng)用之需。其所有出發(fā)點(diǎn)都聚焦于存儲(chǔ)器。 NV SRAM DS5250內(nèi)部的非易失性SRAM (NV SRAM)為敏感信息和密鑰提供了理想的存儲(chǔ)手段。這種常規(guī)的、低泄漏的SRAM滿足兩個(gè)關(guān)鍵要求: 1) 數(shù)據(jù)必須是非易失的。利用一個(gè)很小的廉價(jià)電池,就可以保持關(guān)鍵數(shù)據(jù)長(zhǎng)達(dá)數(shù)年。 2) 數(shù)據(jù)必須易于迅速擦除。一旦芯片的入侵偵測(cè)電路被觸發(fā),DS5250的SRAM瞬間即被擦除。 電池供電的入侵偵測(cè)及其反應(yīng) 除了NV SRAM外,一個(gè)安全系統(tǒng)還應(yīng)有一些傳感器來(lái)偵測(cè)攻擊行為。DS5250有多個(gè)電池供電的入侵傳感器。無(wú)需微控制器處于活動(dòng)狀態(tài)即可對(duì)入侵事件作出反應(yīng)。 利用其片上溫度和電壓傳感器,DS5250可以偵測(cè)故障注入攻擊手段。當(dāng)工作電壓或溫度超出微控制器工作范圍,DS5250立即清除其內(nèi)部NV SRAM。這種機(jī)制消除了攻擊者獲取任何密鑰數(shù)據(jù)的機(jī)會(huì)。為阻止對(duì)NV SRAM單元的微探針探測(cè),DS5250的硅片頂層設(shè)置了一層超細(xì)網(wǎng)格。如果網(wǎng)格線被短路,DS5250即觸發(fā)自毀,清除密鑰數(shù)據(jù)。 DS5250還提供了允許外電路觸發(fā)自毀的輸入。這樣系統(tǒng)可以實(shí)現(xiàn)多層保護(hù)。外部自毀觸發(fā)電路沒(méi)有任何限制。一些常見的外部傳感器包括: 外殼上的侵入偵測(cè)開關(guān)。印制板上的連線當(dāng)外罩被移動(dòng)時(shí)斷開。利用光傳感器檢測(cè)外殼是否被打開或被窺視。 加密的代碼空間 最初裝載系統(tǒng)時(shí),DS5250使用一個(gè)隨機(jī)生成的3DES密鑰將指令代碼加密后再存儲(chǔ)到外部存儲(chǔ)器中(圖2)。這可避免攻擊者向DS5250加入惡意代碼并運(yùn)行之,也可阻止對(duì)應(yīng)用進(jìn)行逆向工程。代碼里也可以加入完整性檢查,以便偵測(cè)攻擊者改變程序代碼的企圖。經(jīng)過(guò)加密的代碼空間不僅阻止攻擊者對(duì)應(yīng)用進(jìn)行逆向工程,而且可以阻止設(shè)備被非法仿制。因?yàn)槊荑€由每個(gè)DS5250隨機(jī)生成,所以任何兩個(gè)系統(tǒng)的外部閃存里的數(shù)據(jù)都不同。只有在攻擊者知道密鑰后,外部閃存數(shù)據(jù)才有用,而從上面的敘述中我們已經(jīng)看到,從DS5250獲取密鑰并非易事。
安全工程 安全系統(tǒng)設(shè)計(jì)是一富有挑戰(zhàn)性的工作。而要強(qiáng)化已有設(shè)計(jì)的安全性更難。密鑰保護(hù)是安全系統(tǒng)設(shè)計(jì)中最關(guān)鍵的部分。DS5250專門有密鑰保護(hù)設(shè)計(jì),因而可為敏感數(shù)據(jù)提供最高安全等級(jí)的保護(hù)。 |