国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

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

識別嵌入式Linux設(shè)備的安全固件更新機制和開源選項

星星科技指導(dǎo)員 ? 來源:嵌入式計算設(shè)計 ? 作者:Alex Gonzalez ? 2022-10-20 14:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

物聯(lián)網(wǎng)IoT)的快速增長引發(fā)了數(shù)十億聯(lián)網(wǎng)無線嵌入式設(shè)備的出現(xiàn)。從醫(yī)療設(shè)備到水箱傳感器、智能恒溫器、智能路燈、水監(jiān)測器等,物聯(lián)網(wǎng)的應(yīng)用范圍比以往任何時候都要廣。

可能出現(xiàn)什么問題?

這些設(shè)備中的大多數(shù)在設(shè)計上都不是惡意攻擊的目標(biāo)。嵌入式系統(tǒng)傳統(tǒng)上被認(rèn)為是穩(wěn)定的產(chǎn)品,但實施成本高昂,投資回報率(ROI)計劃在相當(dāng)長的生命周期內(nèi)進(jìn)行。一旦發(fā)貨,它們很少需要更新。開發(fā)更新并在該領(lǐng)域?qū)嶋H應(yīng)用它們的需求和成本隨著智能手機操作系統(tǒng)(OS)如Android的爆發(fā)而變得普遍。

突然之間,惡意黑客現(xiàn)在將所有這些易受攻擊的連接設(shè)備作為潛在目標(biāo),這些設(shè)備在不充分的,過時的操作系統(tǒng)和Linux內(nèi)核上運行,這些操作系統(tǒng)和Linux內(nèi)核具有尚未修補的已知漏洞,并且可以遠(yuǎn)程利用!

這不是一個非常有吸引力的前景。

安全更新:嵌入式與服務(wù)器

如今,一類新的現(xiàn)場軟件更新正在出現(xiàn),這種更新受到安全問題的推動,但也允許工程師添加新功能和修復(fù)錯誤。

對于嵌入式設(shè)備,固件更新機制不僅必須安全,而且必須可靠,因為它要么更新成功,要么無法恢復(fù)到可恢復(fù)狀態(tài)。軟件更新絕不應(yīng)該破壞設(shè)備,并且應(yīng)該能夠在無人值守的情況下發(fā)生。大多數(shù)更新還必須保留以前的設(shè)備狀態(tài),盡管在某些情況下,恢復(fù)設(shè)備可能涉及重置為默認(rèn)狀態(tài)。

還有原子性問題。Linux服務(wù)器世界習(xí)慣于執(zhí)行基于包的更新,一切似乎都很好。但嵌入式設(shè)備不是服務(wù)器。

服務(wù)器通常位于受控環(huán)境中,可能是安全的,并且具有有保證的電源和網(wǎng)絡(luò)連接。它還駐留在受監(jiān)視的可訪問位置,因此即使不希望用戶進(jìn)行恢復(fù),也可以進(jìn)行用戶干預(yù)。

Linux 服務(wù)器通常依賴于包管理,通常是基于 rpm 的(已修改的黃色狗更新程序或 YUM)或基于 deb 的 (apt),具有執(zhí)行非原子增量更新的依賴關(guān)系解析。更新由軟件包版本更新驅(qū)動,每個更新都有一組復(fù)雜的安裝前/安裝后腳本,這些腳本可能會使系統(tǒng)處于未定義甚至非工作狀態(tài)。

不幸的是,嵌入式設(shè)備可能無法訪問,可能大部分時間都處于低功耗模式,使用壽命非常長,并且可能遭受可能中斷固件更新的電源或網(wǎng)絡(luò)中斷。

最終,基于包管理器的更新不是原子的,因此很難測試和支持它們。這通常會導(dǎo)致丟失對設(shè)備上固件實際狀態(tài)的跟蹤,以及可怕的“我上次在此設(shè)備上更新了什么?”問題。這不適用于期望始終一致執(zhí)行的嵌入式系統(tǒng)。

圖像更新

更新嵌入式設(shè)備的傳統(tǒng)且未經(jīng)驗證的最佳方法是執(zhí)行整個映像更新。在裸機設(shè)備中,這將是包含所有設(shè)備固件的整個映像。在嵌入式Linux設(shè)備中,這通常轉(zhuǎn)換為分區(qū)更新,因此分區(qū)方案是一個重要的考慮因素,因為它會影響可以執(zhí)行的軟件更新類型。

