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