MAXQ1065為嵌入式器件安全協(xié)處理器,提供信任根、相互認(rèn)證、數(shù)據(jù)機(jī)密性和完整性、安全啟動(dòng)、安全固件更新以及通用密鑰交換和批量加密或完整TLS支持的安全通信等加密功能。 Google IoT Core是一個(gè)物聯(lián)網(wǎng)設(shè)備管理系統(tǒng),允許用戶(hù)連接,管理和接收來(lái)自遠(yuǎn)程連接設(shè)備的數(shù)據(jù)。Google IoT Core提供了管理遠(yuǎn)程連接設(shè)備所需的接口。
介紹
在過(guò)去幾年中,智能設(shè)備的數(shù)量呈指數(shù)級(jí)增長(zhǎng)。它們的設(shè)計(jì)和功能的復(fù)雜性提供了許多簡(jiǎn)化我們生活的功能。互聯(lián)網(wǎng)的便捷訪問(wèn)以及技術(shù)和通信的進(jìn)步為隨時(shí)隨地管理遠(yuǎn)程設(shè)備打開(kāi)了大門(mén),而無(wú)需親自出現(xiàn)在設(shè)備位置。但是,隨著越來(lái)越多的設(shè)備相互連接,預(yù)計(jì)會(huì)出現(xiàn)數(shù)據(jù)操縱、未經(jīng)授權(quán)的訪問(wèn)和安全漏洞的風(fēng)險(xiǎn)。需要一個(gè)安全的環(huán)境來(lái)避免災(zāi)難性事件。本文介紹如何使用MAXQ1065和Google IoT Core創(chuàng)建安全環(huán)境,并說(shuō)明如何生成所需的證書(shū)和密鑰,描述它們的用法,并提供基本安全連接和設(shè)置的真實(shí)示例。本應(yīng)用筆記引用MAXQ1065 SDK,用于生成密鑰、證書(shū)、器件配置和測(cè)試。SDK 可應(yīng)要求提供。
MAXQ1065特性
- 用于嵌入式設(shè)備安全的固定功能IC
- 安全功能
- (四)TLS 1.2,通用 SP800-56r3 ECC DH 密鑰交換
- 用于身份驗(yàn)證、機(jī)密性、證明的通用加密工具箱 唯一 ID 安全啟動(dòng)/安全更新
- 具有可配置時(shí)序的外部看門(mén)狗功能
- 復(fù)位輸出(可選事件)
- 通過(guò)篡改進(jìn)行上電篡改檢測(cè)
- 可現(xiàn)場(chǎng)升級(jí)
- 安全存儲(chǔ)
- 芯片DNA保護(hù)+芯片屏蔽,篡改檢測(cè)器
- 8KB 動(dòng)態(tài)文件系統(tǒng)(10K 周期),具有可自定義的安全屬性
- 安全密鑰管理和生命周期,x.509 支持
- 硬件加密引擎
- SHA-2-256
- ECC (NIST P-256)*: ECDSA, ECDH
- AES-128/256 (GCM, CBC, ECB, CCM)
- NIST SP800-90A/B/C 就緒 TRNG
- 10MHz SPI 從機(jī),帶安全通道
- -40/+105°C,1.8V/3.3V 工作電壓,100nA 關(guān)斷模式 (**)
- 12-TDFN 3 × 3mm 間距 0.5mm
谷歌物聯(lián)網(wǎng)核心描述
Google IoT Core是一個(gè)物聯(lián)網(wǎng)設(shè)備管理,身份驗(yàn)證和通信設(shè)施。物聯(lián)網(wǎng)節(jié)點(diǎn)設(shè)備(直接或通過(guò)網(wǎng)關(guān))連接到谷歌物聯(lián)網(wǎng)核心版服務(wù)器。通常,會(huì)建立TLS連接以驗(yàn)證Google IoT Core服務(wù)器。這些設(shè)備使用JSON Web Token(JWT)協(xié)議進(jìn)行身份驗(yàn)證。
基本
物聯(lián)網(wǎng)設(shè)備(直接或通過(guò)網(wǎng)關(guān))連接到 Google IoT Core 服務(wù)器。在允許與 Google IoT Core 連接之前,每個(gè)設(shè)備都需要與 Google IoT Core 服務(wù)器建立傳輸層安全性 (TLS) 會(huì)話。此 TLS 會(huì)話建立為通信的身份驗(yàn)證、完整性和加密創(chuàng)建共享對(duì)稱(chēng)密鑰,并向 IoT 設(shè)備保證其連接到合法服務(wù)器。此外,一旦啟動(dòng) TLS 會(huì)話,服務(wù)器還可以使用 JWT 協(xié)議安全地識(shí)別物聯(lián)網(wǎng)設(shè)備。發(fā)生此安全相互身份驗(yàn)證后,常規(guī) HTTP 或 MQTT 流量可以流經(jīng)已建立的 TLS 會(huì)話。

