chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

嵌入式系統(tǒng)上的軟件從何而來

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:RUSSELL DOTY ? 2022-11-11 15:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

您的嵌入式系統(tǒng)上的軟件從何而來?你能證明嗎?您能安全地在現(xiàn)場更新系統(tǒng)嗎?密碼學提供了驗證軟件和數(shù)據(jù)完整性和來源的工具。有一個關于用戶如何驗證軟件來源的過程,軟件是否在傳輸過程中被篡改,以及安裝后是否被修改。

軍事系統(tǒng)受到許多攻擊,包括對向系統(tǒng)提供軟件的軟件供應鏈的攻擊。為了確保防范這些攻擊,管理人員應該問三個問題:軟件組件的來源是什么?軟件是否被篡改或修改?他們能證明嗎?

密碼學通過軟件簽名和哈希來解決此問題,它們協(xié)同工作以驗證源和文件。軟件簽名使用公鑰/私鑰對來驗證軟件的來源。使用私鑰對軟件進行簽名,然后使用該公鑰驗證軟件是否已使用該特定私鑰進行簽名。簽名者和軟件是否可以信任是單獨的討論;軟件簽名驗證軟件的來源,以及簽名后是否未被篡改。

哈希是一種處理任意長度的文件或數(shù)據(jù)集并生成該文件唯一的固定長度校驗和的技術。對文件的任何更改都會產(chǎn)生一個全新的校驗和 - 例如,更改 10 GB 文件中的一位將產(chǎn)生不同的校驗和。流行的(雖然有些弱)sha1 哈希產(chǎn)生 40 個字符的校驗和,而更安全的 sha256 哈希產(chǎn)生 64 個字符的校驗和。使用文件及其校驗和,您可以驗證文件是否未以任何方式損壞或篡改。哈希運行速度很快,即使在大文件上也是如此,使其成為文件驗證的有效工具。

這些技術可以應用于任何文件。文件是否包含源代碼、可執(zhí)行映像、數(shù)據(jù)或其他文件并不重要;可以使用任何文件或數(shù)據(jù)集。

源頭可以控制嗎?

所有軟件的起點都是源代碼,源代碼通常由多個人在一段時間內(nèi)編寫和修改,并作為產(chǎn)品的多個版本和更新發(fā)布。代碼分布在數(shù)百或數(shù)千個文件中,并且不斷變化。有效的代碼管理使用版本控制的代碼存儲庫,例如 git1。git 存儲庫是一個補丁數(shù)據(jù)庫,每個補丁都有一個唯一的標識符。在 git 中,這個唯一標識符是補丁內(nèi)容的哈希值——結果是每個補丁都由其內(nèi)容標識。對修補程序內(nèi)容的任何更改都會立即可見,因為修補程序不再與其標識符匹配。

git 補丁包括有關應用它的上一個補丁的信息以及提交補丁的人員的身份。與區(qū)塊鏈類似,git 補丁包含基于加密的一組后臺指針,使某人無法在不被發(fā)現(xiàn)的情況下更改歷史記錄。補丁也可以使用前面描述的技術進行簽名,從而驗證誰制作了補丁。此技術在任何需要驗證貢獻的環(huán)境中都是有用的工具。

版本控制的軟件存儲庫是任何安全軟件供應鏈的基礎,因為它提供了軟件所有更改的歷史記錄以及更改者。它還提供了構建特定版本的軟件包的可靠方法。

建立可驗證的出處

使用來自已知和可信來源的軟件對于維護嵌入式系統(tǒng)的完整性非常重要。但是你怎么知道一個可安裝的軟件實際上來自已知的源代碼呢?

源代碼存儲庫與 Jenkins2 等自動化構建系統(tǒng)相結合,使用戶能夠從一組已知的源文件構建可執(zhí)行映像。生成映像后,生成系統(tǒng)可以對其進行簽名和哈希處理。這使用戶既知道軟件的來源,又知道生產(chǎn)軟件的確切版本。例行版本使用測試密鑰簽名,而生產(chǎn)版本使用發(fā)布密鑰簽名,需要特殊授權和批準,并且通常在單獨的安全系統(tǒng)上簽名。這使用戶能夠確定軟件的來源以及它是否是正式版本。

組成一個軟件的所有文件都合并到一個包中,用于分發(fā)、安裝和更新。Linux 中使用的打包系統(tǒng)是 rpm3。rpm 是單個文件,其中包含多個文件的壓縮存檔以及用于安裝、配置、更新和刪除其關聯(lián)應用程序的命令。rpm 文件還包括存檔中所有文件的清單,包括它們的名稱、版本號和校驗和。此清單信息包含在 rpm 數(shù)據(jù)庫中,該數(shù)據(jù)庫維護系統(tǒng)上安裝的所有基于 rpm 的軟件的信息。

