0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

密碼學(xué):硬件或軟件實現(xiàn)更有效嗎

星星科技指導(dǎo)員 ? 來源:ADI ? 作者:ADI ? 2022-12-19 14:58 ? 次閱讀

教程是旨在為產(chǎn)品開發(fā)工程師提供密碼學(xué)快速學(xué)習(xí)指南的系列教程的一部分。每個部分都采用工程方法而不是理論方法。在本期中,您將了解加密解決方案的硬件和軟件實現(xiàn)之間的區(qū)別,并深入了解一些常見應(yīng)用程序。

比較兩種加密方法

現(xiàn)代加密算法可以使用專用加密硬件或在通用硬件上運行的軟件來實現(xiàn)。由于各種原因,專用加密硬件為大多數(shù)應(yīng)用程序提供了更好的解決方案。表 1 列出了更需要基于硬件的加密解決方案的原因。

表 1.硬件與軟件加密比較

基于硬件的密碼 基于軟件的密碼學(xué)
1.使用專用硬件,因此執(zhí)行速度更快。 1. 使用共享硬件,因此執(zhí)行速度較慢。
2. 不依賴于操作系統(tǒng)。由用于操作硬件的專用軟件支持。 2. 取決于操作系統(tǒng)和支持的軟件的安全級別和功能。
3. 可以使用出廠配置,并將密鑰和其他數(shù)據(jù)安全地存儲在專用的安全內(nèi)存位置。 3. 沒有可用的專用安全內(nèi)存位置。因此,容易受到密鑰和數(shù)據(jù)竊取或操縱。
4. Maxim的硬件實現(xiàn)內(nèi)置了針對PUF(ChipDNA)等逆向工程的保護(hù)。 4. 軟件實現(xiàn)可以更容易地進(jìn)行逆向工程。
5. 在硬件系統(tǒng)中,特別注意隱藏和保護(hù)私鑰等重要信息,使其更難訪問。 5. 在實施軟件密碼學(xué)的通用系統(tǒng)中,有更多的方法可以窺探和訪問重要信息。一個例子是攔截計算機系統(tǒng)內(nèi)傳輸?shù)乃借€。

當(dāng)今密碼學(xué)中的應(yīng)用

了解安全啟動和安全下載

基于嵌入式硬件的物聯(lián)網(wǎng)設(shè)備已融入我們的日常生活:

家用設(shè)備,如 WiFi 攝像頭、恒溫器和煙霧探測器

醫(yī)療器械

可穿戴設(shè)備,包括健身追蹤器和智能手表

工業(yè)機器,如工廠中的機械

幾乎所有這些設(shè)備都包含訪問 Internet 的啟動固件或可下載數(shù)據(jù),因此它們?nèi)菀资艿桨踩{的攻擊。啟動固件(設(shè)備的大腦)基本上保存在設(shè)備內(nèi)部的非易失性存儲器中。該軟件會定期更新以糾正和增強某些功能,包括為WiFi攝像機添加新的入侵者檢測算法,或者從工業(yè)機械臂的角度更好地定位焊縫。

在本教程中,我們將介紹安全啟動以及在連接的設(shè)備中上傳新固件所需的所有必要步驟。

保護(hù)物聯(lián)網(wǎng)設(shè)備固件或數(shù)據(jù)的重要性

由于物聯(lián)網(wǎng)設(shè)備必須可信,因此必須驗證設(shè)備固件和關(guān)鍵數(shù)據(jù)的真實性。在理想情況下,啟動固件和配置數(shù)據(jù)將在出廠時鎖定。實際上,客戶已經(jīng)開始期望通過互聯(lián)網(wǎng)提供固件更新和重新配置。不幸的是,這為惡意行為者使用這些網(wǎng)絡(luò)接口作為惡意軟件的渠道創(chuàng)造了機會。如果有人獲得了對物聯(lián)網(wǎng)設(shè)備的控制權(quán),他們可能會出于惡意目的控制該設(shè)備。因此,任何聲稱來自授權(quán)來源的代碼都必須經(jīng)過身份驗證,然后才能被允許使用。

攻擊者可以通過各種方式將惡意軟件傳送到 IoT 設(shè)備(圖 2):

通過對設(shè)備的物理訪問,攻擊者可以通過物理連接(例如USB,以太網(wǎng)等)引入惡意軟件。

操作系統(tǒng)通常表現(xiàn)出通過補丁發(fā)現(xiàn)時已關(guān)閉的漏洞。攻擊者可以通過訪問未修補的系統(tǒng)來引入惡意軟件。

通常,IoT 設(shè)備會聯(lián)系更新服務(wù)器,以確定更新的固件或配置數(shù)據(jù)是否可用。攻擊者可能會攔截 DNS 請求,并將 IoT 設(shè)備重定向到托管惡意軟件或損壞配置數(shù)據(jù)的惡意源。

正版網(wǎng)站可能配置錯誤,以允許攻擊者控制網(wǎng)站并將正版固件替換為包含攻擊者惡意軟件的固件。

pYYBAGOgDDuAUCk7AABIsZ7ylYc777.png

圖2.攻擊者可以滲透到未受保護(hù)的 IoT 設(shè)備與安全的 IoT 設(shè)備。

安全啟動和安全下載有助于防止?jié)B透并防止惡意軟件注入。這意味著物聯(lián)網(wǎng)設(shè)備可以信任從命令/控制中心收到的更新。如果命令/控制中心想要完全信任物聯(lián)網(wǎng)設(shè)備,則需要執(zhí)行驗證物聯(lián)網(wǎng)設(shè)備數(shù)據(jù)的額外步驟。

