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