CN108958641B - 认证固件数据的数据储存装置与数据储存方法 - Google Patents
认证固件数据的数据储存装置与数据储存方法 Download PDFInfo
- Publication number
- CN108958641B CN108958641B CN201710522641.7A CN201710522641A CN108958641B CN 108958641 B CN108958641 B CN 108958641B CN 201710522641 A CN201710522641 A CN 201710522641A CN 108958641 B CN108958641 B CN 108958641B
- Authority
- CN
- China
- Prior art keywords
- data
- hash
- firmware
- controller
- hash data
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 102
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000007246 mechanism Effects 0.000 claims abstract description 109
- 238000005192 partition Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 17
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000009429 electrical wiring Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3239—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Software Systems (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)区,用以写入该预定排序机制。当该控制器判断一第二固件数据的一第二排序杂凑数据相同于该第一排序杂凑数据、或是该第二固件数据的一第二杂凑数据相同于该第一杂凑数据时,则允许将该第二固件数据更新至该控制器。
本发明的一实施例提供了一种用于认证固件数据的数据储存装置,包括一控制器。控制器接收关于一第一固件数据的至少一第一杂凑数据,并且将第一杂凑数据区分为多个数据群组,以一预定排序机制对等数据群组进行排序而产生一第一排序杂凑数据。第一杂凑数据藉由一安全杂凑机制(Secure Hash Algorithm,SHA)压缩第一固件数据所产生。控制器还包括一电子熔丝区,用以储存预定排序机制以及第一排序杂凑数据。
本发明的一实施例提供了一种用于认证固件数据的数据储存方法,适用于具有一快闪存储器以及一控制器的一数据储存装置。数据储存方法包括藉由该控制器接收关于一第一固件数据的至少一第一杂凑数据;将该第一杂凑数据区分为多个数据群组,并且以一预定排序机制对这些数据群组进行排序而产生一第一排序杂凑数据;将该预定排序机制写入该控制器的一电子熔丝区;以及当藉由该控制器判断一第二固件数据的一第二排序杂凑数据相同于该第一排序杂凑数据、或是该第二固件数据的一第二杂凑数据相同于该第一杂凑数据时,允许将该第二固件数据更新至该
控制器。
关于本发明其他附加的特征与优点,此领域的熟悉本技术领域者,在不脱离本发明的精神和范围内,当可根据本发明实施方法中所揭露的数据储存装置与数据储存方法。
附图说明
根据以下的详细说明并配合附图做完整揭示。应注意的是,根据本产业的一般作业,附图并未必按照比例绘制。事实上,可能任意的放大或缩小元件的尺寸,以做清楚的说明。
图1是显示根据本发明一实施例所述的数据储存装置与主机的示意图;
图2A是显示根据本发明一实施例所述的用于认证固件数据的数据储存方法的示意图;
图2B是显示根据本发明另一实施例所述的用于认证固件数据的数据储存方法的示意图;
图2C是显示根据本发明一实施例所述的固件数据的示意图;
图3是显示根据本发明一实施例所述的用于认证固件数据的数据储存方法的示意图;
图4是显示根据本发明另一实施例所述的用于认证固件数据的数据储存方法的示意图;
图5A是显示根据本发明一实施例所述的用于认证固件数据的电子熔丝区的示意图。
图5B是显示根据本发明另一实施例所述的用于认证固件数据的电子熔丝区的示意图。
图6是显示根据本发明一实施例所述的用于认证固件数据的数据储存方法的流程图。
图7是显示根据本发明另一实施例所述的用于认证固件数据的数据储存方法的流程图。
图8是显示根据本发明另一实施例所述的用于认证固件数据的数据储存方法的流程图。
图9是显示根据本发明另一实施例所述的用于认证固件数据的数据储存方法的示意图。
符号说明
10A、10A-1、10A-2、10A-3、10A-4、20A~固件数据;
10B、10B-1、10B-2、10B-3、10B-4、10B-5、10B-6、10B-7、20B~杂凑数据;
10C、10C-1、10C-2、10C-3、10C-4、10C-5、20C~排序杂凑数据;
10D~其他数据;
10X~固件封包;
100~数据储存装置;
120~控制器;
122~电子熔丝区;
122-1至122-8~特定区域;
140~快闪存储器;
160-16N~区块;
160A、160Z…16NA、16NZ~页面;
180~随机存取存储器;
200~主机;
300~安全杂凑机制;
320~预定排序机制;
340~预定分割机制;
360~预定再压缩机制。
具体实施方式
为让本发明的目的、特征和优点能更明显易懂,下文特举出本发明的具体实施例,并配合附图,作详细说明如下。目的在于说明本发明的精神而非用以限定本发明的保护范围,应理解下列实施例可经由软件、硬件、固件、或上述任意组合来实现。
图1是显示根据本发明一实施例所述的数据储存装置100与主机200的示意图。在一实施例中,数据储存装置100包括控制器120、非挥发式存储器以及随机存取存储器(RAM)180。控制器120包括电子熔丝(efuse)区122。数据储存装置100耦接主机200以传送数据与指令、或是接收数据与指令。非挥发式存储器可以为反集闸快闪存储器(NAND Flash)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式存储器(Resistive RAM,RRAM)、自旋转移力矩随机存取存储器(Spin TransferTorque-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藉由安全杂凑机制(Secure Hash Algorithm,SHA)300以产生一杂凑数据10B。举例而言,固件数据10A是藉由SHA-256的运算以产生256bits长度的杂凑数据10B。要注意的是上述SHA仅是用于例示,而非用以限制本发明。
在一实施例中,控制器120接收固件数据10A,并且对固件数据10A进行安全杂凑机制300,而产生并接收杂凑数据10B。在另一实施例中,是由其他装置(例如主机200)对固件数据10A进行安全杂凑机制300以产生杂凑数据10B,并且控制器120接收该杂凑数据10B。
在一实施例中,控制器120将杂凑数据10B区分为多个数据群组,以一预定排序机制320对上述数据群组进行排序而产生排序杂凑数据10C。上述预定排序机制320是储存于控制器120的电子熔丝区122。举例而言,杂凑数据10B的大小为8个位元组(bytes),其内容如下所示:
Value | 0x47 | 0x54 | 0x00 | 0x28 | 0x01 | 0x47 | 0x38 | 0x36 |
Byte | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
表格1
表格1显示了杂凑数据10B的每一位元组的数据。在一实施例中,控制器120将上述8个位元组数据进行分组,而产生多个数据群组。举例而言,每个数据群组的大小为1byte,亦即每1byte的数据皆各自成为一个数据群组。在另一实施例中,每个数据群组的大小为2byte,亦即将2个1byte的数据是为一个数据群组。例如表格1中的0x54和0x47为一数据群组,表格1中的0x28和0x00为一另数据群组。要注意的是上述数据群组的大小仅是用于例示,而非用以限制本发明。本技术领域中具有通常知识者依据本发明的内容而设定其他大小的数据群组,仍不脱离本发明的精神与范畴。
在此实施例中,杂凑数据10B的大小为8bytes,在另一实施例中,杂凑数据10B的大小为32bytes。如果使用较复杂的安全杂凑机制300与预定排序机制320,或是另外使用其他机制(例如预定分割机制或预定再压缩机制),则电子熔丝区122需要较大储存容量来储存上述机制。上述预定分割机制以及预定再压缩机制将分别在图3以及图4中详细说明。
在此实施例中,每1byte的数据皆各自成为一个数据群组。换言之,表格1中的0x54为一数据群组,0x28为另一数据群组。然后,上述杂凑数据10B藉由预定排序机制320以数据群组为单位进行排序,而产生排序杂凑数据10C。要注意的是,预定排序机制300以表格化方式储存于电子熔丝区122。举例而言,预定排序机制300如表格2所示:
0 | 7 | 6 | 5 | 1 | 3 | 4 | 2 |
表格2
预定排序机制320改变了杂凑数据10B的内容的地址,如图9所示,0x54由Byte6的位置变更到Byte 5的位置,0x28由Byte 4的位置变更到Byte 1的位置,0x47由Byte2的位置变更到Byte 0的位置,最后产生了排序杂凑数据10C。
详细而言,本发明的数据储存方法提供了双重的保护机制,分别是安全杂凑机制300以及预定排序机制320。安全杂凑机制300所产生的杂凑数据10B(如表格1所示),会藉由预定排序机制320而重新排列成排序杂凑数据10C(如表格3所示)。如果有第三人要将不合法的固件数据更新至数据储存装置100,上述不合法的固件数据透过其他安全杂凑机制后所产生的杂凑数据将不同于本发明的排序杂凑数据10C。因此,控制器120可据以判断上述杂凑数据是不合法的,并且拒绝将该不合法的固件数据安装或更新至数据储存装置100。
图2B是显示根据本发明另一实施例所述的用于认证固件数据的数据储存方法的示意图。在此实施例中,排序杂凑数据10C与固件数据10A形成固件封包10X。然后,预定排序机制320对上述排序杂凑数据10C进行反向排序以产生杂凑数据10B。
在一实施例中,上述杂凑数据10B的产生方式或储存位置是由数据储存装置100的制造商所设定。由于第三人并未知悉上述杂凑数据10B的产生方式或储存位置,因此控制器120能够检测另一固件数据是否合法与正确。因此,本发明的数据储存方法能够避免安装或更新不合法的固件数据,以确保数据储存装置100不会受到恶意的破坏。
在一实施例中,预定排序机制320由数据储存装置100的制造商所设定。举例而言,第三人从不合法的手段而得知安全杂凑机制300,且知杂凑数据10B的储存位置,并将另一固件数据与杂凑数据10B形成固件封包,意图将不合法的另一固件数据更新至数据储存装置100。由于第三人并未得知预定排序机制320,所以固件封包包含的是杂凑数据10B,而非透过预定排序机制320而产生的排序杂凑数据10C。因此,控制器120可轻易地判断排序杂凑数据10C与杂凑数据10B的不同,进而判断上述固件数据是不合法的,并且拒绝将该不合法的固件数据安装或更新至数据储存装置100,以防止数据储存装置100受到恶意的破坏。
图2C是显示根据本发明一实施例所述的固件数据的示意图。如图2C所示,在一实施例中,排序杂凑数据10C是储存于固件数据10A之上。另外,固件数据10A的下则储存了与固件相关的其他数据10D。换言之,固件封包10X是包括固件数据10A、排序杂凑数据10C以及其他数据10D。举例而言,其他数据10D是包括固件版本、安全杂凑机制300的版本、以及其他客户所欲储存的安全资讯。可想而知地,排序杂凑数据10C亦可储存于固件数据10A之下。
当数据储存装置100收到固件封包10X时,控制器120会对固件封包10X的固件数据10A执行安全杂凑机制300以得到杂凑数据20B,然后再执行预定排序机制320以得到排序杂凑数据20C。在一实施例中,控制器120会比对排序杂凑数据20C以及固件封包10X所储存的排序杂凑数据10C。如果比对结果为两者相同,则表示固件数据10A为合法正确的。如果比对结果为两者不同,则表示固件数据10A是非法的。
在另一实施例中,储存装置100收到固件封包10X时,控制器120会对固件封包10X的固件数据10A执行安全杂凑机制300以得到杂凑数据20B。然后,控制器120会对固件封包10X所储存的排序杂凑数据10C执行反向预定排序机制320以得到杂凑数据10B。然后,控制器120比对杂凑数据20B以及固件封包10X所储存的杂凑数据10B。如果比对结果为两者相同,则表示固件数据10A为合法正确的。如果比对结果为两者不同,则表示固件数据10A是非法的。
图3是显示根据本发明一实施例所述的用于认证固件数据的数据储存方法的示意图。在此实施例中,数据储存方法还包括一预定分割机制340,以促进固件数据的认证并且提升安全性。如图3所示,预定分割机制340将固件数据10A分割为4个固件数据10A-1、10A-2、10A-3以及10A-4(亦即子固件数据)。换言之,4个固件数据10A-1、10A-2、10A-3以及10A-4的总和就是原本的固件数据10A。
要注意的是,上述4个固件数据10A-1~10A-4的分割仅是用于例示,而非用以限制本发明。本技术领域中具有通常知识者依据本发明的内容而分割为其他数量的固件数据,仍不脱离本发明的范畴。
然后,安全杂凑机制300分别将4个固件数据10A-1、10A-2、10A-3以及10A-4进行杂凑运算,并且分别产生4个杂凑数据10B-1、10B-2、10B-3以及10B-4(亦即子杂凑数据)。4个杂凑数据10B-1、10B-2、10B-3以及10B-4的总和就是杂凑数据10B。
在一实施例中,预定排序机制320分别将4个杂凑数据10B-1、10B-2、10B-3以及10B-4进行排序,并且分别产生4个排序杂凑数据10C-1、10C-2、10C-3以及10C-4。4个排序杂凑数据10C-1、10C-2、10C-3以及10C-4的总和即为排序杂凑数据10C。在另一实施例中,预定排序机制320是同时对全部的4个杂凑数据10B-1、10B-2、10B-3以及10B-4进行排序,而产生1个排序杂凑数据10C。
图4是显示根据本发明另一实施例所述的用于认证固件数据的数据储存方法的示意图。在此实施例中,数据储存方法还包括一预定再压缩机制360,对固件数据10A进行两次以上的加密与压缩,以促进固件数据10A的认证并且提升安全性。如图4所示,预定分割机制340将固件数据10A分割为4个固件数据10A-1、10A-2、10A-3以及10A-4。
然后,预定再压缩机制360对4个固件数据10A-1、10A-2、10A-3以及10A-4进行多重压缩(亦即两次以上的加密与压缩)的安排。如图4所示,预定再压缩机制360将固件数据10A-1与10A-2安排为一组,将固件数据10A-3与10A-4安排为另一组。然后,两组固件数据分别藉由安全杂凑机制300进行加密与压缩,并且分别产生2个杂凑数据10B-5以及10B-6(第一子杂凑数据)。换言之,杂凑数据10B-5是由固件数据10A-1与10A-2所产生,杂凑数据10B-6是由固件数据10A-3与10A-4所产生。
然后,如图4所示,2个杂凑数据10B-5以及10B-6再藉由安全杂凑机制300进行第2次的压缩,而产生杂凑数据10B-7(第二子杂凑数据)。然后,在此实施例中,预定排序机制320对杂凑数据10B-7进行排序,而产生1个排序杂凑数据10C-5。由于此实施例使用了2次以上的安全压缩机制300,因此能进一步提升辨识固件数据是否正确的可靠度与准确度。
要注意的是上述4个固件数据10A-1~10A-4的分割以及2次压缩仅是用于例示,而非用以限制本发明。本技术领域中具有通常知识者依据本发明的内容而分割为其他数量的固件数据或是进行其他次数的加密与压缩,仍不脱离本发明的范畴。
图5A是显示根据本发明一实施例所述的用于认证固件数据的电子熔丝区122的示意图。在一实施例中,电子熔丝区122是包括多个特定区域122-1~122-8,用以分别储存特定数据。如图5A所示,预定排序机制320是储存于特定区域122-1。换言之,特定区域122-1只能用于储存预定排序机制320,不能储存其他机制或其他数据。此外,上述预定排序机制320是一次性写入电子熔丝区122,并且只有控制器120才能加以读取。
图5B是显示根据本发明另一实施例所述的用于认证固件数据的电子熔丝区的示意图。在一些实施例中,数据储存方法除了预定排序机制320之外,还包括预定分割机制340以及预定再压缩机制360。要注意的是,如果上述机制的一者或是多者较为复杂,则可使用2个以上的特定区域来储存1个机制。如图5B所示,预定排序机制320储存于特定区域122-1,预定分割机制340储存于特定区域122-2,以及预定再压缩机制360储存于特定区域122-3。
图6是显示根据本发明一实施例所述的用于认证固件数据的数据储存方法的流程图。在步骤S602中,控制器120自电子熔丝区122中读取预定排序机制320。然后,在步骤S604中,控制器120取得固件数据及其相关的第一排序杂凑数据,其中,固件数据及第一排序杂凑数据是取自于固件封包。在步骤S606中,控制器120对固件数据执行安全杂凑机制300以产生第二杂凑数据。在步骤S608中,控制器120对第二杂凑数据执行预定排序机制320以产生第二排序杂凑数据。在步骤S610中,控制器120判断第二排序杂凑数据是否相同于第一排序杂凑数据。如果比对结果为否,则执行步骤S614,中止本发明用于认证固件数据的数据储存方法的执行。如果比对结果为是,则执行步骤S612,控制器120以固件数据对数据储存装置100进行固件的更新。由此可知,在步骤S610中,藉由判断第二排序杂凑数据是否相同于步骤S604所取得第一排序杂凑数据,就能够检测出所欲安装的固件数据,是否为数据储存装置100的制造商所认证的正确合法的固件数据。依据本发明的数据储存装置以及数据储存方法,能够判断上述固件数据是否正确与合法,以保护数据储存装置100。
在另一实施例中,步骤S608可变更为控制器120对第一排序杂凑数据执行反向预定排序机制320以产生第一杂凑数据;步骤S610可变更为控制器120判断第二杂凑数据是否相同于第一杂凑数据。此实施例与上述实施例的主要差异乃在于执行预定排序机制320的标的为何以及执行方式。如果标的是第二杂凑数据,则对第二杂凑数据执行预定排序机制320。如果标的是第一排序杂凑数据,则对第一排序杂凑数据执行反向预定排序机制320。其余步骤相同。
图7是显示根据本发明另一实施例所述的用于认证固件数据的数据储存方法的流程图。在步骤S702中,控制器120自电子熔丝区122取得预定排序机制320。在步骤S704中,控制器120接收固件数据及第一排序杂凑数据,其中,固件数据及第一排序杂凑数据取自于固件封包,且第一排序杂凑数据包括多第一子排序杂凑数据。在步骤S706中,控制器120以一预定分割机制将固件数据分割为多个第二子固件数据。在步骤S708中,控制器120对每一多个第二子固件数据执行安全杂凑机制300以产生多个第二子杂凑数据。在步骤S710中,控制器120对每一个第二子杂凑数据执行预定排序机制320以产生多个第二排序子杂凑数据。在步骤S712中,控制器120判断第二排序子杂凑数据是否相同于第一排序子杂凑数据。如果比对结果为否,则中止本发明用于认证固件数据的数据储存方法的执行。如果比对结果为是,则执行步骤S714,控制器120以固件数据对数据储存装置100进行固件的更新。
图8是显示根据本发明另一实施例所述的用于认证固件数据的数据储存方法的流程图。在此实施例中,步骤S802至S806相同于图7的步骤S702至S706,故此处不再赘述。在步骤S808中,控制器120对每一多个第二子固件数据执行预定再压缩机制360与安全杂凑机制300以产生多个第二子杂凑数据。上述预定再压缩机制360储存于电子熔丝区122的一第三特定区域。
然后,在步骤S810中,控制器120对每一个第二子杂凑数据执行安全杂凑机制300以产生第三子杂凑数据。在步骤S812中,控制器120对第三子杂凑数据执行预定排序机制320以产生第二排序子杂凑数据。在步骤S814中,控制器120判断判断第二排序子杂凑数据是否相同于第一排序子杂凑数据。如果比对结果为否,则执行步骤S818,中止本发明用于认证固件数据的数据储存方法的执行。如果比对结果为是,则执行步骤S816,控制器120以固件数据对数据储存装置100进行固件的更新。
在另一实施例中,固件数据10A亦可藉由加密机制,例如进阶加密标准(AdvancedEncryption Standard,AES)、或是RSA加密演算法,对固件数据10A进行加密而产生加密数据10B。
本发明的方法,或特定型态或其部份,可以以程序码的型态存在。程序码可储存于实体媒体,如软碟、光碟片、硬碟、或是任何其他机器可读取(如电脑可读取)储存媒体,亦或不限于外在形式的电脑程序产品,其中,当程序码被机器,如电脑载入且执行时,此机器变成用以参与本发明的装置。程序码也可透过一些传送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程序码被机器,如电脑接收、载入且执行时,此机器变成用以参与本发明的装置。当在一般用途处理单元实作时,程序码结合处理单元提供一操作类似于应用特定逻辑电路的独特装置。
在本说明书以及申请专利范围中的序数,例如“第一”、“第二”、“第三”等等,彼此之间并没有顺序上的先后关系,其仅用于标示区分两个具有相同名字的不同元件。本发明说明书中“耦接”一词泛指各种直接或间接的电性连接方式。本发明虽以较佳实施例揭示如上,然其并非用以限定本发明的范围,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当视后附的权利要求书界定为准。
Claims (19)
1.一种用于认证固件数据的数据储存装置,包括:
一快闪存储器;以及
一控制器,耦接该快闪存储器,用以接收一固件封包,该固件封包包括一固件数据与一第一排序杂凑数据,该控制器于接收该固件封包后利用一安全杂凑机制根据该固件数据产生一第二杂凑数据,其中于该控制器判断一第二排序杂凑数据相同于该第一排序杂凑数据时或于该控制器判断该第二杂凑数据相同于一第一杂凑数据时,该控制器允许将该固件数据更新至该控制器,其中该第二排序杂凑数据是由该控制器根据一预先设定排序机制对该第二杂凑数据进行排序所产生的,其中该第二排序杂凑数据不同于该第二杂凑数据,其中该第一杂凑数据是由该控制器根据该预定排序机制对该第一排序杂凑数据进行反向排序所产生的,以及其中该控制器还包括:
一电子熔丝区,用以写入该预定排序机制。
2.如权利要求1所述的数据储存装置,其特征在于,该预定排序机制是一次性写入该电子熔丝区,并且只有该控制器能够读取该电子熔丝区所储存的该预定排序机制。
3.如权利要求1所述的数据储存装置,其特征在于,该第一排序杂凑数据插置于第一固件数据中以形成该固件封包。
4.如权利要求1所述的数据储存装置,其特征在于,该第一杂凑数据的大小为M位元组,该电子熔丝区的大小是大于或等于该M位元组,M为大于1的正整数。
5.如权利要求4所述的数据储存装置,其特征在于,该预定排序机制是以表格化机制储存于该电子熔丝区的一第一特定区域。
6.如权利要求5所述的数据储存装置,其特征在于,这些数据群组的每一个的大小为一位元组或是N位元组,并且N小于M,N为大于1的正整数。
7.如权利要求5所述的数据储存装置,其特征在于,该控制器以一预定分割机制将该固件数据分割为多个子固件数据,并且藉由该安全杂凑机制分别压缩这些子固件数据的每一个,而分别产生多个第一子杂凑数据。
8.如权利要求7所述的数据储存装置,其特征在于,该预定分割机制储存于该电子熔丝区的一第二特定区域,该第二特定 区域不同于该第一特定区域。
9.如权利要求7所述的数据储存装置,其特征在于,该控制器还依据一预定再压缩机制,藉由该安全杂凑机制压缩这些第一子杂凑数据,而产生至少一第二子杂凑数据。
10.如权利要求9所述的数据储存装置,其特征在于,该预定再压缩机制储存于该电子熔丝区的一第三特定区域,该第三特定 区域不同于该第一特定区域以及第二特定区域。
11.一种用于认证固件数据的数据储存方法,适用于具有一快闪存储器以及一控制器的一数据储存装置,包括:
藉由该控制器接收一固件封包,该固件封包包括一固件数据与一第一排序杂凑数据;
利用一安全杂凑机制根据该固件数据产生一第二杂凑数据;以及
于判断一第二排序杂凑数据相同于该第一排序杂凑数据时或于判断该第二杂凑数据相同于一第一杂凑数据时,允许将该固件数据更新至该控制器;
其中该第二排序杂凑数据是根据一预定排序机制对该第二杂凑数据进行排序所产生的,且该第二排序杂凑数据不同于该第二杂凑数据;以及
其中该第一杂凑数据是藉由根据该预定排序机制对该第一排序杂凑数据进行反向排序所产生的。
12.如权利要求11所述的数据储存方法,其特征在于,该预定排序机制一次性写入该控制器的一电子熔丝区的一第一特定区域,并且只有该控制器能够读取该电子熔丝区所储存的该预定排序机制。
13.如权利要求11所述的数据储存方法,其特征在于,该第一排序杂凑数据插置于第一固件数据中以形成一固件封包。
14.如权利要求11所述的数据储存方法,其特征在于,该第一杂凑数据的大小为M位元组,该控制器的一电子熔丝区的大小大于或等于该M位元组,M为大于1的正整数。
15.如权利要求14所述的数据储存方法,其特征在于,这些数据群组的每一个的大小为一位元组或是N位元组,并且N小于M,N为大于1的正整数。
16.如权利要求12所述的数据储存方法,其特征在于,还包括:
以一预定分割机制将该固件数据分割为多个子固件数据;以及
藉由该安全杂凑机制分别压缩这些子固件数据的每一个,而分别产生多个第一子杂凑数据,其中该预定分割机制储存于该电子熔丝区的一第二特定区域,该第二特定 区域不同于该第一特定区域。
17.如权利要求16所述的数据储存方法,其特征在于,还包括:
依据一预定再压缩机制,藉由该安全杂凑机制压缩这些第一子杂凑数据,而产生至少一第二子杂凑数据,其中该预定再压缩机制储存于该电子熔丝区的一第三特定区域,该第三特定 区域不同于该第一特定区域以及该第二特定区域。
18.一种用于认证固件数据的数据储存装置,包括:
一控制器,用以一固件封包,该固件封包包括一固件数据与一第一排序杂凑数据,该控制器于接收该固件封包后利用一安全杂凑机制根据该固件数据产生一第二杂凑数据,其中于该控制器判断一第二排序杂凑数据相同于该第一排序杂凑数据时或于该控制器判断该第二杂凑数据相同于一第一杂凑数据时,该控制器允许将该固件数据更新至该控制器,其中该第二排序杂凑数据是由该控制器分割该第二杂凑数据成多个数据群组并且根据一预定排序机制对该第二杂凑数据进行排序所产生的,其中该第二排序杂凑数据不同于该第二杂凑数据,其中该第一杂凑数据是由该控制器根据该预定排序机制对该第一排序杂凑数据进行反向排序所产生的,以及该控制器还包括:
一电子熔丝区,用以储存该预定排序机制以及该第一排序杂凑数据。
19.如权利要求18所述的数据储存装置,其特征在于,该预定排序机制是由该数据储存装置的制造商所设定。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106117015 | 2017-05-23 | ||
TW106117015A TWI700627B (zh) | 2017-05-23 | 2017-05-23 | 認證韌體資料之資料儲存裝置與資料儲存方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108958641A CN108958641A (zh) | 2018-12-07 |
CN108958641B true CN108958641B (zh) | 2021-07-13 |
Family
ID=64401209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710522641.7A Active CN108958641B (zh) | 2017-05-23 | 2017-06-30 | 认证固件数据的数据储存装置与数据储存方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10579348B2 (zh) |
CN (1) | CN108958641B (zh) |
TW (1) | TWI700627B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874401A (zh) * | 2018-03-28 | 2018-11-23 | 惠州市德赛西威汽车电子股份有限公司 | 一种emmc存储构件批量灌装地图数据的方法及设备 |
US11222490B2 (en) * | 2019-06-14 | 2022-01-11 | International Business Machines Corporation | Physical modification of circuits for automotive security |
CN112256338B (zh) * | 2020-10-27 | 2023-12-05 | 记忆科技(深圳)有限公司 | Soc启动方法、装置、计算机设备及存储介质 |
CN112416824B (zh) * | 2020-12-03 | 2024-02-09 | 上海集成电路研发中心有限公司 | efuse读写控制器、芯片、电子设备及控制方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136112A (zh) * | 2011-12-01 | 2013-06-05 | 慧荣科技股份有限公司 | 快闪存储器储存阵列控制方法、与快闪存储器 |
CN104346232A (zh) * | 2013-08-06 | 2015-02-11 | 慧荣科技股份有限公司 | 数据储存装置及其限制存取方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FI20080534A0 (fi) * | 2008-09-22 | 2008-09-22 | Envault Corp Oy | Turvallinen ja valikoidusti kiistettävissä oleva tiedostovarasto |
JP5736994B2 (ja) * | 2011-06-15 | 2015-06-17 | 株式会社リコー | 情報処理装置、正当性検証方法、及びプログラム |
CN102750478B (zh) | 2012-06-12 | 2016-03-30 | 福建睿矽微电子科技有限公司 | 一种具备安全授权转移及锁定技术的安全芯片 |
US9910659B2 (en) | 2012-11-07 | 2018-03-06 | Qualcomm Incorporated | Methods for providing anti-rollback protection of a firmware version in a device which has no internal non-volatile memory |
US9390246B2 (en) * | 2013-09-25 | 2016-07-12 | Intel Corporation | Creating secure original equipment manufacturer (OEM) identification |
DE112013007574T5 (de) | 2013-11-06 | 2016-08-18 | Mitsubishi Electric Corporation | Softwareaktualisierungsvorrichtung und Software-Aktualisierungsprogramm |
TWI598816B (zh) | 2014-11-26 | 2017-09-11 | 慧榮科技股份有限公司 | 可更新韌體之電子裝置及其韌體下載方法 |
-
2017
- 2017-05-23 TW TW106117015A patent/TWI700627B/zh active
- 2017-06-30 CN CN201710522641.7A patent/CN108958641B/zh active Active
- 2017-12-29 US US15/858,116 patent/US10579348B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136112A (zh) * | 2011-12-01 | 2013-06-05 | 慧荣科技股份有限公司 | 快闪存储器储存阵列控制方法、与快闪存储器 |
CN104346232A (zh) * | 2013-08-06 | 2015-02-11 | 慧荣科技股份有限公司 | 数据储存装置及其限制存取方法 |
Also Published As
Publication number | Publication date |
---|---|
TWI700627B (zh) | 2020-08-01 |
TW201901404A (zh) | 2019-01-01 |
CN108958641A (zh) | 2018-12-07 |
US10579348B2 (en) | 2020-03-03 |
US20180341469A1 (en) | 2018-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109783124B (zh) | 认证固件数据的数据储存装置与数据储存方法 | |
CN108958641B (zh) | 认证固件数据的数据储存装置与数据储存方法 | |
CN112313632B (zh) | 被管理的nand装置中的主机加速操作 | |
US11100011B2 (en) | Flash translation layer with hierarchical security | |
CN111475871A (zh) | 存储器系统 | |
US10339318B2 (en) | Semiconductor memory system and operating method thereof | |
US20220358221A1 (en) | Local ledger block chain for secure electronic control unit updates | |
TWI678658B (zh) | 資料儲存裝置之韌體更新之方法 | |
CN109445705B (zh) | 固件认证方法及固态硬盘 | |
US20220158823A1 (en) | Validating data stored in memory using cryptographic hashes | |
CN113632084B (zh) | 运行时代码执行验证方法、设备及系统 | |
CN114253570A (zh) | 控制器、存储设备及存储设备的固件更新方法 | |
US11797194B2 (en) | Method and apparatus for performing access management of memory device in host performance booster architecture with aid of device side table information | |
WO2020197824A1 (en) | Data attestation in memory | |
CN113796045B (zh) | 确认车辆的电子控制单元 | |
US20240330009A1 (en) | Boot processes for storage systems | |
KR20210132730A (ko) | 메모리를 블록 체인의 블록으로 사용하는 방법 | |
KR20210132741A (ko) | 중개 디바이스와 네트워크 간의 보안 통신 | |
CN113826071A (zh) | 空中更新确认 | |
TWI546667B (zh) | 智慧卡管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
US20230214331A1 (en) | Micro-controller chip and access method thereof | |
US20220138114A1 (en) | Using memory as a block in a block chain | |
US20230214144A1 (en) | Electric device and method for emulating a non-volatile memory | |
US20230384951A1 (en) | Cryptographic block locking in a non-volatile memory device | |
US11620108B1 (en) | Random number generation systems and methods |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |