作者: Bill Hawkins、 Zhang Feng、 Xavier Bignalet(Microchip Technology Inc.)
簡介
在許多熟悉的系統中,通常需要對消耗品組件進行身份驗證。例如,打印機墨盒、車輛中的電池、化妝品盒和送藥設備中的藥物等。本文檔探討了在現有設計中包含Microchip的CryptoAuthentication?系列ATSHA204A安全元件以實現對消耗品進行安全身份驗證的優勢。請參見圖1。
圖1:安全身份驗證的霧化器框圖
在本示例中,我們將從Microchip的AN2265“Vibrating Mesh Nebulizer Reference Design”(DS00002265) 開始,其中介紹了振動式網孔霧化器及其如何使用Microchip獨立于內核的外設實現。本文檔介紹了如何更新霧化器參考設計以包含可拆卸振動網和藥盒的安全身份驗證來增強設計。
霧化器參考設計具有用于固定振動網(將隨時間逐漸磨損)和供應藥物(一種耗材供應)的可拆卸藥盒。這種儲存藥物的可拆卸藥盒會極大地影響設備的性能。
出于以下幾個原因,制造商可能希望保護這些藥盒應用不受第三方供應商的影響:
客戶對設備的質量和功能的印象在很大程度上受藥盒內物質的影響。當更換的第三方藥盒不滿足制造商的標準,并且提供的性能低于客戶的預期時,制造商而不是第三方藥盒廠商會接收到投訴。
尤其是在醫療行業中,允許不受控地訪問設備可能會導致制造商因用藥劑量錯誤、藥物受到污染甚至是消耗品藥盒中的藥物出錯而承擔責任。
另一個原因是為了保護收入來源。典型的業務模式包括消耗品銷售將提供支撐公司主要收入來源的預期。如果第三方可以在同一個市場上銷售,那么制造商的收入會降低,而這部分收入本應補償基本單元和研發(Research and development,R D)的成本。
本文檔介紹了對霧化器進行的安全增強,包括對可拆卸 藥盒進行身份驗證和跟蹤其使用情況,并且可能限制藥 盒的使用以避免出現硬件磨損、未授權重填和重用舊藥 盒等問題。
引入ATSHA204A
霧化器的藥盒中使用ATSHA204A芯片向基本單元對藥盒進行身份驗證。ATSHA204A具有用于使能身份驗證的多種功能,例如SHA-256哈希算法、安全EEPROM、惟一序列號、高質量隨機數發生器和I 2C接口或單線接口。
SHA-256加密引擎
ATSHA204A在硬件中集成了SHA-256哈希算法。該哈希函數使用輸入流(質詢)并產生256位(32字節)輸出(響應)。哈希函數的兩個主要特性如下:
? 無法從哈希輸出重新生成輸入流。
? 無法改變輸入流并獲得相同的哈希輸出。
ATSHA204A將使用主機單片機提供的質詢字符串生成哈希密鑰。單片機還可以使用該質詢字符串和密鑰來執行哈希函數。如果哈希輸出與主機單片機預期的輸出一致,則證明ATSHA204A器件知道相同的密鑰。
安全EEPROM/密鑰存儲
ATSHA204A具有512字節的EEPROM,按十六個32字節槽排列。其中任何一個槽都可以配置為要在哈希函數中使用的密鑰值。當配置ATSHA204A時,槽中的值可以受到寫保護、讀保護、用其他槽作為密鑰進行加密或者保留為可讀/可寫的EEPROM存儲單元。提供物理防篡改和邊信道保護,以防止有人解密和探測器件芯片來讀取存儲器。
惟一序列號
保證每個ATSHA204A都有惟一的72位(9字節)序列號,從而允許制造商通過連接的ATSHA204A惟一識別任何器件。
高質量隨機數發生器
ATSHA204A具有基于噪聲源的高質量隨機數發生器。這可以用來生成將只使用一次的惟一質詢,并防止攻擊設備記錄質詢和響應以在主機上回放來冒充有效器件。
I2C/單線接口
ATSHA204A提供I2C接口或單線接口,允許藥盒在接口中具有最少的觸點。經過身份驗證的霧化器使用單線接口,這種接口采用具有三個大型焊盤的芯片封裝。ATSHA204A芯片采用可粘到藥盒上的設計,主機只提供滑動觸點來連接到藥盒(就像電池連接器一樣),這樣藥盒就無需電路板或配對連接器。
如何使用ATSHA204A進行身份驗證?
安全霧化器演示是單芯片系統設計。PIC16F1718運行整個操作,包括使用ATSHA204A進行身份驗證所需的質詢/響應。請參見圖2
圖2:ATSHA204A身份驗證框圖
PIC16具有16個存儲在存儲器中的質詢/響應對。每次使用器件時,都會對藥盒進行身份驗證。當用戶按下按鈕來啟動霧化器時,PIC16主機會向藥盒上的ATSHA204A發送32字節質詢。然后,ATSHA204A使用密鑰對質詢進行哈希運算,并將值返回到PIC16。返回的值與預期的響應進行比較,如果匹配,則允許霧化器運行。如果不匹配,霧化器的紅色LED指示燈會點亮幾秒鐘,然后再熄滅。霧化器通過使用自由運行定時器中的低4位從16個質詢中進行選擇,但具體數量無法預測。
由于PIC16存儲有限數量的質詢/響應對,這就意味著克隆器件只需處理幾個用例即可破壞該系統的安全性。為了防止出現這種情況,可以為每個PIC16主機編程惟一的質詢/響應對,這樣一來,通過這種方式創建的克隆器件便無法在任何其他器件上工作。
身份驗證方法可保護配件/一次性用品,但無法防止克隆主機(在新系統中復制質詢/響應對)。要實現更高級別的安全性,需要在主機MCU旁邊添加獨立安全元件(ATSHA204A)。請參見圖3。該主機ATSHA204A會為藥盒ATSHA204A產生隨機質詢,并提供響應以與來自藥盒ATSHA204A的響應進行比較。此外,密鑰派生實現將進一步提高解決方案的穩健性。
圖3:對稱身份驗證
作為ATSHA204A的替代產品,ATSHA206A是外形受限應用的理想解決方案,在此類應用中,由于藥盒尺寸受限而無法容納任何PCB,因此只能采用2引腳封裝。2引腳ATSHA206A或3引腳ATSHA204A可以塑封到一次性藥盒中。ATSHA206A的內部添加了集成電容,可在電源引腳上提供寄生電源能力。本質上,數據和電源共用同一個引腳。
限制藥盒的使用
經過身份驗證的霧化器保存每個藥盒的使用計數。此數據可用于限制藥盒的使用。有多種機制可實現此功能。ATSHA204A器件包含EEPROM和SRAM兩個存儲器塊。EEPROM分為三個區域:數據區域、配置區域和 一次性編程(One-Time-Programmable,OTP)區域。
數據區域分為16個通用存儲器槽。EEPROM數據區域中的任何槽都可用于存儲密鑰。
配置區域中有128位分配為LastKeyUse,可用于限制存儲在Slot 15中的密鑰編號15的使用。每次使用Slot15作為密鑰時,這128位都會清零。沒有復位機制。在 使用128次之后,將永久禁止Slot/Key 15。因此,每個藥盒的使用計數可以限制為128次或更少。
此外,還有512位的OTP存儲器可用于存儲只讀數據或單向熔絲型消耗記錄信息。在消耗模式下配置時,這些位可以寫入0,但不能寫回1。因此,在OTP存儲器為全零之前,可以將0移入OTP存儲器512次。在OTP存 儲器為全零之后,可以禁止使用藥盒。
如果藥盒的使用次數小于這些值(Slot 15為128次, OTP為512次),則可以將其中一些位預編程為零,以便根據需要提供所需的次數。
關于安全增強功能的深入探討
存儲在主機MCU、ATSHA204A或公司計算機系統中的機密信息密鑰必須受到絕對保護。如果密鑰泄露,則安全功能將不再起作用,產品也很容易遭到克隆。
Microchip的一些32位單片機具有穩健的安全性,能夠提供可信執行環境(Trusted Execution Environment,TEE)、加密加速器、安全引導和安全自舉程序等。例如,圖4顯示了一個SAM L11作為配件身份驗證應用中 (其中SAM L11增加了穩健性)的主機MCU正在托管TEE,即從MCU到安全元件的CryptoAuthlib API調用。TEE將Cryptoauthlib API回調會離開的關鍵代碼與系統的其余部分隔離,并避免固件更改。
圖4:一次性藥盒身份驗證
存儲在ATSHA204A中的一次性藥盒的密鑰不會遭到窺探。ATSHA204A只是Microchip提供的其中一種安全芯片。Microchip還提供其他使用公鑰加密(用于網絡身份驗證)的芯片來防止單一密鑰泄露。每個芯片都有自己的密鑰,其真實性由證書確定,該證書提供了器件到根證書頒發機構的可追溯性。這些芯片的說明超出了本文檔的范圍,可通過Microchip網站上的安全設計中心查看更多信息,網址如下:https://www.microchip.com/design-centers/security-ics
來源:Microchip 工程師社區
審核編輯:湯梓紅
-
單片機
+關注
關注
6017文章
44269瀏覽量
626831 -
microchip
+關注
關注
52文章
1487瀏覽量
117219 -
EEPROM
+關注
關注
9文章
981瀏覽量
80936 -
霧化器
+關注
關注
1文章
59瀏覽量
16712
發布評論請先 登錄
相關推薦
評論