TW201918868A - 認證韌體資料之資料儲存裝置與資料儲存方法 - Google Patents

認證韌體資料之資料儲存裝置與資料儲存方法 Download PDF

Info

Publication number
TW201918868A
TW201918868A TW106139309A TW106139309A TW201918868A TW 201918868 A TW201918868 A TW 201918868A TW 106139309 A TW106139309 A TW 106139309A TW 106139309 A TW106139309 A TW 106139309A TW 201918868 A TW201918868 A TW 201918868A
Authority
TW
Taiwan
Prior art keywords
data
hash
firmware
sorting
controller
Prior art date
Application number
TW106139309A
Other languages
English (en)
Other versions
TWI647610B (zh
Inventor
陳瑜達
Original Assignee
慧榮科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 慧榮科技股份有限公司 filed Critical 慧榮科技股份有限公司
Priority to TW106139309A priority Critical patent/TWI647610B/zh
Priority to CN201810530644.XA priority patent/CN109783124B/zh
Priority to US16/039,596 priority patent/US10685120B2/en
Application granted granted Critical
Publication of TWI647610B publication Critical patent/TWI647610B/zh
Publication of TW201918868A publication Critical patent/TW201918868A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/26Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

一種用於認證韌體資料之資料儲存裝置,包括一快閃記憶體以及一控制器。控制器耦接該快閃記憶體,用以接收一第一韌體資料及其相關之一第一排序雜湊資料,並且將該第一韌體資料所產生之一第一雜湊資料區分為複數個資料群組,然後以一對應排序機制對該等資料群組進行重組而產生一第二排序雜湊資料。上述第一雜湊資料之該等資料群組之每一者並非逐一對應至該第二排序雜湊資料。控制器更包括一電子熔絲(efuse)區,用以寫入該對應排序機制。當該控制器判斷該第二排序雜湊資料相同於該第一排序雜湊資料時,則允許將該第一韌體資料更新至該控制器。

Description

認證韌體資料之資料儲存裝置與資料儲存方法
本發明係關於一種資料儲存裝置與資料儲存方法,特別係關於一種能夠有效認證韌體資料之資料儲存裝置與資料儲存方法。
快閃記憶體為一種普遍的非揮發性資料儲存裝置,係以電性方式抹除與程式化。以非及閘型的快閃記憶體(NAND FLASH)為例,常用作記憶卡(memory card)、通用序列匯流排閃存裝置(USB flash device)、固態硬碟(SSD)、嵌入式快閃記憶體模組(eMMC)、通用快閃記憶體(UFS)…等使用。
一般而言,資料儲存裝置可以透過對韌體的升級提升其效能及可靠性。韌體的更新可以確保資料儲存裝置保持在最新的狀態以及確保其相容性。然而,如果資料儲存裝置更新了錯誤或不合法的韌體,可能會導致資料儲存裝置無法正常的進行讀取或寫入等操作,甚至造成資料儲存裝置的損毀。因此,需要一種能夠有效並且方便認證韌體資料之資料儲存裝置與資料儲存方法,以確保將更新的韌體資料是合法以及正確的。
為了解決上述問題,本發明提出一種能夠有效並 且方便認證韌體資料之資料儲存裝置與資料儲存方法,以確保所更新的是正確的韌體資料。
詳細而言,本發明提供了安全雜湊機制以及對應排序機制,用以準確的偵測所欲安裝之韌體資料是否為合法與正確。首先,安全雜湊機制將韌體資料進行加密與壓縮以產生雜湊資料。然後,對應排序機制將上述雜湊資料重新組合,並且儲存於資料儲存裝置之特定位置。上述對應排序機制係由資料儲存裝置之製造商所設定,並且該對應排序機制並非一對一的對應關係,以增加對應的複雜度。藉由判斷所欲安裝之韌體資料及其相關之雜湊資料是否相同於排序雜湊資料,就能夠偵測出所欲安裝之韌體資料,是否為資料儲存裝置之製造商所認證之正確合法的韌體資料。依據本發明之資料儲存裝置以及資料儲存方法,能夠判斷上述韌體資料是否正確與合法,以防止資料儲存裝置受到惡意的破壞。
本發明之一實施例提供了一種用於認證韌體資料之資料儲存裝置,包括一快閃記憶體以及一控制器。控制器耦接該快閃記憶體,用以接收一第一韌體資料及其相關之一第一排序雜湊資料,並且將該第一韌體資料所產生之一第一雜湊資料區分為複數個資料群組,然後以一對應排序機制對該等資料群組進行重組而產生一第二排序雜湊資料。上述第一雜湊資料之該等資料群組之每一者並非逐一對應至該第二排序雜湊資料。控制器更包括一電子熔絲(efuse)區,用以寫入該對應排序機制。當該控制器判斷該第二排序雜湊資料相同於該第一排序雜湊資料時,則允許將該第一韌體資料更新至該控制器。上述 對應排序機制係由該資料儲存裝置之製造商所設定。
本發明之一實施例提供了一種用於認證韌體資料之資料儲存方法,適用於具有一快閃記憶體以及一控制器之一資料儲存裝置。資料儲存方法包括藉由該控制器接收一第一韌體資料及其相關之一第一排序雜湊資料;將該第一韌體資料所產生之一第一雜湊資料區分為複數個資料群組;以一對應排序機制對該等資料群組進行重組而產生一第二排序雜湊資料,其中該第一雜湊資料之該等資料群組之每一者並非逐一對應至該第二排序雜湊資料;將該對應排序機制寫入該控制器之一電子熔絲區;以及當判斷該第二排序雜湊資料相同於該第一排序雜湊資料時,則允許將該第一韌體資料更新至該控制器。
關於本發明其他附加的特徵與優點,此領域之熟習技術人士,在不脫離本發明之精神和範圍內,當可根據本案實施方法中所揭露之資料儲存裝置與資料儲存方法。
10A、20A、50A、50A-1、50A-2、50A-3、50A-4‧‧‧韌體資料
10B、20B、30B、40B、50B、50B-1、50B-2、50B-3、50B-4‧‧‧雜湊資料
10C、20C、30C、40C、40C-1、40C-2、40C-3、50C-1、50C-2、50C-3、50C-4‧‧‧排序雜湊資料
10D‧‧‧其他資料
10X‧‧‧韌體封包
100‧‧‧資料儲存裝置
120‧‧‧控制器
122‧‧‧電子熔絲區
122-1至122-8‧‧‧特定區域
140‧‧‧快閃記憶體
160-16N‧‧‧區塊
160A、160Z...16NA、16NZ‧‧‧頁面
180‧‧‧隨機存取記憶體
200‧‧‧主機
DVM‧‧‧預定分割機制
OPM、OPM-1‧‧‧運算機制
SHM‧‧‧安全雜湊機制
PTM‧‧‧對應排序機制
根據以下的詳細說明並配合所附圖式做完整揭露。應注意的是,根據本產業的一般作業,圖示並未必按照比例繪製。事實上,可能任意的放大或縮小元件的尺寸,以做清楚的說明。
第1圖係顯示根據本發明一實施例所述之資料儲存裝置與主機之示意圖;第2A圖係顯示根據本發明一實施例所述之用於認證韌體資料之資料儲存方法之示意圖; 第2B圖係顯示根據本發明另一實施例所述之用於認證韌體資料之資料儲存方法之示意圖;第2C圖係顯示根據本發明一實施例所述之韌體資料之示意圖;第3圖係顯示根據本發明一實施例所述之雜湊資料與排序雜湊資料之示意圖;第4A圖係顯示根據本發明一實施例所述之用於認證韌體資料之資料儲存方法之示意圖;第4B圖係顯示根據本發明一實施例所述之雜湊資料與排序雜湊資料之示意圖;第4C圖係顯示根據本發明一實施例所述之運算機制、雜湊資料與排序雜湊資料之示意圖;第4D圖係顯示根據本發明另一實施例所述之運算機制、雜湊資料與排序雜湊資料之示意圖;第5圖係顯示根據本發明一實施例所述之用於認證韌體資料之資料儲存方法之示意圖;第6A圖係顯示根據本發明一實施例所述之用於認證韌體資料之電子熔絲區之示意圖。
第6B圖係顯示根據本發明另一實施例所述之用於認證韌體資料之電子熔絲區之示意圖。
第7圖係顯示根據本發明另一實施例所述之用於認證韌體資料之資料儲存方法之流程圖;第8圖係顯示根據本發明另一實施例所述之用於認證韌體資料之資料儲存方法之流程圖; 第9圖係顯示根據本發明一實施例所述之用於認證韌體資料之資料儲存方法之流程圖。
為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述任意組合來實現。
第1圖係顯示根據本發明一實施例所述之資料儲存裝置100與主機200之示意圖。在一實施例中,資料儲存裝置100包括控制器120、非揮發式記憶體以及隨機存取記憶體(RAM)180。控制器120包括電子熔絲(efuse)區122。資料儲存裝置100耦接主機200以傳送資料與指令、或是接收資料與指令。非揮發式記憶體可以為反集閘快閃記憶體(NAND Flash)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式記憶體(Resistive RAM,RRAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM,STT-RAM)…等,使資料可於長時間保存。在下述說明中將以快閃記憶體140為例進行說明,但不以此為限。資料儲存裝置100係符合嵌入式快閃記憶體模組(eMMC)規範、通用快閃記憶體(UFS)、串行ATA(SATA)或非揮發性快速記憶體(NVMe)等通信標準的規範。主機200可以為手機、平板電腦、筆記型電腦、導航機或車載系統等各種電子產品。
如第1圖所示,控制器120耦接快閃記憶體140以及 隨機存取記憶體180。隨機存取記憶體180用以暫存以及預取控制器120所需之資料,或是用以暫存主機200要寫入快閃記憶體140之資料,以加快資料儲存裝置100之存取時間。控制器120藉由控制快閃記憶體140以叢集(cluster)為單位執行讀取運作的方式來對快閃記憶體140執行讀取運作。此外,控制器120耦接快閃記憶體140,以相互傳送資料與指令或接收資料與指令。
電子熔絲區122主要係儲存關於資料儲存裝置100之安全性與存取操作的重要資料,例如,用以解碼第一金鑰的第二金鑰。在一般運作模式下,只有控制器120才能讀取電子熔絲區122所儲存之資料。在除錯模式下,電子熔絲區122會被關閉/屏閉以防止讀取。要注意的是,韌體資料係一次性寫入電子熔絲區122。
快閃記憶體140包括複數個區塊160~16N,N為正整數,例如2048。詳細而言,區塊160~16N中的每一者更包括複數個實體頁面160A~16NZ,A與Z為正整數,例如A=0而Z=256。區塊160包括實體頁面160A~160Z,區塊16N包括實體頁面16NA~16NZ。控制器120在對快閃記憶體140執行資料寫入或儲存動作時,是藉由控制快閃記憶體140以實體頁面為單位來執行資料寫入或程式化的運作。
對於快閃記憶體140而言,其實體頁面160A~16NZ的每一者皆具有不同的實體位址。換言之,實體頁面160A~16NZ的每一者都具有一個實體位址,而實體頁面160A~16NZ的每一者的實體位址都是不同的。當資料儲存裝置 100執行一寫入運作時,控制器120決定快閃記憶體140的一實體位址以寫入或儲存資料。此外,控制器120更會記錄資料的實體位址與邏輯位址的映射關係,此記錄乃儲存於映射表H2F中。因此,對於主機200而言,主機200係藉由邏輯位址,來讀取或寫入資料儲存裝置100所儲存於某個邏輯位址的資料。
第2A圖係顯示根據本發明一實施例所述之用於認證韌體資料之資料儲存方法之示意圖。韌體資料10A係由一編譯器(compiler)所產生。接著,如第2A圖所示,韌體資料10A藉由安全雜湊機制SHM以產生一雜湊資料10B。舉例而言,安全雜湊機制SHM為安全雜湊演算法(Secure Hash Algorithm,SHA)。韌體資料10A係藉由SHA-256之運算以產生256bits長度的雜湊資料10B。要注意的是上述SHA僅是用於例示,而非用以限制本發明。
在一實施例中,控制器120接收韌體資料10A,並且對韌體資料10A進行安全雜湊機制SHM,而產生並接收雜湊資料10B。在另一實施例中,係由其他裝置(例如主機200)對韌體資料10A進行安全雜湊機制SHM以產生雜湊資料10B,並且控制器120接收該雜湊資料10B。
在一實施例中,控制器120將雜湊資料10B區分為複數個資料群組,以一對應排序機制PTM對上述資料群組進行排序而產生排序雜湊資料10C。上述對應排序機制PTM係儲存於控制器120之電子熔絲區122。舉例而言,雜湊資料10B之大小為8個位元組(bytes),其內容如下所示:
表格1顯示了雜湊資料10B之每一位元組的資料。在一實施例中,控制器120將上述8個位元組資料進行分組,而產生複數個資料群組。舉例而言,每個資料群組的大小為1byte,亦即每1byte的資料皆各自成為一個資料群組。在另一實施例中,每個資料群組的大小為2byte,亦即將2個1byte的資料是為一個資料群組。例如表格1中的0x54和0x47為一資料群組,表格1中的0x28和0x00為一另資料群組。要注意的是上述資料群組之大小僅是用於例示,而非用以限制本發明。本技術領域中具有通常知識者依據本發明之內容而設定其他大小之資料群組,仍不脫離本發明之精神與範疇。
在此實施例中,雜湊資料10B的大小為8bytes,在另一實施例中,雜湊資料10B的大小為32bytes。如果使用較複雜的安全雜湊機制SHM與對應排序機制PTM,或是另外使用其他機制(例如預定分割機制或預定再壓縮機制),則電子熔絲區122需要較大儲存容量來儲存上述機制。上述預定分割機制以及預定再壓縮機制將分別在第3圖以及第4圖中詳細說明。
在此實施例中,每1byte的資料皆各自成為一個資料群組。換言之,表格1中的0x54為一資料群組,0x28為另一資料群組。然後,上述雜湊資料10B藉由對應排序機制PTM以資料群組為單位進行排序,而產生排序雜湊資料10C。要注意 的是,對應排序機制PTM係以表格化方式儲存於電子熔絲區122。舉例而言,對應排序機制PTM如表格2所示:
對應排序機制PTM改變了雜湊資料10B的內容的位址,0x54由Byte G的位置變更到Byte F的位置,0x28由Byte E的位置變更到Byte B的位置,0x07由Byte C的位置變更到Byte A的位置。要注意的是,Byte B位置的資料被複製,而Byte H位置的資料則被省略。因此,表格2中出現兩筆關於Byte B位置的資料,而沒有關於Byte H位置的資料。換言之,本發明所提供之對應排序機制PTM並非一對一的對應關係,因而增加了對應與排序的複雜度,以提升資料儲存裝置100的安全性。
詳細而言,本發明之資料儲存方法提供了雙重的保護機制,分別是安全雜湊機制SHM以及對應排序機制PTM。安全雜湊機制SHM所產生之雜湊資料10B(如表格1所示),會藉由對應排序機制PTM而重新組合成排序雜湊資料10C(如表格2所示)。如果有第三人要將不合法的韌體資料更新至資料儲存裝置100,上述不合法的韌體資料透過其他安全雜湊機制後所產生的雜湊資料將不同於本案之排序雜湊資料10C。因此,控制器120可據以判斷上述雜湊資料是不合法的,並且拒絕將該不合法的韌體資料安裝或更新至資料儲存裝置100。
第2B圖係顯示根據本發明另一實施例所述之用於 認證韌體資料之資料儲存方法之示意圖。在此實施例中,排序雜湊資料10C與韌體資料10A形成韌體封包10X。然後,對應排序機制PTM對上述排序雜湊資料10C進行反向排序以產生雜湊資料10B。
在一實施例中,上述雜湊資料10B的產生方式或儲存位置係由資料儲存裝置100之製造商所設定。由於第三人並未知悉上述雜湊資料10B的產生方式或儲存位置,因此控制器120能夠檢測另一韌體資料是否合法與正確。因此,本發明之資料儲存方法能夠避免安裝或更新不合法的韌體資料,以確保資料儲存裝置100不會受到惡意的破壞。
在一實施例中,對應排序機制PTM係由資料儲存裝置100之製造商所設定。舉例而言,第三人從不合法的手段而得知安全雜湊機制SHM,且知雜湊資料10B的儲存位置,並將另一韌體資料與雜湊資料10B形成韌體封包,意圖將不合法的另一韌體資料更新至資料儲存裝置100。由於第三人並未得知對應排序機制PTM,所以韌體封包包含的是雜湊資料10B,而非透過對應排序機制PTM而產生的排序雜湊資料10C。因此,控制器120可輕易地判斷排序雜湊資料10C與雜湊資料10B的不同,進而判斷上述韌體資料是不合法的,並且拒絕將該不合法的韌體資料安裝或更新至資料儲存裝置100,以防止資料儲存裝置100受到惡意的破壞。
第2C圖係顯示根據本發明一實施例所述之韌體資料之示意圖。如第2C圖所示,在一實施例中,排序雜湊資料10C係儲存於韌體資料10A之上。另外,韌體資料10A之下則儲存 了與韌體相關之其他資料10D。換言之,韌體封包10X係包括韌體資料10A、排序雜湊資料10C以及其他資料10D。舉例而言,其他資料10D係包括韌體版本、安全雜湊機制SHM的版本、以及其他客戶所欲儲存的安全資訊。可想而知地,排序雜湊資料10C亦可儲存於韌體資料10A之下。
在一實施例中,當資料儲存裝置100收到韌體封包10X時,控制器120會對韌體封包10X的韌體資料10A執行安全雜湊機制SHM以得到雜湊資料20B,然後再執行對應排序機制PTM以得到排序雜湊資料20C。在一實施例中,控制器120會比對排序雜湊資料20C以及韌體封包10X所儲存的排序雜湊資料10C。如果比對結果為兩者相同,則表示韌體資料10A為合法正確的。如果比對結果為兩者不同,則表示韌體資料10A是非法的。
在另一實施例中,資料儲存裝置100收到韌體封包10X時,控制器120會對韌體封包10X的韌體資料10A執行安全雜湊機制SHM以得到雜湊資料20B。然後,控制器120會對韌體封包10X所儲存的排序雜湊資料10C執行反向對應排序機制PTM以得到雜湊資料10B。然後,控制器120比對雜湊資料20B以及韌體封包10X所儲存的雜湊資料10B。如果比對結果為兩者相同,則表示韌體資料10A為合法正確的。如果比對結果為兩者不同,則表示韌體資料10A是非法的。
在另一實施例中,韌體資料10A亦可藉由加密機制,例如進階加密標準(Advanced Encryption Standard,AES)、或是RSA加密演算法,對韌體資料10A進行加密而產生加密資料 10B。
第3圖係顯示根據本發明一實施例所述之雜湊資料與排序雜湊資料之示意圖。為了簡化並且節省儲存空間,本發明所述之韌體資料、雜湊資料以及排序雜湊資料係以表格化方式來加以呈現。在一實施例中,雜湊資料30B係藉由對韌體資料進行安全雜湊機制SHM所產生。如第3圖所示,雜湊資料30B係以表格呈現出每個位元組(Byte)的位置順序,由Byte A依序至Byte NN。
然後,控制器120擷取雜湊資料30B之一部分而形成雜湊資料30B-1,並且對雜湊資料30B-1執行對應排序機制PTM而形成排序雜湊資料30C。要注意的是,雜湊資料30B-1之每一位元組所儲存之資料並非逐一對應至排序雜湊資料30C之每一位元組所儲存之資料。舉例而言,排序雜湊資料30C具有2筆Byte A的資料,但只有1筆Byte AA的資料。換言之,雜湊資料30B-1之一部分資料被複製。此外,對於雜湊資料30B而言,其Byte GG至Byte NN的資料則被省略,沒有出現在排序雜湊資料30C之中。
由此可知,本發明所提出之資料儲存方法不僅是對雜湊資料30B重新排序,而是進一步的藉由省略或是複製等方式對資料重新組合,產生更為混亂與複雜的排序雜湊資料30C,以避免資料被輕易破解。
第4A圖係顯示根據本發明一實施例所述之用於認證韌體資料之資料儲存方法之示意圖。相較於第3圖所示之認證韌體資料之資料儲存方法,第4A圖之實施例更提供了運算機 制OPM,可對雜湊資料、韌體資料、排序雜湊資料等各種資料進行運算。詳細而言,上述運算機制OPM包括加法運算、減法運算、乘法運算、除法運算、以及不運算。藉由運算機制OPM,能夠以更為複雜的程序來產生排序雜湊資料,以進一步提升韌體更新的安全性。
在第4A圖所示之實施例中,韌體資料40A經過安全雜湊機制SHM而產生雜湊資料40B,並且雜湊資料40B經過對應排序機制PTM而產生排序雜湊資料40C。然後,控制器120對雜湊資料40B以及排序雜湊資料40C執行運算,以產生另一排序雜湊資料40C-1。由於運算機制OPM之緣故,排序雜湊資料40C-1比排序雜湊資料40C更為複雜,因而能提升韌體資料40A受到惡意破解的困難度。以下將詳細介紹運算機制OPM的各種應用實例。
第4B圖係顯示根據本發明一實施例所述之雜湊資料與排序雜湊資料之示意圖。排序雜湊資料40C-1係將排序雜湊資料40C以及雜湊資料40B進行加法運算所產生。上述加法運算係對表格中的每個位元組之資料,與另一表格所對應位元組之資料進行相加。例如,對於第1列第1行之資料而言,控制器120係將排序雜湊資料40C之Byte A之資料與雜湊資料40B之Byte A之資料相加,而得到排序雜湊資料40C-1之Byte A加上Byte A之資料。對於第1列第2行之資料而言,控制器120係將排序雜湊資料40C之Byte Y之資料與雜湊資料40B之Byte B之資料相加,而得到排序雜湊資料40C-1之Byte B加上Byte Y之資料。
要注意的是,由於雜湊資料40B比排序雜湊資料40C少一列,因此排序雜湊資料40C之最後一行之Byte W至Byte H的資料並未進行加法運算。由於雜湊資料40B與排序雜湊資料40C並非一對一的對應關係,因此兩者的資料大小可能會不同。在另一實施例中,上述雜湊資料40B係擷取自另一雜湊資料的一部分,因此其資料空間少於排序雜湊資料40C之資料空間。
第4C圖係顯示根據本發明一實施例所述之運算機制、雜湊資料與排序雜湊資料之示意圖。控制器120係依據運算機制OPM,對排序雜湊資料40C以及雜湊資料40B進行運算以產生排序雜湊資料40C-2。上述運算機制OPM係對表格中的每個位元組之資料,與另一表格所對應位元組之資料進行運算。在一實施例中,運算機制OPM係使用多種不同數值來代表所要執行的運算種類。詳細而言,運算機制OPM之表格中的1表示加法運算、2表示減法運算、3表示乘法運算、4表示除法運算、0表示不運算。
例如,對於第1列第1行之資料而言,控制器120係將排序雜湊資料40C之Byte A之資料與雜湊資料40B之Byte A之資料相加,而得到排序雜湊資料40C-2之Byte A加上Byte A之資料。此外,對於第1列第2行之資料而言,控制器120係將排序雜湊資料40C之Byte Y之資料與雜湊資料40B之Byte B之資料相減,而得到排序雜湊資料40C-2之Byte B減去Byte Y之資料。
第4D圖係顯示根據本發明另一實施例所述之運算 機制、雜湊資料與排序雜湊資料之示意圖。控制器120係依據運算機制OPM,對排序雜湊資料40C以及雜湊資料40B進行運算以產生排序雜湊資料40C-2。要注意的是,在第4D之實施例中,雜湊資料40B與排序雜湊資料40C的資料大小是相同的,亦即此兩者所包含之位元組數量是相同的。
例如,對於第5列第1行之資料而言,控制器120不對排序雜湊資料40C之Byte W之資料執行任何運算,而得到排序雜湊資料40C-3之Byte W之資料。對於第5列第5行之資料而言,控制器120係將排序雜湊資料40C之Byte BB之資料與雜湊資料40B之Byte KK之資料相乘,而得到排序雜湊資料40C-3之Byte BB乘以Byte KK之資料。對於第5列第7行之資料而言,控制器120係將排序雜湊資料40C之Byte H之資料與雜湊資料40B之Byte NN之資料相除,而得到排序雜湊資料40C-3之Byte H除以Byte NN之資料。
第5圖係顯示根據本發明一實施例所述之用於認證韌體資料之資料儲存方法之示意圖。在此實施例中,資料儲存方法更包括一預定分割機制DVM,以促進韌體資料的認證並且提升安全性。如第5圖所示,預定分割機制DVM將韌體資料50A分割為4個韌體資料50A-1、50A-2、50A-3以及50A-4(亦即子韌體資料)。換言之,4個韌體資料50A-1、50A-2、50A-3以及50A-4之總和就是原本的韌體資料50A。
要注意的是,上述4個韌體資料50A-1~50A-4之分割僅是用於例示,而非用以限制本發明。本技術領域中具有通常知識者依據本發明之內容而分割為其他數量之韌體資料,仍 不脫離本發明之範疇。
然後,安全雜湊機制SHM分別將4個韌體資料50A-1、50A-2、50A-3以及50A-4進行雜湊運算,並且分別產生4個雜湊資料50B-1、50B-2、50B-3以及50B-4(亦即子雜湊資料)。4個雜湊資料50B-1、50B-2、50B-3以及50B-4之總和就是雜湊資料50B。
在一實施例中,運算機制OPM分別將4個雜湊資料50B-1、50B-2、50B-3以及50B-4進行運算,並且分別產生4個排序雜湊資料50C-1、50C-2、50C-3以及50C-4。4個排序雜湊資料50C-1、50C-2、50C-3以及50C-4之總和即為排序雜湊資料50C。在另一實施例中,運算機制OPM係同時對全部的4個雜湊資料50B-1、50B-2、50B-3以及50B-4進行運算,而產生1個排序雜湊資料50C。
在其他實施例中,對應排序機制PTM亦可搭配運算機制OPM一起使用,以產生排序雜湊資料50C。舉例而言,雜湊資料50B係經過運算機制OPM之運算後,再藉由對應排序機制PTM進行重組而產生排序雜湊資料50C。在另一實施例中,雜湊資料50B係經過對應排序機制PTM進行重組之後,在經過運算機制OPM進行運算,以產生排序雜湊資料50C。
第6A圖係顯示根據本發明一實施例所述之用於認證韌體資料之電子熔絲區之示意圖。在一實施例中,電子熔絲區122係包括複數個特定區域122-1~122-8,用以分別儲存特定資料。如第6A圖所示,對應排序機制PTM係儲存於特定區域122-1。換言之,特定區域122-1只能用於儲存對應排序機制PTM, 不能儲存其他機制或其他資料。此外,上述對應排序機制PTM係一次性寫入電子熔絲區122,並且只有控制器120才能加以讀取。
第6B圖係顯示根據本發明另一實施例所述之用於認證韌體資料之電子熔絲區之示意圖。在一些實施例中,資料儲存方法除了對應排序機制PTM之外,更包括預定分割機制DVM以及運算機制OPM。在第6B圖所示之實施例中,對應排序機制PTM儲存於特定區域122-1,預定分割機制DVM儲存於特定區域122-2,以及運算機制OPM儲存於特定區域122-3。要注意的是,如果上述機制的一者或是多者較為複雜,則可使用2個以上的特定區域來儲存1個機制。
第7圖係顯示根據本發明另一實施例所述之用於認證韌體資料之資料儲存方法之流程圖。在步驟S702,控制器120自電子熔絲區122讀取對應排序機制PTM。在步驟S704,控制器120取得韌體資料及其相關之第一排序雜湊資料。在步驟S706,控制器120對韌體資料執行安全雜湊機制以產生第一雜湊資料,並且將第一雜湊資料區分為複數個資料群組。在步驟S708,控制器120使用上述對應排序機制PTM對該等資料群組進行重組而產生一第二排序雜湊資料。
然後,在步驟S710,控制器120判斷第二排序雜湊資料是否相同於第一排序雜湊資料。如果第二排序雜湊資料相同於第一排序雜湊資料,則執行步驟S712,控制器120以韌體資料對資料儲存裝置進行韌體的更新。如果第二排序雜湊資料不同於第一排序雜湊資料,則執行步驟S714,流程結束。
第8圖係顯示根據本發明另一實施例所述之用於認證韌體資料之資料儲存方法之流程圖。相較於第7圖之實施例,第8圖之實施例進一步加入運算機制OPM之流程。上述運算機制OPM係由資料儲存裝置100之製造商所設定。在步驟S802,控制器120自電子熔絲區122讀取對應排序機制PTM以及運算機制OPM。在步驟S804,控制器120取得韌體資料及其相關之第一排序雜湊資料。在步驟S806,控制器120對韌體資料執行安全雜湊機制以產生第一雜湊資料,並且將第一雜湊資料區分為複數個資料群組。
在步驟S808,控制器120使用上述對應排序機制PTM對該等資料群組進行重組而產生第二排序雜湊資料。在步驟S810,控制器120使用運算機制OPM,對第一韌體資料以及第二排序雜湊資料進行運算以產生第三排序雜湊資料。然後,在步驟S812,控制器120判斷第三排序雜湊資料是否相同於第一排序雜湊資料。如果第三排序雜湊資料相同於第一排序雜湊資料,則執行步驟S814,控制器120以韌體資料對資料儲存裝置進行韌體的更新。如果第三排序雜湊資料不同於第一排序雜湊資料,則執行步驟S816,流程結束。
第9圖係顯示根據本發明一實施例所述之用於認證韌體資料之資料儲存方法之流程圖。相較於第7圖與第8圖之實施例,第9圖之實施例進一步加入預定分割機制DVM之流程。上述預定分割機制DVM係由資料儲存裝置100之製造商所設定。在步驟S902,控制器120自電子熔絲區122讀取對應排序機制PTM、預定分割機制DVM以及運算機制OPM。在步驟S904,控 制器120取得韌體資料及其相關之第一排序雜湊資料。在步驟S906,控制器120以預定分割機制將該第一韌體資料分割為複數個第一子韌體資料。
在步驟S908,控制器120對該等第一子韌體資料執行安全雜湊機制以產生複數個第一子雜湊資料,並且將第一雜湊資料區分為複數個資料群組。在步驟S910,控制器120使用運算機制OPM以及對應排序機制PTM,對該等第一子韌體資料進行運算與重組以產生第四排序雜湊資料。然後,在步驟S912,控制器120判斷第四排序雜湊資料是否相同於第一排序雜湊資料。如果第四排序雜湊資料相同於第一排序雜湊資料,則執行步驟S914,控制器120以韌體資料對資料儲存裝置進行韌體的更新。如果第四排序雜湊資料不同於第一排序雜湊資料,則執行步驟S916,流程結束。
本發明之方法,或特定型態或其部份,可以以程式碼的型態存在。程式碼可儲存於實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,亦或不限於外在形式之電腦程式產品,其中,當程式碼被機器,如電腦載入且執行時,此機器變成用以參與本發明之裝置。程式碼也可透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態進行傳送,其中,當程式碼被機器,如電腦接收、載入且執行時,此機器變成用以參與本發明之裝置。當在一般用途處理單元實作時,程式碼結合處理單元提供一操作類似於應用特定邏輯電路之獨特裝置。
在本說明書以及申請專利範圍中的序數,例如「第 一」、「第二」、「第三」等等,彼此之間並沒有順序上的先後關係,其僅用於標示區分兩個具有相同名字之不同元件。本發明說明書中「耦接」一詞係泛指各種直接或間接之電性連接方式。本發明雖以較佳實施例揭露如上,然其並非用以限定本發明的範圍,任何熟習此項技藝者,在不脫離本發明之精神和範圍內,當可做些許的更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。

Claims (18)

  1. 一種用於認證韌體資料之資料儲存裝置,包括:一快閃記憶體;以及一控制器,耦接該快閃記憶體,用以接收一第一韌體資料及其相關之一第一排序雜湊資料,並且將該第一韌體資料所產生之一第一雜湊資料區分為複數個資料群組,以一對應排序機制對該等資料群組進行重組而產生一第二排序雜湊資料,其中該第一雜湊資料之該等資料群組之每一者並非逐一對應至該第二排序雜湊資料,其中該控制器更包括:一電子熔絲(efuse)區,用以寫入該對應排序機制,其中當該控制器判斷該第二排序雜湊資料相同於該第一排序雜湊資料時,則允許將該第一韌體資料更新至該控制器。
  2. 如申請專利範圍第1項所述之資料儲存裝置,其中該對應排序機制係一次性寫入該電子熔絲區,並且只有該控制器能夠讀取該電子熔絲區所儲存之該對應排序機制。
  3. 如申請專利範圍第2項所述之資料儲存裝置,其中該第一雜湊資料係藉由一安全雜湊機制(Secure Hash Algorithm,SHA)壓縮該第一韌體資料所產生。
  4. 如申請專利範圍第1項所述之資料儲存裝置,其中該對應排序機制係複製或是省略該等群組中的至少一群組以產生該第二排序雜湊資料。
  5. 如申請專利範圍第2項所述之資料儲存裝置,其中該控制器更使用一運算機制,對該第一韌體資料以及該第二排序雜湊資料進行運算以產生一第三排序雜湊資料,並且當該控制器 判斷該第三排序雜湊資料相同於該第一排序雜湊資料時,則允許將該第一韌體資料更新至該控制器。
  6. 如申請專利範圍第5項所述之資料儲存裝置,其中該運算機制係包括加法運算、減法運算、乘法運算、除法運算、以及不運算。
  7. 如申請專利範圍第6項所述之資料儲存裝置,其中該對應排序機制係儲存於該電子熔絲區之一第一特定區域,該運算機制係儲存於該電子熔絲區之不同於該第一特定區域之一第二特定區域。
  8. 如申請專利範圍第3項所述之資料儲存裝置,其中該控制器以一預定分割機制將該第一韌體資料分割為複數個第一子韌體資料,並且藉由該安全雜湊機制分別壓縮該等第一子韌體資料之每一者,而分別產生複數個第一子雜湊資料。
  9. 如申請專利範圍第8項所述之資料儲存裝置,其中該控制器更使用一運算機制,對該等第一子雜湊資料之每一者進行運算以產生一第四排序雜湊資料,並且當該控制器判斷該第四排序雜湊資料相同於該第一排序雜湊資料時,則允許將該第一韌體資料更新至該控制器。
  10. 如申請專利範圍第1項所述之資料儲存裝置,其中該對應排序機制係由該資料儲存裝置之製造商所設定。
  11. 一種用於認證韌體資料之資料儲存方法,適用於具有一快閃記憶體以及一控制器之一資料儲存裝置,包括:藉由該控制器接收一第一韌體資料及其相關之一第一排序雜湊資料; 將該第一韌體資料所產生之一第一雜湊資料區分為複數個資料群組;以一對應排序機制對該等資料群組進行重組而產生一第二排序雜湊資料,其中該第一雜湊資料之該等資料群組之每一者並非逐一對應至該第二排序雜湊資料;將該對應排序機制寫入該控制器之一電子熔絲(efuse)區;以及當判斷該第二排序雜湊資料相同於該第一排序雜湊資料時,則允許將該第一韌體資料更新至該控制器。
  12. 如申請專利範圍第11項所述之資料儲存方法,其中該對應排序機制係一次性寫入該電子熔絲區之一第一特定區域,並且只有該控制器能夠讀取該電子熔絲區所儲存之該對應排序機制。
  13. 如申請專利範圍第12項所述之資料儲存方法,其中該第一雜湊資料係藉由一安全雜湊機制(Secure Hash Algorithm,SHA)壓縮該第一韌體資料所產生。
  14. 如申請專利範圍第11項所述之資料儲存方法,其中該對應排序機制係複製或是省略該等群組中的至少一群組以產生該第二排序雜湊資料。
  15. 如申請專利範圍第12項所述之資料儲存方法,更包括:使用一運算機制,對該第一韌體資料以及該第二排序雜湊資料進行運算以產生一第三排序雜湊資料;以及當判斷該第三排序雜湊資料相同於該第一排序雜湊資料時,則允許將該第一韌體資料更新至該控制器。
  16. 如申請專利範圍第15項所述之資料儲存方法,其中該運算機制係包括加法運算、減法運算、乘法運算、除法運算、以及不運算。
  17. 如申請專利範圍第13項所述之資料儲存方法,更包括:以一預定分割機制將該第一韌體資料分割為複數個第一子韌體資料;以及藉由該安全雜湊機制分別壓縮該等第一子韌體資料之每一者,而分別產生複數個第一子雜湊資料。
  18. 如申請專利範圍第13項所述之資料儲存方法,更包括:使用一運算機制,對該等第一子雜湊資料之每一者進行運算以產生一第四排序雜湊資料;以及當判斷該第四排序雜湊資料相同於該第一排序雜湊資料時,則允許將該第一韌體資料更新至該控制器。
TW106139309A 2017-11-14 2017-11-14 認證韌體資料之資料儲存裝置與資料儲存方法 TWI647610B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW106139309A TWI647610B (zh) 2017-11-14 2017-11-14 認證韌體資料之資料儲存裝置與資料儲存方法
CN201810530644.XA CN109783124B (zh) 2017-11-14 2018-05-29 认证固件数据的数据储存装置与数据储存方法
US16/039,596 US10685120B2 (en) 2017-11-14 2018-07-19 Data storage device and data storage method for confirming firmware data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW106139309A TWI647610B (zh) 2017-11-14 2017-11-14 認證韌體資料之資料儲存裝置與資料儲存方法

Publications (2)

Publication Number Publication Date
TWI647610B TWI647610B (zh) 2019-01-11
TW201918868A true TW201918868A (zh) 2019-05-16

Family

ID=65803755

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106139309A TWI647610B (zh) 2017-11-14 2017-11-14 認證韌體資料之資料儲存裝置與資料儲存方法

Country Status (3)

Country Link
US (1) US10685120B2 (zh)
CN (1) CN109783124B (zh)
TW (1) TWI647610B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI736074B (zh) * 2019-12-20 2021-08-11 瑞昱半導體股份有限公司 周邊裝置及其驗證更新方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11106796B2 (en) * 2018-11-07 2021-08-31 Dell Products L.P. Staging memory for accessory firmware update
TWI696113B (zh) * 2019-01-02 2020-06-11 慧榮科技股份有限公司 用來進行組態管理之方法以及資料儲存裝置及其控制器
US20210334380A1 (en) * 2020-04-24 2021-10-28 Vmware, Inc. Trusted firmware verification
CN111966970B (zh) * 2020-07-31 2021-05-07 深圳比特微电子科技有限公司 防止数字货币矿机固件回退的方法、装置和数字货币矿机
US11809566B2 (en) * 2020-10-02 2023-11-07 Infineon Technologies LLC Methods for fast, secure boot from nonvolatile memory device and corresponding systems and devices for the same
US11914983B2 (en) * 2022-06-03 2024-02-27 Apple Inc. Virtual restructuring for patching compressed disk images

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7134041B2 (en) * 2001-09-20 2006-11-07 Evault, Inc. Systems and methods for data backup over a network
TW200604934A (en) * 2004-07-16 2006-02-01 Benq Corp Firmware management system and method thereof
US7774596B2 (en) * 2005-02-02 2010-08-10 Insyde Software Corporation System and method for updating firmware in a secure manner
TW200713037A (en) 2005-09-06 2007-04-01 Benq Corp System and method for updating firmware
US20070174849A1 (en) * 2006-01-12 2007-07-26 Cheung Yan M Non-disruptive multipath device driver update system and method
US8286156B2 (en) * 2006-11-07 2012-10-09 Sandisk Technologies Inc. Methods and apparatus for performing resilient firmware upgrades to a functioning memory
US8495418B2 (en) * 2010-07-23 2013-07-23 Brocade Communications Systems, Inc. Achieving ultra-high availability using a single CPU
CN103250401A (zh) * 2010-09-28 2013-08-14 海德沃特合作I有限公司 安全装置数据记录
US8498167B1 (en) * 2012-01-20 2013-07-30 Elite Semiconductor Memory Technology, Inc. Temperature-dependent self-refresh timing circuit for semiconductor memory device
US9141533B2 (en) * 2012-05-31 2015-09-22 Silicon Motion, Inc. Data storage device and flash memory control method for performing garbage collection
WO2014155363A1 (en) * 2013-03-29 2014-10-02 Ologn Technologies Ag Systems, methods and apparatuses for secure storage of data using a security-enhancing chip
US10346343B2 (en) * 2016-06-24 2019-07-09 Intel Corporation Hardware accelerator for platform firmware integrity check
US10211976B2 (en) * 2016-07-15 2019-02-19 Seagate Technology Llc Hash authenticated data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI736074B (zh) * 2019-12-20 2021-08-11 瑞昱半導體股份有限公司 周邊裝置及其驗證更新方法

Also Published As

Publication number Publication date
TWI647610B (zh) 2019-01-11
CN109783124A (zh) 2019-05-21
US20190147165A1 (en) 2019-05-16
US10685120B2 (en) 2020-06-16
CN109783124B (zh) 2022-02-11

Similar Documents

Publication Publication Date Title
TWI647610B (zh) 認證韌體資料之資料儲存裝置與資料儲存方法
TWI667590B (zh) 資料儲存裝置以及韌體加密及更新方法
TWI700627B (zh) 認證韌體資料之資料儲存裝置與資料儲存方法
US11960632B2 (en) Data attestation in memory
US11683155B2 (en) Validating data stored in memory using cryptographic hashes
TW201227297A (en) Method and system for hijacking writes to a non-volatile memory
US11829464B2 (en) Apparatus and method for authentication of software
TWI678658B (zh) 資料儲存裝置之韌體更新之方法
KR102068485B1 (ko) 불 휘발성 메모리 모듈 및 그것의 동작 방법
US20220247731A1 (en) Secure communication between an intermediary device and a network
CN113796045A (zh) 确认车辆的电子控制单元
CN116108419A (zh) 存储装置、存储***和存储装置的操作方法
TW202234254A (zh) 支援將檔案寫入安裝於安全記憶裝置中之檔案系統的機制
KR20210132730A (ko) 메모리를 블록 체인의 블록으로 사용하는 방법
US20200310776A1 (en) Over-the-air update validation
US20220138114A1 (en) Using memory as a block in a block chain
CN113704145B (zh) 加密和解密物理地址信息的方法及装置
WO2023114768A1 (en) Verification of off-chip computer-readable instructions and related systems, methods, and apparatuses
CN117150496A (zh) 装置标识符组合引擎3层架构