本教程是旨在為產品開發工程師提供密碼學快速學習指南的系列教程的一部分。每個部分都采用工程方法而不是理論方法。在本期中,您將了解加密解決方案的硬件和軟件實現之間的區別,并深入了解一些常見應用程序。
比較兩種加密方法
現代加密算法可以使用專用加密硬件或在通用硬件上運行的軟件來實現。由于各種原因,專用加密硬件為大多數應用程序提供了更好的解決方案。表 1 列出了更需要基于硬件的加密解決方案的原因。
表 1.硬件與軟件加密比較
基于硬件的密碼 | 基于軟件的密碼學 |
---|---|
1.使用專用硬件,因此執行速度更快。 | 1. 使用共享硬件,因此執行速度較慢。 |
2. 不依賴于操作系統。由用于操作硬件的專用軟件支持。 | 2. 取決于操作系統和支持的軟件的安全級別和功能。 |
3. 可以使用出廠配置,并將密鑰和其他數據安全地存儲在專用的安全內存位置。 | 3. 沒有可用的專用安全內存位置。因此,容易受到密鑰和數據竊取或操縱。 |
4. Maxim的硬件實現內置了針對PUF(ChipDNA)等逆向工程的保護。 | 4. 軟件實現可以更容易地進行逆向工程。 |
5. 在硬件系統中,特別注意隱藏和保護私鑰等重要信息,使其更難訪問。 | 5. 在實施軟件密碼學的通用系統中,有更多的方法可以窺探和訪問重要信息。一個例子是攔截計算機系統內傳輸的私鑰。 |
當今密碼學中的應用
了解安全啟動和安全下載
家用設備,如 WiFi 攝像頭、恒溫器和煙霧探測器
醫療器械
可穿戴設備,包括健身追蹤器和智能手表
幾乎所有這些設備都包含訪問 Internet 的啟動固件或可下載數據,因此它們容易受到安全威脅的攻擊。啟動固件(設備的大腦)基本上保存在設備內部的非易失性存儲器中。該軟件會定期更新以糾正和增強某些功能,包括為WiFi攝像機添加新的入侵者檢測算法,或者從工業機械臂的角度更好地定位焊縫。
在本教程中,我們將介紹安全啟動以及在連接的設備中上傳新固件所需的所有必要步驟。
保護物聯網設備固件或數據的重要性
由于物聯網設備必須可信,因此必須驗證設備固件和關鍵數據的真實性。在理想情況下,啟動固件和配置數據將在出廠時鎖定。實際上,客戶已經開始期望通過互聯網提供固件更新和重新配置。不幸的是,這為惡意行為者使用這些網絡接口作為惡意軟件的渠道創造了機會。如果有人獲得了對物聯網設備的控制權,他們可能會出于惡意目的控制該設備。因此,任何聲稱來自授權來源的代碼都必須經過身份驗證,然后才能被允許使用。
攻擊者可以通過各種方式將惡意軟件傳送到 IoT 設備(圖 2):
通過對設備的物理訪問,攻擊者可以通過物理連接(例如USB,以太網等)引入惡意軟件。
操作系統通常表現出通過補丁發現時已關閉的漏洞。攻擊者可以通過訪問未修補的系統來引入惡意軟件。
通常,IoT 設備會聯系更新服務器,以確定更新的固件或配置數據是否可用。攻擊者可能會攔截 DNS 請求,并將 IoT 設備重定向到托管惡意軟件或損壞配置數據的惡意源。
正版網站可能配置錯誤,以允許攻擊者控制網站并將正版固件替換為包含攻擊者惡意軟件的固件。
圖2.攻擊者可以滲透到未受保護的 IoT 設備與安全的 IoT 設備。
安全啟動和安全下載有助于防止滲透并防止惡意軟件注入。這意味著物聯網設備可以信任從命令/控制中心收到的更新。如果命令/控制中心想要完全信任物聯網設備,則需要執行驗證物聯網設備數據的額外步驟。
固件的身份驗證和完整性
身份驗證和完整性可以提供一種方法:
確保目標嵌入式設備僅運行授權的固件或配置數據。
確認數據受信任且隨后未被修改。
允許使用加密來證明數據既真實又具有完整性。
使用加密數字簽名,如信件底部的印章或手動簽名。
通過身份驗證和完整性,固件和配置數據在制造階段加載,所有后續更新都經過數字簽名。這樣,數字簽名就可以在設備的整個生命周期內實現信任。數字簽名的以下功能對于提供安全性至關重要。
使用的數字簽名必須由加密算法計算。
為了帶來最高級別的安全性,算法必須是公開的并且經過充分驗證。
對于我們的安全解決方案,我們將研究非對稱加密算法,特別是FIBS 186 ECDSA。
應用于安全啟動/下載的非對稱加密
非對稱加密使用公鑰/私鑰對進行算法計算(圖 3)。
任何密鑰對生成的開始都包括選擇要用作私鑰的隨機數。
隨機數被輸入到密鑰生成器中,計算開始輸出公鑰。
公鑰是公開的(它可以自由分發給所有人,沒有任何安全風險)。
但是,私鑰是必須保密的關鍵信息。
圖3.非對稱加密包括 ECDSA 密鑰生成。
非對稱加密中安全下載的基本原則是:
固件開發人員使用私鑰進行簽名。
嵌入式設備(或 IoT 設備)使用公鑰進行驗證。
非對稱密鑰加密的優點是什么?
嵌入式設備上不存儲私鑰。
攻擊者無法檢索私鑰。
選擇的算法 (ECDSA) 使得從公鑰派生私鑰在數學上不可行。
現在讓我們看一個使用非對稱密鑰加密的研發設施必須發生的情況的示例。
我們從完整的固件開始。
固件必須經過 SHA-256 多塊哈希計算。
私鑰和哈希輸入到 ECDSA 簽名算法中。輸出是一個唯一的簽名,只能由私鑰簽名。
將我們的固件與簽名相結合,并根據要求將其發送出去以供現場使用。
圖 4 更詳細地說明了這些要點。
圖4.非對稱加密對一組數據或固件進行數字簽名。
現在,讓我們檢查一下在字段使用過程中會發生什么。
嵌入式設備接收固件和簽名。
固件將經過 SHA-256 多塊哈希計算。
我們的嵌入式設備已經包含在研發設施生成密鑰期間創建的公鑰。
然后,簽名和其他成分將用作ECDSA驗證的輸入。
ECDSA 驗證的結果將確定嵌入式設備是否可以使用該固件。
如果結果是 PASS,則嵌入式設備接受同時具有真實性和完整性的固件。
如果結果為 FAIL,則固件將被拒絕。
觀看此視頻 “安全簡短主題:嵌入式系統的安全固件下載”,了解有關如何將固件安全地下載到遠程系統的更多信息。
使用 DS28C36 實現安全啟動和安全下載
對于沒有安全微控制器的嵌入式設備,DS28C36 DeepCover安全認證器是一種經濟高效的基于硬件的IC解決方案(圖5)。?
圖5.使用DS28C36,在經濟高效、基于硬件的解決方案中安全啟動和安全下載。
安全啟動和安全下載的步驟:
如前所述,在研發設施中建立了用于安全啟動或安全下載功能的系統公鑰-私鑰對。該對的系統私鑰用于對固件或數據進行簽名,最終由終端系統中嵌入的DS28C36進行驗證。此系統私鑰永遠不會離開受控開發環境。該對的系統公鑰安裝在DS28C36的密鑰寄存器位置,該位置具有“權威密鑰”屬性,這是DS28C36中的可配置設置。
系統私鑰用于計算固件或數據的數字簽名。
當固件需要由處理器運行時,首先由處理器引導管理器檢索,并以64字節的順序塊形式傳送到DS28C36,以計算SHA-256哈希。
DS28C36完成SHA-256哈希計算后,處理器提供在開發環境中計算并附加到文件中的固件或數據的ECDSA簽名。
DS28C36收到ECDSA簽名后,處理器發送命令,使用預裝的系統公鑰進行簽名驗證。
如果DS28C36驗證簽名,則向處理器傳送一個傳遞結果參數字節和一個設置為邏輯0的GPIO引腳。此引腳和參數字節結果的狀態充當處理器的通過/不通過結果,以運行現在已知的受信任固件或數據更新。
此外,如果命令/控制中心希望信任DS28C36,可以選擇額外的ECDSA簽名引擎。
總之,我們展示了一種經過驗證的安全解決方案,用于使用DS28C36進行安全啟動或安全下載,以解決物聯網設備面臨的威脅。這款安全認證器IC減輕了繁重的計算數學負擔,以證明固件或數據更新的真實性和完整性。
有關Maxim安全啟動和安全下載解決方案和服務的更多信息,請參見以下內容:
DS28C36 I2C 接口深蓋安全身份驗證器
DS28E36 1線接口深蓋安全認證器
轉至安全實驗室工具執行此序列示例,或使用Maxim的其他附加硬件實驗室。
雙向身份驗證以保護您的 IP
雙向(或相互)身份驗證是安全通信的重要組成部分。溝通雙方都應確定他們的對手是可以信任的。這可以通過證明擁有私人信息來實現。這些信息可以在各方之間共享,也可以完全保密,只要存在證明擁有的能力。
對稱身份驗證系統要求在給定通信中的所有參與者之間共享信息。這些信息通常被稱為“秘密”。秘密是只有需要它的人知道的信息。該密鑰與對稱身份驗證算法(如 SHA)以及參與者之間共享的其他數據一起使用。在通信雙方生成匹配簽名的能力證明擁有機密。
非對稱身份驗證系統(如ECDSA)使用不在各方之間共享的隱藏信息(稱為“私鑰”),但用于生成公眾可以知道的信息(稱為“公鑰”)。正確使用公鑰證明擁有私鑰,因為需要私鑰來解鎖被公鑰鎖定的消息,反之亦然。
收件人身份驗證
要在發件人-收件人配置中對收件人設備進行身份驗證,將向收件人發送一段隨機數據(也稱為“質詢”)。除了設備之間的任何共享數據外,質詢還通過具有密鑰或私鑰的簽名操作來運行,以生成“響應”簽名。響應簽名可以由發送方驗證,因為發送方擁有共享密鑰或與接收方私鑰對應的公鑰。此過程的一般流程如圖 6 所示。
圖6.發件人-收件人系統中的收件人設備身份驗證。
身份驗證通常取決于生成簽名的算法,這些簽名證明擁有參與者的隱藏信息,但很難發現信息本身。這些稱為單向函數。SHA和ECDSA就是這種算法的例子。
發件人身份驗證
為了證明各方都是可以信任的,發件人還必須向收件人證明真實性。下面以經過身份驗證的寫入形式顯示了此過程的示例。
在圖 7 中,發送方正在將新數據寫入接收方設備。但是,要完成寫入,收件人必須通過要求發件人根據該信息以及發件人的隱藏數據(秘密或私鑰)生成簽名來驗證信息的真實性。通過使用共享密鑰或與發件人私鑰對應的公鑰,收件人可以驗證簽名是否真實。
圖7.發送方將新數據寫入接收方設備。
使用單向功能可能允許任何竊聽者查看正在傳輸的所有數據,但它會阻止他們確定產生與數據關聯的簽名的隱藏信息。沒有這些隱藏的信息,竊聽者就不能成為冒充者。
這種雙向身份驗證模型可以輕松用于確保存儲在設備中的知識產權得到很好的保護,免受造假者的侵害。
TRNG(真隨機數發生器)輸出和典型用途 Maxim的ChipDNA?安全認證器具有內置TRNG(圖8)。這由設備用于內部目的。但他們也有一個命令,如果用戶請求,它會發出 TRNG 輸出。此時,TRNG 輸出長度的最大長度為 64 字節。此硬件 NIST 兼容的隨機數源可用于加密需求,例如主機處理器生成“質詢(隨機數)”。
圖8.ChipDNA安全認證器包括一個內置的真隨機數生成器。
與TRNG相關的有三種不同的規格
美國國家標準研究院 SP 800-90A
IST SP 800-90B
美國國家標準研究院 SP 800-90C
審核編輯:郭婷
-
以太網
+關注
關注
40文章
5425瀏覽量
171732 -
usb
+關注
關注
60文章
7945瀏覽量
264687 -
攝像頭
+關注
關注
60文章
4841瀏覽量
95704
發布評論請先 登錄
相關推薦
評論