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