嵌入式系統(tǒng)制造商面臨的IP安全性的挑戰(zhàn)
公司的未來發(fā)展取決于知識(shí)產(chǎn)權(quán)(IP)的開發(fā)與保護(hù)。知識(shí)產(chǎn)權(quán)(IP) 在維基百科中被定義為法律概念,指的是被賦予專有權(quán)的智力創(chuàng)作。盡管該定義只涉及法律含義,但IP其實(shí)是組織或個(gè)人開展創(chuàng)新和努力工作的成果。IP是公司創(chuàng)新的制勝法則,相對(duì)于競爭對(duì)手能夠?yàn)楫a(chǎn)品帶來優(yōu)勢。對(duì)于生產(chǎn)嵌入式系統(tǒng)的企業(yè)來說,知識(shí)產(chǎn)權(quán)可能是:
· 系統(tǒng)的固件實(shí)現(xiàn)方案
· 硬件實(shí)現(xiàn)方案;例如利用創(chuàng)新方法實(shí)現(xiàn)信號(hào)鏈或輸出控制,從而讓產(chǎn)品脫穎而出
· 任何解決系統(tǒng)中特殊問題的創(chuàng)新方法
例如,采用盡可能少的硬件資源的嵌入式系統(tǒng)實(shí)現(xiàn)方案就是一個(gè)很好的例證。這種實(shí)現(xiàn)方案可以降低產(chǎn)品制造成本,使產(chǎn)品在競爭激烈的市場中更加暢銷。
知識(shí)產(chǎn)權(quán) (IP) 安全問題公司任何成功所面臨的主要挑戰(zhàn)。每種產(chǎn)品都需要經(jīng)過大量的研發(fā)和創(chuàng)新才能夠成功推出。嵌入式系統(tǒng)制造商向市場推出產(chǎn)品后始終要關(guān)注的是逆向工程攻擊。這在當(dāng)今的市場中是個(gè)棘手的現(xiàn)實(shí)問題。如果競爭對(duì)手竊取IP并復(fù)制設(shè)計(jì),那么您的產(chǎn)品銷售收入將會(huì)受到極大影響。
通常在談到嵌入式系統(tǒng)的IP安全性時(shí),人們首先想到的是與微控制器或微處理器配合使用的固件。當(dāng)說到MCU時(shí)一些系統(tǒng)設(shè)計(jì)人員會(huì)戛然而止。而硬件會(huì)怎樣?是的,有些人很重視硬件,并通過多種方法設(shè)法隱藏硬件實(shí)現(xiàn)方法。任何完整的嵌入式系統(tǒng)的組成部分不僅僅包含固件,還涉及大量硬件(圖1)。
圖1:嵌入式系統(tǒng)
其中的硬件負(fù)責(zé)與外設(shè)進(jìn)行交互,用以感應(yīng)輸入,生成輸出,以及進(jìn)行信號(hào)調(diào)節(jié)。讓我們以電動(dòng)自行車的控制系統(tǒng)為例。圖2給出了這種系統(tǒng)的一種可能的實(shí)現(xiàn)方案。
圖2:電動(dòng)自行車控制系統(tǒng)
如圖2所示,為MCU編寫的固件通常用來接收總線(電源)電壓、速度命令等輸入內(nèi)容,執(zhí)行信號(hào)調(diào)節(jié),并將信號(hào)轉(zhuǎn)換為數(shù)字,然后進(jìn)行各種計(jì)算,并根據(jù)為MCU編寫的固件制定決策,例如控制電機(jī)和LED輸出。
嵌入式系統(tǒng)的IP安全性可分為兩部分。
· 防止發(fā)生未經(jīng)授權(quán)的固件訪問
· 隱藏模擬與數(shù)字資源及其互連情況
防止發(fā)生未經(jīng)授權(quán)的固件訪問
不同微控制器采用不同方法來防止閃存中的代碼遭到未授權(quán)訪問,而有的微控制器根本不采取任何保護(hù)措施。進(jìn)一步說,所有解決方案都采用禁止從閃存存儲(chǔ)區(qū)域讀取數(shù)據(jù)來解決安全問題。有些設(shè)備會(huì)禁用整個(gè)閃存存儲(chǔ)系統(tǒng)的讀/寫訪問。這種解決方案無法在終端系統(tǒng)中添加引導(dǎo)加載程序。如果需要在系統(tǒng)中實(shí)現(xiàn)引導(dǎo)加載程序且IP安全性同樣重要,那么系統(tǒng)設(shè)計(jì)人員就需要選擇合適的微控制器。
有些微控制器將閃存分為多個(gè)模塊,并對(duì)每個(gè)模塊采取不同的安全等級(jí)保護(hù)。對(duì)于這種器件,我們可以在實(shí)現(xiàn)引導(dǎo)加載程序的同時(shí)獲得同樣高的保護(hù)等級(jí)。讓我們看一下賽普拉斯半導(dǎo)體的PSoC 1器件所提供的閃存保護(hù)功能。這些器件支持各種閃存保護(hù)模式:
· 無保護(hù)模式
· 工廠升級(jí)模式
· 現(xiàn)場升級(jí)模式
· 完全保護(hù)模式
所選的保護(hù)模式只能在編程時(shí)載入NVL(非易失性)位,不能在運(yùn)行時(shí)間更改,以免保護(hù)等級(jí)發(fā)生意外更改,也是為了防止攻擊者通過在閃存無保護(hù)區(qū)域?qū)懭胩囟ùa試圖修改固件。
無保護(hù)模式:這種模式下允許執(zhí)行所有外部和內(nèi)部寫入/讀取操作。該保護(hù)模式適合在開發(fā)階段使用,因?yàn)榇藭r(shí)無需將器件提供給第三方。該模式不應(yīng)用于生產(chǎn)階段。
工廠升級(jí)模式:這種保護(hù)模式適用于需要由外部程序員對(duì)各個(gè)閃存模塊進(jìn)行升級(jí)的系統(tǒng)。這種保護(hù)模式不允許外部讀取,但允許外部寫入、內(nèi)部讀取和內(nèi)部寫入。如果某個(gè)特定模塊需要在不擦除整個(gè)存儲(chǔ)器的前提下由外部程序員進(jìn)行升級(jí),那么可以使用這種模式。例如對(duì)于需要由客戶或安裝團(tuán)隊(duì)校正系統(tǒng)并將校正數(shù)據(jù)存儲(chǔ)在閃存中的這種情況,這種模式就很有用。盡管在系統(tǒng)中進(jìn)行的這種升級(jí)非常有用,但在能夠使用安全性更高的模式的情況下必須避免使用該模式。原因在于該模式缺乏對(duì)外部寫入的保護(hù)。如果有人在可升級(jí)區(qū)域插入用以讀取閃存內(nèi)容的代碼,那么IP就會(huì)失去保護(hù)。然而對(duì)于這些器件,為特定模塊只能設(shè)定此類安全級(jí)別,其他模塊則可以設(shè)定更高的安全等級(jí)。因此必須確保將非關(guān)鍵代碼存儲(chǔ)在這些特定模塊中。
現(xiàn)場升級(jí)模式:這種保護(hù)模式禁用外部寫入和讀取操作,只允許內(nèi)部寫入和讀取,因此無法通過程序員接口讀/寫閃存。該模式最適合支持引導(dǎo)加載支持的系統(tǒng)。在采用引導(dǎo)加載程序的嵌入式系統(tǒng)中,引導(dǎo)加載程序通過通信協(xié)議接收需要寫入的閃存數(shù)據(jù),然后使用內(nèi)部程序?qū)?shù)據(jù)寫入閃存。類似地,也是使用內(nèi)部命令來執(zhí)行讀取操作。因此,引導(dǎo)加載程序可以使閃存成為只讀狀態(tài)。引導(dǎo)加載程序可存儲(chǔ)在具有更高安全等級(jí)(完全保護(hù)模式)的模塊中,因此引導(dǎo)加載程序本身不會(huì)被修改。額外對(duì)引導(dǎo)加載程序的通信進(jìn)行加密還能進(jìn)一步降低閃存讀取可能性。
完全保護(hù)模式:如果無需對(duì)閃存模塊進(jìn)行現(xiàn)場或使用外部程序進(jìn)行升級(jí),那么這種保護(hù)模式理想適用于生產(chǎn)階段。這種模式禁止以任何形式訪問閃存,并禁用內(nèi)/外部讀/寫操作。
評(píng)論