幾乎所有在物聯網領域工作的嵌入式軟件開發人員現在都在構建安全設備。嵌入式開發人員主要關注如何處理安全應用程序和基本的微控制器技術,例如如何使用 Arms TrustZone 或利用多核處理器。
許多公司和團隊忽視的一個迫在眉睫的問題是,弄清楚如何開發安全的應用程序只是第一步。確保產品生命周期管理的安全分為三個階段,在今天的文章中,我們將回顧每個階段所涉及的內容。
階段1 – 發展
開發可能是大多數開發人員最熟悉的領域,但同時也是他們學習適應最多的領域。 許多開發人員在設計和構建系統時從未考慮過安全性。 開發涉及的不僅僅是決定要隔離哪些組件以及如何將軟件分成安全和非安全區域。
例如,在開發階段,開發人員現在需要學習如何在有安全引導加載程序的環境中進行開發。 他們需要考慮如何處理固件回退,是否允許,如果允許,在什么條件下。 固件映像可能需要在身份驗證的需要之上進行壓縮。
雖然開發階段變得更加復雜,但開發人員不應費力地推斷他們過去的經驗以成功開發安全固件。
階段2 – 測試和生產部署
嵌入式開發人員最困難的領域可能是測試和生產部署階段。 測試安全軟件需要采取額外的步驟來驗證調試硬件,以便開發人員可以訪問安全內存區域來測試他們的代碼并成功調試它。 更重要的是,必須注意在生產過程中將安全軟件安裝到產品上。
有幾種方法可以做到這一點,但一種方法是使用安全的閃存設備,如 SEGGERS Flasher Secure。 這些設備可以遵循涉及驗證用戶 ID 的多步驟過程,該用戶 ID 允許在設備上安裝安全固件。 設備本身限制了固件可以安裝的數量和設備,這有助于保護團隊的知識產權并防止未經授權的產品生產。
階段3 - 維護和現場服務
最后是維護和現場服務階段,這是開發階段的部分延續。產品部署到現場后,需要對其進行安全更新。更新可以在現場手動完成,也可以使用無線更新過程完成。這涉及設備能夠聯系可以壓縮和加密圖像并將其傳輸到設備的安全固件服務器。一旦設備接收到圖像,它必須解密、解壓縮和驗證圖像的內容。如果一切看起來都不錯,則可以將映像加載為設備的主要固件。
總結
嵌入式開發人員設計和部署安全設備不僅僅是開發安全應用程序,整個過程分為三個主要階段,我們今天已經更詳細地研究了這些階段。