固件的身份驗證和完整性

身份驗證和完整性可以提供一種方法:

確保目標(biāo)嵌入式設(shè)備僅運行授權(quán)的固件或配置數(shù)據(jù)。

確認(rèn)數(shù)據(jù)受信任且隨后未被修改。

允許使用加密來證明數(shù)據(jù)既真實又具有完整性。

使用加密數(shù)字簽名,如信件底部的印章或手動簽名。

通過身份驗證和完整性,固件和配置數(shù)據(jù)在制造階段加載,所有后續(xù)更新都經(jīng)過數(shù)字簽名。這樣,數(shù)字簽名就可以在設(shè)備的整個生命周期內(nèi)實現(xiàn)信任。數(shù)字簽名的以下功能對于提供安全性至關(guān)重要。

使用的數(shù)字簽名必須由加密算法計算。

為了帶來最高級別的安全性,算法必須是公開的并且經(jīng)過充分驗證。

對于我們的安全解決方案,我們將研究非對稱加密算法,特別是FIBS 186 ECDSA。

應(yīng)用于安全啟動/下載的非對稱加密

非對稱加密使用公鑰/私鑰對進(jìn)行算法計算(圖 3)。

任何密鑰對生成的開始都包括選擇要用作私鑰的隨機數(shù)。

隨機數(shù)被輸入到密鑰生成器中,計算開始輸出公鑰。

公鑰是公開的(它可以自由分發(fā)給所有人,沒有任何安全風(fēng)險)。

但是,私鑰是必須保密的關(guān)鍵信息。

pYYBAGOgDDWAMjijAACtNvEqnlY525.png

圖3.非對稱加密包括 ECDSA 密鑰生成。

非對稱加密中安全下載的基本原則是:

固件開發(fā)人員使用私鑰進(jìn)行簽名。

嵌入式設(shè)備(或 IoT 設(shè)備)使用公鑰進(jìn)行驗證。

非對稱密鑰加密的優(yōu)點是什么?

嵌入式設(shè)備上不存儲私鑰。

攻擊者無法檢索私鑰。

選擇的算法 (ECDSA) 使得從公鑰派生私鑰在數(shù)學(xué)上不可行。

現(xiàn)在讓我們看一個使用非對稱密鑰加密的研發(fā)設(shè)施必須發(fā)生的情況的示例。

我們從完整的固件開始。

固件必須經(jīng)過 SHA-256 多塊哈希計算。

私鑰和哈希輸入到 ECDSA 簽名算法中。輸出是一個唯一的簽名,只能由私鑰簽名。

將我們的固件與簽名相結(jié)合,并根據(jù)要求將其發(fā)送出去以供現(xiàn)場使用。

圖 4 更詳細(xì)地說明了這些要點。

pYYBAGOgDC6ADNx9AABsfr3y6z8816.png

圖4.非對稱加密對一組數(shù)據(jù)或固件進(jìn)行數(shù)字簽名。

現(xiàn)在,讓我們檢查一下在字段使用過程中會發(fā)生什么。

嵌入式設(shè)備接收固件和簽名。

固件將經(jīng)過 SHA-256 多塊哈希計算。

我們的嵌入式設(shè)備已經(jīng)包含在研發(fā)設(shè)施生成密鑰期間創(chuàng)建的公鑰。

然后,簽名和其他成分將用作ECDSA驗證的輸入。

ECDSA 驗證的結(jié)果將確定嵌入式設(shè)備是否可以使用該固件。

如果結(jié)果是 PASS,則嵌入式設(shè)備接受同時具有真實性和完整性的固件。

