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