嵌入式 Linux 設(shè)備通常會將媒體劃分為可以單獨更新的不同分區(qū):

引導(dǎo)加載程序分區(qū): 很少(如果有的話)更新,在現(xiàn)場更新嵌入式設(shè)備的引導(dǎo)加載程序?qū)?dǎo)致設(shè)備最終變磚。因此,經(jīng)過深思熟慮的更新機制會盡可能避免這種情況。

引導(dǎo)/內(nèi)核分區(qū): Linux 內(nèi)核和相關(guān)工件(如設(shè)備樹和 initramfs 映像)通常出于安全性而不是功能原因而發(fā)生。通常不需要更新。

根文件系統(tǒng)分區(qū): 存儲操作系統(tǒng)文件的位置通常是只讀不可變的。這也很少更新,但如果應(yīng)用程序依賴于此處的庫,則可能會更頻繁地發(fā)生這種情況。

用戶分區(qū): 用戶應(yīng)用程序和持久性數(shù)據(jù)的存儲位置是最常需要更新的分區(qū)。

基本上,映像固件更新的范圍可以從整個系統(tǒng)(即內(nèi)核、根和用戶分區(qū))到其中一些分區(qū)。

有兩種類型的映像更新是可能的:對稱的和不對稱的。

對稱: 對稱更新需要正在更新的分區(qū)映像的雙重副本,以便可以在另一個正在運行時更新一個分區(qū)映像。這通常需要兩個引導(dǎo)/內(nèi)核分區(qū)、兩個根文件系統(tǒng)以及兩個用戶分區(qū)。然后,引導(dǎo)加載程序跟蹤給定引導(dǎo)要使用的分區(qū)。對稱更新具有最短的停機時間,通常只有重新啟動時間,并允許取消更新。

非 對稱: 非對稱更新使用通常從內(nèi)存運行的恢復(fù)操作系統(tǒng),具有 Linux 內(nèi)核和初始化映像。這減少了所需的分區(qū)數(shù),因為恢復(fù)模式僅存在于一個額外的分區(qū)中,并且可以更新任何其他分區(qū)。如果更新失敗,可以重試恢復(fù)。非對稱更新在更新時具有更長的停機時間,并且不允許用戶取消。

用戶空間更新程序應(yīng)用程序

通常,更新由用戶空間應(yīng)用程序執(zhí)行,該應(yīng)用程序提取軟件更新包,應(yīng)用它,并將更新通知引導(dǎo)加載程序。它還需要允許進(jìn)行安裝后操作。然后,引導(dǎo)加載程序啟動硬件監(jiān)視程序并嘗試引導(dǎo)。如果引導(dǎo)成功,則硬件看門狗被停用;如果不是,則觸發(fā)它,并且引導(dǎo)加載程序會再次嘗試引導(dǎo)。經(jīng)過多次嘗試后,它要么交換回已知良好的分區(qū),要么進(jìn)入恢復(fù)模式。

一個重要的考慮因素是用戶空間更新固件必須可通過固件更新過程進(jìn)行更新。另一個風(fēng)險是,可能會更新到固件更新機制損壞的可啟動系統(tǒng)。不幸的是,有必要回退到引導(dǎo)加載程序或其他恢復(fù)機制來更新固件。

某些系統(tǒng)使用引導(dǎo)加載程序來執(zhí)行更新。這有一些嚴(yán)重的缺點。如果必須更新固件更新代碼(例如,由于分區(qū)更改),則需要更新引導(dǎo)加載程序,這是非常危險的。引導(dǎo)加載程序在它支持的驅(qū)動程序、工具、庫和網(wǎng)絡(luò)協(xié)議的數(shù)量上也非常有限,因此更新發(fā)生在資源有限的環(huán)境中。

基于簽名映像的開源軟件更新有兩個主要選項,同時支持對稱和非對稱更新:

瑞典語更新(在 GPLv2 許可證下) – 在 Yocto 中通過元更新層支持瑞典語更新(但僅限于對稱更新)。它還包含一個貓鼬Web服務(wù)器,Suricatta守護(hù)進(jìn)程,用于將更新從具有REST客戶端的遠(yuǎn)程服務(wù)器拉取到Eclipse HawkBit [2](一種后端解決方案,用于將軟件更新部署到終端設(shè)備)。它目前僅適用于 U-Boot 引導(dǎo)加載程序。