圖1.基本物聯(lián)網(wǎng)連接。
JWT 身份驗(yàn)證依賴(lài)于客戶(hù)定義的根證書(shū)和密鑰對(duì)(JWT_CA證書(shū)和 JWT 密鑰對(duì))。從服務(wù)器的角度來(lái)看,物聯(lián)網(wǎng)設(shè)備被分組到所謂的“注冊(cè)表”中,每個(gè)注冊(cè)表都由其自己的JWT_CA證書(shū)定義。屬于注冊(cè)表的所有設(shè)備都必須通過(guò)證明由注冊(cè)表附加的 JWT_CA 私鑰頒發(fā)的 JWT 證書(shū)的所有權(quán)來(lái)確認(rèn)其身份。每個(gè)設(shè)備都有自己的 JWT 密鑰對(duì),以及 JWT 證書(shū)頒發(fā)機(jī)構(gòu)頒發(fā)的 JWT 證書(shū)JWT_CA。
注意: 所有證書(shū)必須采用 X.509 v3 格式,以隱私增強(qiáng)郵件 (PEM) 格式編碼,這是一種編碼為 base64 的 DER 格式,并包裝在-----BEGIN CERTIFICATE-----和 -----END 證書(shū)-----分隔符之間。JWT_CA私鑰必須采用 PEM 格式,并至少使用 128 位安全性進(jìn)行加密。讀者需要參考定義私鑰加密技術(shù)的標(biāo)準(zhǔn),例如 PKCS#8。私鑰JWT_CA允許生成“有效”設(shè)備;因此,必須保密并嚴(yán)格控制其使用。

圖2.設(shè)備注冊(cè)表的視圖。
制備
在繼續(xù)之前,請(qǐng)參閱 https://cloud.google.com/iot/docs/create-device-registry 并按照教程“創(chuàng)建 IoT 核心版設(shè)備注冊(cè)表”進(jìn)行操作,然后繼續(xù)執(zhí)行步驟“創(chuàng)建 設(shè)備注冊(cè)表 ”(隨附)。
身份驗(yàn)證設(shè)置
創(chuàng)建附加到注冊(cè)表的JWT_CA根證書(shū)(和私鑰)。MAXQ1065 SDK包括make_ca_cert腳本,用于生成該序列所需的自簽名證書(shū)和密鑰。
所需步驟
-
執(zhí)行“make_ca_cert”腳本:
- 它會(huì)生成JWT_CA私鑰并將其保存到文件“cert privkey_server_ECDSA_secp256r1_secp256r1.pem”中。稍后用于頒發(fā)存儲(chǔ)在MAXQ1065存儲(chǔ)器中的器件專(zhuān)用證書(shū)。
- 它還使用生成的JWT_CA私鑰將自簽名 x509 JWT_CA 證書(shū)生成到文件“cert_CA.pem”中。
-
將生成的JWT_CA證書(shū)上傳到 Google IoT Core 注冊(cè)表。
-
打開(kāi)生成的證書(shū)文件“cert_CA.pem”并復(fù)制其內(nèi)容。

圖3.生成的證書(shū)注冊(cè)表。

圖4.證書(shū)內(nèi)容。-
轉(zhuǎn)到Google Cloud進(jìn)入“IoT Core”面板。

圖 5.谷歌物聯(lián)網(wǎng)核心。
-
選擇正確的注冊(cè)表。

