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