勞克 ,在 LGPLv2.1 許可證下 – RAUC 在約克托中通過元 ptx 層受支持,并支持 Grub 或裸盒引導(dǎo)加載程序。

遠(yuǎn)程映像更新

固件更新過程必須能夠從本地源(例如,閃存、USB、μSDUART)進(jìn)行遠(yuǎn)程更新,也可以遠(yuǎn)程更新通常稱為無線 (OTA) 更新。OTA 更新使用遠(yuǎn)程服務(wù)器將更新推送到設(shè)備上運行的客戶端。

開源遠(yuǎn)程 OTA 固件更新的一些選項包括:

Mender.io ,在 Apache 2 許可證下 – Mender.io 同時用于客戶端和服務(wù)器。它在約克托中通過元修正層得到支持。服務(wù)器可以充當(dāng)部署服務(wù)器和生成項目管理器,但也包含設(shè)備管理控制臺。

數(shù)字國際遠(yuǎn)程管理器 ,在 MPLv2 許可證下 –Digi遠(yuǎn)程管理器具有專有的基于云的服務(wù)器和開源客戶端。它在約克托中通過元數(shù)字層得到支持。服務(wù)器可以充當(dāng)部署服務(wù)器、生成項目管理器,還包含具有設(shè)備報告和監(jiān)視功能的設(shè)備管理控制臺。

Eclipse HawkBit ,在日食公共許可證下 – Eclipse HawkBit 是一個 Eclipse 公共許可證服務(wù)器,它還充當(dāng)部署服務(wù)器、構(gòu)建工件管理器和設(shè)備管理器,具有設(shè)備報告和監(jiān)視功能。

完整映像更新通常存在大尺寸的問題,這對于帶寬不自由或不寬的資源受限應(yīng)用程序(如蜂窩)來說可能是個問題。差異映像固件更新是解決此問題的良好折衷方案,因為實際上只傳輸以前版本中的增量。

容器化更新

容器化應(yīng)用程序的使用簡化了軟件更新用例,因為應(yīng)用程序可以單獨更新。

容器更新建立在不可變分發(fā)(可能是只讀文件系統(tǒng))上,其中應(yīng)用程序僅存在于可由容器增量升級的容器中。

使用基于容器的固件更新的開源項目的一些示例如下:

Resin.io – Resin.io 是基于 Docker 的,具有專有的 OTA 更新服務(wù)器和 Apache 2 許可客戶端。它通過元樹脂層在Yocto中支撐。

Ubuntu “Snappy” Core–Ubuntu Core 是一個基于 Ubuntu 的最小操作系統(tǒng),它提供了足夠的功能來更新具有增量的類似容器的應(yīng)用程序。

還有一些新的操作系統(tǒng)設(shè)計用于托管Docker應(yīng)用程序,這些應(yīng)用程序最終可能會在嵌入式空間中使用,例如CoreOS [8](在arm64上)和原子計劃(基于Fedora / CentOS / RHEL的操作系統(tǒng),使用rpm-ostree(基于lipbostree)而不是rpm)。

增量二進(jìn)制原子操作系統(tǒng)更新

最后,嵌入式市場即將到來的趨勢是增量的每文件原子更新,可以根據(jù)需要快速部署或回滾,同時保持完整的部署歷史記錄。

一些開源示例項目:

libOSTree– libOSTree 由一個定義為“操作系統(tǒng)二進(jìn)制文件的 Git”的庫和命令行工具組成。它使用類似 git 的對象來存儲和部署操作系統(tǒng)增量,每個增量都有一個持久數(shù)據(jù)的副本。Yocto有一個元更新程序?qū)涌梢岳盟K灿糜诓僮飨到y(tǒng),如項目原子。

swupd – swupd最初是 ClearLinux 的一部分,由英特爾贊助。它與 libOSTree 非常相似,在約克托中通過元-swupd 層支持。

縮小選項范圍

隨著物聯(lián)網(wǎng)設(shè)備的出現(xiàn),固件更新不僅僅是一件好事,而且是新產(chǎn)品開發(fā)所需的功能。需要盡早考慮固件更新策略的選擇,因為它會影響未來的產(chǎn)品設(shè)計決策。與所有早期決策一樣,錯誤的選擇會給開發(fā)時間帶來沉重的負(fù)擔(dān)。

