物聯網(IoT)繼續成為現實,設備每天都有數百萬人連接到互聯網。令人興奮的是,隨著許多創新機會的開放,物聯網設備和系統的開發人員面臨著許多挑戰,其中最關鍵的是保護他們的設備并確保最終用戶的隱私。值得慶幸的是,新的微控制器(MCU)正在迅速出現,大大簡化了安全任務,但這些功能與開發人員使用它們的能力一樣好。
安全性一直存在,并且仍然是事后的想法,這有點令人驚訝。對于許多開發人員這是一個錯誤,因為它使房屋,車輛,制造,零售和關鍵基礎設施容易受到攻擊。然而,盡管歷史上不愿意解決安全問題,但物聯網現在迫使設計人員在開發嵌入式系統時更加認真地考慮安全性,幸運的是他們發現他們并不是唯一能夠解決它的問題。
制造商和供應商微控制器是許多物聯網系統和設備的基本元素,現在也認識到安全的重要性,并且正在構建其硬件和軟件庫的鉤子,以簡化開發并減輕開發人員的安全負擔。
例如瑞薩電子美國公司的Synergy平臺。這不僅包括一系列基于ARM?的微控制器,如S1,S3和S7系列,還包括一整套軟件包,旨在通過提供驅動程序,RTOS,中間件,框架和庫,為開發人員提供快速啟動。 Synergy軟件包(SSP)中包含一個安全和加密模塊,開發人員可以利用該模塊來正確保護其設備。雖然可以使用這些軟件組件,但開發人員仍然需要了解如何將這些資源應用于嵌入式安全性的三個主要元素:身份驗證,完整性和可用性。
圖1:Renesas Synergy平臺的Synergy軟件包(SSP)包括平臺中包含的驅動程序,RTOS,中間件,框架,庫和開發工具。此處可以看到平臺中包含的所有不同軟件組件。 (來源:瑞薩電子美國公司)
身份驗證和加密是一件棘手的事情。
身份驗證最受關注的是安全性,這是正確的。身份驗證是系統驗證固件更新和通信來自合法來源的能力,而不是試圖混淆或覆蓋默認系統行為。開發人員可以在設計中使用的通用技術可以從最簡單和最少資源約束開始在任何微控制器上工作,包括:
密碼
Handshakes
數字簽名
校驗和
循環冗余校驗(CRC)
CRC應包含在重要數據上,例如存儲在閃存中的應用程序映像和通過網絡或通信接口傳輸的數據包。微控制器上的CRC可能是一項棘手的業務,特別是沒有浮點硬件單元。對于開發人員來說,一個很好的技巧是使用類似于fletcher16算法的校驗和。
fletcher16算法檢測數據流中是否有任何數據被更改。它通過將數據流基本上分解為8位的塊,然后對這些塊求和以生成兩個唯一的8位值(重新組合成16位校驗和)來實現這一點。 fletcher16算法限制為不大于255的模數,因此插入數據流的隨機數將有1/255未被檢測到。 Fletcher16的有效性與最低掛起的CRC相當。
為了保護嵌入式系統,開發人員可能需要采用包括加密技術的組合。如果您沒有選擇正確的設備,那么在MCU上進行加密可能會很困難。每個應用程序都需要自己獨特的加密需求,但您應該在MCU上尋找幾個硬件資源,至少:
唯一的設備標識符
有限的JTAG訪問
真正的隨機數生成器(TRNG)
對稱加密加速器
請注意使用的微控制器的數據表TRNG。所有TRNG都不是平等的,如果它們沒有經過NIST SP 800-90認證 - 最新和最好的熵規范 - 那么潛在的黑客就有可能通過影響系統熵來操縱發電機,然后產生可預測的結果。
熵是衡量系統內存在的隨機性或混亂的指標。 TRNG通常會使用熵來計算隨機數。如果黑客能夠控制系統的熵,例如操縱時間或溫度(偽隨機數生成器使用的屬性),則隨機數變得可預測。可預測的數字允許黑客進行有根據的猜測,最終破壞系統安全性并將其打開以進行攻擊。
Renesas Synergy MCU擁有上述所有硬件資源,并使用Synergy工具鏈獲取訪問權限。 TRNG幾乎是微不足道的。只需進入Synergy配置文件,然后在threads選項卡中添加TRNG組件。該組件通過可視界面完全添加,圖2中顯示了必要的步驟。在此示例中,使用瑞薩S1開發套件部署TRNG。添加TRNG驅動程序后,以下API調用將生成隨機數:
R_SCE_TRNG_Read(trng_ctrl_t * const p_ctrl,uint32_t * const p_dest,uint32_t nwords)
圖2:要將真正的隨機數生成器(TRNG)驅動程序組件添加到Synergy項目,只需選擇添加,然后按照右上角的菜單進行操作左下方找到TRNG驅動程序。 (來源:瑞薩電子美國,E2工作室協同項目)
高級應用程序需要的不僅僅是簡單的TRNG或對稱加密加速器。要利用最新的加密技術,開發人員應在其微控制器中尋找其他硬件,例如:
非對稱加密加速器
HASH加速器
非對稱密鑰生成器
安全密鑰存儲
如果沒有這些關鍵組件,開發人員會發現他們的系統容易受到攻擊,并且可能在現場受到攻擊。事實上,最終用戶可能會發現他們的隱私受到侵犯。隱私是最終用戶數據被隱藏而不能被其他人查看的能力。缺乏良好加密方法的系統將導致用戶可能甚至不知道或可能導致身份盜用等網絡犯罪的隱私侵權行為。上面列出的高級功能可以幫助保護隱私,但可能不包含在每個微控制器中。例如,您不會在Renesas S1設備上找到HASH加速器,但您會在瑞薩S7上找到它。
確保系統完整性
開發人員通常非常關注身份驗證和加密,很多時候他們沒有考慮系統完整性的重要性。完整性衡量軟件的可信度。許多開發人員將在啟動時假設應用程序未被破壞或已注入惡意軟件。對于經常連接到Internet的設備,這是一個很差的假設。
開發人員可以使用一些技術來驗證系統的完整性。首先,您可以將CRC或校驗和添加到存儲在閃存中的應用程序映像。啟動系統時,引導代碼會計算校驗和或CRC,并驗證它是否仍與預期值匹配。或者,您可以使用軟件組件,例如瑞薩SSP中包含的安全引導框架(QSA)。它不僅提供安全啟動功能,還提供受保護的內存位置,防止惡意軟件或其他代碼訪問整個系統。這使您可以為不同的應用程序組件創建沙箱,以保證它們的安全。
可用性
嵌入式系統幾乎100%可用,但有時黑客可能正在執行分布式拒絕服務(DDoS)攻擊導致線程不足或內存溢出,從而導致系統崩潰。為了保護嵌入式系統并防止這種情況發生,但確保使用能夠啟用內存保護并管理應用程序的RTOS,以確保過度的任務不會導致整個系統崩潰。
安全性入門
嵌入式安全性可視為一個利基領域,因為在物聯網之前安全性不是問題。過去斷開的設備極大地限制了它們的攻擊區域。雖然可以在各種情況下隨時攻擊連接的設備。學習嵌入式安全性的最佳方法是從板凳上開始。有兩個開發套件,前面提到的瑞薩S1,以及可用于啟動安全工作的瑞薩S7。
圖3:在縮小硬件加密選擇范圍之前,瑞薩SK-S7G2開發套件是開始探索安全概念的最佳場所。 (來源:瑞薩電子美國公司)
每個開發套件都有Arduino接頭跳線,因此可以輕松地將藍牙模塊等硬件屏蔽添加到開發套件中,以進行定制設計工作。瑞薩S7包括一個以太網端口,當與SSP配合使用時,可以讓您在短時間內啟動并運行物聯網設備。
首次開始探索安全概念時,您可能需要關注在S7上,因為它具有所有的鈴聲和口哨,并且最有能力。一旦了解了平臺的功能和最終系統要求,只有這樣才能考慮降低硬件加密能力。
結論
設計人員面臨的安全挑戰他們的嵌入式系統,從身份驗證到系統完整性和高可用性,乍一看似乎勢不可擋。然而,微控制器正在出現,具有內置功能,掛鉤和庫,可幫助開發人員應對這些挑戰并簡化流程。一個很好的例子是Renesas Synergy微控制器及其相關的評估平臺。
-
mcu
+關注
關注
146文章
17400瀏覽量
353250 -
嵌入式
+關注
關注
5097文章
19228瀏覽量
308788 -
藍牙
+關注
關注
114文章
5888瀏覽量
171557
發布評論請先 登錄
相關推薦
嵌入式設備的發展:解決復雜的設計挑戰
如何利用新型Linux開發工具應對下一代嵌入式系統設計挑戰?
嵌入式物聯網的硬件設計挑戰
嵌入式系統有什么安全技巧?
多核MCU可用于簡化嵌入式設計 精選資料推薦
新型集成電路簡化嵌入式POL DC/DC轉換器設計
多核MCU可用于簡化嵌入式設計

評論