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