|
嵌入式linux開發(fā)教程推介_嵌入式系統(tǒng)制造商面臨的IP安全性的挑戰(zhàn),
公司的未來發(fā)展取決于知識(shí)產(chǎn)權(quán)(IP)的開發(fā)與保護(hù)。知識(shí)產(chǎn)權(quán)(IP) 在維基百科中被定義為法律概念,指的是被賦予專有權(quán)的智力創(chuàng)作。盡管該定義只涉及法律含義,但I(xiàn)P其實(shí)是組織或個(gè)人開展創(chuàng)新和努力工作的成果。IP是公司創(chuàng)新的制勝法則,相對(duì)于競爭對(duì)手能夠?yàn)楫a(chǎn)品帶來優(yōu)勢(shì)。對(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ù)模式嵌入式開發(fā)視頻下載, 嵌入式開發(fā)項(xiàng)目實(shí)例視頻, 嵌入式開發(fā)項(xiàng)目視頻教程, 嵌入式開始視頻, 嵌入式開始視頻教程, 嵌入式看門狗視頻講解, 嵌入式看哪個(gè)視頻好, 嵌入式看什么視頻好, 嵌入式看視頻教程, 嵌入式看視頻下載, 嵌入式看誰的視頻, 嵌入式看誰的視頻好, 嵌入式看誰視頻, 嵌入式看誰視頻教程, 嵌入式看誰視頻下載, 嵌入式課程視頻, 嵌入式課程視頻教程, 嵌入式課程視頻下載, 嵌入式課件視頻教程, 嵌入式課設(shè)遠(yuǎn)程視頻采集系統(tǒng), 嵌入式控制視頻, 嵌入式控制視頻教程,
所選的保護(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)/外部讀/寫操作。
在生成十六進(jìn)制文件(將在生產(chǎn)就緒型系統(tǒng)編程)的同時(shí),系統(tǒng)設(shè)計(jì)人員必須設(shè)定合適的保護(hù)等級(jí),想方設(shè)法實(shí)現(xiàn)最高IP安全性。
對(duì)于需要為不同閃存區(qū)域設(shè)定不同保護(hù)等級(jí)的系統(tǒng)而言,最好檢查一下閃存粒度保護(hù)的設(shè)定情況。有些微控制器只允許為閃存賦予一個(gè)保護(hù)等級(jí)。有些器件允許將閃存分為容量為數(shù)kB的塊,有的閃存塊甚至低至64字節(jié)。應(yīng)使用可將閃存分為小塊的器件,這樣能最大程度地縮小處于較低保護(hù)等級(jí)的閃存區(qū)域。否則會(huì)造成閃存浪費(fèi)或使更多閃存內(nèi)容面臨安全威脅。
隱藏模擬與數(shù)字資源及其互聯(lián)方式
目前我們已經(jīng)討論了系統(tǒng)固件部分的IP保護(hù)問題。一些OEM廠商為了防止競爭對(duì)手讀取部件編號(hào),會(huì)在PCB板上涂焦油或環(huán)氧樹脂。對(duì)于大批量系統(tǒng)還可以在IC器件上印刷定制部件編號(hào)。定制部件編號(hào)同樣可以使實(shí)際部件編號(hào)難以識(shí)別。然而,這些方法都無法做到萬無一失。競爭對(duì)手可以跟蹤各種連接,觀察各種引腳上的信號(hào),并找出設(shè)計(jì)中所使用的部件,而且找到各種模塊在PCB板上的連接方式也并非難事。因此,隱藏各種外設(shè)及其互連方式的唯一辦法就是使用物理隱藏。例如,如果所有連接都能隱藏到單個(gè)芯片內(nèi)部,那么要弄懂信號(hào)鏈并確定系統(tǒng)使用的外設(shè)就變得更加困難。將各種外設(shè)集成到單個(gè)芯片中有助于隱藏硬件相關(guān)信息,考慮到這一事實(shí),因此在防止受逆向工程攻擊時(shí),片上系統(tǒng)(SoC)器件應(yīng)該是最佳選擇。然而,有些SoC的專用引腳存在逆向工程漏洞,例如當(dāng)器件為外設(shè)提供專用引腳時(shí),就很容易判斷出所使用的外設(shè)類型。因此,那些具有靈活布線功能、可以讓任意外設(shè)連接任意引腳的SoC能夠更好地防止受逆向工程攻擊。
圖3(a)、3(b)和3(c)分別給出了電動(dòng)自行車控制系統(tǒng)的三個(gè)高端實(shí)現(xiàn)實(shí)例(為了簡便,只給出了比較抽象的方框圖,并未包含PCB上的各種其它組件)。這些實(shí)現(xiàn)方案包括:
· 使用焊接在印刷電路板上的各個(gè)模塊
· 使用帶專用外設(shè)引腳的SoC
· 使用帶靈活I(lǐng)/O布線功能的SoC
圖3(a):基于單個(gè)組件的實(shí)現(xiàn)方案
圖3(b):帶專用外設(shè)引腳的SoC
圖3(c):采用帶靈活I(lǐng)/O布線功能的SoC
如果讓工程師對(duì)以不同方式實(shí)現(xiàn)同一系統(tǒng)的這三種PCB板進(jìn)行逆向工程設(shè)計(jì),哪種更容易被還原工程?答案很明顯應(yīng)該是圖3(a)中的實(shí)現(xiàn)方案,因?yàn)橐磺卸记逦┞对赑CB板上。要對(duì)3(b)中的方案進(jìn)行反逆向工程設(shè)計(jì)就需要更長的時(shí)間,但仍可獲得基本的實(shí)現(xiàn)方法。那么圖3(c)方案會(huì)怎樣?可以說很難甚至不可能摸清這種實(shí)現(xiàn)方案,因?yàn)樗袷且粋(gè)只有輸出和輸出的黑盒子。工程師根本無法找到該系統(tǒng)中實(shí)現(xiàn)的模擬信號(hào)鏈,因?yàn)镾oC可以讓所有外設(shè)連接任何一個(gè)引腳,而且這些外設(shè)在內(nèi)部的互連無需借助任何物理引腳。此外,由于可編程邏輯沒有使用專用引腳,因此無法找到保護(hù)邏輯。
對(duì)這種方案進(jìn)行逆向工程設(shè)計(jì)的唯一可能方法是讀取決定外設(shè)與引腳連接的寄存器。但是競爭對(duì)手必須首先解決閃存讀取這個(gè)難題。如果有人能破解閃存的安全機(jī)制,或者系統(tǒng)設(shè)計(jì)人員忘了設(shè)置必要的閃存保護(hù)功能,那么如果外設(shè)與大部分MCU一樣有固定地址,這種情況下信號(hào)鏈才可能被破解。
賽普拉斯半導(dǎo)體公司的PSoC 1器件在這方面能提供最佳的安全功能。這些器件采用通用模擬和數(shù)字模塊以及可編程布線方式。同一通用模塊可實(shí)現(xiàn)任意外設(shè)。例如,可編程模擬模塊可用于實(shí)現(xiàn)可編程增益放大器 (PGA)、模數(shù)轉(zhuǎn)換器(ADC)、比較器、濾波器甚至電容式感應(yīng)模塊?删幊虜(shù)字模塊可配置成定時(shí)器、計(jì)數(shù)器、UART、PRS生成器或SPI。這些模塊都可以連接到任意引腳。這一切都由一些寄存器位來確定。這些寄存器值存儲(chǔ)在閃存中并在啟動(dòng)過程中加載。寄存器值在閃存中的存儲(chǔ)位置并不固定,而是由程序來決定。系統(tǒng)設(shè)計(jì)人員可在編譯過程中改變寄存器值的存儲(chǔ)位置。此外,還可以在運(yùn)行過程中修改這些寄存器值,以便重新配置模塊從而實(shí)現(xiàn)不同外設(shè)。例如,在啟動(dòng)階段配置成可編程增益放大器的模塊可重新配置成比較器或ADC。因此,幾乎不可能對(duì)包含這類器件的設(shè)計(jì)中的硬件資源進(jìn)行逆向工程設(shè)計(jì)。
如今的產(chǎn)品要想取得成功必須面對(duì)逆向工程設(shè)計(jì)這一殘酷現(xiàn)實(shí),為此應(yīng)在系統(tǒng)中添加IP安全功能用以避免IP遭到未授權(quán)訪問。其中很重要的一點(diǎn)就是要隱藏硬件與固件實(shí)現(xiàn)方案,從而實(shí)現(xiàn)最高安全等級(jí)。不同的MCU制造商提供不同的方法來防止閃存遭到非法讀/寫,因此選擇系統(tǒng)器件之前必須評(píng)估該產(chǎn)品的安全技術(shù)與效果。采用可編程資源和可編程布線技術(shù)的SoC對(duì)系統(tǒng)中所有底層實(shí)現(xiàn)方案都進(jìn)行了抽象化,留給競爭對(duì)手的只是一個(gè)無法實(shí)現(xiàn)逆向工程的黑盒子。 |
|