圖6.注冊(cè)表。
-
在所選注冊(cè)表下,單擊“ CA 證書(shū) ”下拉菜單。

圖7.上傳 CA 證書(shū)。
-
單擊添加證書(shū)按鈕。

圖8.插入證書(shū)。
-
在“添加 CA 證書(shū)”窗口的 “證書(shū)值 ”框中,粘貼文件“cert_CA.pem”中的內(nèi)容,然后單擊“ ADD ”。

圖9.粘貼證書(shū)。
-
證書(shū)被添加到注冊(cè)表中,用于驗(yàn)證采用MAXQ1065的物聯(lián)網(wǎng)節(jié)點(diǎn)設(shè)備。現(xiàn)在,MAXQ1065必須配置器件專(zhuān)用證書(shū)。有關(guān)更多詳細(xì)信息,請(qǐng)參閱配置器件(MAXQ1065)部分。

圖 10.證書(shū)已加載。
-
配置器件 (MAXQ1065)
設(shè)備預(yù)配創(chuàng)建設(shè)備特定的密鑰對(duì),并使用JWT_CA私鑰頒發(fā)其證書(shū)。
為了實(shí)現(xiàn)這一過(guò)程,MAXQ1065 SDK包含init_tls_googleiot腳本。此腳本提供了每個(gè)后續(xù)步驟的示例。這是過(guò)程。對(duì)于每個(gè)設(shè)備,“ init_tls_googleiot ”腳本執(zhí)行以下步驟:
-
在MAXQ1065中生成器件密鑰對(duì)(JWT私鑰和JWT公鑰)。
-
讀出生成的設(shè)備公鑰。

圖 11.生成公鑰。
-
使用JWT_CA私鑰認(rèn)證生成的 JWT 公鑰。
-
將器件JWT證書(shū)(csr_cert.pem)加載回器件(更具體地說(shuō),加載到MAXQ1065存儲(chǔ)器中)。

圖 12.加載 JWT 證書(shū)。
現(xiàn)在,IoT 設(shè)備具有自己的 JWT 身份驗(yàn)證密鑰和關(guān)聯(lián)的證書(shū)。因此,它可以由Google IoT核心服務(wù)器進(jìn)行身份驗(yàn)證,更具體地說(shuō),它屬于由用于頒發(fā)設(shè)備證書(shū)的根JWT_CA證書(shū)定義的注冊(cè)表。
下面的其他步驟包括將Google IoT根證書(shū)加載到客戶(hù)端設(shè)備中,這允許設(shè)備在TLS握手期間對(duì)Google IoT核心服務(wù)器進(jìn)行身份驗(yàn)證,并確保它連接到真實(shí)的Google IoT服務(wù)器,而不是未知服務(wù)器。這些步驟也由同一個(gè)“ init_tls_googleiot ”腳本執(zhí)行:
-
獲取 Google IoT TLS 根證書(shū) (GTS LTSR 證書(shū)) 或證書(shū) GS 根 R4 作為備份:
-
將谷歌物聯(lián)網(wǎng)TLS根證書(shū)加載到MAXQ1065內(nèi)存中。

