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