盡管人們越來越意識到需要安全性,但開發(fā)人員經(jīng)常發(fā)現(xiàn)自己在安全性方面采取了快捷方式,將物聯(lián)網(wǎng)設(shè)備連接到云端。在許多情況下,合適的安全機(jī)制的復(fù)雜性,微型電池供電的物聯(lián)網(wǎng)設(shè)備中可用的有限內(nèi)存和處理資源以及運(yùn)輸產(chǎn)品的需求之間的沖突似乎是不可克服的。
解決這些問題和為簡化物聯(lián)網(wǎng)設(shè)備中安全功能的實(shí)施,Microchip Technology和Google合作創(chuàng)建了一種方法,將Microchip的安全硬件功能與稱為JSON Web令牌(JWT)的簡單數(shù)據(jù)結(jié)構(gòu)相結(jié)合。結(jié)果是確保物聯(lián)網(wǎng)設(shè)備與Google Cloud IoT核心服務(wù)之間相互身份驗(yàn)證的簡便方法。
本文將介紹物聯(lián)網(wǎng)設(shè)備安全威脅,并介紹當(dāng)前用于應(yīng)對該威脅的設(shè)備。它將確定安全漏洞以及開發(fā)人員和嵌入式系統(tǒng)設(shè)計(jì)人員如何使用JWT關(guān)閉它們。
物聯(lián)網(wǎng)設(shè)備的安全漏洞
對物聯(lián)網(wǎng)設(shè)備的攻擊可以采取多種形式,絕不僅限于大規(guī)模的物聯(lián)網(wǎng)部署。對于希望利用用于分布式拒絕服務(wù)(DDoS)攻擊的僵尸網(wǎng)絡(luò)中的許多單個設(shè)備的資源的黑客來說,即使是最小的物聯(lián)網(wǎng)也是一個很有吸引力的目標(biāo)。因此,每一類物聯(lián)網(wǎng)設(shè)備的設(shè)計(jì)者都不可避免地需要通過基于硬件的強(qiáng)大安全機(jī)制來保護(hù)他們的系統(tǒng),從而阻止攻擊。
例如,使用系統(tǒng)內(nèi)存或閃存存儲用于加密和身份驗(yàn)證的私鑰會使IoT設(shè)備容易受到攻擊。更糟糕的是,黑客可以竊取這些密鑰并使用它們來訪問物聯(lián)網(wǎng)網(wǎng)絡(luò)和附加的公司資源。
安全IC
Microchip Technology的CryptoMemory和CryptoAuthentication IC等專用安全設(shè)備具有硬件功能基于保護(hù)私鑰和其他秘密數(shù)據(jù)的機(jī)制。 EEPROM陣列集成在這些器件中,提供安全存儲,只能通過器件的SPI或I 2 C串行接口訪問的加密安全機(jī)制(圖1)。因此,這些設(shè)備提供了一種向任何物聯(lián)網(wǎng)設(shè)備設(shè)計(jì)添加安全存儲和其他安全功能的簡單方法。
圖1:Microchip Technology硬件安全設(shè)備(如AT88SC0204C CryptoMemory IC)提供安全存儲,使用集成加密機(jī)制保護(hù)對片上EEPROM的訪問。 (圖片來源:Microchip Technology)
Microchip CryptoAuthentication系列的成員(如ATECC608A)增強(qiáng)了安全存儲基礎(chǔ),并支持安全設(shè)計(jì)中常用的加密算法。在其硬件功能中,該器件具有多種算法的硬件加速功能,包括:
非對稱加密算法:
FIPS186-3橢圓曲線數(shù)字簽名算法(ECDSA)
FIPS SP800-56A橢圓曲線Diffie-Hellman(ECDH)
NIST標(biāo)準(zhǔn)P256橢圓曲線加密(ECC)
對稱加密算法:
SHA-256哈希密碼術(shù)
基于哈希的消息身份驗(yàn)證代碼(HMAC)密碼術(shù)
AES-128密碼術(shù)
AES-GCM( Galois字段乘法)密碼學(xué)
密鑰派生函數(shù)(KDF):
偽隨機(jī)函數(shù)(PRF)KDF
基于HMAC的提取 - 并且擴(kuò)展KDF(HKDF)
對于加密專家來說,這組加密功能代表了支持更高級別安全協(xié)議所需的全面機(jī)制列表。身份驗(yàn)證和安全數(shù)據(jù)交換。例如,KDF功能提供了傳輸層安全性(TLS)協(xié)議所需的基本機(jī)制,用于在交換甚至開始之前驗(yàn)證數(shù)據(jù)交換會話中的參與者。
在此協(xié)議中,TLS會話以客戶端向服務(wù)器發(fā)送啟動安全會話的請求。服務(wù)器使用其數(shù)字證書進(jìn)行響應(yīng),客戶端使用該證書來確認(rèn)服務(wù)器的身份。在客戶端以這種方式驗(yàn)證服務(wù)器之后,會話設(shè)置繼續(xù)通過使用服務(wù)器的公鑰來生成會話密鑰,以加密使用PRF KDF或更強(qiáng)大的HDKF創(chuàng)建的一些隨機(jī)值。
TLS身份驗(yàn)證協(xié)議是Internet安全的基礎(chǔ)。稱為證書頒發(fā)機(jī)構(gòu)(CA)的整個證書提供商行業(yè)已經(jīng)發(fā)展為支持安全通信的這一關(guān)鍵組件。公司從CA獲得可信證書,以便在自己的服務(wù)器上安裝,以支持上述標(biāo)準(zhǔn)TLS服務(wù)器身份驗(yàn)證協(xié)議。
對于物聯(lián)網(wǎng)應(yīng)用,網(wǎng)絡(luò)與公司來源廣泛而深入地連接,這種單向認(rèn)證不足以確保保護(hù)。例如,具有欺詐性證書的黑客可以將自己表示為物聯(lián)網(wǎng)設(shè)備的合法服務(wù)器,作為更廣泛攻擊的一部分。
盡管存在風(fēng)險,但物聯(lián)網(wǎng)開發(fā)人員經(jīng)常難以實(shí)施TLS相互身份驗(yàn)證協(xié)議,因?yàn)樽C書,密鑰,使用TLS實(shí)現(xiàn)客戶端身份驗(yàn)證所需的軟件可能會超出許多物聯(lián)網(wǎng)設(shè)備的功能。通過合作,Microchip Technology和Google創(chuàng)建了一種替代方法,將ATECC608A功能與稱為JSON Web令牌(JWT)的簡單數(shù)據(jù)結(jié)構(gòu)相結(jié)合。結(jié)果是確保物聯(lián)網(wǎng)設(shè)備與Google Cloud IoT核心服務(wù)之間相互身份驗(yàn)證的簡便方法。
基于JWT的身份驗(yàn)證
在RFC 7519中指定,JWT是行業(yè)標(biāo)準(zhǔn)容器關(guān)于準(zhǔn)備和傳輸JWT的實(shí)體的信息,稱為索賠。 JWT結(jié)構(gòu)本身包含三個部分:
標(biāo)題,包括JSON名稱:密碼算法的名稱(“alg”)的值對(例如,ECDSA的“EC256”使用NIST P-256曲線)用于簽署令牌和令牌的類型(“typ”)(這些令牌的“JWT”)
Payload,包括JSON名稱:每個索賠的值對
簽名,它使用標(biāo)頭中指定的算法來編碼密鑰以及標(biāo)頭和聲明集,每個單獨(dú)轉(zhuǎn)換為加密前的base64 URL編碼表示
RFC 7519為在有效負(fù)載或其他部分中指定聲明提供了極大的靈活性。該標(biāo)準(zhǔn)甚至允許在沒有簽名或加密的情況下創(chuàng)建的不安全JWT,在這種情況下,標(biāo)頭將包括算法的名稱:值對{{alg“:”none“}。對于與Google Cloud IoT核心服務(wù)一起使用的JWT,Google需要簽名部分以及包含三個強(qiáng)制聲明的有效負(fù)載,包括:
“iat” - 以ISO 8601 UTC時間戳格式創(chuàng)建令牌時的“頒發(fā)時間”,自1970-01-01T00:00:00Z以來的秒數(shù)(例如,2019年6月30日的1561896000 12 :格林威治標(biāo)準(zhǔn)時間00:00 PM)
“exp” - 指定令牌到期時間的UTC時間戳,最大24小時超過“iat”值加上10分鐘寬限期,以解決不同之間的系統(tǒng)時鐘偏差客戶端和服務(wù)器(例如,2019年7月1日1561982400,格林威治標(biāo)準(zhǔn)時間00:00 00:00)
“aud” - 包含開發(fā)人員Google Cloud項(xiàng)目ID的字符串
< p> Google的物聯(lián)網(wǎng)設(shè)備身份驗(yàn)證方案將基于TLS的常規(guī)服務(wù)器身份驗(yàn)證與使用這些相對簡單的聲明創(chuàng)建的JWT進(jìn)行物聯(lián)網(wǎng)設(shè)備身份驗(yàn)證相結(jié)合。要啟動新會話,IoT設(shè)備會打開一個到服務(wù)器的安全套接字,并使用前面描述的相同TLS協(xié)議對服務(wù)器進(jìn)行身份驗(yàn)證。
此過程的下一步依賴于Google IoT云對用于物聯(lián)網(wǎng)網(wǎng)絡(luò)事務(wù)的輕量級消息隊(duì)列遙測傳輸(MQTT)協(xié)議。使用安全套接字到經(jīng)過身份驗(yàn)證的服務(wù)器,IoT設(shè)備使用其唯一的JWT作為登錄密碼“登錄”到該服務(wù)器的MQTT主機(jī)服務(wù)(清單1)。
雖然IoT設(shè)備發(fā)送用戶名作為此登錄序列的一部分,但用戶名不用于身份驗(yàn)證。因此,傳輸了一個虛擬用戶名(清單2)。相反,IoT設(shè)備的認(rèn)證基于作為登錄密碼發(fā)送的JWT進(jìn)行。由于JWT簽名是標(biāo)頭,有效負(fù)載和設(shè)備私鑰的組合,因此Google Cloud IoT核心服務(wù)可以驗(yàn)證JWT是否真正來自授權(quán)設(shè)備。對于此驗(yàn)證,Google Cloud IoT服務(wù)使用以前由IoT設(shè)備開發(fā)人員使用下述密鑰管理流程存儲在Google云中的設(shè)備公鑰。與單獨(dú)使用TLS相比,此方法通過混合方法提供相互身份驗(yàn)證,從而加快流程,同時降低物聯(lián)網(wǎng)設(shè)備資源需求。
關(guān)鍵使能器
ATECC608A及其供應(yīng)鏈的功能是此方法的關(guān)鍵推動因素。雖然任何MCU最終都可以從JWT報頭和有效負(fù)載生成加密加密簽名,但任何僅使用軟件執(zhí)行的方法在沒有基于硬件的安全密鑰存儲的情況下仍然容易受到攻擊。此外,對于許多資源有限的物聯(lián)網(wǎng)設(shè)備或具有嚴(yán)格響應(yīng)時間要求的應(yīng)用,“僅軟件”實(shí)現(xiàn)所需的處理器負(fù)載和執(zhí)行延遲可能是禁止的。最后,沒有豐富的安全算法和更高級協(xié)議經(jīng)驗(yàn)的開發(fā)人員很難實(shí)現(xiàn)所需的軟件功能。 Microchip通過其CryptoAuthLib庫解決了這些問題(圖2)。
圖2:因?yàn)镃ryptoAuthLib使用硬件抽象層(HAL)將API函數(shù)和核心基元與底層硬件分開,所以開發(fā)人員可以定位他們的適用于各種支持設(shè)備的軟件。 (圖片來源:Microchip Technology)
Microchip CryptoAuthLib簡化了安全I(xiàn)oT功能的實(shí)現(xiàn),例如Google JWT身份驗(yàn)證協(xié)議,將復(fù)雜的安全操作簡化為通過CryptoAuthLib應(yīng)用程序編程接口(API)提供的一組函數(shù)調(diào)用。對于物聯(lián)網(wǎng)開發(fā)人員而言,最重要的可能是Microchip CryptoAuthLib核心功能充分利用了諸如ATECC608A之類的Microchip加密IC,可加快設(shè)計(jì)中安全功能的執(zhí)行速度。例如,清單1中對atca_jwt_finalize()的調(diào)用使用可用的加密設(shè)備(如ATECC608A)來創(chuàng)建用作清單2中密碼的JWT。在這種情況下,ATECC608A加速JWT簽名的加密,讀取設(shè)計(jì)的私有來自其集成安全存儲的關(guān)鍵,以完成前面描述的簽名創(chuàng)建過程。
然而,即使使用復(fù)雜的軟件和安全設(shè)備,由于傳統(tǒng)上管理密鑰和證書所需的方法,物聯(lián)網(wǎng)設(shè)備仍然容易受到攻擊。過去,私鑰需要在外部生成并在制造,分發(fā)甚至部署期間加載到安全存儲設(shè)備中。即使使用硬件安全模塊和安全設(shè)施,在“需要知道”它們的唯一設(shè)備之外短暫存在這些秘密代表了可能導(dǎo)致其意外或意圖暴露的安全弱點(diǎn)。通過利用ATECC608A的功能,Microchip和Google在很大程度上消除了傳統(tǒng)的安全漏洞。
在這種新方法中,Microchip使用ATECC608A生成密鑰對的能力,而無需私鑰離開設(shè)備(圖3)。然后,Microchip使用中間證書對設(shè)備生成的公鑰進(jìn)行簽名,該證書由客戶提供并存儲在Microchip安全設(shè)施內(nèi)的安全服務(wù)器中。最后,Microchip安全地將公鑰傳輸?shù)紾oogle Cloud IoT設(shè)備管理器中的客戶帳戶,該設(shè)備管理器可為每個設(shè)備存儲最多三個公鑰,以支持密鑰輪換策略。部署后,IoT設(shè)備可以使用ATECC608A安全功能來創(chuàng)建前面描述的相互身份驗(yàn)證過程中使用的JWT。
圖3:Microchip Technology和Google Cloud IoT服務(wù)相結(jié)合,簡化了密鑰和證書的配置,提供了一種旨在加強(qiáng)IoT應(yīng)用安全性的受保護(hù)機(jī)制。 (圖片來源:谷歌)
Microchip和Google之間的此次合作讓開發(fā)人員可以完全卸載這一關(guān)鍵密鑰管理流程。對于自定義要求,開發(fā)人員可以使用CryptoAuthLib API函數(shù)atcab_genkey()實(shí)現(xiàn)自己的密鑰管理過程,這會導(dǎo)致ATECC608A生成密鑰對,將私鑰存儲在其安全存儲中,并返回關(guān)聯(lián)的公鑰。/p>
為了探索密鑰生成和其他ATECC608A安全功能,開發(fā)人員可以快速建立一個圍繞Microchip SAM D21 Xplained Pro評估套件構(gòu)建的綜合開發(fā)環(huán)境。基于Microchip ATSAMD21J18A 32位Arm ? Cortex ? -M0 + MCU,SAM D21 Xplained Pro套件提供了Microchip高級軟件框架(ASF)支持的完整硬件平臺驅(qū)動程序和代碼模塊。
為了評估包括ATECC608A在內(nèi)的CryptoAuthentication設(shè)備,開發(fā)人員可以簡單地將CryptoAuth XPRO-B附加板插入Xplained Pro板的兩個擴(kuò)展頭之一。 Microchip提供了用于評估CryptoAuthLib與ATECC608A的安全功能的示例軟件。更進(jìn)一步,開發(fā)人員可以將Microchip ATWINC1500-XPRO Wi-Fi附加板插入另一個標(biāo)頭,以運(yùn)行Microchip示例軟件,該軟件演示了本文中描述的相互認(rèn)證流程,包括TLS服務(wù)器認(rèn)證和JWT設(shè)備認(rèn)證。
結(jié)論
雖然物聯(lián)網(wǎng)應(yīng)用安全帶來了多項(xiàng)要求,但關(guān)鍵挑戰(zhàn)通常在于為物聯(lián)網(wǎng)設(shè)備和云資源實(shí)施相互身份驗(yàn)證。在資源有限的物聯(lián)網(wǎng)系統(tǒng)中,傳統(tǒng)協(xié)議可能超過可用內(nèi)存和處理資源。使用Microchip Technology CryptoAuthLib庫和ATECC608A CryptoAuthentication IC,開發(fā)人員可以實(shí)施基于JSON Web Tokens的更高效方法,以便將IoT設(shè)備安全地連接到Google Cloud IoT服務(wù)。
-
Google
+關(guān)注
關(guān)注
5文章
1772瀏覽量
57809 -
microchip
+關(guān)注
關(guān)注
52文章
1518瀏覽量
117746 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2914文章
44945瀏覽量
377136
發(fā)布評論請先 登錄
相關(guān)推薦
物聯(lián)網(wǎng)就業(yè)有哪些高薪崗位?
EMMC在物聯(lián)網(wǎng)設(shè)備中的應(yīng)用
物聯(lián)網(wǎng)系統(tǒng)的安全漏洞分析
如何測試物聯(lián)網(wǎng)設(shè)備的功耗
![如何測試<b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b><b class='flag-5'>設(shè)備</b>的功耗](https://file1.elecfans.com/web2/M00/AB/2E/wKgZomUx2bWAf0USAABJQUnICdg481.png)
PLC接入工業(yè)物聯(lián)網(wǎng)平臺會遇見的問題及解決方案
![PLC接入工業(yè)<b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>平臺會遇見的問題及<b class='flag-5'>解決方案</b>](https://file1.elecfans.com//web1/M00/F2/A3/wKgaoWcHbaCAGCCWAADyVmp1_Ks093.jpg)
從邊緣設(shè)備到云端平臺,合宙DTU&RTU打造無縫物聯(lián)網(wǎng)解決方案
![從邊緣<b class='flag-5'>設(shè)備</b>到<b class='flag-5'>云端</b>平臺,合宙DTU&RTU打造無縫<b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b><b class='flag-5'>解決方案</b>](https://file1.elecfans.com/web2/M00/06/B0/wKgZombox4CARNUqAASxa-hrz8E478.png)
意法半導(dǎo)體物聯(lián)網(wǎng)eSIM解決方案簡介
![意法半導(dǎo)體<b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>eSIM<b class='flag-5'>解決方案</b>簡介](https://file1.elecfans.com/web2/M00/06/EB/wKgaombhEq-AEVgBAACGLIoeUNo443.jpg)
Modbus物聯(lián)網(wǎng)網(wǎng)關(guān)是什么
![Modbus<b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>網(wǎng)關(guān)是什么](https://file1.elecfans.com//web2/M00/01/B3/wKgZoma2_1OAZlBkAAPVgT1WpFg863.png)
家里聯(lián)網(wǎng)設(shè)備每天遭受10次攻擊,物聯(lián)網(wǎng)安全制度建設(shè)需加速推進(jìn)
![家里<b class='flag-5'>聯(lián)網(wǎng)</b><b class='flag-5'>設(shè)備</b>每天遭受10次攻擊,<b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b><b class='flag-5'>安全</b>制度建設(shè)需加速推進(jìn)](https://file.elecfans.com/web2/M00/43/7B/pYYBAGJ-B6aAHuNPAAAf8J1Ebk4778.jpg)
工業(yè)物聯(lián)網(wǎng)解決方案有什么用
iot物聯(lián)網(wǎng)平臺是什么?
智慧消防物聯(lián)網(wǎng)解決方案
粉塵涉爆企業(yè)物聯(lián)網(wǎng)遠(yuǎn)程監(jiān)控解決方案
![粉塵涉爆企業(yè)<b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>遠(yuǎn)程監(jiān)控<b class='flag-5'>解決方案</b>](https://file1.elecfans.com/web2/M00/C2/1E/wKgZomXgM6OAWnPUAA3tZzLMjbQ035.png)
芯科科技助力“物聯(lián)網(wǎng)設(shè)備安全規(guī)范1.0”發(fā)布
MQTT物聯(lián)網(wǎng)平臺實(shí)現(xiàn)設(shè)備連接與安全加密
![MQTT<b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>平臺實(shí)現(xiàn)<b class='flag-5'>設(shè)備</b><b class='flag-5'>連接</b>與<b class='flag-5'>安全</b>加密](https://file1.elecfans.com//web2/M00/C4/ED/wKgZomX494uAWRz1AAPVgT1WpFg860.png)
評論