從復(fù)制保護(hù)您的MCU設(shè)計(jì)和逆向工程
微控制器被用作幾乎每個(gè)應(yīng)用可以想象在主控制元件。他們的權(quán)力和靈活性,讓他們?nèi)サ浇M件的大多數(shù)設(shè)計(jì)的心臟。因?yàn)樗_保您的設(shè)計(jì)不能輕易被復(fù)制是非常重要的,逆向工程或篡改,現(xiàn)代的微控制器現(xiàn)在提供了幾個(gè)不同的選項(xiàng)來(lái)保護(hù)您的設(shè)計(jì);的能力和權(quán)衡一個(gè)很好的理解是,以確定哪種方法是最好的一個(gè)給定的設(shè)計(jì)很重要。本文將回顧一些常見的方法來(lái)設(shè)計(jì)保護(hù),如使從外面的世界,你的MCU讀取,使用片上的功能來(lái)驗(yàn)證要執(zhí)行的代碼修改,并使用外部元件來(lái)提供更先進(jìn)的安全功能。板上技術(shù)篡改檢測(cè)和可能的“懲罰”是也可以應(yīng)用進(jìn)行說(shuō)明。
本文引用地址:http://cafeforensic.com/article/201808/387094.htm保護(hù)你的設(shè)計(jì)
你可能沒(méi)有考慮了很久是多么容易復(fù)制你的設(shè)計(jì),但誰(shuí)擁有經(jīng)驗(yàn)豐富的設(shè)計(jì)偷竊會(huì)告訴你,一旦它發(fā)生的工程師,你永遠(yuǎn)不希望它再次發(fā)生!例如,如果片上的代碼為您的MCU設(shè)計(jì),可以讀出一個(gè)競(jìng)爭(zhēng)對(duì)手,甚至是通過(guò)不法合同制造商,你的整個(gè)設(shè)計(jì)可以很容易地復(fù)制和轉(zhuǎn)售 - 無(wú)論是在不同的品牌或者甚至可以使用你的品牌在黑市上。這超過(guò)產(chǎn)品容量流行的設(shè)計(jì)已經(jīng)成熟,這種類型的治療,如果賣家無(wú)法從你的產(chǎn)品,他們可能會(huì)動(dòng)用黑市場(chǎng),以滿足他們客戶的需求。正如脆弱的是隱藏在你的MCU代碼心臟的實(shí)際設(shè)計(jì)或算法。也許你有一個(gè)創(chuàng)新的方法來(lái)分析傳感器數(shù)據(jù),大大減少了所需的電力或處理時(shí)間。你想一個(gè)競(jìng)爭(zhēng)對(duì)手能夠把剛才復(fù)制的代碼和反向工程算法?甚至有軟件工具,可以采取二進(jìn)制和再生合理的“C”代碼,使算法的細(xì)節(jié)更容易破譯。即使是很平常,比如板上測(cè)試程序,可能已經(jīng)采取了許多個(gè)月的時(shí)間剛剛好 - 你想要的競(jìng)爭(zhēng)對(duì)手獲得快捷訪問(wèn)您的基礎(chǔ)架構(gòu)相關(guān)的代碼,大大降低其開發(fā)成本,使他們能夠不公平地削減他們的市場(chǎng)價(jià)格來(lái)贏得您的公司嗎?保護(hù)的另一個(gè)方面是涉及硬件驗(yàn)證。通常,一個(gè)設(shè)計(jì)將允許外設(shè)或附加卡這樣的基本設(shè)計(jì)理念可以升級(jí)或增強(qiáng)。如果設(shè)計(jì)不包括一些功能,能夠檢測(cè)的附加模塊硬件授權(quán),有可能為其他廠商打造低成本的模塊,以爭(zhēng)奪附加業(yè)務(wù)。打印機(jī)墨盒也許是最熟悉的應(yīng)用程序的硬件認(rèn)證,以確保你買的是制造商的品牌墨盒。常打印機(jī)以折扣出售和盒價(jià)格膨脹以覆蓋折讓打印機(jī)的壽命。參賽者可以以較低的價(jià)格出售墨盒,因?yàn)樗恍枰栈卮蛴C(jī)的折扣,同時(shí)仍然保持健康的利潤(rùn)。因此,現(xiàn)在應(yīng)該清楚的是,在許多情況下,重要的是要能夠保護(hù)硬件復(fù)制,逆向工程,并且從假冒。此外,如果沒(méi)有安全硬件為起點(diǎn),這將是不可能創(chuàng)造的各種需要的像家庭互聯(lián)(圖1)的應(yīng)用程序的安全設(shè)備。
圖1:在聯(lián)網(wǎng)家庭安全設(shè)備常見的例子。 (德州儀器提供)一些技術(shù)已經(jīng)發(fā)展隨著時(shí)間的推移,其中許多是使用標(biāo)準(zhǔn)化的安全算法,以保護(hù)和驗(yàn)證存儲(chǔ)內(nèi)的MCU或存儲(chǔ)器外設(shè)到MCU的代碼。讓我們來(lái)看看一些他們用于最常見的保護(hù)技術(shù)和安全標(biāo)準(zhǔn)和內(nèi)容。然后,我們就可以看到各種微控制器和外設(shè)支持這些標(biāo)準(zhǔn),可以用來(lái)保護(hù)你的設(shè)計(jì)。
保護(hù)技術(shù)和通用安全標(biāo)準(zhǔn)
也許是最常用的技術(shù),用于保護(hù)硬件從復(fù)印編程在其中的編程的數(shù)據(jù)不能從裝置外部進(jìn)行訪問(wèn)的一次性可編程(OTP)模式的MCU。 JTAG和調(diào)試設(shè)備必須關(guān)閉,因此數(shù)據(jù)不能使用調(diào)試訪問(wèn)“后門”?,F(xiàn)代的設(shè)計(jì)找到OTP的做法卻非常有限,因?yàn)檎{(diào)試測(cè)試過(guò)程中故障分析和現(xiàn)場(chǎng)一個(gè)非常有用的功能。在OTP方法消除的另一個(gè)重要功能是遠(yuǎn)程更新片上MCU代碼進(jìn)行升級(jí),bug修復(fù),提高誠(chéng)信經(jīng)營(yíng)和優(yōu)質(zhì)的服務(wù)所需要的其他類似的變化。理想情況下,我們希望保護(hù)我們的代碼逆向工程和復(fù)制,但仍然能夠方便地進(jìn)行更新和更改。一些MCU提供了訪問(wèn)片上存儲(chǔ)器的安全方法。德州儀器(TI)憑借其MSP430FR MCU系列,提供了一種方法要么確保JTAG端口通過(guò)密碼,或者通過(guò)編程片上禁用保險(xiǎn)絲簽名完全禁用它。當(dāng)JTAG被禁用,對(duì)設(shè)備的訪問(wèn)經(jīng)由使用密碼引導(dǎo)裝載程序只允許。提供了一個(gè)不正確的密碼可以導(dǎo)致整個(gè)代碼存儲(chǔ)區(qū)被質(zhì)量擦除。 TI還提供了一個(gè)方法來(lái)創(chuàng)建兩個(gè)MSP430FR存儲(chǔ)器空間內(nèi)的安全的和非安全區(qū)域。安全碼可以被封裝(通過(guò)IP封裝,或IPE),通過(guò)存儲(chǔ)安全碼在被映射到引導(dǎo)代碼區(qū)中的第一電周期后一個(gè)特殊存儲(chǔ)區(qū)域。 IPE的區(qū)域不能由JTAG,BSL甚至在系統(tǒng)讀取訪問(wèn),所以它保持安全的裝置的壽命。在安全區(qū)域內(nèi)的代碼可以,不過(guò)安全區(qū)域內(nèi)的訪問(wèn)數(shù)據(jù),因此既安全算法和密鑰可以安全區(qū)域內(nèi)共存。為了保護(hù)您的IP所需的最常見的安全算法使用,也可以加密和/或解密的安全數(shù)據(jù)或數(shù)據(jù)進(jìn)行驗(yàn)證,以證明它是從一個(gè)已知的和可信賴的來(lái)源。 MCU可提供專用硬件來(lái)實(shí)現(xiàn)共同的行業(yè)標(biāo)準(zhǔn)和Microchip PIC32MZ MCU系列就是這樣一個(gè)例子。 PIC32MZ設(shè)備包括一個(gè)實(shí)現(xiàn)共同批量加密解密“密碼”,如AES,DES和三重DES硬件加密引擎。這些功能所使用的加密保護(hù)的安全數(shù)據(jù),使用密鑰,以便只“知道”一個(gè)進(jìn)程密鑰才能解密數(shù)據(jù)。認(rèn)證是由SHA-1,SHA-256,MD-5,AES-GCM和HMAC提供了 - 在所有的硬件實(shí)現(xiàn)。加密引擎的硬件結(jié)構(gòu)和產(chǎn)生的性能(在輸入時(shí)鐘的Mbps的/ MHz和以Mbps為100MHz的時(shí)鐘)示于圖2中。性能值遠(yuǎn)遠(yuǎn)優(yōu)于軟件實(shí)現(xiàn)并表明,如果大量的數(shù)據(jù)需要經(jīng)常處理的(可能在高速數(shù)據(jù)傳輸)或在時(shí)間關(guān)鍵事件(諸如在啟動(dòng)過(guò)程中)使用的硬件加密引擎可滿足系統(tǒng)的要求是至關(guān)重要的。
圖2:Microchip的PIC32MZ單片機(jī)加密引擎和性能指標(biāo)。 (Microchip的提供)
評(píng)論