上市時間緊迫的項目可能會傾向于更傳統(tǒng)的、久經(jīng)考驗的全映像固件更新策略。其中包括通過Yocto項目的元更新層提供的一個,以及企業(yè)就緒的OTA更新解決方案,如Digi國際的遠(yuǎn)程管理器。

然而,處于前沿的項目可以通過容器化應(yīng)用程序設(shè)計擴展整個系統(tǒng)固件更新方法,該設(shè)計允許應(yīng)用程序與系統(tǒng)更新隔離。

審核編輯:郭婷

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

    關(guān)注

    5198

    文章

    20449

    瀏覽量

    334048
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11760

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    嵌入式系統(tǒng)安全設(shè)計原則

    隨著物聯(lián)網(wǎng)、工業(yè)控制和智能設(shè)備的普及,嵌入式系統(tǒng)的安全問題越來越突出。一個小小的漏洞,就可能導(dǎo)致設(shè)備被入侵、數(shù)據(jù)泄露,甚至對人身安全產(chǎn)生威脅
    的頭像 發(fā)表于 01-19 09:06 ?331次閱讀
    <b class='flag-5'>嵌入式</b>系統(tǒng)<b class='flag-5'>安全</b>設(shè)計原則

    保姆級教程!RK3588 Linux6.1?固件簽名完整實現(xiàn)方案(不含rootfs)

    ? ? ? 在嵌入式 Linux 開發(fā)中,固件簽名是保障設(shè)備安全的關(guān)鍵環(huán)節(jié) —— 它能有效防止惡意固件
    的頭像 發(fā)表于 01-14 17:21 ?1833次閱讀
    保姆級教程!RK3588 <b class='flag-5'>Linux</b>6.1?<b class='flag-5'>固件</b>簽名完整實現(xiàn)方案(不含rootfs)

    如何在Zynq UltraScale+ MPSoC平臺上通過JTAG啟動嵌入式Linux鏡像

    在之前文章中,我們介紹了如何使用 XSCT 工具通過 JTAG 在 Zynq SoC 上啟動嵌入式 Linux 鏡像(從 JTAG 啟動 Zynq-7000 嵌入式 Linux:使用
    的頭像 發(fā)表于 01-13 11:45 ?4415次閱讀

    什么是嵌入式應(yīng)用開發(fā)?

    系統(tǒng)中,用于控制、監(jiān)測或通信等特定用途。與一般計算機系統(tǒng)不同,嵌入式系統(tǒng)通常具有較小的存儲容量、處理能力和功耗,且需要滿足特定的實時性、可靠性和安全性要求?。 應(yīng)用領(lǐng)域 嵌入式系統(tǒng)廣泛應(yīng)用于各種
    發(fā)表于 01-12 16:13

    arm嵌入式主板優(yōu)缺點

    了Windows CE系統(tǒng)或者Linux系統(tǒng),因此對于很多客戶來說,原先采用了X86的平臺,目前要調(diào)整到ARM上來,必須對軟件平臺進(jìn)行重新編譯和調(diào)整,而且還要熟悉一下ARM的嵌入式平臺工作機制,因此會增加
    發(fā)表于 01-08 07:08

    從小白到大牛:Linux嵌入式系統(tǒng)開發(fā)的完整指南

    Linux 混合編程)。例如,在嵌入式設(shè)備上部署圖像識別模型,需掌握交叉編譯 AI 框架、優(yōu)化模型體積與運行速度。? 工程化能力提升:實際項目中需關(guān)注代碼規(guī)范、版本控制(Git)
    發(fā)表于 12-16 10:42

    開源 | 60余套STM32單片機、嵌入式Linux、物聯(lián)網(wǎng)、人工智能項目(開發(fā)板+教程+源碼)

    私信免費領(lǐng)取!60余套綜合項目案例STM32單片機、嵌入式、物聯(lián)網(wǎng)、人工智能智能車/機器狗/小智AI/家居/農(nóng)業(yè)/安防等多領(lǐng)域項目文檔+項目源碼,全開源高校教學(xué)、學(xué)生畢設(shè)、創(chuàng)新競賽、項目練手01
    的頭像 發(fā)表于 12-04 11:42 ?651次閱讀
    <b class='flag-5'>開源</b> | 60余套STM32單片機、<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>、物聯(lián)網(wǎng)、人工智能項目(開發(fā)板+教程+源碼)

    嵌入式實時操作系統(tǒng)的特點

    操作系統(tǒng)具備高效的中斷處理機制,能夠快速響應(yīng)和處理系統(tǒng)的中斷事件。 資源管理:實時嵌入式操作系統(tǒng)提供有效的資源管理機制,包括內(nèi)存管理、設(shè)備驅(qū)動程序、文件系統(tǒng)和網(wǎng)絡(luò)協(xié)議等,以支持
    發(fā)表于 11-13 06:30

    嵌入式需要掌握哪些核心技能?

    /網(wǎng)絡(luò)設(shè)備)、中斷底半部處理,適用于高端嵌入式設(shè)備。 企業(yè)需求:RTOS是60%崗位的核心要求,Linux開發(fā)需求隨項目復(fù)雜度增長。 4)通信協(xié)議與接口 基礎(chǔ)協(xié)議:UART、SPI、
    發(fā)表于 10-21 16:25

    2025嵌入式行業(yè)現(xiàn)狀如何?

    關(guān)鍵型與非關(guān)鍵型系統(tǒng)隔離需求。 2.4 邊緣計算與云協(xié)同 邊緣設(shè)備能力提升:嵌入式Linux系統(tǒng)網(wǎng)關(guān)支持Matter協(xié)議,實時處理溫濕度、光照等數(shù)據(jù),通過本地AI模型實現(xiàn)節(jié)能優(yōu)化。 低功耗設(shè)計:恩智浦
    發(fā)表于 08-25 11:34

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

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

    物聯(lián)網(wǎng)工程師為什么要學(xué)Linux

    物聯(lián)網(wǎng)工程師需要掌握Linux的主要原因可以從技術(shù)生態(tài)、開發(fā)需求、行業(yè)應(yīng)用及就業(yè)競爭力四個角度來分析: 一、技術(shù)生態(tài)與行業(yè)適配性 1)嵌入式開發(fā)的主流平臺 物聯(lián)網(wǎng)設(shè)備往往基于嵌入式
    發(fā)表于 05-26 10:32

    嵌入式開發(fā)入門指南:從零開始學(xué)習(xí)嵌入式

    特定功能的計算機系統(tǒng),廣泛應(yīng)用于智能家居、工業(yè)控制、醫(yī)療設(shè)備、車載系統(tǒng)等領(lǐng)域。 2. 學(xué)習(xí)嵌入式開發(fā)的前置知識熟悉C語言編程掌握基本的數(shù)據(jù)結(jié)構(gòu)與算法了解數(shù)字電路與微控制器原理熟悉Linux操作系統(tǒng)
    發(fā)表于 05-15 09:29

    嵌入式應(yīng)用中常見的安全威脅

    越來越多的嵌入式設(shè)備存在互聯(lián)需求,在安全應(yīng)用開發(fā)中,除功能安全外,應(yīng)用還需考慮信息安全
    的頭像 發(fā)表于 04-28 14:45 ?1185次閱讀
    <b class='flag-5'>嵌入式</b>應(yīng)用中常見的<b class='flag-5'>安全</b>威脅

    嵌入式二維碼識別引擎是什么設(shè)備?哪些場景用得到?

    的奧秘,以及它在不同場景中的廣泛應(yīng)用。一、嵌入式二維碼識別引擎是什么設(shè)備嵌入式二維碼識別引擎,也被稱為二維碼識讀引擎、二維碼掃描模組模塊,
    的頭像 發(fā)表于 03-10 14:57 ?819次閱讀
    <b class='flag-5'>嵌入式</b>二維碼<b class='flag-5'>識別</b>引擎是什么<b class='flag-5'>設(shè)備</b>?哪些場景用得到?
    • <thead id="5m5rn"></thead>
        <nobr id="5m5rn"><td id="5m5rn"></td></nobr>
          <ins id="5m5rn"><small id="5m5rn"><pre id="5m5rn"></pre></small></ins>
          <big id="5m5rn"><ul id="5m5rn"></ul></big>
          <em id="5m5rn"><label id="5m5rn"><dl id="5m5rn"></dl></label></em><small id="5m5rn"><noframes id="5m5rn"></noframes></small>
          <ins id="5m5rn"><label id="5m5rn"></label></ins>