如果結(jié)果為 FAIL,則固件將被拒絕。

觀看此視頻 “安全簡短主題:嵌入式系統(tǒng)的安全固件下載”,了解有關(guān)如何將固件安全地下載到遠(yuǎn)程系統(tǒng)的更多信息。

使用 DS28C36 實現(xiàn)安全啟動和安全下載

對于沒有安全微控制器的嵌入式設(shè)備,DS28C36 DeepCover安全認(rèn)證器是一種經(jīng)濟高效的基于硬件的IC解決方案(圖5)。?

poYBAGOgDCeAAmm-AABXdDN44O8944.png

圖5.使用DS28C36,在經(jīng)濟高效、基于硬件的解決方案中安全啟動和安全下載。

安全啟動和安全下載的步驟:

如前所述,在研發(fā)設(shè)施中建立了用于安全啟動或安全下載功能的系統(tǒng)公鑰-私鑰對。該對的系統(tǒng)私鑰用于對固件或數(shù)據(jù)進(jìn)行簽名,最終由終端系統(tǒng)中嵌入的DS28C36進(jìn)行驗證。此系統(tǒng)私鑰永遠(yuǎn)不會離開受控開發(fā)環(huán)境。該對的系統(tǒng)公鑰安裝在DS28C36的密鑰寄存器位置,該位置具有“權(quán)威密鑰”屬性,這是DS28C36中的可配置設(shè)置。

系統(tǒng)私鑰用于計算固件或數(shù)據(jù)的數(shù)字簽名。

帶有預(yù)編程系統(tǒng)公鑰的DS28C36位于主機處理器的接口上。

當(dāng)固件需要由處理器運行時,首先由處理器引導(dǎo)管理器檢索,并以64字節(jié)的順序塊形式傳送到DS28C36,以計算SHA-256哈希。

DS28C36完成SHA-256哈希計算后,處理器提供在開發(fā)環(huán)境中計算并附加到文件中的固件或數(shù)據(jù)的ECDSA簽名。

DS28C36收到ECDSA簽名后,處理器發(fā)送命令,使用預(yù)裝的系統(tǒng)公鑰進(jìn)行簽名驗證。

如果DS28C36驗證簽名,則向處理器傳送一個傳遞結(jié)果參數(shù)字節(jié)和一個設(shè)置為邏輯0的GPIO引腳。此引腳和參數(shù)字節(jié)結(jié)果的狀態(tài)充當(dāng)處理器的通過/不通過結(jié)果,以運行現(xiàn)在已知的受信任固件或數(shù)據(jù)更新。

此外,如果命令/控制中心希望信任DS28C36,可以選擇額外的ECDSA簽名引擎。

總之,我們展示了一種經(jīng)過驗證的安全解決方案,用于使用DS28C36進(jìn)行安全啟動或安全下載,以解決物聯(lián)網(wǎng)設(shè)備面臨的威脅。這款安全認(rèn)證器IC減輕了繁重的計算數(shù)學(xué)負(fù)擔(dān),以證明固件或數(shù)據(jù)更新的真實性和完整性。

有關(guān)Maxim安全啟動和安全下載解決方案和服務(wù)的更多信息,請參見以下內(nèi)容:

DS28C36 I2C 接口深蓋安全身份驗證器

DS28E36 1線接口深蓋安全認(rèn)證器

轉(zhuǎn)至安全實驗室工具執(zhí)行此序列示例,或使用Maxim的其他附加硬件實驗室。

雙向身份驗證以保護(hù)您的 IP

雙向(或相互)身份驗證是安全通信的重要組成部分。溝通雙方都應(yīng)確定他們的對手是可以信任的。這可以通過證明擁有私人信息來實現(xiàn)。這些信息可以在各方之間共享,也可以完全保密,只要存在證明擁有的能力。

對稱身份驗證系統(tǒng)要求在給定通信中的所有參與者之間共享信息。這些信息通常被稱為“秘密”。秘密是只有需要它的人知道的信息。該密鑰與對稱身份驗證算法(如 SHA)以及參與者之間共享的其他數(shù)據(jù)一起使用。在通信雙方生成匹配簽名的能力證明擁有機密。

非對稱身份驗證系統(tǒng)(如ECDSA)使用不在各方之間共享的隱藏信息(稱為“私鑰”),但用于生成公眾可以知道的信息(稱為“公鑰”)。正確使用公鑰證明擁有私鑰,因為需要私鑰來解鎖被公鑰鎖定的消息,反之亦然。

收件人身份驗證

