TWI839587B - 用於管理軟體更新之方法及裝置,以及非暫時性電腦可讀儲存媒體 - Google Patents
用於管理軟體更新之方法及裝置,以及非暫時性電腦可讀儲存媒體 Download PDFInfo
- Publication number
- TWI839587B TWI839587B TW109140447A TW109140447A TWI839587B TW I839587 B TWI839587 B TW I839587B TW 109140447 A TW109140447 A TW 109140447A TW 109140447 A TW109140447 A TW 109140447A TW I839587 B TWI839587 B TW I839587B
- Authority
- TW
- Taiwan
- Prior art keywords
- update
- measurement
- golden
- block
- image
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 180
- 238000005259 measurement Methods 0.000 claims abstract description 132
- 230000004044 response Effects 0.000 claims abstract description 14
- 238000011084 recovery Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 7
- 238000012546 transfer Methods 0.000 claims description 4
- 238000005096 rolling process Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000002411 adverse Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000011449 brick Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Abstract
本文中揭示用於執行軟體更新之方法、電腦可讀媒體及裝置。在一項實施例中,揭示一種方法,該方法包括:將一安全儲存裝置之一儲存空間初始化為複數個部分;將一更新程式複製至該等部分中之一第一部分且將更新資料複製至該等部分之一第二部分;產生該第一部分之一第一黃金量測及該第二部分之一第二黃金量測;量測該第一部分;回應於判定該第一部分之該量測不匹配該第一部分之該第一黃金量測,進行更新或轉返對該安全裝置之一更新;及在判定該第一部分之該量測匹配該第一部分之該第一黃金量測時,確認一更新操作。
Description
所揭示之實施例係關於安全儲存裝置中之軟體更新。明確言之,所揭示之實施例係關於在潛在可變環境中針對此等安全儲存裝置提供可靠且回復性之更新。
在許多環境中,在必須避免或妥善處置更新儲存裝置軟體失敗之情況下頻繁地更新安全儲存裝置。例如,可在一自主車輛在移動中時安裝對該車輛之一作業系統之一軟體更新。軟體更新程序之失敗可能導致車輛之硬體系統變得無反應(unresponsive),此可能導致一碰撞。
當前,在執行軟體更新之前,安全儲存裝置之許多更新程序實際上要求將儲存裝置置於一特殊模式中或要求安全儲存裝置在一特定環境中。此要求確保軟體更新程序之任何失敗將不會不利地影響裝置之使用者或依賴於裝置之組件。
此當前程序不必要地限制軟體更新之頻率,並不利地影響使用此等儲存裝置之系統之使用者體驗。因而,此項技術中需要一種以一可靠且回復性之方式隨時支援軟體更新的經改良安全儲存裝置。所揭示之實施例提供此一技術解決方案。
在一些實施例中,一種方法包括:將一安全儲存裝置之一儲存空間初始化為複數個部分;將一更新程式複製至該等部分中之一第一部分且將更新資料複製至該等部分之一第二部分;產生該第一部分之一第一黃金量測及該第二部分之一第二黃金量測;量測該第一部分;回應於判定該第一部分之該量測不匹配該第一部分之該第一黃金量測,進行更新或轉返(rolling back)對該安全裝置之一更新;及在判定該第一部分之該量測匹配該第一部分之該第一黃金量測時,確認一更新操作。
在一些實施例中,一種非暫時性電腦可讀儲存媒體用於有形地儲存能夠藉由一電腦處理器執行之電腦程式指令。該等電腦程式指令定義以下步驟:將一安全儲存裝置之一儲存空間初始化為複數個部分;將一更新程式複製至該等部分中之一第一部分且將更新資料複製至該等部分之一第二部分;產生該第一部分之一第一黃金量測及該第二部分之一第二黃金量測;量測該第一部分;回應於判定該第一部分之該量測不匹配該第一部分之該第一黃金量測,進行更新或轉返對該安全裝置之一更新;及在判定該第一部分之該量測匹配該第一部分之該第一黃金量測時,確認一更新操作。
在一些實施例中,一種裝置包括:一處理器;及一儲存媒體,其用於在其上有形地儲存用於藉由該處理器執行之程式邏輯,該經儲存之程式邏輯包括指令,該等指令引起該處理器執行以下操作:將一安全儲存裝置之一儲存空間初始化為複數個部分;將一更新程式複製至該等部分中之一第一部分且將更新資料複製至該等部分之一第二部分;產生該第一部分之一第一黃金量測及該第二部分之一第二黃金量測;量測該第一部
分;回應於判定該第一部分之該量測不匹配該第一部分之該第一黃金量測,進行更新或轉返對該安全裝置之一更新;及在判定該第一部分之該量測匹配該第一部分之該第一黃金量測時,確認一更新操作。
100:系統
102:目標運算裝置
104:安全儲存裝置
106:軟體影像
108:更新管理器
110:網路
112:遠端運算裝置
114:軟體影像儲存裝置
116:更新管理器
200:方法
202:方塊
204:方塊
206:方塊
208:方塊
210:方塊
212:方塊
214:方塊
216:方塊
218:方塊
300:方法
302:方塊
304:方塊
306:方塊
308:方塊
310:方塊
312:方塊
314:方塊
316:方塊
318:方塊
320:方塊
322:方塊
324:方塊
326:方塊
328:方塊
330:方塊
332:方塊
334:方塊
400:方法
402:方塊
404:方塊
406:方塊
408:方塊
410:方塊
412:方塊
414:方塊
416:方塊
418:重開機裝置
420:方塊
422:方塊
424:強制系統復原
426:方塊
500:方法
502:方塊
504:方塊
506:方塊
508:方塊
510:方塊
512:方塊
514:方塊
516:方塊
518:方塊
600:運算裝置
602:微控制器
604:記憶體系統
604a:SRAM
604b:EEPROM
604c:快閃儲存器/快閃儲存裝置
606:介面
608:匯流排
610:R/F子系統/R/F系統
612:應用特定組件(ASC)
700:儲存系統
702:裝置儲存空間
704:影像A
706:安全儲存空間
706a:密碼金鑰
706b:暫存器
706c:恢復區塊
708:通用空間
708a:第一部分
708b:第二部分/防寫部分
708c:第三部分/防寫部分
710:特權使用者(PU)儲存空間
712:原始影像A
714:更新影像B
716:密碼金鑰
718:備份空間
718a:第一部分
718b:第二部分
718c:暫存器
718d:恢復區塊
圖1係繪示根據本發明之一些實施例之用於管理軟體更新之一電腦系統之一方塊圖。
圖2係繪示根據本發明之一些實施例之用於針對一軟體更新初始化一安全儲存裝置之一方法之一流程圖。
圖3係繪示根據本發明之一些實施例之用於執行一開機時序(boot time sequence)之一方法之一流程圖。
圖4係繪示根據本發明之一些實施例之用於執行一運行時間管理更新之一方法之一流程圖。
圖5係繪示根據本發明之一些實施例之用於完成一軟體更新之一方法之一流程圖。
圖6係根據本發明之一些實施例之一運算裝置之一方塊圖。
圖7係根據本發明之一些實施例之一儲存裝置之一佈局之一方塊圖。
著作權通知
本專利文件之揭示內容之一部分含有受著作權保護之素材。著作權所有人不反對任何人對本專利文件或專利揭示內容之摹真複製,因為其出現在專利商標局專利檔案或記錄中,但在其他方面無論如何
保留所有著作權。
所揭示之實施例描述用於在不損及儲存於一安全儲存裝置上之軟體影像之執行的情況下實現對該軟體影像之任何部分之修改的技術。所揭示之實施例藉由使軟體更新能夠跨電力循環更具回復性,因此防止裝置軟體之損壞而解決上述問題。如此一來,所揭示之實施例容許對電腦系統之關鍵部分執行軟體更新,而具有小到沒有風險,從而大幅降低原本將需要在嚴格約束條件下實施之軟體更新之成本及運算複雜性。
技術包含在第一時間點開始、可被一事件中斷,且可在稍後時間(甚至在一重開機(reboot)之後)回復(revert)或重新開始(resume)軟體更新的一軟體更新序列。在另一態樣中,所揭示之實施例可僅容許一特權使用者控制前述軟體更新序列之起始及組態。另外,在另一態樣中,所揭示之實施例支援包含A/B(全影像)軟體更新及差分(部分)軟體更新之多種類型的軟體更新方案。
在本文中所描述之實施例中,軟體更新可包括一開機程式。在此等實施例中,更新程序之任何故障可能致使裝置不工作(即,「磚塊化(brick)」裝置)且致使裝置無法開機。故障之實例包含電力丟失、通信鏈路中斷及惡意行為者干預。所揭示之實施例藉由充分利用安全儲存裝置之特徵而降低與此等故障相關聯之風險。明確言之,所揭示之實施例利用一特權使用者之概念來防止未授權使用者起始軟體更新程序。另外,所揭示之實施例提供一狀態追蹤特徵,該特徵使安全儲存裝置能够跨開機序列維持一系統狀態,而容許安全儲存裝置使系統回復至其先前狀態或重新開始一更新序列。
如上文所描述,所揭示之實施例支援完整更新及部分更
新。若實施一全影像更新方案,則可保存安全裝置上之一先前軟體影像,直至準備好安裝一新影像為止,接著可將一開機指標(boot pointer)指派給新影像作為作用影像。然而,在現有系統中,仍存在指標改變操作可能失敗(磚塊化裝置)之一風險。所揭示之實施例解決此問題,如本文中更詳細描述。
若新影像較大且新影像中所引入之改變相對較小,則全影像更新不必要地消耗大量通信有效負載及儲存裝置上之一大尺寸緩衝空間。在此一情形中,差分更新減小通信及緩衝區利用之大小。然而,歸因於此一更新之「零碎」性質,在更新程序期間增加額外複雜性。此複雜性增加額外失敗點,其等亦藉由所揭示之實施例解決。
圖1係繪示根據本發明之一些實施例之用於管理軟體更新之一電腦系統之一方塊圖。
在所繪示實施例中,一系統(100)包含經由一網路(110)通信地連接之一遠端運算裝置(112)及一目標運算裝置(102)。雖然以單數繪示,但系統(100)可包含多個裝置(112、102),且可經由多個網路通信。在所繪示實施例中,裝置(102、112)包括諸如圖7中所繪示之運算裝置之運算裝置。例如,遠端運算裝置(112)可包括一或多個伺服器電腦且目標運算裝置(102)可包括一消費型運算裝置。在一些實施例中,目標運算裝置(102)可包括一車載電子控制單元(ECU)或其他裝置。在其他實施例中,目標運算裝置(102)可包括一膝上型電腦、桌上型電腦、行動電話、可穿戴或其他消費型運算裝置。在其他實施例中,目標運算裝置(102)本身可包括一伺服器或其他網路裝置。本發明不限制裝置(102、112)之類型及用途。
在所繪示實施例中,遠端運算裝置(112)包含一軟體影像儲存裝置(114)及一更新管理器(116)。在一項實施例中,軟體影像儲存裝置(114)在遠端運算裝置(112)外部。在一些實施例中,軟體影像儲存裝置(114)包含儲存軟體影像之一檔案系統。在其他實施例中,軟體影像儲存裝置(114)包含儲存軟體影像之一資料庫。在此等實施例中,資料庫可包括一關聯式資料庫、NoSQL資料庫、鍵值資料庫或用於儲存檔案之任何其他類型之資料庫。在所繪示實施例中,一軟體影像指代定義一個(a piece of)軟體之一檔案。在一些實施例中,一軟體影像指代經設計以替換軟體之一先前版本之一個替換軟體的一原始碼影像。在其他實施例中,一軟體影像指代一部分更新。一部分更新包括對一個軟體之一更新,更新包括少於整個軟體。在一些實施例中,軟體影像儲存裝置(114)儲存完整及部分軟體影像兩者。軟體影像可採取人類可讀原始碼或機器可讀二進位(編譯)碼之形式。本發明不限制軟體影像之特定資料格式。軟體影像一般藉由遠端運算裝置(112)之操作者管理。由於對軟體之更新以軟體影像之形式產生,故一操作者將軟體影像上傳至軟體影像儲存裝置(114)。可使用其他技術來將軟體影像插入至軟體影像儲存裝置(114)中,諸如版本控制系統(例如,git)、連續整合系統或其他系統。
遠端運算裝置(112)額外地包含一更新管理器(116)。在一些實施例中,更新管理器(116)及軟體影像儲存裝置(114)可在一單一裝置上實施(例如,分別作為一資料庫及一應用程式伺服器)。在其他實施例中,更新管理器(116)包括一獨立運算裝置(例如,伺服器)。如所繪示,更新管理器(116)存取軟體影像儲存裝置(114)。在所繪示實施例中,更新管理器(116)自軟體影像儲存裝置(114)擷取軟體影像。在一些實施例中,更
新管理器(116)回應於來自目標運算裝置(102)之一更新請求而自軟體影像儲存裝置(114)擷取軟體影像。替代地或結合前文,更新管理器(116)可週期性地檢查儲存於軟體影像儲存裝置(114)中之新軟體影像且回應於偵測到新軟體影像而擷取軟體影像。替代地或結合前文,更新管理器(116)可訂用軟體影像儲存裝置(114),且軟體影像儲存裝置(114)可在軟體影像新儲存於軟體影像儲存裝置(114)中時將軟體影像推送給更新管理器(116)。更新管理器以其獲得軟體影像之特定機制並不意欲為限制性的。
在所繪示實施例中,更新管理器(116)執行關於特定影像之各種操作。例如,更新管理器(116)可經組態以對軟體影像執行一總和檢查碼(checksum)確認以確保軟體影像之完整性。在其他實施例中,更新管理器(116)假設軟體影像之完整性,且產生軟體影像之一總和檢查碼(例如,MD5)以供其他裝置使用。然而,主要地,更新管理器(116)負責協調將軟體影像自遠端運算裝置(112)傳送至目標運算裝置(102)。此任務已在先前描述且本文中不再進行重複。
遠端運算裝置(112)經由一或多個網路(110)將軟體影像傳送至目標運算裝置(102)。在所繪示實施例中,網路(110)包括一網際網路(網路之一網路)。在此實施例中,網路(110)包括一廣域網路(WAN),然而,可利用其他網路類型來代替任何具體描述之網路。
目標運算裝置(102)經由網路(110)接收軟體影像。明確言之,目標運算裝置(102)經由一對應更新管理器(108)接收軟體影像。更新管理器(108)經組態以處理經接收之軟體影像且將軟體影像(106)載入至安全儲存裝置(104)中。在所繪示實施例中,更新管理器(108)可在軟體中實施或經由專用硬體實施。更新管理器(108)之特定操作更詳細描述於圖2至
圖6之描述中,且該描述之全部內容以引用的方式併入本文中。
在所繪示實施例中,安全儲存裝置(104)包括一儲存裝置(例如,基於快閃記憶體、基於磁碟等)以及一安全平台模組(SPM)。在一些實施例中,此安全平台模組可包括符合ISO/IEC 11889標準之一模組,且可包括一可信賴平台模組。所使用之特定標準不受限制。一般而言,安全儲存裝置(104)經組態以不僅儲存軟體影像而且確認基礎儲存媒體之完整性。SPM可包含諸如隨機數產生、密碼金鑰產生功能、加密/解密功能、證實功能及其他安全功能之特徵。在一些實施例中,SPM可替代地實施為更新管理器(108)之部分。
在所繪示實施例中,安全儲存裝置(104)可分段為多個部分。此等部分可經組態具有啟用且停用藉由未授權使用者之寫入之各種性質。安全儲存裝置(104)通常將包含稱為「作用中軟體空間」之一部分,該部分儲存一當前軟體影像。除一作用中軟體空間之外,安全儲存裝置(104)亦可包含一隱藏儲存部分。
現參考圖2至圖5,其等描述系統用來安全地更新一軟體影像之程序。
圖2係繪示根據本發明之一些實施例之用於針對一軟體更新初始化一安全儲存裝置之一方法之一流程圖。在執行圖2中所描繪之方法之前,執行方法之一裝置包含一第一軟體影像(稱為影像A)且尚未開始執行任何軟體更新步驟。所繪示之方法準備好用於更新裝置之影像且接著重開機裝置以開始或重新開始更新程序。在所繪示實施例中,方法(200)係藉由裝置之一特權使用者(包含一遠端特權使用者)執行。
在方塊202中,方法(200)組態一安全儲存裝置之一第一部
分以在一防寫(write-protected)模式中操作。此第一部分亦稱為「軟體更新原始碼影像空間」。在所繪示實施例中,方法(200)係藉由儲存空間之一特權使用者操作。參考圖1,此特權使用者可包括更新管理器(108)。為確定性起見,一特權「使用者」指代目標運算系統(例如,102)上之一使用者帳戶而非指代一人類使用者。因此,一特權使用者可包括在一特權使用者帳戶下執行之一軟體應用程式。在所繪示實施例中,接著將第一部分設定為防寫的,僅一特權使用者可寫入至該第一部分,阻止所有其他使用者帳戶寫入至該第一部分。
在方塊204,方法(200)將一軟體影像下載至在方塊202中組態之第一部分。如先前所描述,方法(200)可經由一網路自一遠端儲存庫擷取一軟體影像。回應於接收軟體影像,方法(200)複製或以其他方式將影像傳送至在方塊202中組態之防寫第一部分。在所繪示實施例中,第一部分儲存執行一軟體更新之一程式之原始碼。一般而言,此可包含一第一階段開機載入程式(first-stage bootloader)(FSBL)及用於管理更新程序之系統碼(system code)。
在一些實施例中,在方塊204中,方法(200)同步將第一部分之現有內容保存至記憶體中。即,在執行方塊204之前,方法(200)在將新的軟體影像寫入至第一部分之前將第一部分之當前內容複製至記憶體中。在一些實施例中,第一部分之當前內容包括用於安裝安裝於裝置上之軟體之當前版本的程式碼。
在方塊206中,方法(200)組態一安全儲存裝置之一第二部分以在一防寫模式中操作。此第一部分亦稱為「軟體更新緩衝空間」。產生安全儲存裝置之一第二部分作為一防寫部分可如在方塊202之描述中所
描述般執行。
在方塊208中,方法(200)將第二部分中之資料傳送至記憶體且將一經更新軟體影像下載至一第二部分。在所繪示實施例中,將資料自第二部分傳送至記憶體類似於先前在方塊204之描述中所描述般執行。在所繪示實施例中,儲存於第二部分中之資料包括用於更新裝置上之軟體之實際更新資料。在一些實施例中,下載一整個更新影像,而在其他實施例中,僅下載部分更新資料。
在方塊210中,方法(200)修改安全儲存裝置之一恢復區塊(recovery block)以指向在方塊202中產生之第一部分。方法(200)亦將恢復區塊快取於記憶體中。藉由執行方塊210,方法確保在每次重開機時更新更新程序,直至完成。快取先前恢復區塊以能夠在更新程序完成之後復原正常操作。
在所繪示實施例中,一恢復區塊指代在執行一FSBL之前,在開機時執行之安全儲存裝置之第一區塊。一般而言,恢復區塊包含記憶體偵測碼以及低層級磁碟驗證及恢復碼。在方塊210中,方法(200)覆寫此恢復區塊以代替性地指向載入寫入至第一部分之軟體影像的一FSBL。一般而言,一FSBL係一適當小程式,其經組態以建立記憶體片段、重設磁碟、定位一第二階段開機載入程式(即,第一部分)、將第二階段開機載入程式(即,第一部分)讀取至記憶體中,且將控制傳送至第二階段開機載入程式(即,第一部分)。在所繪示實施例中,FSBL包括負責載入且開始載入於第一部分中之更新程序的FSBL。
在方塊212中,方法(200)計算在先前方塊中下載之經更新軟體影像之一新黃金量測。如本文中所使用,一黃金量測指代可用於安全
地識別一個軟體之任何值。一般而言,使用一或多個密碼函數產生一黃金量測。例如,一個軟體之一雜湊可用作黃金量測。在其他實施例中,黃金量測可包括經更新軟體影像之一雜湊樹。此黃金量測形成一信任根(root of trust),因為其可用於確認其他軟體匹配預期格式及值。
在所繪示實施例中,黃金量測包括一個兩部分量測。第一量測包括載入於第一部分中之第一階段開機載入程式之一雜湊。第二黃金量測包括儲存於第二部分中之整個軟體影像之雜湊。在一些實施例中,雜湊亦可包含儲存於裝置中之一秘密金鑰且可包括基礎資料之一基於雜湊之訊息鑑認碼(HMAC)。
在所繪示實施例中,方法(200)額外地快取針對第一及第二部分運算之現有黃金量測。此有效地快取系統之當前狀態之黃金量測。
在方塊214中,方法(200)快取安全儲存裝置之當前更新狀態資訊且將新的更新狀態資訊初始化為一初始狀態。如本文中所使用,一「狀態」指代安全儲存裝置之操作狀態。此等狀態定義一給定裝置之當前操作狀態。如本文中所使用,一初始狀態指代經組態以指示安全儲存裝置處於需要初始化之一狀態之一或多個值。在一項實施例中,初始化之部分包括使用一黃金量測(且在所繪示實施例中,在方塊212中計算之黃金量測)建立一新的信任根。
在方塊216中,方法(200)將安全儲存裝置之一第三部分組態為處於寫入啟用模式。此第三部分亦稱為「作用中儲存空間」。如上文所描述,第三部分包含待更新之當前操作軟體影像(稱為影像A)。藉由將第三部分設定為寫入啟用的,方法(200)容許任何使用者(或使用者之一子集)將資料寫入至作用中儲存空間。
因此,在執行方塊216之後,安全儲存裝置經組態具有三個分離部分:儲存於儲存媒體之一隱藏部分中之一防寫第一部分及第二部分,及儲存在使用中之作用中儲存空間之一第三寫入啟用部分。方法(200)額外地修改安全儲存裝置之開機偏好,以從包含一經更新軟體影像之第一部分開機。額外地將新軟體影像之一複本儲存於第二部分內。
在方塊218中,在重新組態安全儲存裝置部分且修改開機程序之後,方法(200)重開機裝置。在所繪示實施例中,重開機包括一軟體起始重開機。在一些實施例中,方法(200)可強制安全儲存裝置重開機。在重開機之後,方法(200)結束,且其後可接著進行圖3中描述之方法。
在一些實施例中,方塊218中之重開機確保額外安全性。在其他實施例中,方法(200)可放棄重開機。
圖3係繪示根據本發明之一些實施例之用於執行一開機時序之一方法之一流程圖。方法(300)可藉由一裝置之一非特權使用者執行。在所繪示實施例中,方法(300)在開機時間執行,且在被視為安全之一內容背景中離線執行,因為其遠更難以非法侵入(hack)。相比之下,方法(400、500)係在運行時間執行且可經受惡意行為者之干擾。因此,藉由可存取一已知金鑰之一特權使用者來執行方法(400、500)。
在方塊302中,方法(300)量測第一部分之內容以運算第一部分之一第一量測(在方塊202之描述中,亦稱為軟體更新原始碼影像空間)。如上文所描述,此可使用一密碼函數(諸如一雜湊函數或類似函數)來執行。接著,方法(300)比較此第一量測與在圖2之方塊212中藉由系統產生之第一部分之黃金量測。本質上,方法(300)判定第一階段開機載入
程式是否有效。
在方塊304中,方法(300)判定在方塊302中產生之第一量測是否匹配第一部分之黃金量測(在方塊212中產生)。
在方塊306中,若方法(300)判定第一量測匹配第一黃金量測(即,開機載入程式有效),則方法計算一第二黃金量測且完成開機序列。
在方塊308中,方法(300)在完成開機序列之後運行一運行時間更新確認程序。方塊308之細節提供於併入本文中之圖4中且不再進行重複。
一般而言,在一第一重開機期間,第一黃金量測將不會匹配FSBL,且方法將繼續進行至方塊310。
在方塊310中,方法(300)將恢復區塊複製至開機碼(boot code)位置。如上文所描述,恢復區塊包括至儲存於第一部分中之開機碼位置之一指標。
在方塊312中,方法(300)運行FSBL。在所繪示實施例中,FSBL初始化系統且將一點返回至儲存於第一部分內之軟體更新影像。
在方塊314中,方法(300)載入且運行儲存於第一部分內之軟體更新影像。在一項實施例中,FSBL將控制傳送至載入於第一部分中之更新軟體,該控制接著控制本文中所描述之處理。
在方塊316中,方法(300)在執行更新軟體時載入裝置之狀態。在一項實施例中,裝置之狀態指代儲存於裝置之一或多個非揮發性暫存器中之資料。本發明不限於一特定類型之資料。在一項實施例中,狀態
可包括一更新計數器,該更新計數器在每一電力循環自動遞增。替代地或結合前文,狀態資訊可包含儲存本文中所描述之各種狀態排列之暫存器資料。在一些實施例中,儲存狀態之暫存器可包括平台組態暫存器。
在方塊318中,方法(300)分析裝置之狀態。如將描述,在方塊316中載入之狀態暫存器指示在重開機之前執行之任何更新或轉返操作之當前狀態。
若方法(300)判定一回復或更新操作在最後一個電力循環期間完成,則方法繼續方塊306中之開機序列且最終運行方塊308中之運行時間更新確認程序。在此方塊中,方法(300)已經成功地更新裝置(或轉返)且操作可正常重新開始。如在方塊318中使用,更新操作指代方塊322、326及332中所描述之更新操作之寫入部分。
在方塊320中,方法(300)在判定狀態資訊指示一轉返操作在進行中時驗證狀態資訊。在所繪示實施例中,一轉返操作指示系統應返回至影像A。在一些實施例中,方法(300)量測更新之當前狀態且比較該量測與儲存於暫存器檔案內之值。在偵測到一匹配時,方法(300)可繼續進行。若方法(300)偵測到一不匹配,則方法(300)可結束或搶先復原裝置。
在方塊322中,在驗證狀態資訊之後,方法(300)開始轉返至先前軟體影像。在所繪示實施例中,方法(300)藉由使用儲存於第二部分內之資料對作用中儲存空間執行連續寫入操作而執行此方塊。同時,方法(300)亦在各連續寫入之後用軟體影像之預期量測更新狀態資訊,因此確保甚至在斷電或其他中斷的情況下仍可繼續進行轉返。
在方塊324中,方法(300)重開機裝置且程序可再起動(restart)方法(300)。在此情形中,若方法(300)完全轉返更新,則方塊318
中之決策將分支至方塊306。替代地,若方法(300)在轉返中途被中斷,則方法(300)最終將返回至方塊320以繼續轉返。
替代地,方法(300)可判定狀態資訊指示應起始一更新。在此情形中,在方塊326中,方法(300)起始對一更新影像(影像B)之一更新且遞增地更新狀態資訊。類似於方塊322中所描述之操作,方法(300)存取儲存於第二部分中之更新影像且將資料連續寫入至第三部分以更新軟體。同時,方法(300)亦在各連續寫入之後用經更新軟體影像之預期量測更新狀態資訊,因此確保甚至在斷電或其他中斷的情況下仍可繼續進行更新。
在方塊328中,方法(300)在已執行所有寫入之後重開機裝置,且方法(300)再起動。類似於關於方塊324所描述。若更新完成,則方法(300)最終將返回至方塊306。然而,若更新被中斷,則方法(300)最終將分支至方塊330以重新開始更新。
在方塊330中,方法(300)在判定狀態資訊指示一更新操作在進行中時驗證狀態資訊。在一些實施例中,方法(300)量測更新之當前狀態且比較該量測與儲存於暫存器檔案內之值。在偵測到一匹配之後,方法(300)可繼續進行。若方法(300)偵測到一不匹配,則方法(300)可結束或搶先復原裝置。
在方塊332中,方法(300)繼續對一更新影像(影像B)之更新且遞增地更新狀態資訊。類似於方塊322及326中所描述之操作,方法(300)存取儲存於第二部分中之更新影像且將資料連續寫入至第三部分以更新軟體。同時,方法(300)亦在各連續寫入之後用經更新軟體影像之預期量測更新狀態資訊,因此確保甚至在斷電或其他中斷的情況下仍可繼續進行更新。
在方塊334中,方法(300)在已執行所有寫入之後重開機裝置,且方法(300)再起動。此程序類似於在方塊328中執行之重開機中所描述般執行,以確保一重新開始之更新未歸因於一斷電而停止。
圖4係繪示根據本發明之一些實施例之用於執行一運行時間管理更新之一方法之一流程圖。在所繪示實施例中,方法(400)可藉由一裝置之一特權使用者執行。
在方塊402中,裝置開機已完成,方法連接至一特權使用者,且請求更新管理操作。在一些實施例中,特權使用者包括一遠端使用者。
在方塊404中,特權使用者將狀態資訊及第二黃金量測自裝置暫存器上傳至一遠端伺服器。在一些實施例中,此資訊包括在開機序列期間藉由裝置產生之資訊,包含黃金量測及暫存器之內容。在一些實施例中,僅在需要一更新時將資訊傳輸至遠端伺服器。在一些實施例中,僅在方法(400)判定更新影像已被全完寫入但尚未執行方法(400)之剩餘部分時傳輸資訊。此實現在寫入之後但在方法(400)中之更新已完成之前之一重開機。
在方塊406中,方法(400)比較在開機期間產生之一第二量測(第二部分(替代地稱為「軟體更新緩衝空間」)之第二量測,如方塊206中所描述)與第二黃金量測。換言之,在方塊406中,方法比較第二部分之第二量測與相關聯於一更新影像之第二黃金量測及相關聯於一先前影像之第二黃金量測。更新影像及先前影像分別稱為影像B及影像A。
在方塊408中,方法(400)比較第二量測與更新影像(儲存於第二部分中之影像)之黃金量測及先前影像(自第二部分快取之影像)之黃
金量測。在方塊408中,方法(400)判定運算結果是否匹配影像A、影像B或另一值。當前第二部分之黃金量測稱為黃金量測B,而經快取第二部分之黃金量測稱為黃金量測A。如上文所描述,第二量測指代更新影像自身之一雜湊。因此,方法(400)比較更新資料之值以應用於現有已知黃金量測。在所繪示實施例中,第二量測指代在開機時間執行之第二部分之量測。
在方塊410中,方法在判定第二量測匹配影像B(更新影像)之黃金量測時完成更新程序。在此情形中,更新成功地完成,且預期更新影像內容在作用中儲存空間中。因此,方法(400)可安全地完成更新程序,此在圖5中更詳細描述。
在方塊412中,方法(400)判定第二量測匹配黃金量測A(與先前影像A相關聯)。在此情形中,方法(400)取消當前更新,接著藉由確認軟體已復原至起始更新之前之狀態而完成軟體更新。在此情形中,方法(400)已回復至先前影像(例如,經由在方塊320、322、324中執行之一轉返操作)。因此,方法(400)取消更新程序(即,藉由更新狀態暫存器)且繼續進行以結束完成圖5中之程序。
若第二量測不匹配第二黃金量測A或B,則方法(400)繼續進行至方塊414。在方塊414中,方法(400)判定作用中儲存空間包含可能毀壞之資料。然而,方法(400)首先判定是否已經滿足更新重試次數。如上文所描述,在發信號通知一失敗之前,可使用一計數器來控制更新嘗試次數。值得注意地,雖然圖3中所描述之方法最終導致將影像A或影像B之任一者寫入至作用中儲存空間,但一惡意使用者可在方塊306之後攔截更新程序且將另一影像寫入至作用中儲存空間。因此,方塊414中之決策防
止此攔截攻擊(hijacking)。
在方塊416中,方法(400)將重新初始化系統狀態以強制更新序列再起動。如本文中所描述,安全裝置包含在重開機之間永久地儲存裝置之狀態之一或多個暫存器。在方塊416中,方法(400)修改此系統狀態以指示裝置應在圖5之方塊502以一初始化狀態再起動。接著,方法(400)重開機裝置(418)且繼續以執行圖5中所描述之重開機常式(方塊420)。
在方塊422中,方法(400)偵測一毀壞狀態且相應地改變系統狀態。在一項實施例中,方法(400)修改系統暫存器以指示應發生一轉返操作。在圖5中提供關於一轉返操作之細節。接著,方法(400)強制一系統復原(424)。接著,方法(400)強制進行安全裝置之一重開機(方塊426)以完成系統復原。接著,在重開機之後,方法(400)執行圖5中所描述之重開機常式(方塊429)。
圖5係繪示根據本發明之一些實施例之用於完成一軟體更新之一方法之一流程圖。在所繪示實施例中,方法(500)可由裝置之一特權使用者執行。
在方塊502中,方法(500)請求安全儲存裝置之作用中儲存空間之一額外量測。如上文所描述,此量測可包括作用中儲存空間之一密碼量測。
在方塊504中,方法(500)比較額外量測與先前軟體影像及經更新軟體影像之黃金量測兩者。若額外量測不匹配所要黃金量測(基於更新或回復之決策),則方法(500)繼續進行至方塊506。
在方塊506中,方法(500)發出一警報。一警報之特定細節並不意欲為限制性的,且可使用回應於一損壞狀態而發出一警報之任何技
術。例如,方法(500)可向一第三方通知作用中儲存空間未處於一有效狀態中。替代地或結合前文,方法(500)可關於相同情況警示一使用者。
接著,在方塊508中,方法(500)可清除裝置或在一些實施例中失敗。在一項實施例中,方法(500)可藉由格式化安全儲存裝置之相關部分以防止一裝置之操作而清除裝置。在其他實施例中,方法(500)可簡單將裝置斷電或以其他方式妥善失敗。在執行方塊508之後,方法(500)結束。
在方塊510中,方法(500)回應於判定額外量測匹配所要黃金量測而鎖定作用中儲存空間。在一項實施例中,鎖定作用中儲存空間係使用一已知密碼金鑰來執行。
在方塊512中,在鎖定作用中儲存空間之後,方法(500)請求安全儲存裝置之作用中儲存空間之一第二額外量測。如上文所描述,此第二量測可包括作用中儲存空間之一密碼量測。接著,方法(500)比較第二額外量測與先前軟體影像及經更新軟體影像之黃金量測兩者。若額外量測不匹配所要黃金量測(基於更新或回復之決策),則方法(500)繼續進行至方塊506及508。方塊506及508在先前描述且本文中不再重複該描述。
在方塊514及516中,方法(500)將記憶體中之先前儲存之資料復原至其原始位置。在所繪示實施例中,此先前儲存之資料包含恢復區塊影像、暫存器內容,以及安全儲存裝置之第一及第二部分之內容。在一項實施例中,當復原安全儲存裝置之第一及第二部分之先前內容時,方法(500)將第一及第二部分組態為寫入啟用的。
在方塊518中,方法(500)發信號通知一完成更新。在一些實施例中,發信號通知一完成更新可包括:使用新的軟體影像開機裝置。
替代地或結合前文,方法(500)可產生指示裝置經更新且準備好進行操作之一外部信號。
圖6係根據本發明之一些實施例之一運算裝置之一方塊圖。
在所繪示實施例中,一運算裝置(600)經由一介面(606)通信地耦合至一匯流排(608)。匯流排(608)可包括一乙太網路、控制器區域網路(CAN)、FlexRay、媒體導向系統傳輸(MOST)匯流排或類似類型之匯流排。對應地,介面(606)可包括用於存取所使用之特定類型之匯流排的一類似介面。
運算裝置(600)額外地包含一微控制器(602)、R/F子系統(610)、應用特定組件(ASC)(612)及記憶體系統(604)。在所繪示實施例中,微控制器(602)可包括經組態以控制運算裝置(600)之操作之一處理器或較小微控制器。在一些實施例中,微控制器(602)存取儲存於記憶體系統(604)中之程式指令,且根據該等指令驅動ASC(612)。ASC(612)之實例包含周邊裝置及其他特定用途(例如,汽車)裝置。運算裝置(600)所採用之ASC之類型不受限制,且可藉由運算裝置(600)採用任何類型之ASC。
運算裝置(600)額外地包含一R/F系統(610)。在所繪示實施例中,R/F系統(610)可包含用於與無線網路通信之一或多個無線電或收發器。R/F系統(610)可包含藍芽(Bluetooth)、Wi-Fi或蜂巢式無線電或衛星收發器。在一些實施例中,R/F系統(610)包含無線電或收發器之一組合。在一些實施例中,運算裝置(600)可不包含R/F系統(610),且可代替性地利用一全車(vehicle-wide)R/F系統,如先前所描述。
微控制器(602)管理記憶體系統(604)。在所繪示實施例
中,記憶體系統(604)可包括如先前所描述之一安全儲存裝置。在所繪示實施例中,記憶體系統(604)包含SRAM(604a)、EEPROM(604b)及快閃儲存器(604c)。在所繪示實施例中,可利用SRAM(604a)作為微控制器(602)之一L1或L2快取區。類似地,可使用EEPROM(604b)作為運算裝置(600)之韌體儲存器。SRAM(604a)及EERPOM(604b)之特定細節(或存在)不受限制。
儲存器系統(604)額外地包含一快閃儲存裝置(604c)。在所繪示實施例中,快閃儲存裝置(604c)包括焊接至一PCB且(經由PCB)連接至圖6中所描繪之其他組件的一NAND快閃儲存裝置。快閃儲存裝置(604c)用於儲存操作碼(operating code)以及由運算裝置(600)使用之資料,如先前所描述。
圖7係根據本發明之一些實施例之一儲存裝置之一佈局之一方塊圖。
在所繪示之儲存系統(700)中,存在兩個邏輯儲存空間:一裝置儲存空間(702)及一特權使用者(PU)儲存空間(710)。一般而言,任何非特權使用者可預設存取空間(702)而僅特權使用者可存取空間(710)。
裝置儲存空間(702)包含一作用中軟體影像(影像A,704)。此影像(704)可包括裝置上之當前執行軟體。另外,裝置儲存空間(702)包含一安全儲存空間(706),安全儲存空間(706)包含一密碼金鑰(706a)、一組暫存器(706b)及一恢復區塊(706c)。在一項實施例中,安全儲存空間(706)經密碼保全,使得僅一使用者(例如,特權使用者)可用一既有金鑰存取安全儲存空間(706)。最終,裝置儲存空間(702)包含一通用空間(708),通用空間(708)包含一第一部分(708a)、第二部分(708b)及第三
部分(708c)。一般而言,通用空間(708)可藉由特權及非特權使用者存取,且可視需要組態為防寫的。當防寫時,僅特權使用者可修改防寫部分之內容。
PU儲存空間(710)包括僅可藉由特權使用者存取之一安全儲存區域。PU儲存空間(710)可包含原始影像A(712)以及一更新影像B(714)之一複本。另外,PU儲存空間(710)包含一密碼金鑰(716),密碼金鑰(716)用於存取安全儲存空間(706)以及任何防寫部分(708a、708b)。另外,PU儲存空間(710)包含一備份空間(718)。此備份空間(718)包括一儲存部分,該儲存部分可用於備份第一部分(718a)、第二部分(718b)、暫存器(718c)及恢復區塊(718d)之複本,如上圖中所描述。
已在下文參考隨附圖式更完整描述本發明,該等隨附圖式形成本發明之一部分且藉由繪示展示特定實例實施例。然而,標的物可以多種不同形式體現,且因此,所涵蓋或主張之標的物意欲被解釋為不限於本文中所所闡述之任何實例實施例;實例實施例僅提供為闡釋性的。同樣地,預期所主張或涵蓋之標的物之相當廣泛範疇。除其他事項外,例如,標的物可體現為方法、裝置、組件或系統。因此,實施例可例如採取硬體、軟體、韌體或其等之任何組合之形式(除軟體本身外)。因此,以下詳細描述並不意欲以限制意義理解。
在本說明書及發明申請專利範圍各處,術語可具有在上下文中建議或暗示之超過一明確陳述含義之微妙含義。同樣地,如本文中所使用之片語「在一項實施例中」不一定指代相同實施例,且如本文中所使用之片語「在另一實施例中」不一定指代一不同實施例。例如,所主張之標的物意欲完全或部分包含實例實施例之組合。
一般而言,可至少部分從上下文之用途理解術語。例如,如上文所使用之術語諸如「及」、「或」、或「及/或」可包含可至少部分取決於使用此等術語之上下文的多種含義。通常,「或」若用於關聯一清單(諸如A、B或C),則意欲意謂A、B及C(此處以包含意義使用)以及A、B或C(此處以排他意義使用)。另外,至少部分取決於上下文,如本文中所使用之術語「一或多個」可用於以一單數意義描述任何特徵、結構或特性,或可用於以複數意義描述特徵、結構或特性之組合。類似地,至少部分取決於上下文,術語諸如「一(a/an)」或「該」亦可被理解為傳達一單數用法或傳達一複數用法。另外,再次至少部分取決於上下文,術語「基於」可被理解為不一定意欲傳達一組排他因素,且可代替性地容許未必明確描述之額外因素之存在。
已參考方法及裝置之方塊圖及操作繪示描述本發明。應理解,方塊圖或操作繪示之各方塊及方塊圖或操作繪示中之方塊組合可藉由類比或數位硬體及電腦程式指令來實施。可將此等電腦程式指令提供至一通用處理器、一專用電腦、ASIC、或其他可程式化資料處理設備,使得經由電腦之處理器或其他可程式化資料處理設備執行之指令實施方塊圖或一或多個操作方塊中所指定之功能/動作。在一些替代實施方案中,方塊中所提及之功能/動作可不按操作繪示中所提及之順序發生。例如,取決於所涉及之功能性/動作,連續展示之兩個方塊實施上可實質上同時執行,或方塊有時可按相反順序執行。
為本發明之目的,一電腦可讀媒體(或一/多個電腦可讀儲存媒體(medium/media))儲存電腦資料,該資料可包含可藉由一電腦執行之呈機器可讀形式之電腦程式碼(或電腦可執行指令)。藉由實例且非限制
地,一電腦可讀媒體可包括用於資料之有形或固定儲存之電腦可讀儲存媒體,或用於含有程式碼之信號之暫態解譯之通信媒體。如本文中所使用之電腦可讀儲存媒體指代實體或有形儲存器(與信號相反),且包含但不限於在用於資訊(諸如電腦可讀指令、資料結構、程式模組或其他資料)之有形儲存之任何方法或技術中實施的揮發性及非揮發性、可移除式及非可移除式媒體。電腦可讀儲存媒體包含但不限於RAM、ROM、EPROM、EEPROM、快閃記憶體或其他固態記憶體技術,CD-ROM、DVD、或其他光碟儲存器,磁卡、磁帶、磁盤儲存器或其他磁性儲存裝置,或可用於有形地儲存所要資訊或資料或指令且可藉由一電腦或處理器存取的任何其他實體或材料媒體。
100:系統
102:目標運算裝置
104:安全儲存裝置
106:軟體影像
108:更新管理器
110:網路
112:遠端運算裝置
114:軟體影像儲存裝置
116:更新管理器
Claims (20)
- 一種用於管理軟體更新之方法,其包括:將一安全儲存裝置之一儲存空間初始化為複數個部分;將一更新程式複製至該等部分中之一第一部分且將更新資料複製至該等部分之一第二部分;產生該第一部分之一第一黃金量測及該第二部分之一第二黃金量測;量測該第一部分;回應於判定該第一部分之該量測不匹配該第一部分之該第一黃金量測,進行更新或轉返對該安全裝置之一更新;及在判定該第一部分之該量測匹配該第一部分之該第一黃金量測時,確認一更新操作。
- 如請求項1之方法,回應於接收一軟體更新而執行該初始化該儲存空間。
- 如請求項1之方法,其進一步包括修改該儲存空間之一恢復區塊以指向一第一階段開機載入程式(FSBL),該FSBL經組態以將控制傳送至該第一部分。
- 如請求項3之方法,其進一步包括在產生該等第一及第二黃金量測之後,重開機該安全儲存裝置。
- 如請求項3之方法,該更新或轉返對該安全裝置之一更新包括:執行該FSBL且將對該安全裝置之控制傳送至該更新程式;讀取一或多個狀態暫存器之內容,該等狀態暫存器儲存該安全裝置之狀態;及在判定該等狀態暫存器指示應起始一更新抑或當前正執行一更新時,更新該安全裝置。
- 如請求項5之方法,該更新包括將資料自該第二部分連續寫入至一作用中儲存空間。
- 如請求項6之方法,該連續寫入資料進一步包括在各寫入之後同步更新該等狀態暫存器。
- 如請求項1之方法,該確認一更新操作包括:量測該第二部分;及比較該第二部分之該量測與該第二黃金量測。
- 如請求項8之方法,其進一步包括以下之一或多者:在判定該第二部分之該量測不匹配與一更新影像相關聯之該第二黃金量測或與一先前影像相關聯之該第二黃金量測且尚未超過一重試次數時,再起動一更新序列;在判定該第二部分之該量測不匹配與該更新影像相關聯之該第二黃 金量測或與該先前影像相關聯之該第二黃金量測且已超過一重試次數時,取消該更新序列;在判定該第二部分之該量測不匹配與該更新影像相關聯之該第二黃金量測且不匹配與該先前影像相關聯之該第二黃金量測時,復原該安全裝置;及若該第二部分之該量測等於該第二黃金量測,則完成該更新序列。
- 如請求項9之方法,該完成該更新序列包括:量測該安全裝置之一作用中儲存空間及確定該量測匹配一預期值。
- 一種用於有形地儲存能夠藉由一電腦處理器執行之電腦程式指令之非暫時性電腦可讀儲存媒體,該等電腦程式指令定義以下步驟:將一安全儲存裝置之一儲存空間初始化為複數個部分;將一更新程式複製至該等部分中之一第一部分且將更新資料複製至該等部分之一第二部分;產生該第一部分之一第一黃金量測及該第二部分之一第二黃金量測;量測該第一部分;回應於判定該第一部分之該量測不匹配該第一部分之該第一黃金量測,進行更新或轉返對該安全裝置之一更新;及在判定該第一部分之該量測匹配該第一部分之該第一黃金量測時,確認一更新操作。
- 如請求項11之非暫時性電腦可讀儲存媒體,回應於接收一軟體更新而執行該初始化該儲存空間。
- 如請求項11之非暫時性電腦可讀儲存媒體,其進一步包括修改該儲存空間之一恢復區塊以指向一第一階段開機載入程式(FSBL),該FSBL經組態以將控制傳送至該第一部分。
- 如請求項13之非暫時性電腦可讀儲存媒體,其進一步包括在產生該等第一及第二黃金量測之後,重開機該安全儲存裝置。
- 如請求項13之非暫時性電腦可讀儲存媒體,該更新或轉返對該安全裝置之一更新包括:執行該FSBL且將對該安全裝置之控制傳送至該更新程式;讀取一或多個狀態暫存器之內容,該等狀態暫存器儲存該安全裝置之狀態;及在判定該等狀態暫存器指示應起始一更新或當前正執行一更新時,更新該安全裝置。
- 如請求項15之非暫時性電腦可讀儲存媒體,該更新包括將資料自該第二部分連續寫入至一作用中儲存空間。
- 如請求項16之非暫時性電腦可讀儲存媒體,該連續寫入資料進一步包括在各寫入之後同步更新該等狀態暫存器。
- 如請求項11之非暫時性電腦可讀儲存媒體,該確認一更新操作包括:量測該第二部分;及比較該第二部分之該量測與該第二黃金量測。
- 如請求項18之非暫時性電腦可讀儲存媒體,其進一步包括以下之一或多者:在判定該第二部分之該量測不匹配與一更新影像相關聯之該第二黃金量測或與一先前影像相關聯之該第二黃金量測且尚未超過一重試次數時,再起動一更新序列;在判定該第二部分之該量測不匹配與該更新影像相關聯之該第二黃金量測或與該先前影像相關聯之該第二黃金量測且已超過一重試次數時,取消該更新序列;在判定該第二部分之該量測不匹配與該更新影像相關聯之該第二黃金量測且不匹配與該先前影像相關聯之該第二黃金量測時,復原該安全裝置;及若該第二部分之該量測等於該第二黃金量測,則完成該更新序列。
- 一種用於管理軟體更新之裝置,其包括:一處理器;及一儲存媒體,其用於在其上有形地儲存用於藉由該處理器執行之程式邏輯,該經儲存之程式邏輯包括指令,該等指令引起該處理器執行以下 操作:將一安全儲存裝置之一儲存空間初始化為複數個部分;將一更新程式複製至該等部分中之一第一部分且將更新資料複製至該等部分之一第二部分;產生該第一部分之一第一黃金量測及該第二部分之一第二黃金量測;量測該第一部分;回應於判定該第一部分之該量測不匹配該第一部分之該第一黃金量測,進行更新或轉返對該安全裝置之一更新;及在判定該第一部分之該量測匹配該第一部分之該第一黃金量測時,確認一更新操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/694,583 | 2019-11-25 | ||
US16/694,583 US11080039B2 (en) | 2019-11-25 | 2019-11-25 | Resilient software updates in secure storage devices |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202133016A TW202133016A (zh) | 2021-09-01 |
TWI839587B true TWI839587B (zh) | 2024-04-21 |
Family
ID=
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170010875A1 (en) | 2015-07-10 | 2017-01-12 | Dell Products, Lp | Method for Deploying BIOS Integrity Measurement via BIOS Update Package and System Therefor |
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170010875A1 (en) | 2015-07-10 | 2017-01-12 | Dell Products, Lp | Method for Deploying BIOS Integrity Measurement via BIOS Update Package and System Therefor |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7392147B2 (ja) | セキュアストレージデバイスでのレジリエントなソフトウェア更新 | |
US9880908B2 (en) | Recovering from compromised system boot code | |
US9836606B2 (en) | Secure recovery apparatus and method | |
US9336395B2 (en) | Boot driver verification | |
US10860302B2 (en) | Memory-efficient upgrade staging | |
US11163886B2 (en) | Information handling system firmware bit error detection and correction | |
US10809944B1 (en) | Memory device resilient to cyber-attacks and malfunction | |
TWI672634B (zh) | 基本輸入輸出系統(bios)保全技術 | |
US9361301B1 (en) | Detecting modifications to a storage that occur in an alternate operating environment | |
US20170132418A1 (en) | System and method updating disk encryption software and performing pre-boot compatibility verification | |
US20190347164A1 (en) | Fault tolerant device upgrade | |
US11947675B2 (en) | Restoration of firmware subsystems based on manufacturing states | |
CN113360914A (zh) | 一种bios更新的方法、系统、设备及介质 | |
CN113032183A (zh) | 系统管理方法、装置、计算机设备和存储介质 | |
TWI839587B (zh) | 用於管理軟體更新之方法及裝置,以及非暫時性電腦可讀儲存媒體 | |
JP2008226167A (ja) | データ配布システム及びデータ配布プログラム | |
US11762756B2 (en) | System and method for startup data verification | |
US20230129942A1 (en) | Method for locking a rewritable non-volatile memory and electronic device implementing said method | |
US20240143444A1 (en) | Error handling for runtime operations of operating system boot files for uefi secure boot systems | |
JP2021111093A (ja) | 情報処理装置および情報処理方法 | |
CN117519745A (zh) | 一种软件升级方法及装置 |