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