黑客入侵物聯(lián)網(wǎng)設(shè)備的能力比黑客的技能更能說明這些設(shè)備的安全級別:在大多數(shù)情況下,受影響的產(chǎn)品缺乏最基本的安全措施。也就是說,基本安全在概念上很簡單,但其實現(xiàn)需要在系統(tǒng)中的每個節(jié)點上小心注意以避免漏洞。
Microchip Technology的預(yù)構(gòu)建安全解決方案允許開發(fā)人員實現(xiàn)零接觸設(shè)備配置圍繞亞馬遜網(wǎng)絡(luò)服務(wù)(AWS)物聯(lián)網(wǎng)服務(wù)構(gòu)建的物聯(lián)網(wǎng)應(yīng)用程序。
安全要求
物聯(lián)網(wǎng)連接設(shè)備的世界為黑客提供了豐富的獎勵,旨在控制,破壞或破壞工業(yè),運輸,健康和緊急服務(wù)等領(lǐng)域的關(guān)鍵應(yīng)用。物聯(lián)網(wǎng)開發(fā)人員越來越多地通過加密設(shè)備與其主機之間的通信來解決傳輸中數(shù)據(jù)的安全問題。然而,數(shù)據(jù)加密僅代表端到端安全要求的一部分。
安全IoT應(yīng)用程序還依賴于安全身份驗證,以確保已知設(shè)備與可信主機通信。設(shè)備或主機身份缺乏保證為攻擊者利用中間人攻擊控制數(shù)據(jù)流敞開了大門。在這些攻擊中,壞的actor將自己表示為可信的終端設(shè)備,以便將損壞的數(shù)據(jù)流插入到應(yīng)用程序中?;蛘撸粽咤e誤地將自己稱為控制物聯(lián)網(wǎng)設(shè)備的已知主機。
雖然他們破解加密的能力是這些方法的核心,但真正的損害在于他們作為授權(quán)實體侵入自己的能力。進(jìn)入可信賴的網(wǎng)絡(luò),可能帶來所有潛在的傷害。因此,物聯(lián)網(wǎng)應(yīng)用程序適用于更加復(fù)雜的服務(wù)平臺,可以在廣泛的層面上解決安全問題。
使用安全的云平臺
亞馬遜網(wǎng)絡(luò)服務(wù)(AWS)物聯(lián)網(wǎng)平臺提供全面的環(huán)境它將安全性作為一項基本功能,因為它滿足物聯(lián)網(wǎng)應(yīng)用的各種功能需求。作為各種AWS服務(wù)的專用前端,AWS IoT位于物聯(lián)網(wǎng)設(shè)備及其應(yīng)用之間,使用基于消息的架構(gòu)來保護(hù)和管理物聯(lián)網(wǎng)設(shè)備(圖1)。
圖1:Amazon Web Services物聯(lián)網(wǎng)平臺將物聯(lián)網(wǎng)設(shè)備與廣泛的AWS服務(wù)系列連接起來,利用AWS安全機制在物聯(lián)網(wǎng)之間執(zhí)行相互身份驗證設(shè)備和AWS平臺。 (圖像來源:Amazon Web Services)
當(dāng)消息從IoT終端設(shè)備到達(dá)時,開發(fā)人員定義的規(guī)則會啟動涉及代表IoT應(yīng)用程序工作的其他AWS服務(wù)的相應(yīng)操作。反過來,IoT應(yīng)用軟件與基于云的設(shè)備陰影交互,這些陰影維持相應(yīng)物理IoT設(shè)備的最后已知狀態(tài)。即使物理設(shè)備暫時脫機,此陰影也可確保物聯(lián)網(wǎng)應(yīng)用程序的持續(xù)運行。此服務(wù)模型依賴于一組復(fù)雜的安全機制,旨在識別可信實體并控制其對可用資源的訪問。
AWS安全模型的核心是身份和訪問管理(IAM)策略。這些說明允許哪些設(shè)備,用戶或服務(wù)訪問IoT網(wǎng)絡(luò),AWS環(huán)境或應(yīng)用程序中的哪些特定資源。在很大程度上,該安全模型的成功取決于對請求訪問特定資源的實體(用戶,設(shè)備或服務(wù))的可靠認(rèn)證。如果不良行為者能夠欺騙安全系統(tǒng)將其作為完全信任的用戶進(jìn)行身份驗證,那么訪問權(quán)限規(guī)則所帶來的障礙就會有效解除。
與一般Web訪問一樣,AWS使用公鑰基礎(chǔ)結(jié)構(gòu)(PKI)密鑰和標(biāo)準(zhǔn)X.509證書。實際上,AWS安全服務(wù)使用Web用戶熟悉的身份驗證模型。對于安全的Web鏈接,Web瀏覽器依賴于基礎(chǔ)機制,例如傳輸層安全性(TLS)服務(wù),它們在建立安全通信之前檢查站點證書以驗證主機服務(wù)器。更敏感的基于Web的應(yīng)用程序通過客戶端身份驗證補充主機身份驗證,使用用戶瀏覽器中的客戶端證書來確認(rèn)用戶的身份。
這種相互身份驗證的部署在一般Web使用中仍然相對較少,因為很少用戶愿意或能夠采取獲取自己的客戶端證書所需的步驟,并使用這些證書配置他們的瀏覽器。然而,相互認(rèn)證是減少壞人可用的攻擊面的關(guān)鍵。實際上,AWS IoT服務(wù)需要在物聯(lián)網(wǎng)設(shè)備和AWS云之間進(jìn)行相互身份驗證。如果在一般Web使用中難以進(jìn)行相互身份驗證,則會給物聯(lián)網(wǎng)開發(fā)人員帶來重大挑戰(zhàn)。
要在物聯(lián)網(wǎng)設(shè)備中實現(xiàn)相互身份驗證,開發(fā)人員需要克服多個障礙。除了處理密鑰和證書獲取的物流外,開發(fā)人員還需要安全地存儲這些機密,不會有未經(jīng)授權(quán)的訪問。此外,物聯(lián)網(wǎng)設(shè)備還需要能夠以不受滲透影響的方式執(zhí)行加密算法,同時保持物聯(lián)網(wǎng)設(shè)備的整體性能。
與AWS合作開發(fā),預(yù)先配置“通用”Microchip ATECC508A CryptoAuthentication設(shè)備的版本滿足這些要求,為設(shè)計人員構(gòu)建AWS IoT設(shè)備提供了簡單的插入式解決方案。
專用加密
專為安全認(rèn)證而創(chuàng)建ATECC508A IC將基于硬件的PKI算法和安全存儲結(jié)合在一起,通過物理,電氣或軟件方式抵御攻擊。該器件通過其I 2 C接口連接到設(shè)計的主機CPU。然后,主機CPU使用簡單的命令集來執(zhí)行加密,更新存儲的證書以及訪問其他ATECC508A功能。實際上,ATECC508A在內(nèi)部生成私鑰并安全存儲它們,無需進(jìn)行片外密鑰管理。由于集成加密引擎可以在同一芯片內(nèi)使用安全數(shù)據(jù),因此加密機密碼永遠(yuǎn)不會暴露在可能被截獲的外部總線上。
在卸載主機處理器的加密執(zhí)行時,ATECC508A不僅增強安全性,但它不會影響性能。使用ATECC508A進(jìn)行設(shè)計可以比僅使用軟件的TLS實現(xiàn)更快地實現(xiàn)TLS連接。在基準(zhǔn)測試中,基于ATECC508A的系統(tǒng)完成TLS連接的速度比使用高性能ARM?Cortex?-M0處理器 1 的純軟件實現(xiàn)平均快5倍。
< p> ATECC508A為物聯(lián)網(wǎng)設(shè)計人員提供了巨大的好處,但在其通用形式中,它基本上仍然是認(rèn)證應(yīng)用的空白板塊。雖然設(shè)備在內(nèi)部生成私鑰,但它需要開發(fā)組織獲取并加載受信任的X.509證書。證書構(gòu)建在信任層次結(jié)構(gòu)上,其中根證書簽署主機和客戶端上使用的證書。構(gòu)建此信任層次結(jié)構(gòu)是安全系統(tǒng)和應(yīng)用程序的基礎(chǔ)。然而,對于開發(fā)人員而言,證書生成和注冊的詳細(xì)后勤代表了一個重要的復(fù)雜因素。更糟糕的是,當(dāng)生產(chǎn)單元使用單獨的根證書或不同的證書鏈時,原型或預(yù)生產(chǎn)系統(tǒng)的證書生成可能只是浪費時間。預(yù)先配置的ATECC508A為在預(yù)生產(chǎn)設(shè)計中使用AWS IoT平臺的工程師提供了更簡單的解決方案。
使用預(yù)先配置的ATECC508A器件,設(shè)計人員只需將器件放入其設(shè)計中即可實現(xiàn)認(rèn)證。通過I 2 C端口將其連接到主機MCU。這些器件采用8引腳UDFN(ATECC508A-MAHAW-S)和8引腳SOIC(ATECC508A-SSHAW-T)版本,預(yù)先配置了必要的客戶端證書,并預(yù)先配置為可與AWS IoT配合使用。開發(fā)人員可以將設(shè)備焊接到他們自己的設(shè)計中,并使用應(yīng)用程序編程接口(API)與AWS IoT進(jìn)行交互。這些API位于其目標(biāo)系統(tǒng)上托管的AWS軟件開發(fā)工具包(SDK)庫中。
或者,他們可以使用Microchip AT88CKECC-AWS-XSTK AWS零接觸配置套件評估器件(圖2) )。
圖2:Microchip Technology AT88CKECC-AWS-XSTK AWS Zero Touch Provisioning Kit提供圍繞SAM G MCU板(中心),ATECC508A-xxxAW器件板(左),ATWINC1500-XSTK RF板構(gòu)建的完整無線物聯(lián)網(wǎng)設(shè)計(右)和ATOLED1-XPRO顯示板,帶有按鈕和開關(guān),用于模擬物聯(lián)網(wǎng)事件(下圖)。 (圖片來源:Microchip Technology)
該套件與用于ATECC508的ATCRYPTOAUTH-XPRO加密評估板一起提供完整的物聯(lián)網(wǎng)設(shè)計原型,包括ATSAMG55-XPRO SAM G MCU板,ATWINC1500-XSTK RF板,ATOLED1-XPRO板,帶有顯示,按鈕和開關(guān),用于模擬物聯(lián)網(wǎng)數(shù)據(jù)事件。
零接觸配置
無論是使用自定義原型還是入門套件,開發(fā)人員只需將設(shè)備插入設(shè)計即可與ATECC508A-xxxAW實施AWS相互認(rèn)證。當(dāng)設(shè)備首次與AWS IoT連接時,ATECC508A-xxxAW的優(yōu)勢變得明顯。
在初始連接時,ATECC508A-xxxAW設(shè)備與AWS IoT交互以自動完成AWS即時注冊(JITR)流程,用于唯一標(biāo)識AWS IoT中的每個IoT設(shè)備。此外,物聯(lián)網(wǎng)開發(fā)人員可以將這種零接觸配置概念擴展到基于這些預(yù)先配置的ATECC508A版本的設(shè)計之外。
通常用于IT網(wǎng)絡(luò)環(huán)境,零接觸配置(ZTP)允許網(wǎng)絡(luò)設(shè)備部署到無需用戶干預(yù)即可繼續(xù)在啟動時,網(wǎng)絡(luò)識別新的網(wǎng)絡(luò)設(shè)備并授權(quán)其與網(wǎng)絡(luò)的連接,就像AWS JITR自動配置預(yù)先配置的IoT設(shè)備一樣。對于預(yù)計包含大量設(shè)備的物聯(lián)網(wǎng)應(yīng)用,ZTP代表了一個特別重要的概念。使用Microchip AT88CKECC-AWS-XSTK入門套件,開發(fā)人員可以使用AWS JITR更好地了解證書配置和ZTP背后的詳細(xì)信息。特別是,開發(fā)人員可以使用AWS的無服務(wù)器Lambda服務(wù)探索定制軟件的使用,以滿足ZTP過程的獨特要求。
除上述IoT設(shè)計硬件外,入門套件還附帶Microchip AT88CKECCROOT root模塊實用程序和AT88CKECCSIGNER簽名模塊實用程序。根和簽名者模塊每個都帶有一個USB加密狗,分別包含根密鑰和簽名密鑰。
使用入門工具包,開發(fā)人員通過USB將AT88CKECC-AWS-XSTK和模塊連接到他們的PC,應(yīng)該運行入門套件軟件包。入門工具包應(yīng)用程序向用戶介紹在AWS IoT上注冊證書的詳細(xì)信息。它使用上面提到的root和signer模塊來表示最終將在制造期間使用的實際根證書和簽名證書的角色。對于生產(chǎn)單元,Microchip制造工廠中會出現(xiàn)類似的過程,其中“空白”ATECC508A使用基于開發(fā)組織自己的信任根構(gòu)建的證書進(jìn)行配置(圖3)。
圖3:雖然Microchip針對AWS IoT預(yù)先配置了ATECC508A-xxxAW系列,但為客戶設(shè)計生產(chǎn)的設(shè)備將使用此類工具作為AT88CKECCSIGNER簽名者模塊,用于創(chuàng)建基于開發(fā)組織信任根的自定義設(shè)備證書。 (圖像來源:Microchip Technology)
Microchip支持帶有軟件包的入門套件,該套件可將操作和與AWS IoT的交互減少到一些簡單的軟件調(diào)用。例如,示例應(yīng)用程序中的主例程調(diào)用aws_demo_tasks_init(),它會啟動與入門工具包中的每個硬件組件關(guān)聯(lián)的一系列單獨任務(wù)。
開發(fā)人員可以利用示例代碼集為AWS IoT應(yīng)用程序創(chuàng)建自己的基于ATECC508的設(shè)計。事實上,該套件基于相同的CryptoAuthLib C語言,作為ATECC508軟件支持的標(biāo)準(zhǔn)軟件包提供。入門工具包只是將更高級別的調(diào)用轉(zhuǎn)換為對CryptoAuthLib庫的“at”例程的一系列低級調(diào)用(清單1)。
/**
* brief通過I2C向ATECC508A發(fā)送命令數(shù)組。
*
* param [in] tx_buffer要發(fā)送的緩沖區(qū)
* return ATCA_SUCCESS成功
*/
uint8_t aws_prov_send_command(uint8_t * tx_buffer)
{
uint8_t status = ATCA_SUCCESS;
uint8_t cmd_index;
uint16_t rx_length;
uint16_t execution_time = 0;
uint8_t * cmd_buffer;
ATCADevice _gDevice = NULL;
ATCACommand _gCommandObj = NULL ;
ATCAIface _gIface = NULL;
do {
<代碼>
if(tx_buffer == NULL)
break;
/*從TX緩沖區(qū)收集命令信息。 */
if(aws_prov_get_commands_info(tx_buffer,&amp; cmd_index,&amp; rx_length)!= ATCA_SUCCESS)
break;
cmd_buffer =(uint8_t *)malloc(tx_buffer [0] + 1);
memcpy(&amp; cmd_buffer [1],tx_buffer,tx_buffer [0]);
/*初始化每個對象。 */
_gDevice = atcab_getDevice();
_gCommandObj = atGetCommands(_gDevice);
_gIface = atGetIFace(_gDevice);
/*獲取命令執(zhí)行時間。 */
execution_time = atGetExecTime(_gCommandObj,cmd_index);
if((status = atcab_wakeup())!= ATCA_SUCCESS)
break;
/*發(fā)送命令。 */
if((status = atsend(_gIface,(uint8_t *)cmd_buffer,tx_buffer [0]))!= ATCA_SUCCESS)
< p> break;
。
。
。
} while(0);
退貨狀態(tài);
}
清單1:入門套件軟件包基于標(biāo)準(zhǔn)ATECC508 CryptoAuthLib C庫構(gòu)建,使用一系列CryptoAuthLib“at”調(diào)用實現(xiàn)更高階的功能,例如從MCU向ATECC508A發(fā)送命令。 (代碼來源:Microchip Technology)
對于在自定義環(huán)境中工作的開發(fā)人員,CryptoAuthLib提供了一個定義良好的體系結(jié)構(gòu),可將硬件依賴性隔離到硬件抽象層(HAL)中(圖4)。通過修改HAL例程,開發(fā)人員可以構(gòu)建對其獨特操作環(huán)境的支持。
圖4:多層CryptoAuthLib架構(gòu)將硬件依賴關(guān)系分離為硬件抽象層,簡化了將庫移植到不同操作環(huán)境的過程。 (圖像來源:Microchip Technology)
結(jié)論
相互身份驗證為設(shè)備,用戶和服務(wù)之間的通信提供了最安全的方法,并且已成為AWS IoT中的一項要求。然而,相互認(rèn)證的實施對物聯(lián)網(wǎng)設(shè)備部署提出了重大挑戰(zhàn)。它的成功取決于有效配置具有安全通信協(xié)議的知識產(chǎn)權(quán)的物聯(lián)網(wǎng)設(shè)備的有效方法。
Microchip預(yù)先配置的ATECC508器件消除了實現(xiàn)相互認(rèn)證的傳統(tǒng)障礙,并為開發(fā)人員提供了直接的解決方案為AWS IoT設(shè)計的物聯(lián)網(wǎng)應(yīng)用程序。使用這些設(shè)備,開發(fā)人員可以實施ZTP,消除物聯(lián)網(wǎng)設(shè)備部署中的人工干預(yù),而不是依賴于物聯(lián)網(wǎng)設(shè)備的自動識別和注冊。
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2913文章
44915瀏覽量
376244 -
網(wǎng)絡(luò)
+關(guān)注
關(guān)注
14文章
7597瀏覽量
89141 -
亞馬遜
+關(guān)注
關(guān)注
8文章
2680瀏覽量
83543
發(fā)布評論請先 登錄
相關(guān)推薦
評論