嵌入式熱門培訓內容之確保嵌入式系統的網絡安全性

時間:2019-01-15 14:17:11

嵌入式系統設計師經常認為他們必須在安全性、可靠性和產品上市時間之間進行艱難的平衡。大多數設計師將上市時間定在第一位,“足夠好的”可靠性放在第二位,之后才考慮安全性問題。

但世界處于不斷變化之中。首先,安全性已經成為所有具有網絡連接性能設備的必備條件,因此將其列為第三的位置不再能滿足要求。其次,微處理器、操作系統和開發工具的不斷進步使得更高的可靠性設計成為可能,也為產品的安全性和更快上市打下了堅實的基礎。

當然要實現這個目標的前提是選擇正確的架構,該架構包括處理器、操作系統和軟件部分在內,并在一開始就把高可靠性作為設計目標。一般產品可靠性指標可以采用傳統的架構和開發技術“在測試中達到”,但高可靠性的設計必須從一開始就加以考慮。

任何理智的工程師都會采用模塊化的設計方式,將應用系統劃分成多個軟件模塊,并通過定義完善的接口來控制這些模塊之間的互操作。但提供最高級別的可靠性需要采取更多的措施,除了模塊化外,還得具有劃分、隔離和分離的能力。要想獲得最高等級的可靠性,你需要將模塊放進相互間隔離的存儲器區域。然后需要使用處理器的存儲器管理硬件以及合適的操作系統,來控制主機資源的通信和使用,并加強模塊的分離性。

令人稱奇的是,硬件分離可以使復雜產品更快地上市。

應該

模塊化(這點很顯然),然后分割設計,使每個模塊只執行單一的功能且與所有其它模塊隔離開來。每個模塊還可以被看門狗進程(另外一個模塊)重新啟動,如果該模塊發生了故障,那么相應的看門狗就會重啟這個模塊。這樣設計的系統肯定具有更高的可靠性。換句話說,用更少的工作量就能滿足系統可靠性要求。

保持模塊的簡單化。復雜會導致脆弱性(涉及安全問題)和不可重復的行為(涉及開發和可靠性)。不同種類、多內核設計將增加系統的復雜性。應該確保你已在單個處理器中得到所需的處理能力,避免那些復雜設計。

確保你正在使用的處理器和操作系統具有不可或缺的存儲器管理功能。沒有存儲器保護就想建立非凡、可靠和安全的產品是不可能的。存儲器保護幫助你對系統進行分割,并實現“深度防御”,從而保證系統某部分的弱點不會級聯起來影響其它部分。

置所有東西于內核之外。內核是唯一一個系統中其它部分都要依賴的部件,因此它必須異常穩固。在內核空間運行任何對象只會降低可靠性,并帶來安全性問題。

選擇能夠符合公認的安全和可靠性標準的內核架構。任何人都可以聲稱擁有可靠安全的操作系統,但很少有人獨立地驗證過他們聲明的內容。在安全領域,需要選擇一個基于由國家安全機構開發的獨立內核保護機制的架構。

使用強制執行高安全編碼標準的工具。Misra C是汽車工業軟件可靠性協會(MISRA)為汽車工業開發的一個安全的C子集,其中許多代碼非常可靠和安全。因此可在內部使用Misra標準,并選擇用來強制執行這些標準的工具。

不應該

低估可靠性的價值。可靠性不僅能使產品更受歡迎,更有利潤,還能有效減少開發難題。

在產品功能完善后才開始測試和修復缺陷。你的目標應該是:當產品功能完善時,你就已經能交貨了。只有在設計一開始就考慮了可靠性(使用可靠性高的內核),并在開發過程中使用存儲器漏洞檢測、實時錯誤檢查以及硬件保護措施,盡早發現缺陷來保持內核的可靠性,才能使你的產品更快地上市。如果工程師在沒有缺陷的產品中增加一個缺陷(缺陷是工程師增加進去的,而不是自然產生的),這時候你要能夠快速找到此缺陷,并立即完成修復。

認為你的網絡產品不會成為攻擊目標。該產品可能不包含有價值的數據,但只要把它放到網上去,它就可能泄漏產品以外的信息。隨著產品的逐漸成熟,它所擁有的信息可能就會值得攻擊。

低估入侵技術。要知道入侵技術也在突飛猛進。隨著技術日趨先進,往日令人不感興趣的目標(比如你的產品)也會變得值得一擊。

認為可以日后再為安全或可靠性重新設計架構。當然,安全性非常高的系統(例如飛機)需要采用面向可靠性和安全性的架構,因而需要嚴格苛刻和代價高昂的開發過程。但任何功能很強的產品,包括消費類和工業控制類產品都會從相同的底層技術中獲益,盡管其開發過程要更加經濟。

? 江苏快3号码表