嵌入式設(shè)備很可能構(gòu)成物聯(lián)網(wǎng)基礎(chǔ)設(shè)施的大部分低級(jí)別傳感器和控制裝置——比如運(yùn)動(dòng)傳感器、環(huán)境監(jiān)測(cè)和設(shè)備控制。在嵌入式開發(fā)中,嵌入式設(shè)備非常適合此角色,因?yàn)樗麄兊凸?、低成本?/span>
所有這些嵌入式設(shè)備都有非常具體的安全要求。除了容易受到服務(wù)器、桌面和移動(dòng)設(shè)備中常見的所有攻擊(即保護(hù)我們的數(shù)據(jù)),嵌入式設(shè)備還容易受到更高級(jí)的硬件攻擊。讓我們來看看我們?cè)跇?gòu)建物聯(lián)網(wǎng)產(chǎn)品的嵌入式設(shè)備時(shí)可能面臨的一些問題。
有限的資源
在嵌入式設(shè)備中保護(hù)數(shù)據(jù)與在服務(wù)器中保護(hù)數(shù)據(jù)非常相似,但需要注意一些事項(xiàng)。嵌入式設(shè)備的低功耗和低成本的結(jié)果當(dāng)然是有限的計(jì)算資源。通常,嵌入式設(shè)備將具有有限的可用程序空間、CPU和RAM。這些約束將直接影響您的安全考慮,可能意味著您無法使用用于構(gòu)建服務(wù)器端、集線器或移動(dòng)設(shè)備功能的安全庫。但如果您的嵌入式設(shè)備需要使用應(yīng)用層加密,則必須訪問加密庫,這一要求可以通過使用專門為嵌入式設(shè)備設(shè)計(jì)的加密庫來解決,例如wolfSSL或底層wolfCrypto。
在嵌入式開發(fā)中,向嵌入式設(shè)備添加加密功能的另一個(gè)選項(xiàng)是使用加密協(xié)處理器;例如,Atmel的加密身份驗(yàn)證范圍。這種協(xié)處理器將加密功能從應(yīng)用程序處理器卸載到另一個(gè)專用處理器。
固件空中傳送
“空中傳送”(Over-the-air)或“固件空中傳送”(FOTA)——從技術(shù)上講,更新不是安全功能。事實(shí)上,可以說,如果實(shí)施不當(dāng),它們實(shí)際上可能導(dǎo)致安全漏洞。但是,如果正確實(shí)施,F(xiàn)OTA允許您在已經(jīng)發(fā)貨的設(shè)備上更新固件,更重要的是更新安全固件。
保護(hù)您的FOTA系統(tǒng)的一個(gè)有用步驟是為您的設(shè)備提供公鑰,該公鑰可用于驗(yàn)證簽名代碼更新。使用此機(jī)制,您可以確保僅將正式簽署的更新應(yīng)用于您的設(shè)備。然而,值得注意的是,這個(gè)簽名方法只與它的實(shí)現(xiàn)一樣好。Trammell
Hudson的ThunderTrike攻擊利用Thunderbolt Option
ROM中的漏洞繞過蘋果EFI固件更新例程中的此類檢查。該攻擊允許將不受信任的代碼閃存到啟動(dòng)ROM中,以及過度寫入用于驗(yàn)證更新的公共RSA密鑰。雖然最初的攻擊需要物理訪問計(jì)算機(jī),但在嵌入式開發(fā)中,通過過度寫入RSA密鑰,可以遠(yuǎn)程實(shí)現(xiàn)未來的更新。
高級(jí)攻擊–側(cè)通道攻擊
側(cè)通道攻擊是指任何依賴于物理信息的加密攻擊。例如,功耗或電磁輻射。簡單功率分析(SPA)和差分功率分析(DPA)就是此類攻擊的示例。執(zhí)行SPA或DPA攻擊需要監(jiān)控設(shè)備的功耗,這將隨微處理器操作的不同而變化。功耗的變化允許有經(jīng)驗(yàn)的攻擊者提取有關(guān)加密的信息。理想情況下,攻擊者希望獲得加密密鑰,因?yàn)檫@樣他們就可以簡單地監(jiān)視傳輸并根據(jù)需要進(jìn)行解碼。
顯然,側(cè)通道攻擊需要正確的設(shè)備和專業(yè)知識(shí)。因此,它不太可能被一個(gè)沒有經(jīng)驗(yàn)的裂解工使用。但是,如果您的物聯(lián)網(wǎng)產(chǎn)品具有較高的安全要求,并且可能會(huì)受到高級(jí)破解程序的攻擊,則可能需要解決這一問題。
高級(jí)攻擊–易受攻擊的接口
稍微容易的硬件攻擊向量是脆弱的接口。聯(lián)合測(cè)試行動(dòng)小組(JTAG)接口通常用于測(cè)試和調(diào)試嵌入式系統(tǒng)。它們顯然對(duì)在原型階段工作的嵌入式開發(fā)團(tuán)隊(duì)有巨大的好處。然而,當(dāng)出現(xiàn)在生產(chǎn)階段的設(shè)備中時(shí),它們會(huì)成為一個(gè)巨大的安全風(fēng)險(xiǎn)。用JTAG接口傳輸設(shè)備,打開攻擊向量,黑客會(huì)非常愿意利用它。作為一項(xiàng)規(guī)則,您應(yīng)該從您提供的產(chǎn)品中刪除JTAG接口——以及實(shí)際上并非絕對(duì)必要的任何其他調(diào)試接口。
還值得注意的是,熔斷絲或切割痕跡不足以作為拆除的技術(shù)。不要低估你的攻擊者。在這種情況下,他們知道的足夠多,可以訪問您的調(diào)試界面。沒有理由認(rèn)為他們無法修復(fù)您的接口。
高級(jí)攻擊–物理I/O掃描攻擊
類似于IP端口掃描,這種類型的攻擊涉及使用所有可能的輸入組合探測(cè)輸入引腳,然后監(jiān)視輸出。I/O掃描攻擊可能會(huì)導(dǎo)致任意數(shù)量的意外結(jié)果。至少在某些情況下,這種類型的攻擊很容易被發(fā)現(xiàn)。嵌入式開發(fā)人員可以利用嵌入式系統(tǒng)中未使用的輸入引腳。監(jiān)控這些引腳的輸入將讓應(yīng)用程序知道有人試圖以非預(yù)期的方式使用嵌入式設(shè)備,比如執(zhí)行I/O掃描。一旦檢測(cè)到這種非預(yù)期操作嘗試,應(yīng)用程序可以采取適當(dāng)?shù)膶?duì)策,防止發(fā)生任何未經(jīng)授權(quán)的活動(dòng)。
顯然,與服務(wù)器端開發(fā)相比,嵌入式系統(tǒng)的安全性需要一些特殊的考慮。有限的資源需要優(yōu)化的加密堆棧。可能暴露的硬件需要特定于硬件的安全措施。決定物聯(lián)網(wǎng)系統(tǒng)的嵌入式設(shè)備需要哪些安全措施在很大程度上取決于平臺(tái)。