要在發(fā)件人-收件人配置中對收件人設(shè)備進(jìn)行身份驗證,將向收件人發(fā)送一段隨機數(shù)據(jù)(也稱為“質(zhì)詢”)。除了設(shè)備之間的任何共享數(shù)據(jù)外,質(zhì)詢還通過具有密鑰或私鑰的簽名操作來運行,以生成“響應(yīng)”簽名。響應(yīng)簽名可以由發(fā)送方驗證,因為發(fā)送方擁有共享密鑰或與接收方私鑰對應(yīng)的公鑰。此過程的一般流程如圖 6 所示。

poYBAGOgDBqAHzgQAABjzHn9SLE624.png

圖6.發(fā)件人-收件人系統(tǒng)中的收件人設(shè)備身份驗證。

身份驗證通常取決于生成簽名的算法,這些簽名證明擁有參與者的隱藏信息,但很難發(fā)現(xiàn)信息本身。這些稱為單向函數(shù)。SHA和ECDSA就是這種算法的例子。

發(fā)件人身份驗證

為了證明各方都是可以信任的,發(fā)件人還必須向收件人證明真實性。下面以經(jīng)過身份驗證的寫入形式顯示了此過程的示例。

在圖 7 中,發(fā)送方正在將新數(shù)據(jù)寫入接收方設(shè)備。但是,要完成寫入,收件人必須通過要求發(fā)件人根據(jù)該信息以及發(fā)件人的隱藏數(shù)據(jù)(秘密或私鑰)生成簽名來驗證信息的真實性。通過使用共享密鑰或與發(fā)件人私鑰對應(yīng)的公鑰,收件人可以驗證簽名是否真實。

pYYBAGOgDBSAJUa1AABt38pfTj8062.png

圖7.發(fā)送方將新數(shù)據(jù)寫入接收方設(shè)備。

使用單向功能可能允許任何竊聽者查看正在傳輸?shù)乃袛?shù)據(jù),但它會阻止他們確定產(chǎn)生與數(shù)據(jù)關(guān)聯(lián)的簽名的隱藏信息。沒有這些隱藏的信息,竊聽者就不能成為冒充者。

這種雙向身份驗證模型可以輕松用于確保存儲在設(shè)備中的知識產(chǎn)權(quán)得到很好的保護(hù),免受造假者的侵害。

TRNG(真隨機數(shù)發(fā)生器)輸出和典型用途 Maxim的ChipDNA?安全認(rèn)證器具有內(nèi)置TRNG(圖8)。這由設(shè)備用于內(nèi)部目的。但他們也有一個命令,如果用戶請求,它會發(fā)出 TRNG 輸出。此時,TRNG 輸出長度的最大長度為 64 字節(jié)。此硬件 NIST 兼容的隨機數(shù)源可用于加密需求,例如主機處理器生成“質(zhì)詢(隨機數(shù))”。

poYBAGOgDA2Acf5nAAA9H72_gUc129.png

圖8.ChipDNA安全認(rèn)證器包括一個內(nèi)置的真隨機數(shù)生成器。

與TRNG相關(guān)的有三種不同的規(guī)格

美國國家標(biāo)準(zhǔn)研究院 SP 800-90A

IST SP 800-90B

美國國家標(biāo)準(zhǔn)研究院 SP 800-90C

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 以太網(wǎng)
    +關(guān)注

    關(guān)注

    40

    文章

    5288

    瀏覽量

    169661
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7773

    瀏覽量

    262384
  • 攝像頭
    +關(guān)注

    關(guān)注

    59

    文章

    4752

    瀏覽量

    94391
收藏 人收藏

    評論

    相關(guān)推薦

    現(xiàn)代密碼學(xué)

    現(xiàn)代密碼學(xué)課件,大家可學(xué)習(xí)學(xué)習(xí),了解了解
    發(fā)表于 05-10 15:56

    什么是密碼學(xué)中的DES

    得不提一個東西——密碼學(xué)(是不是聽起來頭皮發(fā)麻心跳加速),穩(wěn)住穩(wěn)住,老司機上線帶你學(xué)。今天給大家say&see什么是密碼學(xué)中的DES。簡介?DES:****English Name...
    發(fā)表于 07-22 07:16

    密碼學(xué)中的加密技術(shù)

    密碼學(xué)中的加密技術(shù):密碼學(xué)的基本概念密碼編碼學(xué)密碼體制的設(shè)計學(xué),而
    發(fā)表于 06-16 23:50 ?0次下載

    初學(xué)者密碼學(xué)簡單入門

    初學(xué)者密碼學(xué)簡單入門
    發(fā)表于 09-21 09:16 ?18次下載
    初學(xué)者<b class='flag-5'>密碼學(xué)</b>簡單入門

    區(qū)塊鏈的底層技術(shù)是密碼學(xué)

    密碼學(xué)是區(qū)塊鏈的底層技術(shù),沒有密碼學(xué)就沒有區(qū)塊鏈,沒有密碼學(xué)支撐的區(qū)塊鏈不可能安全。
    發(fā)表于 11-22 11:22 ?2040次閱讀

    密碼學(xué)在區(qū)塊鏈中有著怎樣的作用

    張驍表示,區(qū)塊鏈之所以能夠解決人與人之間的信任問題,是因為它的不可篡改性,而這種特性本質(zhì)上又是基于密碼學(xué)算法來實現(xiàn)的。因此密碼學(xué)在區(qū)塊鏈中的地位很關(guān)鍵,如果說區(qū)塊鏈?zhǔn)切湃蔚幕?,那?b class='flag-5'>密碼學(xué)
    發(fā)表于 12-27 15:51 ?4630次閱讀

    應(yīng)用密碼學(xué)的資料概述

    本文檔的主要內(nèi)容詳細(xì)介紹的是應(yīng)用密碼學(xué)的資料概述包括了:1.密碼的由來,2.密碼技術(shù)發(fā)展簡介,3.密碼學(xué)基本概念
    發(fā)表于 04-04 08:00 ?2次下載
    應(yīng)用<b class='flag-5'>密碼學(xué)</b>的資料概述

    區(qū)塊鏈密碼學(xué)的基礎(chǔ)內(nèi)容介紹

    密碼學(xué)是數(shù)學(xué)和計算機科學(xué)的分支,同時其原理大量涉及信息論。密碼學(xué)不只關(guān)注信息保密問題,還同時涉及信息完整性驗證(消息驗證碼)、信息發(fā)布的不可抵賴性(數(shù)字簽名)、以及在分布式計算中產(chǎn)生的來源于內(nèi)部和外部的攻擊的所有信息安全問題。
    發(fā)表于 05-08 10:33 ?1150次閱讀

    比特幣的密碼學(xué)基礎(chǔ)詳細(xì)解析

    比特幣的發(fā)明人中本聰留下過一篇關(guān)于比特幣算法的論文。本文解析這篇論文,介紹比特幣的密碼學(xué)基礎(chǔ)。
    的頭像 發(fā)表于 12-15 11:18 ?8719次閱讀

    密碼學(xué)貨幣錢包的發(fā)展方向分析

    錢包是密碼學(xué)貨幣世界里重要的基礎(chǔ)設(shè)施。所有跟密碼學(xué)貨幣相關(guān)的操作,包括買賣密碼學(xué)貨幣、持有密碼學(xué)貨幣、轉(zhuǎn)賬,乃至質(zhì)押獲利(staking),多多少少都跟錢包相關(guān)。
    發(fā)表于 02-22 18:20 ?854次閱讀

    區(qū)塊鏈在密碼學(xué)中的應(yīng)用及技術(shù)綜述

    區(qū)塊鏈在密碼學(xué)中的應(yīng)用及技術(shù)綜述
    發(fā)表于 06-25 15:06 ?12次下載

    基礎(chǔ)密碼學(xué)的概念介紹

    密碼學(xué)和信息安全在如今的互聯(lián)網(wǎng)行業(yè)當(dāng)中非常重要,相關(guān)的理論知識和算法也在計算機系統(tǒng)的方方面面都被用到。雖然我們不一定會從事安全相關(guān)的工作,但對密碼學(xué)以及信息安全的基本知識和概念有所了解還是很有必要的。
    的頭像 發(fā)表于 08-10 14:32 ?1361次閱讀

    密碼學(xué)硬件軟件實施更有效嗎?

    發(fā)表于 11-16 22:46 ?0次下載
    <b class='flag-5'>密碼學(xué)</b>:<b class='flag-5'>硬件</b><b class='flag-5'>或</b><b class='flag-5'>軟件</b>實施<b class='flag-5'>更有效</b>嗎?

    密碼學(xué)基本原理(上)

    電子發(fā)燒友網(wǎng)站提供《密碼學(xué)基本原理(上).pdf》資料免費下載
    發(fā)表于 08-02 09:13 ?1次下載
    <b class='flag-5'>密碼學(xué)</b>基本原理(上)

    密碼學(xué)原理的應(yīng)用

    電子發(fā)燒友網(wǎng)站提供《密碼學(xué)原理的應(yīng)用.pdf》資料免費下載
    發(fā)表于 08-02 10:28 ?0次下載
    <b class='flag-5'>密碼學(xué)</b>原理的應(yīng)用