軟件通常包含第三方組件。當這些第三方組件包含在 rpm 中時,rpm 元數(shù)據(jù)和校驗和可確保這是供應商包含的軟件。應簽署第三方組件以確保其完整性;如果它們只是從其他供應商傳遞,則應由其他供應商簽名。

通常,rpm 包本身是經(jīng)過簽名的。創(chuàng)建和簽署 rpm 包的工具包含在 Linux 中,每個開發(fā)軟件的人都應該使用,包括內(nèi)部開發(fā)人員。默認情況下,rpm 安裝程序會在允許安裝之前檢查軟件包是否使用已知密鑰進行簽名。嘗試安裝未簽名的軟件或使用未知密鑰簽名的軟件將失敗,除非它們被覆蓋。rpm 安裝程序還會檢查軟件包的完整性:如果軟件包的內(nèi)容已被修改,無論是通過數(shù)據(jù)損壞還是惡意篡改,安裝都將失敗。

操作系統(tǒng)供應商將在操作系統(tǒng) (OS) 中包含其公鑰。此添加使用戶能夠確保軟件包、更新和安全勘誤表實際上來自操作系統(tǒng)供應商,并且未被任何外部方篡改。

用戶必須將每個已批準供應商的軟件密鑰添加到系統(tǒng)中。根據(jù)特定的安全要求,用戶可能需要采取措施來確保供應商密鑰的有效性,尤其是在從鏡像或其他中間源(如系統(tǒng)集成商)下載軟件時。密鑰應直接從供應商網(wǎng)站獲取。有些人甚至隨身攜帶來自已知來源的密鑰的硬拷貝列表。

此外,簽名的 rpm 包允許通過郵件使用不安全的傳輸,例如互聯(lián)網(wǎng)或 CD-ROM,因為 rpm 工具可以驗證 rpm 的來源以及它是否已損壞或篡改。

安裝后的使用壽命

在安裝之前和安裝期間檢查軟件是一個良好的開端,但在安裝完成后繼續(xù)維護非常重要??梢宰鲂┦裁磥眚炞C正在運行的系統(tǒng)?

rpm 的一個強大功能是它允許用戶驗證正在運行的系統(tǒng)上文件的完整性。rpm 數(shù)據(jù)庫包括每個 rpm 中包含的所有文件的校驗和。系統(tǒng)實用程序使用戶能夠計算系統(tǒng)上每個文件的校驗和,將其與rpm數(shù)據(jù)庫進行比較,并識別已更改的任何文件。rpm 數(shù)據(jù)庫是一種快速有效的方法。實現(xiàn)此目的的另一種方法是返回到已簽名的 rpm 包并直接從 rpm 使用校驗和。雖然這種方式較慢并且需要訪問原始安裝文件,但它非常安全。

主要的 Linux 發(fā)行版使用這些技術來確保它們從已知來源安裝和運行未經(jīng)修改的軟件。了解系統(tǒng)上安裝的所有軟件的來源以及是否已更改至關重要。這些知識是在現(xiàn)場部署和更新系統(tǒng)時建立和維護系統(tǒng)完整性的有力起點。

