CN105677586B - Mcu的闪存的访问权限控制方法和装置 - Google Patents

Mcu的闪存的访问权限控制方法和装置 Download PDF

Info

Publication number
CN105677586B
CN105677586B CN201610012393.7A CN201610012393A CN105677586B CN 105677586 B CN105677586 B CN 105677586B CN 201610012393 A CN201610012393 A CN 201610012393A CN 105677586 B CN105677586 B CN 105677586B
Authority
CN
China
Prior art keywords
mcu
flash memory
unlocking key
debugging interface
safe
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
Application number
CN201610012393.7A
Other languages
English (en)
Other versions
CN105677586A (zh
Inventor
王谦智
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gree Electric Appliances Inc of Zhuhai
Original Assignee
Gree Electric Appliances Inc of Zhuhai
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 Gree Electric Appliances Inc of Zhuhai filed Critical Gree Electric Appliances Inc of Zhuhai
Priority to CN201610012393.7A priority Critical patent/CN105677586B/zh
Publication of CN105677586A publication Critical patent/CN105677586A/zh
Application granted granted Critical
Publication of CN105677586B publication Critical patent/CN105677586B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供了一种MCU的闪存的访问权限控制方法和装置,其中,MCU中设置有用于对MCU是否处于安全模式进行设定的安全寄存器,该控制方法包括:确定MCU所处的阶段;当MCU处于用户程序开发阶段时,通过调试接口设置安全寄存器将MCU设置成非安全模式;当MCU处于用户程序量产阶段时,通过调试接口设置安全寄存器将MCU设置成安全模式。本发明解决了因为需要在用户程序中增加解锁功能以实现闪存的解锁而导致的在用户程序量产阶段解锁密钥容易被盗取导致数据不安全的技术问题,达到了不需要在用户程序中增加解锁功能就可以实现闪存解锁的技术效果,提高了数据的安全性。

Description

MCU的闪存的访问权限控制方法和装置
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种MCU的闪存的访问权限控制方法和装置。
背景技术
微控制单元(Microcontroller Unit,简称为MCU)用户代码是MCU正常运行的核心,用户代码一般在MCU用户程序量产阶段被烧录器烧写在MCU的Flash(闪存)上。防止MCUFlash上的用户代码不被破解是MCU安全保护的一个重要方面。
目前,主流MCU厂商对MCU Flash上的内容进行保护的做法一般是:为MCU设计安全模式,其中,安全模式的设定由Flash某个地址单元的内容决定。在安全模式下,调试接口(例如,SWD接口)能够访问Flash之前,必须先要通过MCU的通信接口(例如,UART)向用户程序发送存入在Flash中的解锁密钥,这就要求用户程序必须支持Flash解锁功能。
然而,由于解锁密钥是以明码的方式存储在MCU的Flash中的,那么解锁密钥在MCU用户程序量产阶段很容易被破解。
进一步的,当MCU工作在安全模式时,如果出现故障导致MCU无法正常工作,那么用户程序的解锁功能也必将受到限制。如果Flash解锁失败,那么外部调试接口无法观察到MCU的运行现场,这将加大问题定位的难度。同时,这种保护方法要求用户程序必须支持解锁功能,这势必会导致用户程序占用更多的Flash空间。
针对上述问题,目前尚未提出有效的解决方式。
发明内容
本发明实施例提供了一种MCU的闪存的访问权限控制方法,以解决现有技术中因为需要在用户程序中增加解锁功能以实现闪存的解锁而导致的在用户程序量产阶段解锁密钥容易被盗取导致数据不安全的技术问题,该控制方法包括:
确定所述MCU所处的阶段;当所述MCU处于用户程序开发阶段时,通过调试接口设置所述安全寄存器将所述MCU设置成非安全模式;当所述MCU处于用户程序量产阶段时,通过所述调试接口设置所述安全寄存器将所述MCU设置成安全模式;其中,当所述MCU处于非安全模式的情况下,所述调试接口被允许访问所述MCU的闪存中的内容,当所述MCU处于安全模式的情况下,所述调试接口不被允许访问所述MCU的闪存中的内容。
在一个实施方式中,在当所述MCU处于用户程序量产阶段时,通过所述调试接口设置所述安全寄存器将所述MCU设置成安全模式之后,所述方法还包括:检测所述调试接口是否向所述安全寄存器中写入闪存解锁密钥;如果是,则获取预设的闪存解锁密钥,并将所述调试接口写入的闪存解锁密钥与所述预设的闪存解锁密钥进行匹配;如果匹配通过,则将所述MCU由安全模式切换至非安全模式。
在一个实施方式中,获取预设的闪存解锁密钥,包括:读取唯一标识该MCU的设备ID;根据所述设备ID,按照预定算法计算得到所述预设的闪存解锁密钥。
在一个实施方式中,读取唯一标识该MCU的设备ID,包括:从该MCU专用的设备ID寄存器中读取所述设备ID。
在一个实施方式中,所述设备ID为32bit的数据,所述预设的闪存解锁密钥为32bit的数据。
在一个实施方式中,将所述调试接口写入的闪存解锁密钥与预设的闪存解锁密钥进行匹配,包括:确定写入的闪存解锁密钥与所述预设的闪存解锁密钥是否相等;如果相等,则表示匹配通过,如果不相等,则表示匹配未通过。
在一个实施方式中,在将所述调试接口写入的闪存解锁密钥与预设的闪存解锁密钥进行匹配之后,所述方法还包括:如果匹配不通过,则保持所述MCU处于安全模式;如果再次接收到所述调试接口向所述安全寄存器中写入的闪存解锁密钥,继续保持所述MCU处于安全模式,直至所述MCU重新上电。
本发明实施例还提供了一种MCU的闪存的访问权限控制装置,以解决现有技术中因为需要在用户程序中增加解锁功能以实现闪存的解锁而导致的在用户程序量产阶段解锁密钥容易被盗取导致数据不安全的技术问题,所述MCU中设置有用于对MCU是否处于安全模式进行设定的安全寄存器,该控制装置包括:
确定模块,用于确定所述MCU所处的阶段;第一设置模块,用于在所述MCU处于用户程序开发阶段的情况下,通过调试接口设置所述安全寄存器将所述MCU设置成非安全模式;第二设置模块,用于在所述MCU处于用户程序量产阶段的情况下,通过所述调试接口设置所述安全寄存器将所述MCU设置成安全模式;其中,当所述MCU处于非安全模式的情况下,所述调试接口被允许访问所述MCU的闪存中的内容,当所述MCU处于安全模式的情况下,所述调试接口不被允许访问所述MCU的闪存中的内容。
在一个实施方式中,上述控制装置还包括:检测模块,用于在通过所述调试接口设置所述安全寄存器将所述MCU设置成安全模式之后,检测所述调试接口是否向所述安全寄存器中写入闪存解锁密钥;匹配模块,用于在检测到所述调试接口向所述安全寄存器中写入闪存解锁密钥的情况下,获取预设的闪存解锁密钥,并将所述调试接口写入的闪存解锁密钥与所述预设的闪存解锁密钥进行匹配;切换模块,用于在匹配通过的情况下,将所述MCU由安全模式切换至非安全模式。
在一个实施方式中,所述匹配模块包括:读取单元,用于读取唯一标识该MCU的设备ID;计算单元,用于根据所述设备ID,按照预定算法计算得到所述预设的闪存解锁密钥。
在上述实施例中,通过在MCU中设置了用于对MCU是否处于安全模式进行设定的安全寄存器,调试接口通过对该安全寄存器进行控制便可以实现对MCU的闪存的访问权限的控制,从而解决了现有技术中因为需要在用户程序中增加解锁功能以实现闪存的解锁而导致的在用户程序量产阶段解锁密钥容易被盗取导致数据不安全的技术问题,达到了不需要在用户程序中增加解锁功能就可以实现闪存解锁的技术效果,因解密的密钥不需要存放在Flash中,从而减少了用户代码占用MCU Flash的空间,提高了数据的安全性,因为调试接口的设置,即使MCU处于死机状态,通过调试接口就可以向FLASHKEY写入正确密钥来解锁Flash,从而定位MCU出现问题的原因,降低了定位MCU运行故障的难度。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的MCU的闪存的访问权限控制方法流程图;
图2是根据本发明实施例的SDA-AP结构图;
图3是根据本发明实施例的Flash解锁密钥的生产原理图;
图4是根据本发明实施例的MCU的闪存的访问权限控制装置的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
发明人考虑到现有的MCU的闪存的访问权限控制方法主要问题就在于需要在用户程序中增加解锁功能以实现闪存的解锁,为此,发明人考虑到可以单独设置一个模块存储模块用于对闪存的访问权限进行控制,以保证不用在用户程序中增加解锁功能。
为了实现上述功能,在本发明实施例中提供了一种MCU的闪存的访问权限控制方法,该MCU中设置了用于对MCU是否处于安全模式进行设定的安全寄存器,如图1所示,该MCU的闪存的访问权限控制方法包括:
步骤101:确定所述MCU所处的阶段;
步骤102:当所述MCU处于用户程序开发阶段时,通过调试接口设置所述安全寄存器将所述MCU设置成非安全模式;
步骤103:当所述MCU处于用户程序量产阶段时,通过所述调试接口设置所述安全寄存器将所述MCU设置成安全模式;其中,当所述MCU处于非安全模式的情况下,所述调试接口被允许访问所述MCU的闪存中的内容,当所述MCU处于安全模式的情况下,所述调试接口不被允许访问所述MCU的闪存中的内容。
在上例中,通过在MCU中设置了用于对MCU是否处于安全模式进行设定的安全寄存器,调试接口通过对该安全寄存器进行控制便可以实现对MCU的闪存的访问权限的控制,从而解决了现有技术中因为需要在用户程序中增加解锁功能以实现闪存的解锁而导致的在用户程序量产阶段解锁密钥容易被盗取导致数据不安全的技术问题,达到了不需要在用户程序中增加解锁功能就可以实现闪存解锁的技术效果,因解密的密钥不需要存放在Flash中,从而减少了用户代码占用MCU Flash的空间,提高了数据的安全性,因为调试接口的设置,即使MCU处于死机状态,通过调试接口就可以向FLASHKEY写入正确密钥来解锁Flash,从而定位MCU出现问题的原因,降低了定位MCU运行故障的难度。
具体地,在MCU处于用户程序量产阶段时,且MCU处于安全模式的情况下,当调试接口向安全寄存器中写入数据进行解锁时,可以获取预设的闪存解锁密钥,并将所述调试接口写入的闪存解锁密钥与预设的闪存解锁密钥进行匹配;如果匹配通过,则表明闪存解锁成功,那么就将MCU由安全模式切换至非安全模式。
在实际实现的时候,为了使得预设的闪存解锁密钥可以与MCU一一对应,可以通过唯一标识MCU的设备ID(Identification)生成对应的预设的闪存解锁密钥,因为设备ID是唯一的,相应的一一对应得到的预设的闪存解锁密钥也是唯一的。在一个实施方式中,可以读取唯一标识该MCU的设备ID,然后,根据读取的设备ID,按照预定算法计算得到预设的闪存解锁密钥。
可以设置一个设备ID寄存器,专门存储该MCU的私有信息,例如,MCU的设备ID、内部RC震荡电路的修正值等参数,那么就可以直接从该MCU专用的设备ID寄存器中读取设备ID。
考虑到一般使用的设备ID,或者是一些硬件地址等是32bit的,为了使得该方法的适应性更强,可以将设备ID选定为32bit的数据,将预设的闪存解锁密钥也选定为32bit的数据。
在进行匹配的时候,可以是确定写入的闪存解锁密钥与预设的闪存解锁密钥是否相等,如果相等,则表示匹配通过,如果不相等,则表示匹配未通过。即,设置写入的闪存解锁密钥需要与预设的闪存解锁密钥完全相等,才算是匹配通过,才可以将MCU从安全模式切换至非安全模式。
为了进一步保证数据的安全,可以在通过调试接口输入错误的闪存解锁密码后,就将该MCU设置成保护状态,即使后续通过调试接口输入了正确的闪存解锁密码,也无法解锁闪存,即一直保持MCU处于安全模式,除非是重新上电。在一个实施方式中,可以在将调试接口写入的闪存解锁密钥与预设的闪存解锁密钥进行匹配之后,如果确定匹配不通过,则保持MCU处于安全模式;如果再次接收到调试接口向安全寄存器中写入的闪存解锁密钥,继续保持MCU处于安全模式,直至MCU重新上电。
下面结合一个具体实施例对上述MCU的闪存的访问权限控制方法进行说明,然而值得注意的是,该具体实施例仅是为了更好地说明本发明,并不构成对本发明的不当限定。
每一片MCU对应唯一的32Bit MCU Device ID(设备ID),MCU在用户程序量产阶段,Device ID同MCU的校验参数(例如:内部RC震荡电路的修正值和AD转换修正值等参数)一同存放在MCU的私有信息存储区。
具体地,可以在MCU中设置一个SDA-AP(Security Debug Authorization AccessPoint,安全调试授权访问点)以实现所有的控制逻辑。如图2所示,为SDA-AP的结构示意图,包括:FLASHSEC Reg、FLASHKEY Reg和DEVID Reg三个32Bit寄存器。
其中,调试接口通过访问DEVID Reg寄存器可以获取MCU的唯一的Device ID;调试接口通过设置SDA-AP中的FLASHSEC Reg寄存器可以控制MCU工作在安全模式或者非安全模式;调试接口通过写入FLASHKEY Reg寄存器正确的Flash解锁密钥(即闪存解锁密钥),可以解锁Flash,从而使得MCU处于非安全模式。调试接口向FLASHSEC Reg写入特定值时,MCU被设置成安全模式。
在MCU在非安全模式的情况下,调试接口可以自由地访问MCU内部Flash(闪存),而在MCU在安全模式的情况下,调试接口访问MCU内部Flash将被禁止,除非调试接口在访问MCU内部Flash之前,向FLASHKEY Reg寄存器写入正确的解锁密钥。
在MCU用户程序开发阶段,不需要通过调试接口设置FLASHSEC Reg寄存器使MCU处于安全模式,从而保证开发应用程序的易用性,省去每次调试程序前需要解锁Flash的步骤,这样,用户可以不受任何限制地通过调试接口调试位于Flash中的用户代码。
在MCU用户程序量产阶段,量产工具可以通过调试接口设置SDA-AP中的FLASHSECReg寄存器将MCU设置成安全模式,处于安全模式的MCU无法通过设置FLASHSEC Reg寄存器使MCU工作在非安全模式,除非使用正确的Flash解锁密钥解锁Flash,否则Flash中的内容将会一直处于被保护的状态。
在MCU用户程序量产阶段,当调试接口向FLASHKEY Reg寄存器中写入任何32Bit数据时,SDA-AP会尝试用FLASHKEY Reg寄存器中写入的32Bit数据解锁Flash,具体的解锁原理为:SDA-AP读入MCU私有信息区域的Device ID,并通过如图3所示的算法逻辑得出与Device ID相匹配的Flash解锁密钥,并与FLASHKEY Reg寄存器中的内容相比较,如果相等,则Flash解锁成功,MCU处于非安全模式,如果不相等,则Flash解锁失败。在Flash解锁失败的情况下,如果MCU没有重新上电,那么即便重新设置FLASHKEY Reg寄存器使之与Flash解锁密钥相匹配,Flash也无法解锁,MCU仍然处于安全模式。
在图3中,密钥1、2、3、4(每个密钥为32Bit数据)为生成Flash解锁密钥的4个加密密钥,32Bit MCU Flash解锁密钥与32Bit MCU Device ID成一一对应的关系。然而值得注意的是,图3中的Flash解锁密钥生成方法仅是一种示意性描述,在具体实现的时候,可以仅有一个加密密钥,或者两个加密密钥,或者是多于四个解密密钥,具体的加密密钥的数量本申请不作限定,此外,图3中加密算法可以是通用的加密算法,也可以是MCU Vendor自定义算法,具体实现时候可以按照需要选择加密算法,本申请对此不做限定。
具体的,MCU安全模式的设置以及Flash解锁密钥均不在用户代码中,杜绝了MCU在用户程序量产阶段,MCU安全模式被恶意设置及Flash解锁密钥被破解的风险。MCU可以选择性地设置工作在安全模式或非安全模式下,在用户开发应用程序阶段,可以设置MCU工作在非安全模式,不会对用户使用调试接口产生任何使用不便的影响;在MCU用户程序量产阶段,设置MCU处于安全模式,可以有效地防止Flash内容被破解,达到Flash内容被保护的目的。MCU不需要要求用户代码增加Flash解锁功能,减少了用户代码占用MCU Flash的空间,即使在MCU死机或者工作不正常时,调试接口也可以通过解锁Flash来定位MCU出现问题的原因。
在上例中,在MCU中设计SDA-AP,配合MCU的固化Device ID有效地防止MCU在量产后Flash内容被破解的风险,降低了定位MCU运行故障的难度,并实现了Flash解锁功能。具体的,在用户程序不必增加解锁功能的情况下,实现Flash解锁功能,当MCU出现故障而无法正常工作时,可以让外部调试接口观察MCU的运行现场,降低定位MCU运行故障的难度,且杜绝掉了MCU在用户程序量产量产阶段Flash解锁密钥被破解的可能性。
基于同一发明构思,本发明实施例中还提供了一种MCU的闪存的访问权限控制装置,如下面的实施例所述。由于MCU的闪存的访问权限控制装置解决问题的原理与MCU的闪存的访问权限控制方法相似,因此MCU的闪存的访问权限控制装置的实施可以参见MCU的闪存的访问权限控制方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图4是本发明实施例的MCU的闪存的访问权限控制装置的一种结构框图,MCU中设置有用于对MCU是否处于安全模式进行设定的安全寄存器,如图4所示,MCU的闪存的访问权限控制装置包括:确定模块401、第一设置模块402和第二设置模块403,下面对该结构进行说明。
确定模块401,用于确定所述MCU所处的阶段;
第一设置模块402,用于在所述MCU处于用户程序开发阶段的情况下,通过调试接口设置所述安全寄存器将所述MCU设置成非安全模式;
第二设置模块403,用于在所述MCU处于用户程序量产阶段的情况下,通过所述调试接口设置所述安全寄存器将所述MCU设置成安全模式;其中,当所述MCU处于非安全模式的情况下,所述调试接口被允许访问所述MCU的闪存中的内容,当所述MCU处于安全模式的情况下,所述调试接口不被允许访问所述MCU的闪存中的内容。
在一个实施方式中,MCU的闪存的访问权限控制装置还可以包括:检测模块,用于在通过所述调试接口设置所述安全寄存器将所述MCU设置成安全模式之后,检测所述调试接口是否向所述安全寄存器中写入闪存解锁密钥;匹配模块,用于在检测到所述调试接口向所述安全寄存器中写入闪存解锁密钥的情况下,获取预设的闪存解锁密钥,并将所述调试接口写入的闪存解锁密钥与所述预设的闪存解锁密钥进行匹配;切换模块,用于在匹配通过的情况下,将MCU由安全模式切换至非安全模式。
在一个实施方式中,匹配模块可以包括:读取单元,用于读取唯一标识该MCU的设备ID;计算单元,用于根据所述设备ID,按照预定算法计算得到所述预设的闪存解锁密钥。
从以上的描述中,可以看出,本发明实施例实现了如下技术效果:通过在MCU中设置了用于对MCU是否处于安全模式进行设定的安全寄存器,调试接口通过对该安全寄存器进行控制便可以实现对MCU的闪存的访问权限的控制,从而解决了现有技术中因为需要在用户程序中增加解锁功能以实现闪存的解锁而导致的在用户程序量产阶段解锁密钥容易被盗取导致数据不安全的技术问题,达到了不需要在用户程序中增加解锁功能就可以实现闪存解锁的技术效果,因解密的密钥不需要存放在Flash中,从而减少了用户代码占用MCUFlash的空间,提高了数据的安全性,因为调试接口的设置,即使MCU处于死机状态,通过调试接口就可以向FLASHKEY写入正确密钥来解锁Flash,从而定位MCU出现问题的原因,降低了定位MCU运行故障的难度。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种MCU的闪存的访问权限控制方法,其特征在于,所述MCU中设置有用于对MCU是否处于安全模式进行设定的安全寄存器,该控制方法包括:
确定所述MCU所处的阶段;
当所述MCU处于用户程序开发阶段时,通过调试接口设置所述安全寄存器将所述MCU设置成非安全模式;
当所述MCU处于用户程序量产阶段时,通过所述调试接口设置所述安全寄存器将所述MCU设置成安全模式;
其中,当所述MCU处于非安全模式的情况下,所述调试接口被允许访问所述MCU的闪存中的内容,当所述MCU处于安全模式的情况下,所述调试接口不被允许访问所述MCU的闪存中的内容;
在当所述MCU处于用户程序量产阶段时,通过所述调试接口设置所述安全寄存器将所述MCU设置成安全模式之后,所述方法还包括:
检测所述调试接口是否向所述安全寄存器中写入闪存解锁密钥;
如果是,则获取预设的闪存解锁密钥,并将所述调试接口写入的闪存解锁密钥与所述预设的闪存解锁密钥进行匹配;
如果匹配通过,则将所述MCU由安全模式切换至非安全模式;
获取预设的闪存解锁密钥,包括:
读取唯一标识该MCU的设备ID;
根据所述设备ID,按照预定算法计算得到所述预设的闪存解锁密钥。
2.根据权利要求1所述的方法,其特征在于,读取唯一标识该MCU的设备ID,包括:
从该MCU专用的设备ID寄存器中读取所述设备ID。
3.根据权利要求1所述的方法,其特征在于,所述设备ID为32bit的数据,所述预设的闪存解锁密钥为32bit的数据。
4.根据权利要求1所述的方法,其特征在于,将所述调试接口写入的闪存解锁密钥与预设的闪存解锁密钥进行匹配,包括:
确定写入的闪存解锁密钥与所述预设的闪存解锁密钥是否相等;
如果相等,则表示匹配通过,如果不相等,则表示匹配未通过。
5.根据权利要求1所述的方法,其特征在于,在将所述调试接口写入的闪存解锁密钥与预设的闪存解锁密钥进行匹配之后,所述方法还包括:
如果匹配不通过,则保持所述MCU处于安全模式;
如果再次接收到所述调试接口向所述安全寄存器中写入的闪存解锁密钥,继续保持所述MCU处于安全模式,直至所述MCU重新上电。
6.一种MCU的闪存的访问权限控制装置,其特征在于,所述MCU中设置有用于对MCU是否处于安全模式进行设定的安全寄存器,该控制装置包括:
确定模块,用于确定所述MCU所处的阶段;
第一设置模块,用于在所述MCU处于用户程序开发阶段的情况下,通过调试接口设置所述安全寄存器将所述MCU设置成非安全模式;
第二设置模块,用于在所述MCU处于用户程序量产阶段的情况下,通过所述调试接口设置所述安全寄存器将所述MCU设置成安全模式;其中,当所述MCU处于非安全模式的情况下,所述调试接口被允许访问所述MCU的闪存中的内容,当所述MCU处于安全模式的情况下,所述调试接口不被允许访问所述MCU的闪存中的内容;
检测模块,用于在通过所述调试接口设置所述安全寄存器将所述MCU设置成安全模式之后,检测所述调试接口是否向所述安全寄存器中写入闪存解锁密钥;
匹配模块,用于在检测到所述调试接口向所述安全寄存器中写入闪存解锁密钥的情况下,获取预设的闪存解锁密钥,并将所述调试接口写入的闪存解锁密钥与所述预设的闪存解锁密钥进行匹配;
切换模块,用于在匹配通过的情况下,将所述MCU由安全模式切换至非安全模式;
所述匹配模块包括:
读取单元,用于读取唯一标识该MCU的设备ID;
计算单元,用于根据所述设备ID,按照预定算法计算得到所述预设的闪存解锁密钥。
CN201610012393.7A 2016-01-07 2016-01-07 Mcu的闪存的访问权限控制方法和装置 Active CN105677586B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610012393.7A CN105677586B (zh) 2016-01-07 2016-01-07 Mcu的闪存的访问权限控制方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610012393.7A CN105677586B (zh) 2016-01-07 2016-01-07 Mcu的闪存的访问权限控制方法和装置

Publications (2)

Publication Number Publication Date
CN105677586A CN105677586A (zh) 2016-06-15
CN105677586B true CN105677586B (zh) 2018-11-30

Family

ID=56299573

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610012393.7A Active CN105677586B (zh) 2016-01-07 2016-01-07 Mcu的闪存的访问权限控制方法和装置

Country Status (1)

Country Link
CN (1) CN105677586B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107168889A (zh) * 2017-06-09 2017-09-15 山东超越数控电子有限公司 一种利用MCU内部Flash存储KVM通道信息的方法
CN109684049A (zh) * 2018-11-23 2019-04-26 上海琪埔维半导体有限公司 一种程序调用方法
US11308243B2 (en) * 2019-09-11 2022-04-19 International Business Machines Corporation Maintenance of access for security enablement in a storage device
CN111199023A (zh) * 2019-12-23 2020-05-26 上海琪埔维半导体有限公司 一种mcu程序的密钥系统及解密方法
CN111209186A (zh) * 2019-12-25 2020-05-29 上海亮牛半导体科技有限公司 一种mcu用户程序代码的保护结构及其熔断测试方法
CN111968693B (zh) * 2020-08-21 2022-08-05 广芯微电子(广州)股份有限公司 一种mcu及mcu调试接口控制方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101165668A (zh) * 2006-10-18 2008-04-23 松下电器产业株式会社 存储介质控制装置及其控制方法
CN101206630A (zh) * 2006-12-20 2008-06-25 上海华虹Nec电子有限公司 Mcu类产品中控制多个eeprom工作模式的控制电路及方法
CN101286994A (zh) * 2008-05-19 2008-10-15 北京大学 多设备内容共享的数字版权管理方法、服务器及系统
CN101425112A (zh) * 2008-11-18 2009-05-06 北京大学 数字许可证书发送系统以及数字作品解密运行方法
CN101540669A (zh) * 2008-03-20 2009-09-23 深圳市奥联科技有限公司 一种无线移动通信网络的密钥分发和信息保护方法
CN103020495A (zh) * 2012-12-17 2013-04-03 马驹 一种嵌入式软件防盗版加密方法
JP2013223251A (ja) * 2008-11-24 2013-10-28 Certicom Corp ハードウェアベースセキュリティのためのシステムおよび方法
CN103914664A (zh) * 2012-12-31 2014-07-09 比亚迪股份有限公司 具有内部存储体保护功能的控制器与控制方法
CN104636275A (zh) * 2014-12-30 2015-05-20 北京兆易创新科技股份有限公司 一种mcu芯片的信息保护方法和装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101165668A (zh) * 2006-10-18 2008-04-23 松下电器产业株式会社 存储介质控制装置及其控制方法
CN101206630A (zh) * 2006-12-20 2008-06-25 上海华虹Nec电子有限公司 Mcu类产品中控制多个eeprom工作模式的控制电路及方法
CN101540669A (zh) * 2008-03-20 2009-09-23 深圳市奥联科技有限公司 一种无线移动通信网络的密钥分发和信息保护方法
CN101286994A (zh) * 2008-05-19 2008-10-15 北京大学 多设备内容共享的数字版权管理方法、服务器及系统
CN101425112A (zh) * 2008-11-18 2009-05-06 北京大学 数字许可证书发送系统以及数字作品解密运行方法
JP2013223251A (ja) * 2008-11-24 2013-10-28 Certicom Corp ハードウェアベースセキュリティのためのシステムおよび方法
CN103020495A (zh) * 2012-12-17 2013-04-03 马驹 一种嵌入式软件防盗版加密方法
CN103914664A (zh) * 2012-12-31 2014-07-09 比亚迪股份有限公司 具有内部存储体保护功能的控制器与控制方法
CN104636275A (zh) * 2014-12-30 2015-05-20 北京兆易创新科技股份有限公司 一种mcu芯片的信息保护方法和装置

Also Published As

Publication number Publication date
CN105677586A (zh) 2016-06-15

Similar Documents

Publication Publication Date Title
CN105677586B (zh) Mcu的闪存的访问权限控制方法和装置
CN108269605B (zh) 安全器件状态设备和方法
US8443181B2 (en) Processor boot security device and methods thereof
US7917716B2 (en) Memory protection for embedded controllers
JP5419776B2 (ja) 半導体装置及びデータ処理方法
US20150269378A1 (en) Use of a Physical Unclonable Function for Checking Authentication
US8060925B2 (en) Processor, memory, computer system, and method of authentication
JP5975629B2 (ja) メモリ保護ユニットおよび記憶素子へのアクセスコントロール方法
US20090204823A1 (en) Method and apparatus for controlling system access during protected modes of operation
CN109564606A (zh) 用于将安全协处理器用于固件保护的方法和装置
CN111095213A (zh) 嵌入式程序的安全引导方法、装置、设备及存储介质
CN103649964B (zh) 安全寄存执行体系架构
CN107092495A (zh) 平台固件铠装技术
CN101276389B (zh) 单个物理可信平台模块内的多个逻辑可信平台模块的分离
JP2007501477A (ja) アクセス許可を決定するための方法および装置
CN101026455A (zh) 安全处理器
CN101950342B (zh) 一种集成电路卡访问控制权限的管理装置及方法
US9164927B2 (en) Integrated circuit and memory data protection apparatus and methods thereof
US10360370B2 (en) Authenticated access to manageability hardware components
CN102567682A (zh) 基本输入输出系统(bios)设置的用户访问方法
CN102043648A (zh) 多核系统及其启动方法
CN110020559A (zh) 执行安全调试的存储设备及其密码认证方法
JP6017392B2 (ja) 情報処理装置、ホストデバイス、及びシステム
US8966253B1 (en) Method and apparatus for authenticating a programmable device bitstream
EP4307149A2 (en) System-on-chip and electronic device including the same

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant