CN113326512A - 电子设备及其mcu固件保护方法 - Google Patents
电子设备及其mcu固件保护方法 Download PDFInfo
- Publication number
- CN113326512A CN113326512A CN202110557071.1A CN202110557071A CN113326512A CN 113326512 A CN113326512 A CN 113326512A CN 202110557071 A CN202110557071 A CN 202110557071A CN 113326512 A CN113326512 A CN 113326512A
- Authority
- CN
- China
- Prior art keywords
- key
- data
- firmware
- mcu
- key code
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000004519 manufacturing process Methods 0.000 claims abstract description 58
- 238000012360 testing method Methods 0.000 claims abstract description 51
- 238000003860 storage Methods 0.000 claims description 12
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000006854 communication Effects 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及了一种电子设备及其MCU固件保护方法,该MCU固件保护方法包括:在电子设备的产测阶段,接收产测工具发送的固件密文,并将其存储至FLASH中,其中,所述产测工具以所述MCU的ID为密钥,对所述MCU固件的关键代码和/或关键数据进行加密以生成所述固件密文;在电子设备的使用阶段,若需要运行所述关键代码或使用所述关键数据,则以自身ID为密钥,对所述FLASH中所存储的所述固件密文进行解密,以获取所述关键代码或所述关键数据,并运行所述关键代码或使用所述关键数据。实施本发明的技术方案,既保证了本电子设备的MCU的正常运行,又防止了破解者直接复制MCU固件。
Description
技术领域
本发明涉及数据安全领域,尤其涉及一种电子设备及其MCU固件保护方法。
背景技术
MCU固件的保护,往往会采取多级保护:第一级是读保护,即,防止别人读取;第二级是代码级保护,即,即使别人读取了本MCU的程序,也无法复制到另一颗MCU上正常执行。目前,代码级保护的主流做法是:运行时比较MCU的唯一ID(例如,STM32的96比特的唯一ID),若不是本MCU自身的ID就不执行,这种方法虽然可起到一定的保护作用,但对于价值高的MCU固件,依然很容易通过反汇编的方式破解,例如,对于ARM指令集,可通过找到比较唯一ID的汇编代码位置,然后将4比特的条件码修改为“AL,无条件执行”即可实现破解,因此安全性依然不高。
发明内容
本发明要解决的技术问题在于,针对现有技术存在的MCU固件安全性不高的缺陷,提供一种电子设备的MCU固件保护方法。
本发明解决其技术问题所采用的技术方案是:构造一种电子设备的MCU固件保护方法,包括:
步骤S10.在电子设备的产测阶段,接收产测工具发送的固件密文,并将其存储至FLASH中,其中,所述产测工具以所述MCU的ID为密钥,对所述MCU固件的关键代码和/或关键数据进行加密以生成所述固件密文;
步骤S20.在电子设备的使用阶段,若需要运行所述关键代码或使用所述关键数据,则以自身ID为密钥,对所述FLASH中所存储的所述固件密文进行解密,以获取所述关键代码或所述关键数据,并运行所述关键代码或使用所述关键数据。
优选地,在所述步骤S20中,在获取所述关键代码或所述关键数据之后,还包括:
将所述关键代码或所述关键数据存储至RAM中。
优选地,所述将所述关键代码或所述关键数据存储至RAM中,包括:
在所述RAM中随机选择一存储地址,并将所述关键代码或所述关键数据存储至所述存储地址。
优选地,所述步骤S20包括:
步骤S21.若需要运行所述关键代码或使用所述关键数据,则判断RAM中是否存储有解密后的所述关键代码或所述关键数据,若是,在执行步骤S22;若否,则执行步骤S23;
步骤S22.直接对所述RAM中所存储的所述关键代码进行运行或所述关键数据进行使用,然后执行步骤S24;
步骤S23.以自身ID为密钥,对所述FLASH中所存储的所述固件密文进行解密,以获取所述关键代码或所述关键数据,并将其存储至RAM中,而且,运行所述关键代码或使用所述关键数据;
步骤S24.对所述关键代码的当前运行次数或所述关键数据的当前使用次数进行更新,并判断当前运行次数或当前使用次数是否达到预设次数值,若是,则执行步骤S25;若否,则结束;
步骤S25.对RAM中所存储的解密后的所述关键代码或所述关键数据进行清除。
优选地,所述步骤S10包括:
步骤S11.接收产测工具发送的ID读取指令;
步骤S12.向所述产测工具发送MCU的ID,以使所处产测工具以所述MCU的ID为密钥,对所述MCU固件的关键代码和/或关键数据进行加密以生成所述固件密文;
步骤S13.接收所述产测工具发送的所述固件密文,并将其存储至FLASH中。
优选地,在电子设备的产测阶段,所述产测工具通过以下方式生成固件密文:
以所述MCU的ID为密钥,使用XOR算法对所述关键代码和/或关键数据的至少一部分进行加密,以生成固件密文;
在电子设备的使用阶段,MCU通过以下方式获取所述关键代码或所述关键数据:
以自身ID为密钥,使用XOR算法对所述固件密文的至少一部分进行进行解密,以获取所述关键代码或所述关键数据。
优选地,在电子设备的产测阶段,所述产测工具通过以下方式生成固件密文:
以所述MCU的ID为密钥,使用XOR算法对所述关键代码和/或关键数据的至少一部分进行加密,以获取第一中间数据;
对所述第一中间数据进行FEC编码,以获取第二中间数据;
生成随机数据,并按预设规则将所述随机数据填充至所述第二中间数据中以生成固件密文;
在电子设备的使用阶段,MCU通过以下方式获取所述关键代码或所述关键数据:
按预设规则从所述固件密文中挑选出其中的随机数据,并丢弃所述随机数据,以获取第二中间数据;
对所述第二中间数据进行FEC解码,以获取第一中间数据;
以自身ID为密钥,使用XOR算法对所述第一中间数据的一部分进行进行解密,以获取所述关键代码或所述关键数据。
优选地,所述对所述第一中间数据进行FEC编码,以获取第二中间数据,包括:
对所述第一中间数据进行FEC编码,以获取编码数据,其中,所述编码数据的数据长度为m;
在所述编码数据的m位数据中随机选择其中的n位数据,并将其替换为随机数,以获取第二中间数据,其中,n<m-l,l为所述关键代码和/或关键数据的的数据长度。
本发明还构造一种电子设备,包括MCU、FLASH,其中,
所述FLASH,用于存储固件密文,其中,所述固件密文是在电子设备的产测阶段,产测工具以所述MCU的ID为密钥,对所述MCU固件的关键代码和/或关键数据进行加密所生成的;
所述MCU,用于在电子设备的使用阶段,若需要运行所述关键代码或使用所述关键数据,则以自身ID为密钥,对所述FLASH中所存储的所述固件密文进行解密,以获取所述关键代码或所述关键数据,并运行所述关键代码或使用所述关键数据。
优选地,还包括RAM,而且,
所述MCU,用于在获取到所述关键代码或所述关键数据之后,在所述RAM中随机选择一存储地址,并将所述关键代码或所述关键数据存储至所述存储地址。
本发明所提供的技术方案,FLASH中存储的是固件密文,而该固件密文是在电子设备的产测阶段由产测工具以MCU的ID为密钥,对MCU固件的关键代码和/或关键数据进行加密而生成的。在电子设备的使用阶段,MCU只有在需要运行该关键代码或使用该关键数据时,才以自身ID为密钥,对FLASH中所存储的固件密文进行解密,从而获取到所需要的关键代码或关键数据,然后再运行该关键代码或使用该关键数据。这样,即使破解者获取到了FLASH中所存储的数据(固件密文),由于解密该固件密文需要用到原MCU的ID,而破解者无法知晓原MCU的ID,也无法知晓解密算法,所以依然无法进行反汇编,也就无法复制MCU固件。因此,既保证了本电子设备的MCU的正常运行,又防止了破解者直接复制MCU固件。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图中:
图1是本发明电子设备的MCU固件保护方法实施例一的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明电子设备的MCU固件保护方法实施例一的流程图,该MCU固件防护方法包括:
步骤S10.在电子设备的产测阶段,接收产测工具发送的固件密文,并将其存储至FLASH中,其中,所述产测工具以所述MCU的ID为密钥,对所述MCU固件的关键代码和/或关键数据进行加密以生成所述固件密文;
在该步骤中,需说明的是,电子设备固件部分的生产分两个阶段:一、量产固件烧入阶段;二、产测阶段。
在量产固件烧入阶段,为了支持量产时大规模的固件的并行烧入,因此不做唯一的ID区分,对各MCU来说所烧入的固件都完全相同,同时,这也更方便固件的管控,因为现在电子设备的生产,往往采用外协的模式,研发与生产分离,固件有可能被工厂泄露出去。在量产固件烧入之后,MCU固件并不完整,还缺失部分关键数据及关键代码,此时,MCU只能运行一些普通功能,例如,各组件的测试等。
在产测阶段,需逐个测试电子设备的各功能,除验证功能外,还会基于MCU的唯一ID,生成并写入加密后的关键数据和关键代码,具体地,产测工具在对关键代码和部分关键数据进行加密时,以MCU的唯一ID作为KEY,其中,关键代码为“位置无关代码(position-independent code,PIC)”;关键数据则是一些正常运行所需的必要数据,比如,固件用到的一些常数值,具体可为:基于MCU的唯一ID采用相应的算法(例如Hash算法)生成的多个私有密钥,这些关键数据在某些场景会被MCU固件使用到,所以需要MCU能对其解密。这样,由于在产测阶段补齐了MCU固件的关键代码和/或关键数据,固件就成为一个完整的固件,而且是加密的。
步骤S20.在电子设备的使用阶段,若需要运行所述关键代码或使用所述关键数据,则以自身ID为密钥,对所述FLASH中所存储的所述固件密文进行解密,以获取所述关键代码或所述关键数据,并运行所述关键代码或使用所述关键数据。
在该步骤中,对于本电子设备的MCU,由于其知晓密钥(MCU的ID)及解密算法,所以可在运行时对加密后的MCU固件(包含关键代码和/或关键数据)进行正常解密,并加载执行。而对于非法破解者,即使其读取了FLASH中存储的数据(固件密文),由于解密该固件密文需要用到原MCU的ID,而其无法知晓原MCU的ID,也无法知晓解密算法,所以依然无法对其进行反汇编,也就无法直接复制MCU固件。这样,既保证了本电子设备的MCU的正常运行,又防止了破解者直接复制产品固件。
进一步地,在一个可选实施例中,在步骤S20中,在获取所述关键代码或所述关键数据之后,还包括:将所述关键代码或所述关键数据存储至RAM中。在该实施例中,当MCU第一次需要运行关键代码或使用关键数据时,可以自身ID为密钥对FLASH中所存储的固件密文进行解密,从而获取所需要的关键代码或关键数据,并运行该关键代码或使用该关键数据。当MCU需要再次运行关键代码或使用关键数据时,直接对RAM中所存储的关键代码进行运行或关键数据进行使用即可。这样,由于RAM具有掉电后数据丢失的特性,所以非法破解者是无法读取RAM中的数据的,因此保证了关键代码和/或关键数据的安全性,同时,在后续运行时,由于可直接执行RAM中的关键代码或使用RAM中的关键数据,而不用每次单独解密再执行,所以也保证了运行效率。
进一步地,在一个可选实施例中,在步骤S20中,在存储解密后的关键代码或关键数据时,可在RAM中随机选择一存储地址,并将关键代码或关键数据存储至该存储地址。这样,由于解密后的关键代码(PIC代码在任意位置都可执行)或关键数据是存储到一随机RAM地址,所以,可进一步提高关键代码和/或关键数据的安全性。
进一步地,在一个可选实施例中,步骤S20包括:
步骤S21.若需要运行所述关键代码或使用所述关键数据,则判断RAM中是否存储有解密后的所述关键代码或所述关键数据,若是,在执行步骤S22;若否,则执行步骤S23;
步骤S22.直接对所述RAM中所存储的所述关键代码进行运行或所述关键数据进行使用,然后执行步骤S24;
步骤S23.以自身ID为密钥,对所述FLASH中所存储的所述固件密文进行解密,以获取所述关键代码或所述关键数据,并将其存储至RAM中,而且,运行所述关键代码或使用所述关键数据;
步骤S24.对所述关键代码的当前运行次数或所述关键数据的当前使用次数进行更新,并判断当前运行次数或当前使用次数是否达到预设次数值,若是,则执行步骤S25;若否,则结束,其中,所述关键代码的当前运行次数或所述关键数据的当前使用次数的初始值为0;
步骤S25.对RAM中所存储的解密后的所述关键代码或所述关键数据进行清除。
在该实施例中,RAM中所存储的解密后的关键代码或关键数据在运行一定次数后自动清除掉,下次需要运行时再重新解密并在RAM中加载,因此,可在关键代码和/或关键数据的安全性与运行效率之间实现最佳平衡。
进一步地,在一个可选实施例中,步骤S10包括:
步骤S11.接收产测工具发送的ID读取指令;
步骤S12.向所述产测工具发送MCU的ID,以使所处产测工具以所述MCU的ID为密钥,对所述MCU固件的关键代码和/或关键数据进行加密以生成所述固件密文;
步骤S13.接收所述产测工具发送的所述固件密文,并将其存储至FLASH中。
在该实施例中,在产测阶段,产测工具与电子设备的通信过程为:产测工具发出ID读取指令;电子设备返回MCU的唯一ID;产测工具以MCU的ID为密钥,将MCU固件的关键代码和部分关键数据加密,并写入到FLASH中。
进一步地,在一个可选实施例中,在电子设备的产测阶段,产测工具通过以下方式生成固件密文:以所述MCU的ID为密钥,使用XOR算法对所述关键代码和/或关键数据的至少一部分进行加密,以生成固件密文。在电子设备的使用阶段,MCU通过以下方式获取所述关键代码或所述关键数据:以自身ID为密钥,使用XOR算法对所述固件密文的至少一部分进行进行解密,以获取所述关键代码或所述关键数据。在该实施例中,产测工具及MCU均使用XOR算法对关键代码或关键数据进行加解密。
进一步地,在一个可选实施例中,在电子设备的产测阶段,所述产测工具通过以下方式生成固件密文:
以所述MCU的ID为密钥,使用XOR算法对所述关键代码和/或关键数据的至少一部分进行加密,以获取第一中间数据;
对所述第一中间数据进行FEC编码,以获取第二中间数据;
生成随机数据,并按预设规则将所述随机数据填充至所述第二中间数据中以生成固件密文;
在电子设备的使用阶段,MCU通过以下方式获取所述关键代码或所述关键数据:
按预设规则从所述固件密文中挑选出其中的随机数据,并丢弃所述随机数据,以获取第二中间数据;
对所述第二中间数据进行FEC解码,以获取第一中间数据;
以自身ID为密钥,使用XOR算法对所述第一中间数据的一部分进行进行解密,以获取所述关键代码或所述关键数据。
在该实施例中,在对关键代码和/或关键数据进行加密时,先使用XOR算法对其中至少一部分关键代码和/或关键数据进行加密,再基于随机数的保护机制,在FEC编码后的数据中加入随机数据以作为最终的密文。相应地,在对关键代码和/或关键数据进行解密时,先挑选并丢弃掉其中的随机数据,再进行FEC解码,最后使用XOR算法解密,获得所需要的关键代码和/或关键数据。这种方法增加了破解的难度,大幅提升了算法的安全性,尤其适合于算力有限的MCU。
进一步地,在对所述第一中间数据进行FEC编码,以获取第二中间数据,包括:
对所述第一中间数据进行FEC编码,以获取编码数据,其中,所述编码数据的数据长度为m;
在所述编码数据的m位数据中随机选择其中的n位数据,并将其替换为随机数,以获取第二中间数据,其中,n<m-l,l为所述关键代码和/或关键数据的的数据长度。
在该实施例中,在进行FEC编码(例如采用Reed-solomon编码)后,所得到编码数据可标记为M,其数据位长度记为m,则编码数据M中的冗余数据的数据长度c为:c=m-l,该冗余数据能够纠错的数据位长度记为n,显然有n<c,所以,可在编码M数据的总计m位中任意选择其中的n位数据,替换为随机数。而且,在解码时,因为FEC能纠错n位数据,所以可直接得到第一中间数据,因此,可进一步提高关键代码或关键数据的安全性。
本发明还构造一种电子设备,该电子设备包括MCU、FLASH,其中,FLASH用于存储固件密文,其中,所述固件密文是在电子设备的产测阶段,产测工具以所述MCU的ID为密钥,对所述MCU固件的关键代码和/或关键数据进行加密所生成的;MCU用于在电子设备的使用阶段,若需要运行所述关键代码或使用所述关键数据,则以自身ID为密钥,对所述FLASH中所存储的所述固件密文进行解密,以获取所述关键代码或所述关键数据,并运行所述关键代码或使用所述关键数据。
进一步地,本发明的电子设备还包括RAM,而且,MCU用于在获取到所述关键代码或所述关键数据之后,在所述RAM中随机选择一存储地址,并将所述关键代码或所述关键数据存储至所述存储地址。
进一步地,MCU还用于在判断所述关键代码的当前运行次数或所述关键数据的当前使用次数达到预设次数值时,对RAM中所存储的解密后的所述关键代码或所述关键数据进行清除。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何纂改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (10)
1.一种电子设备的MCU固件保护方法,其特征在于,包括:
步骤S10.在电子设备的产测阶段,接收产测工具发送的固件密文,并将其存储至FLASH中,其中,所述产测工具以所述MCU的ID为密钥,对所述MCU固件的关键代码和/或关键数据进行加密以生成所述固件密文;
步骤S20.在电子设备的使用阶段,若需要运行所述关键代码或使用所述关键数据,则以自身ID为密钥,对所述FLASH中所存储的所述固件密文进行解密,以获取所述关键代码或所述关键数据,并运行所述关键代码或使用所述关键数据。
2.根据权利要求1所述的电子设备的MCU固件保护方法,其特征在于,在所述步骤S20中,在获取所述关键代码或所述关键数据之后,还包括:
将所述关键代码或所述关键数据存储至RAM中。
3.根据权利要求2所述的电子设备的MCU固件保护方法,其特征在于,所述将所述关键代码或所述关键数据存储至RAM中,包括:
在所述RAM中随机选择一存储地址,并将所述关键代码或所述关键数据存储至所述存储地址。
4.根据权利要求2所述的电子设备的MCU固件保护方法,其特征在于,所述步骤S20包括:
步骤S21.若需要运行所述关键代码或使用所述关键数据,则判断RAM中是否存储有解密后的所述关键代码或所述关键数据,若是,在执行步骤S22;若否,则执行步骤S23;
步骤S22.直接对所述RAM中所存储的所述关键代码进行运行或所述关键数据进行使用,然后执行步骤S24;
步骤S23.以自身ID为密钥,对所述FLASH中所存储的所述固件密文进行解密,以获取所述关键代码或所述关键数据,并将其存储至RAM中,而且,运行所述关键代码或使用所述关键数据;
步骤S24.对所述关键代码的当前运行次数或所述关键数据的当前使用次数进行更新,并判断当前运行次数或当前使用次数是否达到预设次数值,若是,则执行步骤S25;若否,则结束;
步骤S25.对RAM中所存储的解密后的所述关键代码或所述关键数据进行清除。
5.根据权利要求1-4任一项所述的电子设备的MCU固件保护方法,其特征在于,所述步骤S10包括:
步骤S11.接收产测工具发送的ID读取指令;
步骤S12.向所述产测工具发送MCU的ID,以使所处产测工具以所述MCU的ID为密钥,对所述MCU固件的关键代码和/或关键数据进行加密以生成所述固件密文;
步骤S13.接收所述产测工具发送的所述固件密文,并将其存储至FLASH中。
6.根据权利要求5所述的电子设备的MCU固件保护方法,其特征在于,
在电子设备的产测阶段,所述产测工具通过以下方式生成固件密文:
以所述MCU的ID为密钥,使用XOR算法对所述关键代码和/或关键数据的至少一部分进行加密,以生成固件密文;
在电子设备的使用阶段,MCU通过以下方式获取所述关键代码或所述关键数据:
以自身ID为密钥,使用XOR算法对所述固件密文的至少一部分进行进行解密,以获取所述关键代码或所述关键数据。
7.根据权利要求5所述的电子设备的MCU固件保护方法,其特征在于,
在电子设备的产测阶段,所述产测工具通过以下方式生成固件密文:
以所述MCU的ID为密钥,使用XOR算法对所述关键代码和/或关键数据的至少一部分进行加密,以获取第一中间数据;
对所述第一中间数据进行FEC编码,以获取第二中间数据;
生成随机数据,并按预设规则将所述随机数据填充至所述第二中间数据中以生成固件密文;
在电子设备的使用阶段,MCU通过以下方式获取所述关键代码或所述关键数据:
按预设规则从所述固件密文中挑选出其中的随机数据,并丢弃所述随机数据,以获取第二中间数据;
对所述第二中间数据进行FEC解码,以获取第一中间数据;
以自身ID为密钥,使用XOR算法对所述第一中间数据的一部分进行进行解密,以获取所述关键代码或所述关键数据。
8.根据权利要求7所述的电子设备的MCU固件保护方法,其特征在于,所述对所述第一中间数据进行FEC编码,以获取第二中间数据,包括:
对所述第一中间数据进行FEC编码,以获取编码数据,其中,所述编码数据的数据长度为m;
在所述编码数据的m位数据中随机选择其中的n位数据,并将其替换为随机数,以获取第二中间数据,其中,n<m-l,l为所述关键代码和/或关键数据的的数据长度。
9.一种电子设备,其特征在于,包括MCU、FLASH,其中,
所述FLASH,用于存储固件密文,其中,所述固件密文是在电子设备的产测阶段,产测工具以所述MCU的ID为密钥,对所述MCU固件的关键代码和/或关键数据进行加密所生成的;
所述MCU,用于在电子设备的使用阶段,若需要运行所述关键代码或使用所述关键数据,则以自身ID为密钥,对所述FLASH中所存储的所述固件密文进行解密,以获取所述关键代码或所述关键数据,并运行所述关键代码或使用所述关键数据。
10.根据权利要求9所述的电子设备,其特征在于,还包括RAM,而且,
所述MCU,用于在获取到所述关键代码或所述关键数据之后,在所述RAM中随机选择一存储地址,并将所述关键代码或所述关键数据存储至所述存储地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110557071.1A CN113326512A (zh) | 2021-05-21 | 2021-05-21 | 电子设备及其mcu固件保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110557071.1A CN113326512A (zh) | 2021-05-21 | 2021-05-21 | 电子设备及其mcu固件保护方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113326512A true CN113326512A (zh) | 2021-08-31 |
Family
ID=77416307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110557071.1A Pending CN113326512A (zh) | 2021-05-21 | 2021-05-21 | 电子设备及其mcu固件保护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113326512A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103839011A (zh) * | 2014-03-11 | 2014-06-04 | 福建伊时代信息科技股份有限公司 | 涉密文件的保护方法及装置 |
CN106503494A (zh) * | 2016-11-05 | 2017-03-15 | 福建省北峰电讯科技有限公司 | 一种带有片上闪存微控制器的固件保护单元及保护方法 |
CN108256346A (zh) * | 2016-12-28 | 2018-07-06 | 中移(杭州)信息技术有限公司 | 关键数据的保护方法、加密保护装置及嵌入式系统装置 |
CN108491215A (zh) * | 2018-02-11 | 2018-09-04 | 苏州光之翼智能科技有限公司 | 一种无人机固件保护系统 |
CN108762791A (zh) * | 2018-06-07 | 2018-11-06 | 深圳市元征科技股份有限公司 | 固件升级方法及装置 |
CN110569633A (zh) * | 2012-10-25 | 2019-12-13 | 英特尔公司 | 固件中的防盗 |
-
2021
- 2021-05-21 CN CN202110557071.1A patent/CN113326512A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110569633A (zh) * | 2012-10-25 | 2019-12-13 | 英特尔公司 | 固件中的防盗 |
CN103839011A (zh) * | 2014-03-11 | 2014-06-04 | 福建伊时代信息科技股份有限公司 | 涉密文件的保护方法及装置 |
CN106503494A (zh) * | 2016-11-05 | 2017-03-15 | 福建省北峰电讯科技有限公司 | 一种带有片上闪存微控制器的固件保护单元及保护方法 |
CN108256346A (zh) * | 2016-12-28 | 2018-07-06 | 中移(杭州)信息技术有限公司 | 关键数据的保护方法、加密保护装置及嵌入式系统装置 |
CN108491215A (zh) * | 2018-02-11 | 2018-09-04 | 苏州光之翼智能科技有限公司 | 一种无人机固件保护系统 |
CN108762791A (zh) * | 2018-06-07 | 2018-11-06 | 深圳市元征科技股份有限公司 | 固件升级方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8694467B2 (en) | Random number based data integrity verification method and system for distributed cloud storage | |
KR101961843B1 (ko) | 통계적 프로세싱 | |
US9537657B1 (en) | Multipart authenticated encryption | |
CN101213814B (zh) | 安全修补系统 | |
US20060005046A1 (en) | Secure firmware update procedure for programmable security devices | |
JP6882678B2 (ja) | 衝突検出システムおよび衝突検出方法 | |
US8127135B2 (en) | Changing of shared encryption key | |
CN111984978B (zh) | 一种高扩展性密码加密存储方法 | |
KR101216995B1 (ko) | 인덱스 테이블 기반 코드 암호화 및 복호화 장치 및 그 방법 | |
JP2004534333A (ja) | コンピュータネットワークにおける分散データ処理に関する統合された保護方法及びシステム | |
CN108848064B (zh) | 授权管理方法及系统 | |
RU2011131740A (ru) | Способ удаленного обновления встроенного программного обеспечения | |
US20160018996A1 (en) | Storing and accessing data | |
KR101913644B1 (ko) | 메시지 인증이 가능한 부호 기반 암호화 장치 및 방법 | |
WO2007072615A1 (ja) | 認証システム及び認証対象装置 | |
CN110879875A (zh) | 硬件加密装置、嵌入式系统版权保护系统及方法 | |
Kohno | Attacking and repairing the WinZip encryption scheme | |
US11516024B2 (en) | Semiconductor device, update data-providing method, update data-receiving method, and program | |
JP2007527561A (ja) | コンピュータ・デバイス上でのソフトウェアの利用を制御するためのシステム及び方法 | |
JP2016076261A (ja) | セキュアテストモードを有するメモリデバイスとその方法 | |
KR102282788B1 (ko) | 트랜잭션에 포함된 평문 데이터의 변경을 지원하는 블록체인 시스템 | |
CN108427889A (zh) | 文件处理方法及装置 | |
CN116800535A (zh) | 多台服务器之间相互免密方法及装置 | |
CN113326512A (zh) | 电子设备及其mcu固件保护方法 | |
JP2007006184A (ja) | 暗号処理装置及び認証アプリケーションプログラム |
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 |