審核編輯:郭婷

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

    關注

    5186

    文章

    20155

    瀏覽量

    328955
  • 代碼
    +關注

    關注

    30

    文章

    4941

    瀏覽量

    73152
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    CW32嵌入式軟件開發(fā)的必備知識

    設計的原則和方法,能夠設計出高效、可維護的軟件系統(tǒng)。 了解嵌入式系統(tǒng)的實時性要求,能夠設計出滿足實時性要求的軟件
    發(fā)表于 11-28 07:48

    嵌入式系統(tǒng)的定義和應用領域

    應用系統(tǒng)在功能、可靠性、成本、體積和功耗等方面的嚴格要求的專用計算機系統(tǒng)。 那么,嵌入式系統(tǒng)具體應用在哪些領域呢?事實,它們的應用非常
    發(fā)表于 11-17 06:49

    RT-Thread 2025嵌入式軟件大賽重磅來襲

    頂尖芯片廠商,以及電子發(fā)燒友等合作伙伴,為開發(fā)者提供展示編程能力與創(chuàng)新思維的頂級舞臺。參賽者將基于主流嵌入式平臺,實現(xiàn)高效、智能、可靠的軟件方案,探索嵌入式系統(tǒng)在A
    的頭像 發(fā)表于 09-20 10:06 ?1295次閱讀
    RT-Thread 2025<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>大賽重磅來襲

    新一代嵌入式開發(fā)平臺 AMD嵌入式軟件和工具2025.1版現(xiàn)已推出

    AMD 2025.1 版嵌入式軟件和工具是面向新一代嵌入式系統(tǒng)開發(fā)而打造的綜合平臺,全面加速概念構想到部署落地。 2025.1 版嵌入式
    的頭像 發(fā)表于 08-20 09:15 ?3635次閱讀

    AMD 2025.1版嵌入式軟件和工具的新增功能

    AMD 2025.1 版嵌入式軟件和工具是面向新一代嵌入式系統(tǒng)開發(fā)而打造的綜合平臺,全面加速概念構想到部署落地。
    的頭像 發(fā)表于 08-15 15:32 ?1040次閱讀

    Linux嵌入式和單片機嵌入式的區(qū)別?

    Linux嵌入式與單片機嵌入式在多個方面存在顯著的區(qū)別,以下是詳細的比較和歸納: 一、基本概念 1. Linux嵌入式: 定義:將Linux操作系統(tǒng)運行在
    發(fā)表于 06-20 09:46

    運行在嵌入式系統(tǒng)的emApps

    在當今快節(jié)奏的嵌入式系統(tǒng)世界中,靈活性和適應性是嵌入式系統(tǒng)實現(xiàn)的關鍵。SEGGER推出了其最新創(chuàng)新:Embedded apps(emApps)應用,類似于手機上的應用程序,可以運行在
    的頭像 發(fā)表于 06-18 09:53 ?621次閱讀
    運行在<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>上</b>的emApps

    飛凌嵌入式ElfBoard ELF 1板卡-Uboot

    上節(jié)中講到U-Boot是BootLoader的一種,U-Boot全稱為Universal Boot Loader,即通用的BootLoader,所謂通用就是指它適用于多種嵌入式平臺,包括不同CPU
    發(fā)表于 05-22 10:44

    嵌入式軟件行業(yè)增長驅(qū)動因素

    嵌入式軟件在物聯(lián)網(wǎng)應用中至關重要,因為它管理設備操作、控制傳感器、支持連接并確保數(shù)據(jù)安全。例如,在智能家居中,恒溫器、安全攝像頭和燈光等設備使用嵌入式系統(tǒng)獨立運行,并通過云平臺或本地網(wǎng)
    的頭像 發(fā)表于 05-09 11:26 ?667次閱讀

    嵌入式開發(fā):高門檻的系統(tǒng)性工程與 996 的行業(yè)困局

    嵌入式開發(fā)的門檻,往往被培訓機構和表象所掩蓋。許多人誤以為 “用 C 語言寫個跑在 ARM 的程序” 就是嵌入式,實則連皮毛都未觸及。真正的嵌入式開發(fā)是硬件與
    的頭像 發(fā)表于 04-09 11:06 ?681次閱讀
    <b class='flag-5'>嵌入式</b>開發(fā):高門檻的<b class='flag-5'>系統(tǒng)</b>性工程與 996 的行業(yè)困局

    Python在嵌入式系統(tǒng)中的應用場景

    你想把你的職業(yè)生涯提升到一個新的水平?Python在嵌入式系統(tǒng)中正在成為一股不可缺少的新力量。盡管傳統(tǒng)嵌入式開發(fā)更多地依賴于C和C++語言,Python的優(yōu)勢在于其簡潔的語法、豐富的
    的頭像 發(fā)表于 03-19 14:10 ?1199次閱讀

    嵌入式系統(tǒng)開發(fā)圣經(jīng)【干貨】

    內(nèi)容包括:嵌入式系統(tǒng)的介紹、嵌入式SoC硬件系統(tǒng)概論、嵌入式系統(tǒng)軟件開發(fā)。適用于產(chǎn)品主管、
    發(fā)表于 03-12 13:58

    嵌入式機器學習的應用特性與軟件開發(fā)環(huán)境

    設備和智能傳感器),這些設備通常具有有限的計算能力、存儲空間和功耗。本文將您介紹嵌入式機器學習的應用特性,以及常見的機器學習開發(fā)軟件與開發(fā)環(huán)境。 嵌入式機器學習的應用特性與優(yōu)勢 由于
    的頭像 發(fā)表于 01-25 17:05 ?1214次閱讀
    <b class='flag-5'>嵌入式</b>機器學習的應用特性與<b class='flag-5'>軟件</b>開發(fā)環(huán)境

    新手怎么學嵌入式?

    。但面對這個復雜的領域,很多人可能會感到迷茫,不知從何處入手。別擔心,本文將為你提供一些入門學習嵌入式技術的建議。 新手入門學習嵌入式技術的途徑 1. 了解基礎知識 首先,要對嵌入式
    發(fā)表于 12-12 10:51

    嵌入式系統(tǒng)開發(fā)與硬件的關系 嵌入式系統(tǒng)開發(fā)常見問題解決

    系統(tǒng)開發(fā)與硬件關系的幾個關鍵點: 硬件依賴性 :嵌入式系統(tǒng)軟件必須能夠在特定的硬件運行,這包括處理器、內(nèi)存、輸入/輸出接口等。
    的頭像 發(fā)表于 12-09 09:38 ?1472次閱讀