本應(yīng)用筆記詳細介紹了如何將DS28S60加密處理器與ChipDNA?配合使用。它描述了DS28S60所需的設(shè)置。然后,它描述了使用非對稱密鑰交換在主機和客戶端之間安全地生成共享對稱密鑰的分步方法。接下來,它將介紹如何使用對稱密鑰在主機和客戶端之間交換加密數(shù)據(jù)。最后,本文介紹了DS28S60使用ECDSA進行雙向認證過程的示例。
術(shù)語定義
讓我們看一下本應(yīng)用筆記中使用的術(shù)語:
設(shè)備或客戶端——包含DS28S60的設(shè)備。它需要與主機通信。例如,傳感器節(jié)點。
主機或遠程對等體 - 需要與設(shè)備通信的實體。例如,應(yīng)用程序服務(wù)器。
頒發(fā)機構(gòu) - 使用頒發(fā)機構(gòu)密鑰對創(chuàng)建證書的受信任方,設(shè)備和遠程對等方可以使用該證書作為系統(tǒng)的一部分相互驗證。
圖 1 和圖 2 顯示了設(shè)備、客戶端和機構(gòu)如何在系統(tǒng)中的高級級別相互交互。
圖1.加密通道系統(tǒng)概述。
圖2.相互身份驗證系統(tǒng)概述。
基本命令和設(shè)備出廠設(shè)置
在現(xiàn)場使用DS28S60之前,請先設(shè)置器件,以滿足安全需求。這涉及安裝和/或生成設(shè)備密鑰對、機密和證書。這是在工廠等安全位置完成的。
圖3.生成設(shè)備證書的頒發(fā)機構(gòu)。
DS28S60 設(shè)置步驟:
生成并安裝設(shè)備公鑰對:
首先,使用生成 ECC-256 密鑰對命令為設(shè)備生成 ECDSA 密鑰對并將其安裝到密鑰對 A 內(nèi)存塊。注意,與其讓DS28S60生成自己的密鑰對,不如使用寫存儲器命令將其他地方創(chuàng)建的密鑰對寫入DS28S60。
接下來,使用 set 塊保護命令對密鑰對塊 A 進行寫保護,以便無法修改此密鑰對。
讓授權(quán)機構(gòu)為公鑰創(chuàng)建證書:
安裝器件密鑰對后,將公鑰連同DS28S60的ROM ID和MAN ID發(fā)送給機構(gòu),以便頒發(fā)機構(gòu)為密鑰對生成證書(圖3)。請注意,ROM ID和MAN ID是在Maxim制造過程中編程到器件中的數(shù)據(jù)元素。
將證書寫入DS28S60:
收到生成的證書后,將證書寫入用戶內(nèi)存頁。
將頒發(fā)機構(gòu)公鑰和特性數(shù)據(jù)寫入DS28S60:
將頒發(fā)機構(gòu)公鑰寫入頒發(fā)機構(gòu)密鑰 A 塊。請參考DS28S60用戶指南,了解器件存儲器圖和更多信息。寫入密鑰后,對頒發(fā)機構(gòu)密鑰 A 塊進行寫保護以防止其被修改。
接下來,將任何特性數(shù)據(jù)寫入DS28S60。特征數(shù)據(jù)可以是應(yīng)用所需的任何數(shù)據(jù),例如測試信息、序列號、設(shè)備調(diào)整信息、制造日期等。根據(jù)需要使用盡可能多的頁面。
對已安裝的密鑰、機密和證書設(shè)置適當(dāng)?shù)谋Wo:
寫入功能數(shù)據(jù)后,對設(shè)備證書和功能數(shù)據(jù)進行寫保護 (WP)。如果要素數(shù)據(jù)需要不同的保護,請將它們放在不同的內(nèi)存塊中。使用設(shè)置塊保護命令設(shè)置 WP 保護。
鎖定未使用的密鑰對塊和機密塊。
最后,將隨機生成的數(shù)據(jù)寫入每個未使用的密鑰和密鑰頁,并對它們進行寫保護以防止它們被使用。
使用非對稱密鑰交換的加密通信
主機和設(shè)備各自生成一個 ECDSA 密鑰對,稱為臨時密鑰對,用于設(shè)置加密通道。必須為每個通信會話生成新的臨時密鑰對。生成密鑰后,主機和設(shè)備使用 ECDHE 密鑰交換安全地計算共享密鑰,以便在后續(xù) AES-GCM 會話中進行加密和解密。
加密通道創(chuàng)建步驟
圖4.主機和設(shè)備使用 ECDHE 算法計算共享密鑰。
主機生成其臨時密鑰對。
設(shè)備生成其臨時密鑰對:
設(shè)備使用生成 ECC-256 密鑰對命令生成臨時密鑰對。
指定臨時密鑰 0 作為存儲位置。注意:如果DS28S60斷電,臨時密鑰存儲頁將丟失密鑰對。
主機請求并接收設(shè)備的臨時公鑰。
設(shè)備請求并接收主機的臨時公鑰。
主機使用 ECDHE 計算共享密鑰(圖 4)。
設(shè)備使用 ECDHE 計算共享密鑰(圖 4)。
向DS28S60發(fā)出密鑰交換命令以計算共享密鑰。
主機和設(shè)備現(xiàn)在可以使用 AES-GCM 發(fā)送加密數(shù)據(jù)并解密接收到的數(shù)據(jù)(圖 5)。
雙向身份驗證
雙向身份驗證有兩個階段。主機和設(shè)備使用頒發(fā)機構(gòu)創(chuàng)建的證書和頒發(fā)機構(gòu)的公鑰,在第一階段驗證彼此的公鑰是否是系統(tǒng)的一部分(圖 6)。驗證公鑰后,主機和設(shè)備將在第二階段驗證它們是否各自擁有與已驗證的公鑰相對應(yīng)的私鑰。這是通過交換使用其各自的私鑰生成的簽名并使用經(jīng)過驗證的公鑰來驗證簽名來實現(xiàn)的。圖 7 和圖 8 顯示了私鑰驗證過程。
第 1 階段。公鑰驗證
圖6.使用證書進行公鑰驗證的高級圖。
主機請求并接收設(shè)備的公鑰:
當(dāng)主機請求器件的公鑰時,器件使用讀存儲器命令從DS28S60讀取公鑰兩次,讀取公鑰A x和y元件,然后將公鑰發(fā)送給主機。
主機請求并接收設(shè)備的證書和證書消息數(shù)據(jù):
當(dāng)器件收到對其證書的請求時,它使用讀存儲器命令從DS28S60的用戶頁面讀取其證書,然后將其傳輸?shù)街鳈C。
設(shè)備請求并接收主機的公鑰:
當(dāng)設(shè)備請求并接收主機的公鑰時,它會使用寫入內(nèi)存命令將其寫入公鑰 SA 塊。
設(shè)備請求并接收主機的證書和證書消息數(shù)據(jù)。
主機通過將證書、證書消息數(shù)據(jù)的 SHA-256 哈希和頒發(fā)機構(gòu)公鑰傳遞給 ECDSA 驗證算法來驗證設(shè)備的證書。
設(shè)備通過將證書、證書消息數(shù)據(jù)的 SHA-256 哈希和頒發(fā)機構(gòu)公鑰傳遞給 ECDSA 驗證算法來驗證主機的證書。
設(shè)備使用身份驗證 ECDSA 證書命令指定密鑰的PUBKEY_SA,設(shè)置 ECDH = 0 和 WPE = 0,并將證書與證書數(shù)據(jù)一起傳遞以驗證主機的證書。有關(guān)該命令的詳細信息,請參閱用戶指南。
第 2 階段。私鑰驗證
圖7.私鑰驗證步驟一:生成簽名。
主持人生成 32 字節(jié)質(zhì)詢,并請求設(shè)備使用質(zhì)詢和一些頁面數(shù)據(jù)生成簽名。
設(shè)備使用用于生成簽名的簽名和數(shù)據(jù)進行響應(yīng):
設(shè)備收到質(zhì)詢后,將使用計算和讀取頁面命令通過特征數(shù)據(jù)頁面生成簽名。一旦生成簽名,器件將簽名與用于生成簽名的消息數(shù)據(jù)一起發(fā)送,即DS28S60的Rom ID、特征數(shù)據(jù)、特征數(shù)據(jù)頁碼和Man ID,命令字節(jié)(0xA5)。
設(shè)備生成 32 字節(jié)質(zhì)詢,并請求主機使用質(zhì)詢和一些數(shù)據(jù)生成簽名:
器件使用DS28S60上的讀取RNG命令產(chǎn)生32字節(jié)質(zhì)詢。生成質(zhì)詢后,設(shè)備會將質(zhì)詢發(fā)送給主機,請求主機生成證書。
主機使用用于生成簽名的簽名和數(shù)據(jù)進行響應(yīng):
主持人使用以下格式使用質(zhì)詢和一些數(shù)據(jù)生成簽名:質(zhì)詢||數(shù)據(jù)。主持人將質(zhì)詢以及用于生成簽名的數(shù)據(jù)發(fā)送到設(shè)備。
圖8.私鑰驗證第二步:主機和設(shè)備驗證彼此的簽名。
主機使用 ECDSA 驗證算法驗證設(shè)備的簽名,方法是向設(shè)備提供設(shè)備的公鑰、帶有質(zhì)詢和簽名的數(shù)據(jù)的 SHA-256 哈希。
設(shè)備使用 ECDSA 驗證算法驗證主機的簽名,方法是向主機提供主機的公鑰、帶有質(zhì)詢和簽名的數(shù)據(jù)的 SHA-256 哈希:
一旦設(shè)備收到簽名和數(shù)據(jù),它將數(shù)據(jù)附加到發(fā)送到主機的質(zhì)詢中,使用DS28S60驗證簽名命令指定公鑰SA,并將消息用作ECDSA輸入參數(shù)。
推薦的內(nèi)場流量
現(xiàn)在,構(gòu)建塊已經(jīng)介紹完畢,讓我們討論如何將它們組合在一起。設(shè)置步驟在安全的受信任位置(如工廠)中完成。設(shè)置完成后,設(shè)備在現(xiàn)場,主機已啟動并運行,設(shè)備和主機首先使用上述步驟建立加密通道。建立加密通道后,設(shè)備和主機將相互進行身份驗證,以確保它們是同一系統(tǒng)的一部分。一旦他們成功地相互驗證,他們就開始相互通信。
總結(jié)
本應(yīng)用筆記介紹了DS28S60作為需要相互認證和安全加密通信通道的系統(tǒng)的一部分設(shè)置和使用所需的命令和步驟。
審核編輯:郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
19100瀏覽量
228817 -
主機
+關(guān)注
關(guān)注
0文章
983瀏覽量
35008
發(fā)布評論請先 登錄
相關(guān)推薦
評論