圖 13.加載谷歌物聯(lián)網(wǎng)TLS根證書(shū)。
在谷歌物聯(lián)網(wǎng)核心版上注冊(cè)設(shè)備
每次客戶(hù)端設(shè)備連接到 Google IoT 核心服務(wù)器時(shí),其身份都必須由服務(wù)器安全地驗(yàn)證。通過(guò)將每個(gè)設(shè)備預(yù)先注冊(cè)到Google IoT注冊(cè)表中,進(jìn)一步的身份驗(yàn)證變得更快,更簡(jiǎn)單。事實(shí)上,每個(gè)設(shè)備的證書(shū)在注冊(cè)時(shí)都會(huì)加載到谷歌物聯(lián)網(wǎng)服務(wù)器注冊(cè)表中一次。在該階段,使用注冊(cè)表的JWT_CA證書(shū)對(duì)設(shè)備的證書(shū)進(jìn)行驗(yàn)證。谷歌物聯(lián)網(wǎng)核心服務(wù)器使用注冊(cè)表的證書(shū)JWT_CA來(lái)驗(yàn)證來(lái)自客戶(hù)端設(shè)備的JWT證書(shū)(證書(shū)存儲(chǔ)在MAXQ1065中)是否確實(shí)是用JWT_CA私鑰頒發(fā)的。然后,每當(dāng)設(shè)備連接到物聯(lián)網(wǎng)服務(wù)器時(shí),都不需要進(jìn)一步傳輸和驗(yàn)證其證書(shū)。服務(wù)器只是識(shí)別設(shè)備,確保它屬于注冊(cè)表,并請(qǐng)求 JWT 身份驗(yàn)證以確認(rèn)其身份。
每個(gè)設(shè)備都需要按照此過(guò)程注冊(cè)到Google IoT Core服務(wù)器中。
使用Google IoT GCP控制臺(tái)將名為“EXAMPLE_DEVICE”的設(shè)備添加到注冊(cè)表中:gcloud 物聯(lián)網(wǎng)設(shè)備創(chuàng)建EXAMPLE_DEVICE --project=maximiot-224510 --region=us-central1 --registry=my-registry --public-key path=csr_cert.pem,type=es256-x509-pem
在這里,上面命令行中提供的 JWT 設(shè)備證書(shū)(文件名為 csr_cert.pem)由 Google IoT 使用之前上傳的JWT_CA證書(shū)進(jìn)行驗(yàn)證。

圖 14.開(kāi)發(fā)工具包加載證書(shū)。

圖 15.在谷歌物聯(lián)網(wǎng)核心上注冊(cè)設(shè)備。
運(yùn)行設(shè)備
將設(shè)備連接到Google IoT Core服務(wù)器遵循以下過(guò)程:
-
設(shè)備使用其本地Google IoT TLS根證書(shū)驗(yàn)證Google IoT Core服務(wù)器證書(shū)。

圖 16.驗(yàn)證服務(wù)器證書(shū)。-
服務(wù)器將其證書(shū)發(fā)送到客戶(hù)端(也稱(chēng)為設(shè)備)。
-
客戶(hù)端使用先前在配置階段加載到MAXQ1065中的Google IoT TLS根證書(shū)來(lái)驗(yàn)證服務(wù)器證書(shū)。該證書(shū)的驗(yàn)證在MAXQ1065中進(jìn)行。
-
MAXQ1065在成功時(shí)提取服務(wù)器公鑰并存儲(chǔ)以備將來(lái)使用。

圖 17.驗(yàn)證服務(wù)器證書(shū)序列。
-
-
設(shè)備向谷歌物聯(lián)網(wǎng)核心服務(wù)器驗(yàn)證自身。

圖 18.對(duì)服務(wù)器進(jìn)行身份驗(yàn)證。-
服務(wù)器創(chuàng)建新的 ECDHE 密鑰對(duì)。
-
服務(wù)器使用服務(wù)器私鑰對(duì)ECDHE公鑰和來(lái)自MAXQ1065的隨機(jī)數(shù)進(jìn)行簽名,并將簽名的ECDHE公鑰發(fā)送回器件。
-
器件的MAXQ1065使用從服務(wù)器證書(shū)解碼的服務(wù)器公鑰來(lái)驗(yàn)證來(lái)自服務(wù)器的傳入數(shù)據(jù)的簽名。服務(wù)器公鑰在上一步中經(jīng)過(guò)驗(yàn)證和解碼,并存儲(chǔ)在MAXQ1065中。
-
如果簽名經(jīng)過(guò)驗(yàn)證,則證明服務(wù)器的身份,然后ECDHE公鑰在內(nèi)部保留以備下一步使用。

圖 19.對(duì)服務(wù)器序列進(jìn)行身份驗(yàn)證。
-
-
執(zhí)行 ECDHE 密鑰交換。派生會(huì)話密鑰。

圖 20.執(zhí)行 ECDHE 和派生會(huì)話密鑰。-
MAXQ1065創(chuàng)建一個(gè)新的隨機(jī)ECDHE密鑰對(duì)。
-
私有 ECDHE 密鑰與經(jīng)過(guò)身份驗(yàn)證的服務(wù)器的 ECDHE 公鑰相結(jié)合。
-
該組合在兩端(設(shè)備和服務(wù)器)上提供共享密鑰。共享密鑰進(jìn)一步派生到 AES 會(huì)話密鑰中。

