【導讀】現如今嵌入式系統憑借系統內核小、專(zhuān)用性能強、生命周期長(cháng)的優(yōu)勢強勢打入國防、工業(yè)、智能家庭領(lǐng)域。然而面對信息技術(shù)的不斷創(chuàng )新和更迭,嵌入式系統面臨被黑客攻占的危險,加密的硬盤(pán)驅動(dòng)被滲透和破解。那么如何防范黑客?
通常情況下,正在設計的新嵌入式系統非??赡苁盏絹?lái)自黑客的惡意攻擊。當然,如何避免這種情況的發(fā)生,都取決于你打算如何施加保護。有些黑客只是想導致你的系統崩潰,而另一些人則想借用它作為惡意平臺。還有一些人想要了解你設計的嵌入式內部構造是什么,畢竟這些算法值很多錢(qián)。
在過(guò)去,處理器只是負責開(kāi)機運行,而安全性是在程序或操作系統中實(shí)現的東西。它取決于你信任誰(shuí)以及他們的工作做得怎么樣。在最初階段,微控制器和微處理器采取了類(lèi)似的做法,如添加內存保護,允許應用程序放置到沙盒中等等,這都是最初的安全保護措施。
現在,虛擬化進(jìn)一步拓展了這一特點(diǎn),使高階系統能夠虛擬化整個(gè)系統。要保護沙箱工作,我們假設基礎軟件和硬件不能被影響。當然,這種假設并不總是必要的,例如大多數硬件具有某種形式的軟件參與,像是硬盤(pán)驅動(dòng)器上的控制器。有人可能會(huì )想到,在硬盤(pán)驅動(dòng)器上的數據會(huì )被保存,這對于保護數據本身而言可能會(huì )是一個(gè)問(wèn)題,可能需要使用加密的硬盤(pán)驅動(dòng)器。
不幸的是,通過(guò)一些被黑客入侵并植入木馬的實(shí)際案例,我們現在知道情況并不是這樣的,因為修改此固件不僅僅是加固系統的方式,也同樣是黑客們滲透進(jìn)存儲設備的一種方法。在這種情況下,控制器固件被修改,所以存儲在驅動(dòng)器上的操作系統將受到影響。惡意固件隱藏自身和修改。想要深入這個(gè)系統其實(shí)很容易,因為磁盤(pán)已經(jīng)做了這種類(lèi)型的數據重新映射來(lái)處理不良扇區,所以黑客只需要動(dòng)動(dòng)手指就能輕而易舉的獲取入侵代碼。
對于嵌入式系統的設計而言,在編程設計階段就為系統提供安全驅動(dòng)程序,是每一個(gè)工程師都需要從事的工作。隨著(zhù)黑客入侵的次數愈加頻繁,為嵌入式系統增加牢固的安全程序就顯得愈發(fā)重要。那么,哪些方法能夠有效的防止黑客入侵?使用何種形式的加密密鑰能夠是程序更安全?
安全引導和加密代碼是防止初始攻擊得手的方法。
一次性可編程(OTP)或基于ROM的解決方案是另一種方法,但這些是防止許多應用必要的現場(chǎng)更新。有些平臺還允許調試或者使JTAG支持失能,通常是通過(guò)OTP標志,所以應用程序代碼不再能直接訪(fǎng)問(wèn),使得逆向工程更加困難。如果檢測到攻擊,有些系統會(huì )進(jìn)入防篡改極端,清除代碼和數據。
設置安全密鑰和軟件保護方案
TI的MSP432有一個(gè)有趣的方法來(lái)保護應用程序代碼,這給我們帶來(lái)了一些有用的啟示。這種保護方案允許只執行閃存中的多個(gè)塊,但是要執行這一步,要使代碼能夠在同一個(gè)塊中訪(fǎng)問(wèn)數據。JTAG不會(huì )泄露代碼或數據的內容。被定義的多個(gè)塊和加密密鑰用于驗證并允許更新,這樣惡意物件就不能只是簡(jiǎn)單地除去或替換一個(gè)塊。MSP432不具有安全密鑰存儲或OTP支持,但這些都可以使用軟件保護方案來(lái)實(shí)現。該方法允許供應商一個(gè)芯片上嵌入運行時(shí)間支持,然后將其提供給開(kāi)發(fā)者。開(kāi)發(fā)者可以調用支持程序,但他們不會(huì )直接訪(fǎng)問(wèn)那些可以分解的代碼。該計劃實(shí)際上適用于多個(gè)供應商在同一芯片上提供服務(wù)。
相關(guān)閱讀:
技術(shù)詳解:利用嵌入式降低電池功耗
技術(shù)經(jīng)驗:做嵌入式硬件設計需具備的基本功
嵌入式設計可接受的抖動(dòng)水平要如何確定呢?