精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

嵌入式系統上的軟件從何而來

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:RUSSELL DOTY ? 2022-11-11 15:34 ? 次閱讀

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

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

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

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

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

源頭可以控制嗎?

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

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

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

建立可驗證的出處

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

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

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

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

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

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

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

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

安裝后的使用壽命

在安裝之前和安裝期間檢查軟件是一個良好的開端,但在安裝完成后繼續維護非常重要。可以做些什么來驗證正在運行的系統?

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

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

審核編輯:郭婷

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

    關注

    5068

    文章

    19014

    瀏覽量

    303234
  • 代碼
    +關注

    關注

    30

    文章

    4746

    瀏覽量

    68348
收藏 人收藏

    評論

    相關推薦

    【「嵌入式Hypervisor:架構、原理與應用」閱讀體驗】+ Hypervisor應用場景調研

    Hypervisor有兩個類型:I型和II型,其中I型直接運行在硬件設備,II型運行在一個操作系統,該操作系統運行在硬件設備,也就是下
    發表于 10-14 11:21

    嵌入式系統的未來趨勢有哪些?

    嵌入式系統是指將我們的操作系統和功能軟件集成于計算機硬件系統之中,形成一個專用的計算機系統。那么
    發表于 09-12 15:42

    人工智能從何而來

    當大家都在討論人工智能的時候,有一個問題似乎很少有人關注,即:人工智能從何而來
    的頭像 發表于 09-06 09:27 ?559次閱讀

    嵌入式軟件開發與AI整合

    嵌入式軟件開發與AI整合是當前技術發展的重要趨勢之一。隨著人工智能技術的快速發展,嵌入式系統越來越多地集成了AI算法,以實現更復雜的智能功能。以下是關于
    的頭像 發表于 07-31 09:25 ?657次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>開發與AI整合

    嵌入式系統怎么學?

    系統設計與調試:需要掌握嵌入式系統的設計方法和調試技術,包括硬件設計、軟件設計、電路調試等,以確保系統的穩定性和可靠性。 隨著技術的不斷進
    發表于 07-02 10:10

    嵌入式可編程片系統是什么

    嵌入式可編程片系統(Embedded Programmable System-on-Chip,或簡稱EPSoC)是一種特殊的嵌入式系統,它
    的頭像 發表于 03-28 15:33 ?532次閱讀

    嵌入式系統和ARM哪個更好

    嵌入式系統和ARM各有其優勢,難以直接比較哪個更好,因為它們在不同的應用場景和需求下都有各自的價值。
    的頭像 發表于 03-28 15:14 ?482次閱讀

    嵌入式系統是什么意思

    嵌入式系統(Embedded System On Chip)是一種在一塊芯片上集成很多功能模塊的復雜系統。它通常包括微處理器內核、RAM、各種接口(如USB、IEEE1394、Bl
    的頭像 發表于 03-28 15:14 ?508次閱讀

    嵌入式系統是什么

    嵌入式系統(Embedded System On Chip,簡稱SoC)是一種集成度極高的復雜系統,它在一個芯片上集成了微處理器內核、RAM、USB、IEEE1394、Blueto
    的頭像 發表于 03-28 14:55 ?556次閱讀

    嵌入式軟件設計的原則分享

    嵌入式軟件開發如果具有更好的閱讀性、擴展性以及維護性,就需要考慮很多因素。今天給大家分享幾個嵌入式軟件設計的原則。
    發表于 02-25 10:54 ?652次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>設計的原則分享

    嵌入式軟件開發和軟件開發的區別

    之間的區別。 硬件環境和資源限制: 嵌入式系統通常運行在資源有限的嵌入式設備,如單片機、嵌入式開發板或微控制器等。這些設備通常具有有限的處
    的頭像 發表于 01-22 15:27 ?2171次閱讀

    聊聊嵌入式軟件分層

    今天以控制LED閃爍為例,聊聊嵌入式軟件分層
    的頭像 發表于 12-28 09:22 ?636次閱讀

    什么是嵌入式系統嵌入式系統的具體應用

    嵌入式,一般是指嵌入式系統。用于控制、監視或者輔助操作機器和設備的裝置。
    的頭像 發表于 12-20 13:33 ?2403次閱讀

    嵌入式硬件和軟件哪個好?

    嵌入式硬件和軟件哪個好? 嵌入式軟硬件工程師哪個更有前途呢?一起來看看。 嵌入式是分為軟硬件工程師的,首先我們先來看看嵌入式硬件工程師吧!
    發表于 12-05 15:17

    高速DAC相位噪聲從何而來?首要的原因原來是它……

    高速DAC相位噪聲從何而來?首要的原因原來是它……
    的頭像 發表于 11-29 16:56 ?423次閱讀
    高速DAC相位噪聲<b class='flag-5'>從何而來</b>?首要的原因原來是它……