圖 21.執(zhí)行 ECDHE 派生會(huì)話密鑰序列。
-
-
執(zhí)行應(yīng)用層安全性。使用會(huì)話密鑰加密/解密包。

圖 22.加密/解密。
圖 23 顯示了建立會(huì)話后的 TLS 通信。當(dāng)服務(wù)器向客戶(hù)端發(fā)送消息(例如,對(duì)請(qǐng)求的響應(yīng))時(shí),服務(wù)器使用 AES 會(huì)話密鑰對(duì)其消息進(jìn)行加密和簽名。
客戶(hù)端設(shè)備一旦從服務(wù)器接收到TLS數(shù)據(jù)包,器件的主微控制器將TLS數(shù)據(jù)包輸入MAXQ1065。MAXQ1065使用先前建立的會(huì)話密鑰解密并驗(yàn)證TLS數(shù)據(jù)包,并以明文形式返回給主微控制器。相同的過(guò)程應(yīng)用于另一個(gè)通信方向。

圖 23.加密/解密序列。
-
對(duì)客戶(hù)端進(jìn)行身份驗(yàn)證。

圖 24.對(duì)客戶(hù)端進(jìn)行身份驗(yàn)證。
建立 TLS 會(huì)話后,客戶(hù)端設(shè)備對(duì)服務(wù)器進(jìn)行身份驗(yàn)證,但設(shè)備尚未對(duì)服務(wù)器進(jìn)行身份驗(yàn)證。執(zhí)行此附加步驟以完成相互身份驗(yàn)證。
- 服務(wù)器向客戶(hù)端發(fā)送質(zhì)詢(xún)(隨機(jī)數(shù))。
- 客戶(hù)端使用MAXQ1065使用其JWT私鑰對(duì)質(zhì)詢(xún)進(jìn)行簽名。
- 客戶(hù)端發(fā)回簽名和客戶(hù)端 JWT 證書(shū)。
- 服務(wù)器使用 JWT_CA 證書(shū)驗(yàn)證客戶(hù)端的 JWT 證書(shū),并從中獲取客戶(hù)端的公鑰。
- 服務(wù)器使用客戶(hù)端證書(shū)中的可信公鑰驗(yàn)證質(zhì)詢(xún)的簽名。
- 如果簽名經(jīng)過(guò)驗(yàn)證,則證明客戶(hù)端實(shí)際擁有與其證書(shū)存在的公鑰匹配的私鑰。
有關(guān) JWT 的更多信息,請(qǐng)參閱 https://jwt.io/。

圖 25.對(duì)客戶(hù)端序列進(jìn)行身份驗(yàn)證。
用戶(hù)可以使用“google_iot”文件夾中提供的SDK示例執(zhí)行上述整個(gè)過(guò)程:
./iot_core_mqtt_client -p maximiot-224510 -d projects/maximiot-224510/locations/us-central1/registries/my-registry/devices/EXAMPLE_DEVICE -t /devices/EXAMPLE_DEVICE/state
預(yù)配選項(xiàng)
為了便于部署,ADI提供開(kāi)箱即用的工廠安全編程服務(wù)。有關(guān)更多信息和最低要求,請(qǐng)聯(lián)系A(chǔ)DI銷(xiāo)售代表。
圖 26 顯示了此服務(wù)的常見(jiàn)流程。

圖 26.ADI安全編程服務(wù)流程。
結(jié)論
物聯(lián)網(wǎng)設(shè)備本質(zhì)上暴露給攻擊者,因?yàn)樗鼈兛赡軣o(wú)人看管或未部署在安全設(shè)施中。它使攻擊者更容易進(jìn)行侵入性攻擊,以試圖從這些設(shè)備獲取加密密鑰。獲取密鑰允許攻擊者模擬設(shè)備或替換其固件以創(chuàng)建僵尸網(wǎng)絡(luò),這可能是對(duì)網(wǎng)絡(luò)進(jìn)行大規(guī)模攻擊的構(gòu)建塊。
MAXQ1065安全加密協(xié)處理器通過(guò)為運(yùn)行嵌入式系統(tǒng)或物聯(lián)網(wǎng)應(yīng)用的任何微控制器添加安全實(shí)現(xiàn)的加密功能和安全密鑰存儲(chǔ),增強(qiáng)了連接嵌入式系統(tǒng)的安全性。特別是,MAXQ1065 ChipDNA PUF技術(shù)對(duì)黑客在集成電路上提取憑據(jù)的侵入性和逆向工程攻擊的防護(hù)能力呈指數(shù)級(jí)增長(zhǎng)。任何證明或觀察ChipDNA操作的嘗試都會(huì)修改底層電路特性,從而阻止發(fā)現(xiàn)保護(hù)物聯(lián)網(wǎng)云基礎(chǔ)設(shè)施連接憑據(jù)的唯一機(jī)密。MAXQ1065的附加功能可以在連接憑證可供使用之前進(jìn)行強(qiáng)制性的設(shè)備固件驗(yàn)證,從而保證設(shè)備在連接到物聯(lián)網(wǎng)云服務(wù)器之前運(yùn)行合法固件。同樣,數(shù)據(jù)加密密鑰可能會(huì)被鎖定,直到設(shè)備實(shí)際部署到現(xiàn)場(chǎng),從而在制造和運(yùn)輸階段保護(hù)敏感數(shù)據(jù)。
另外,將密鑰和證書(shū)預(yù)編程到MAXQ1065中,使得物聯(lián)網(wǎng)設(shè)備可以即時(shí)地進(jìn)一步注冊(cè)到云基礎(chǔ)設(shè)施中,甚至更加安全。物聯(lián)網(wǎng)器件可以在沒(méi)有環(huán)境安全要求的情況下制造,但預(yù)先配置的MAXQ1065 IC已經(jīng)安全,連接憑證被鎖定。
MAXQ1065提高了攻擊者的標(biāo)準(zhǔn),允許以合理的成本在嵌入式設(shè)備中實(shí)現(xiàn)可證明的安全性。
審核編輯:郭婷
-
微控制器
+關(guān)注
關(guān)注
48文章
8375瀏覽量
164551 -
集成電路
+關(guān)注
關(guān)注
5452文章
12571瀏覽量
374523 -
嵌入式
+關(guān)注
關(guān)注
5198文章
20443瀏覽量
333990
發(fā)布評(píng)論請(qǐng)先 登錄
恩智浦利用谷歌“云物聯(lián)網(wǎng)核心”促進(jìn)智能設(shè)備邊緣計(jì)算
一種更簡(jiǎn)便的增強(qiáng) Wi-Fi 連接式物聯(lián)網(wǎng)設(shè)計(jì)安全性的解決方案
如何構(gòu)建安全的物聯(lián)網(wǎng)架構(gòu)
創(chuàng)建安全臨時(shí)QR令牌
MAXQ1065加密控制器實(shí)現(xiàn)超低功耗的硬件要求
使用python創(chuàng)建安全攝像頭
MAXQ1065省電模式下最低功耗的硬件要求
比較DS28S60、MAXQ1061和MAXQ1065功能
如何用MAXQ1065創(chuàng)建安全的谷歌到物聯(lián)網(wǎng)核心連接
【層峰觀點(diǎn)】利用物聯(lián)網(wǎng)技術(shù)創(chuàng)建安全節(jié)能的城市-分享智慧城市新動(dòng)態(tài)
MAXQ1065EVKIT: Evaluation Kit for the MAXQ1065 Data Sheet MAXQ1065EVKIT: Evaluation Kit for the MAXQ1065 Data Sheet
MAXQ1065: Ultra Low-Power Cryptographic Controller with ChipDNA<sup>TM</sup> for Embedded Devices Data Sheet MAXQ1065: Ultra Low
MAXQ1065 adi
MAXQ1065具有ChipDNA的超低功耗加密控制器,適用于嵌入式器件技術(shù)手冊(cè)
如何用MAXQ1065創(chuàng)建安全的谷歌到物聯(lián)網(wǎng)核心連接
評(píng)論