CN111708293A - 带主动防御功能的在线调试的mcu设计方法 - Google Patents
带主动防御功能的在线调试的mcu设计方法 Download PDFInfo
- Publication number
- CN111708293A CN111708293A CN202010504480.0A CN202010504480A CN111708293A CN 111708293 A CN111708293 A CN 111708293A CN 202010504480 A CN202010504480 A CN 202010504480A CN 111708293 A CN111708293 A CN 111708293A
- Authority
- CN
- China
- Prior art keywords
- mcu
- debugging
- online
- data
- circuit
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25257—Microcontroller
Abstract
本发明公开了一种带主动防御功能的在线调试的MCU设计方法,将包括步骤S1:MCU上电运行并且对各个侦测电路进行可信度量;步骤S2:MCU在通过各个侦测电路可信度量后,MCU对各个存储电路的数据进行可信度量:步骤S3:MCU在启动调试接口时检查调试接口的配置状态,对调试电路进行可信度量,并且记录非法侵入信息。本发明公开的一种带主动防御功能的在线调试的MCU设计方法,其先启动内部的主动防御电路,启动的每一个步骤都对于相关电路模块进行逐级度量之后,确认MCU各功能电路模块,特别是集成的调试电路是安全可信的,在确保系统自主可控状态下,才允许MCU芯片进行在线调试。
Description
技术领域
本发明属于MCU在线调试安全防护技术领域,具体涉及一种带主动防御功能的在线调试的MCU设计方法。
背景技术
现在的通用MCU启动时缺失信息安全确认,无主动防御功能的弊端,容易被黑客入侵系统,系统容易出现无法自主可控的风险。我国金融、电信、能源、物联网等关键领域的对于MCU的依赖度非常高,一旦出现安全问题,甚至会直接威胁到社会安全。通用MCU在启动时,硬件POR电路发现上电之后,CPU就开始读取flash的数据,并执行程序,系统开始运行。在线调试时,上位机软件(比如Keil、IAR)通过调试器可以实时调试开发,一般调试开发之后为了安全性,会把调试接口电路关闭,非授权客户无法接触到客户嵌入式软件。但同时合法用户也无法对MCU,对系统进行调试。特别是遇到比较复杂得工业控制,系统需要不断在线跟踪,在线监控,在线调试,不断升级优化系统。类似于现在主流的通用MCU,就无法进行高安全性的在线调试。开放调试接口,会引入安全问题,关闭调试接口,系统无法监控,调试,升级。
通用MCU的在线调试功能,要么什么安全防御体系都没有,要么类似于智能卡就简单粗暴的直接关闭在线调试功能。这样对于合法的授权人员,无法进行在线调试,无法进行在线监控,无法在线升级,更无法对于系统的稳定性进行提升。所以不能矫枉过正的简单粗暴关闭在线调试功能。
授权公告号为:CN104777761B,主题名称为实现MCU安全性的方法及电路的发明专利,其技术方案公开了“MCU上电后,利用电源监测电路把MCU芯片内部的总复位信号置位“1”,然后,启动MCU芯片内部的RC振荡电路,同时启动上电复位自适应电路;该上电复位自适应电路立即读取存放于Flash安全位置的128位安全密钥;并将该安全密钥存放在密码匹配电路,之后释放所述总复位信号;JTAG调试接口默认是关闭状态;当MCU芯片工作后,所述密码匹配电路开始工作;当外部输入密码时,所述密码匹配电路对该密码与其保存的安全密钥进行匹配确认,当匹配确认为正确后,所述JTAG调试接口打开,否则进行全MCU芯片的擦除;在所述上电复位自适应电路的控制下,根据所述RC振荡电路输出的时钟,每经过1024个时钟进行flash的读操作,读取flash内的flash校验码;如果无法读取到正确的flash校验码,则再经过1024个时钟之后,继续读取flash校验码,直到能够正常读取到正确的flash检测码,之后读取128位安全密钥”。
以上述发明专利为例,其虽然也提及了MCU的安全保护,但是其技术方案更多涉及的是硬件本质上对MCU进行可靠性方面的安全保护,而本发明不仅仅在硬件本质上进行安全保护,还通过多重认证之后,在MCU在线调试上通过主动防御使之具有主动性、智能化和安全可控性。因此,针对上述问题,予以进一步改进。
发明内容
本发明的主要目的在于提供带主动防御功能的在线调试的MCU设计方法,其先启动内部的主动防御电路,启动的每一个步骤都对于相关电路模块进行逐级度量之后,确认MCU各功能电路模块,特别是集成的调试电路是安全可信的,在确保系统自主可控状态下,才允许MCU芯片进行在线调试,并确认一切安全之后才允许整体系统的运行,对于在线调试功能进行主动防御,多重认证,实现在线调试,同时保证信息安全的设计架构。
本发明的另一目的在于提供带主动防御功能的在线调试的MCU设计方法,带主动防御功能的在线调试功能既能保障信息安全,又能保障系统的在线调试,在线升级,提升系统的稳定性和安全性。
本发明的另一目的在于提供带主动防御功能的在线调试的MCU设计方法,其在启动每一个新功能模块之前,都会对于这个功能模块进行可信度量,即先确认这个功能模块没有受到破坏,没有木马嵌入,没有非法数据探测状态,一步一度量,直到MCU正常启动运行程序。
为达到以上目的,本发明提供一种带主动防御功能的在线调试的MCU设计方法,上位机(调试软件,如Keil、IAR)通过在线调试器(如Jlink)对MCU进行在线调试,包括以下步骤:
步骤S1:MCU上电运行并且对各个侦测电路进行可信度量;
步骤S2:MCU在通过各个侦测电路可信度量后,MCU对各个存储电路的数据进行可信度量:
步骤S3:MCU在启动调试接口时检查调试接口的配置状态,对调试电路进行可信度量,并且记录非法侵入信息;
步骤S4:MCU对在线调试器进行身份认证后,上位机(PC电脑上位机调试软件)通过在线调试器进行在线调试、监控数据和升级程序;
步骤S5:MCU在在线调试、监控数据和升级程序后进行重启,以获得新的安全方式;
步骤S6:MCU的各个模块均通过可信度量后,以确保所有的数据以及(MCU硬件功能)模块处于可信状态,进行正常启动。
作为上述技术方案的进一步优选的技术方案,步骤S1具体实施为以下步骤:
步骤S1.1:VD电源侦测电路启动检查MCU的电源是否正常,如果正常则VD电源侦测电路通过可信度量,则启动电源模块,否则MCU进入复位状态并且发出警告;
这是MCU基本功能,每个MCU都有上电复位电路,这样每个MCU上电之后可以从复位开始运行程序,否则程序会异常跑飞,因为CPU没有上电复位的话,整个CPU都是不确定状态,包括指令读取,指令解析,程序执行都处于异常状态,VD电源侦测电路启动检查MCU电源是否正常,一旦异常MCU进入复位状态。
步骤S1.2:屏蔽电路启动检查MCU的最顶层金属是否正常,如果屏蔽电路通过可信度量,则最顶层金属未被修改并且屏蔽电路的信号进行完整传递,否则MCU进入复位状态并且发出警告;
内部关键路径上的屏蔽电路以及屏蔽电路时钟启动,屏蔽电路一般是最顶层金属,一旦发现有人对于顶层金属有修改,那么屏蔽电路信号就无法完整传递,MCU就一直处于复位状态。
步骤S1.3:LD光侦测电路启动检查MCU的光线强度,如果LD光侦测电路通过可信度量,则MCU未被开盖或者电子辐射,否则MCU进入复位状态并且发出警告;
芯片(即MCU)同时启动LD光侦测电路,一旦发现有光进入芯片(晶圆片)说明MCU被开盖或电子辐射,一旦处于被探测状态,LD光侦测电路产生复位信号,使MCU处于复位状态。
步骤S1.4:CD时钟侦测电路启动检查MCU内部或者外部的时钟,如果CD时钟侦测电路通过可信度量,则MCU内部或者外部的时钟未被破坏,否则MCU进入复位状态并且发出警告。
MCU继续启动,并启动CD时钟侦测电路,一旦内部或者外部时钟大于或者小于某个限定,说明时钟被人破坏,CD时钟侦测电路产生复位信号,使MCU处于复位状态。
作为上述技术方案的进一步优选的技术方案,步骤S2具体实施为以下步骤:
步骤S2.1:在启动Boot loader程序之前,对Boot loader程序所在的自启动程序存储器的数据进行检查,把自启动程序存储器的(所有)数据搬运到HSAH硬件模块并且对数据进行可行度量,如果发现数据错误,则MCU进入复位状态并且发出警告;
步骤S2.2:对于变量所在的变量存储器(RAM)进行数据清零并且对校验清零之后的变量(RAM)数据进行可信度量,如果发现数据错误,则MCU进入复位状态并且发出警告;
步骤S2.3:在启动客户程序之前,对客户程序所在的客户存储器的数据进行还检查,把客户存储器的(所有)数据搬运到HSAH硬件模块并且对数据进行可行度量,如果发现数据错误,则MCU进入复位状态并且发出警告。
作为上述技术方案的进一步优选的技术方案,步骤S3具体实施为以下步骤:
步骤S3.1:MCU在启动调试接口时对调试电路进行身份确认,如果调试电路通过可信度量,则MCU进行启用调试电路;
步骤S3.2:如果启动调试接口时发现调试接口的通路被关闭,MCU通过在线调试器发送命令并且通过内部对称算法对数据进行加密,数据与预存入MCU的特定地址数据进行硬件匹配,如果匹配正确,则调试接口的通路被打开并且进行调试;
步骤S3.3:如果MCU对调试电路的身份确认失效,则MCU配合时钟系统将攻击记录在存储器,MCU进入复位状态并且发出警告。
MCU硬件检查调试接口的配置状态,同时做到可信审计,即记录下非法侵入的时间和状态,攻击行为赖不掉。
MCU继续启动,在启动调试接口时,会对调试电路进行身份认证,硬件发出一个信息序列,如果收到相对应的信息序列,则可以启用这个周边电路(即调试电路)。
如果启动调试接口发现客户是上锁的,即客户关闭调试接口的通路,但是授权用户又需要在系统运行时调试MCU,就会通过调试器发送命令,通过内部对称算法(AES,3DES,SM4等国际国家算法),对于授权调试器ID号,MCU ID号,MCU调试秘钥进行硬件加密,与之前存入MCU某一特定地址的数据进行硬件匹配,如果匹配正确,那么调试接口的通路被打开,客户可以进行调试MCU。
如果这里的多重身份认证失效的话,MCU会把这次调试器连接过程认为是一次攻击,配合系统时钟,把攻击记录在特定的Flash存储器,这个记录攻击特性的Flash可以是MCU内部Flash,也可以是系统外挂Flash。
作为上述技术方案的进一步优选的技术方案,步骤S4具体实施为以下步骤:
步骤S4.1:MCU对在线调试器进行主动身份认证;
步骤S4.2:MCU对在线调试器的身份确认后进行在线调试、监控数据和升级程序。
可信认证之后,进行在线调试,监控数据,升级程序。因为中间传递的信息都是加密信息,做到可信存储,可信控制,即敏感信息拿不到,或重要信息看不懂。
因为通过步骤S3打开调试电路通道,步骤S4.1打开调试电路数据连接,授权用户可以进行在线调试MCU的工作。
但是其中MCU与调试器相连时,接口是外部可以被探测到的,所以MCU与调试器的数据交互不是明文的,而是通过RNG,秘钥Key,交互数据进行加解密之后进行交互,上位机(调试软件,Keil,IAR)与下位机(MCU指令数据读取)亦通过相同的硬件加解密算法进行解密,所以上位机,下位机的数据交互就是明文。
其中在线调试器,MCU都需要内建有信息安全算法,并且是防止数据泄露的可信设备或者MCU,如果发现在线调试过程中数据泄露,MCU进入复位状态并且发出警告。
作为上述技术方案的进一步优选的技术方案,步骤S4.1具体实施为以下步骤:
步骤S4.1.1:在线调试器通过调试接口将认证密文发送到MCU;
步骤S4.1.2:MCU收到密文后进行解析并且把解析后的密文发送到在线调试器;
步骤S4.1.3:在线调试器接收到解析后的密文后结合步骤S4.1.1中的认证密文解析出MCU要求在线调试器的认证指令并且把认证指令发送到MCU;
步骤S4.1.4:MCU得到认证指令后解析出在线调试器ID号,如果在线调试器ID号属于白名单,则在线调试器通过身份确认,否则MCU进入复位状态并且发出警告。
MCU调试接口与在线调试器多重身份认证,做到可信认证,即攻击者进不来,拿不走数据,同时做到可信度量,即系统信息无法更改。
这是步骤S3的补充,因为这是带主动防御体系的MCU,这意味着MCU不可以简单被动的,被外部在线调试器调试。在线调试器不仅仅通过认证打开MCU调试电路,MCU也必须主动对于在线调试器进行身份认证,以防被黑客攻击。
在线调试器发送认证密文,密文由秘钥KEY,随机数RNG加密组成,通过调试接口发送给MCU。
MCU收到密文之后,按照共同的秘钥,进行随机数RNG的解析,得到RNG的信息,然后MCU硬件把当前RNG,当前秘钥KEY,要求在线调试器认证指令,3项加密之后发给在线调试器。
在线调试器接收到MCU发出的密文之后,结合刚才发出的随机数RNG,秘钥KEY,解析出MCU要求在线调试器认证的指令,再次把在线调试器ID信息,随机数RNG,秘钥KEY发送给MCU。
MCU得到密文之后,随机数RNG,秘钥KEY为已知信息,然后解密出在线调试器ID号,如果在线调试器ID属于白名单的话,在步骤S3打开调试通路的基础上,把数据通路也打开,授权用户可以在线调试MCU。
每次认证都会产生新的随机数RNG,所以无法在调试接口进行数据探测。
步骤5具体实施为:一切更新之后,MCU重启,新的安全策略(即安全方式)启动,下次在线调试需要使用更新之后的在线调试策略,MCU实现了主动防御功能。
授权用户使用在线调试器调试之后,并进行程序升级之后,相对应的安全策略也可以进行更新。
比如在线调试接口的彻底锁死,系统不再允许更新。
比如修改了秘钥KEY,秘钥KEY可以是上一次秘钥,或者原始秘钥,加上这次修改的程序版本,甚至加上修改日期,或者加上在线调试器ID信息,形成新的秘钥KEY,增强系统的信息安全。
MCU重启,实现新的安全策略。
步骤S6具体实施为:MCU经过所有度量之后,确保所有数据以及MCU硬件功能模块处于可信状态,正常启动。
这是带主动防御功能的MCU工作方式,每一步启动,都要进行主动度量,每一个电路或者运行过程都要可信才能被执行下去,否则MCU进入复位状态或者报警状态。
附图说明
图1是本发明的带主动防御功能的在线调试的MCU设计方法的信号链过程图。
图2是本发明的带主动防御功能的在线调试的MCU设计方法的流程图。
图3是本发明的带主动防御功能的在线调试的MCU设计方法的硬件连接图。
具体实施方式
以下描述用于揭露本发明以使本领域技术人员能够实现本发明。以下描述中的优选实施例只作为举例,本领域技术人员可以想到其他显而易见的变型。在以下描述中界定的本发明的基本原理可以应用于其他实施方案、变形方案、改进方案、等同方案以及没有背离本发明的精神和范围的其他技术方案。
参见附图的图1,图1是本发明的带主动防御功能的在线调试的MCU设计方法的信号链过程图,图2是本发明的带主动防御功能的在线调试的MCU设计方法的流程图,图3是本发明的带主动防御功能的在线调试的MCU设计方法的硬件连接图。
在本发明的优选实施例中,本领域技术人员应注意,本发明所涉及的随机数RNG、秘钥KEY等可被视为现有技术。
优选实施例。
为达到以上目的,本发明提供一种带主动防御功能的在线调试的MCU设计方法,上位机(调试软件,如Keil、IAR)通过在线调试器(如Jlink)对MCU进行在线调试,包括以下步骤:
步骤S1:MCU上电运行并且对各个侦测电路进行可信度量;
步骤S2:MCU在通过各个侦测电路可信度量后,MCU对各个存储电路的数据进行可信度量:
步骤S3:MCU在启动调试接口时检查调试接口的配置状态,对调试电路进行可信度量,并且记录非法侵入信息;
步骤S4:MCU对在线调试器进行身份认证后,上位机(PC电脑上位机调试软件)通过在线调试器进行在线调试、监控数据和升级程序;
步骤S5:MCU在在线调试、监控数据和升级程序后进行重启,以获得新的安全方式;
步骤S6:MCU的各个模块均通过可信度量后,以确保所有的数据以及(MCU硬件功能)模块处于可信状态,进行正常启动。
具体的是,步骤S1具体实施为以下步骤:
步骤S1.1:VD电源侦测电路启动检查MCU的电源是否正常,如果正常则VD电源侦测电路通过可信度量,则启动电源模块,否则MCU进入复位状态并且发出警告;
这是MCU基本功能,每个MCU都有上电复位电路,这样每个MCU上电之后可以从复位开始运行程序,否则程序会异常跑飞,因为CPU没有上电复位的话,整个CPU都是不确定状态,包括指令读取,指令解析,程序执行都处于异常状态,VD电源侦测电路启动检查MCU电源是否正常,一旦异常MCU进入复位状态。
步骤S1.2:屏蔽电路启动检查MCU的最顶层金属是否正常,如果屏蔽电路通过可信度量,则最顶层金属未被修改并且屏蔽电路的信号进行完整传递,否则MCU进入复位状态并且发出警告;
内部关键路径上的屏蔽电路以及屏蔽电路时钟启动,屏蔽电路一般是最顶层金属,一旦发现有人对于顶层金属有修改,那么屏蔽电路信号就无法完整传递,MCU就一直处于复位状态。
步骤S1.3:LD光侦测电路启动检查MCU的光线强度,如果LD光侦测电路通过可信度量,则MCU未被开盖或者电子辐射,否则MCU进入复位状态并且发出警告;
芯片(即MCU)同时启动LD光侦测电路,一旦发现有光进入芯片(晶圆片)说明MCU被开盖或电子辐射,一旦处于被探测状态,LD光侦测电路产生复位信号,使MCU处于复位状态。
步骤S1.4:CD时钟侦测电路启动检查MCU内部或者外部的时钟,如果CD时钟侦测电路通过可信度量,则MCU内部或者外部的时钟未被破坏,否则MCU进入复位状态并且发出警告。
MCU继续启动,并启动CD时钟侦测电路,一旦内部或者外部时钟大于或者小于某个限定,说明时钟被人破坏,CD时钟侦测电路产生复位信号,使MCU处于复位状态。
更具体的是,步骤S2具体实施为以下步骤:
步骤S2.1:在启动Boot loader程序之前,对Boot loader程序所在的自启动程序存储器的数据进行检查,把自启动程序存储器的(所有)数据搬运到HSAH硬件模块并且对数据进行可行度量,如果发现数据错误,则MCU进入复位状态并且发出警告;
步骤S2.2:对于变量所在的变量存储器(RAM)进行数据清零并且对校验清零之后的变量(RAM)数据进行可信度量,如果发现数据错误,则MCU进入复位状态并且发出警告;
步骤S2.3:在启动客户程序之前,对客户程序所在的客户存储器的数据进行还检查,把客户存储器的(所有)数据搬运到HSAH硬件模块并且对数据进行可行度量,如果发现数据错误,则MCU进入复位状态并且发出警告。
进一步的是,步骤S3具体实施为以下步骤:
步骤S3.1:MCU在启动调试接口时对调试电路进行身份确认,如果调试电路通过可信度量,则MCU进行启用调试电路;
步骤S3.2:如果启动调试接口时发现调试接口的通路被关闭,MCU通过在线调试器发送命令并且通过内部对称算法对数据进行加密,数据与预存入MCU的特定地址数据进行硬件匹配,如果匹配正确,则调试接口的通路被打开并且进行调试;
步骤S3.3:如果MCU对调试电路的身份确认失效,则MCU配合时钟系统将攻击记录在存储器,MCU进入复位状态并且发出警告。
MCU硬件检查调试接口的配置状态,同时做到可信审计,即记录下非法侵入的时间和状态,攻击行为赖不掉。
MCU继续启动,在启动调试接口时,会对调试电路进行身份认证,硬件发出一个信息序列,如果收到相对应的信息序列,则可以启用这个周边电路(即调试电路)。
如果启动调试接口发现客户是上锁的,即客户关闭调试接口的通路,但是授权用户又需要在系统运行时调试MCU,就会通过调试器发送命令,通过内部对称算法(AES,3DES,SM4等国际国家算法),对于授权调试器ID号,MCU ID号,MCU调试秘钥进行硬件加密,与之前存入MCU某一特定地址的数据进行硬件匹配,如果匹配正确,那么调试接口的通路被打开,客户可以进行调试MCU。
如果这里的多重身份认证失效的话,MCU会把这次调试器连接过程认为是一次攻击,配合系统时钟,把攻击记录在特定的Flash存储器,这个记录攻击特性的Flash可以是MCU内部Flash,也可以是系统外挂Flash。
更进一步的是,步骤S4具体实施为以下步骤:
步骤S4.1:MCU对在线调试器进行主动身份认证;
步骤S4.2:MCU对在线调试器的身份确认后进行在线调试、监控数据和升级程序。
可信认证之后,进行在线调试,监控数据,升级程序。因为中间传递的信息都是加密信息,做到可信存储,可信控制,即敏感信息拿不到,或重要信息看不懂。
因为通过步骤S3打开调试电路通道,步骤S4.1打开调试电路数据连接,授权用户可以进行在线调试MCU的工作。
但是其中MCU与调试器相连时,接口是外部可以被探测到的,所以MCU与调试器的数据交互不是明文的,而是通过RNG,秘钥Key,交互数据进行加解密之后进行交互,上位机(调试软件,Keil,IAR)与下位机(MCU指令数据读取)亦通过相同的硬件加解密算法进行解密,所以上位机,下位机的数据交互就是明文。
其中在线调试器,MCU都需要内建有信息安全算法,并且是防止数据泄露的可信设备或者MCU,如果发现在线调试过程中数据泄露,MCU进入复位状态并且发出警告。
优选地,步骤S4.1具体实施为以下步骤:
步骤S4.1.1:在线调试器通过调试接口将认证密文发送到MCU;
步骤S4.1.2:MCU收到密文后进行解析并且把解析后的密文发送到在线调试器;
步骤S4.1.3:在线调试器接收到解析后的密文后结合步骤S4.1.1中的认证密文解析出MCU要求在线调试器的认证指令并且把认证指令发送到MCU;
步骤S4.1.4:MCU得到认证指令后解析出在线调试器ID号,如果在线调试器ID号属于白名单,则在线调试器通过身份确认,否则MCU进入复位状态并且发出警告。
MCU调试接口与在线调试器多重身份认证,做到可信认证,即攻击者进不来,拿不走数据,同时做到可信度量,即系统信息无法更改。
这是步骤S3的补充,因为这是带主动防御体系的MCU,这意味着MCU不可以简单被动的,被外部在线调试器进行调试。在线调试器不仅仅通过认证打开MCU调试电路,MCU也必须主动对于在线调试器进行身份认证,以防被黑客攻击。
在线调试器发送认证密文,密文由秘钥KEY,随机数RNG加密组成,通过调试接口发送给MCU。
MCU收到密文之后,按照共同的秘钥,进行随机数RNG的解析,得到RNG的信息,然后MCU硬件把当前RNG,当前秘钥KEY,要求在线调试器认证指令,3项加密之后发给在线调试器。
在线调试器接收到MCU发出的密文之后,结合刚才发出的随机数RNG,秘钥KEY,解析出MCU要求在线调试器认证的指令,再次把在线调试器ID信息,随机数RNG,秘钥KEY发送给MCU。
MCU得到密文之后,随机数RNG,秘钥KEY为已知信息,然后解密出在线调试器ID号,如果在线调试器ID属于白名单的话,在步骤S3打开调试通路的基础上,把数据通路也打开,授权用户可以在线调试MCU。
每次认证都会产生新的随机数RNG,所以无法在调试接口进行数据探测。
步骤5具体实施为:一切更新之后,MCU重启,新的安全策略(即安全方式)启动,下次在线调试需要使用更新之后的在线调试策略,MCU实现了主动防御功能。
授权用户使用在线调试器调试之后,并进行程序升级之后,相对应的安全策略也可以进行更新。
比如在线调试接口的彻底锁死,系统不再允许被再次在线来调试更新,当发现在线调试接口有攻击行为,则MCU进入复位状态并且发出警告。
比如修改了秘钥KEY,秘钥KEY可以是上一次秘钥,或者原始秘钥,加上这次修改的程序版本,甚至加上修改日期,或者加上在线调试器ID信息,形成新的秘钥KEY,增强系统的信息安全。
MCU重启,实现新的安全策略。
步骤S6具体实施为:MCU经过所有度量之后,确保所有数据以及MCU硬件功能模块处于可信状态,正常启动。
这是带主动防御功能的MCU工作方式,每一步启动,都要进行主动度量,每一个电路或者运行过程都要可信才能被执行下去,否则MCU进入复位状态或者报警状态。
优选地,本发明涉及的不仅仅为MCU芯片,还可以应用于SOC芯片。
优选地,使用本发明的可信MCU,是可以做到从系统最底层的硬件芯片就开始的主动防御功能,使整个工业控制系统安全体系不再是空中楼阁,带主动防御功能的可信MCU是整个工业系统的安全防护体系的基石。但是为了信息安全,不能矫枉过正的简单粗暴关闭在线调试功能。其中带主动防御功能的在线调试功能既能保障信息安全,又能保障系统的在线调试,在线升级,提升系统的稳定性和安全性。
值得一提的是,本发明专利申请涉及的随机数RNG、秘钥KE等技术特征应被视为现有技术,这些技术特征的具体结构、工作原理以及可能涉及到的控制方式、空间布置方式采用本领域的常规选择即可,不应被视为本发明专利的发明点所在,本发明专利不做进一步具体展开详述。
对于本领域的技术人员而言,依然可以对前述各实施例所记载的技术方案进行修改,或对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围。
Claims (6)
1.一种带主动防御功能的在线调试的MCU设计方法,上位机通过在线调试器对MCU进行在线调试,其特征在于,包括以下步骤:
步骤S1:MCU上电运行并且对各个侦测电路进行可信度量;
步骤S2:MCU在通过各个侦测电路可信度量后,MCU对各个存储电路的数据进行可信度量:
步骤S3:MCU在启动调试接口时检查调试接口的配置状态,对调试电路进行可信度量,并且记录非法侵入信息;
步骤S4:MCU对在线调试器进行身份认证后,上位机通过在线调试器进行在线调试、监控数据和升级程序;
步骤S5:MCU在在线调试、监控数据和升级程序后进行重启,以获得新的安全方式;
步骤S6:MCU的各个模块均通过可信度量后,以确保所有的数据以及模块处于可信状态,进行正常启动。
2.根据权利要求1所述的一种带主动防御功能的在线调试的MCU设计方法,其特征在于,步骤S1具体实施为以下步骤:
步骤S1.1:VD电源侦测电路启动检查MCU的电源是否正常,如果正常则VD电源侦测电路通过可信度量,则启动电源模块,否则MCU进入复位状态并且发出警告;
步骤S1.2:屏蔽电路启动检查MCU的最顶层金属是否正常,如果屏蔽电路通过可信度量,则最顶层金属未被修改并且屏蔽电路的信号进行完整传递,否则MCU进入复位状态并且发出警告;
步骤S1.3:LD光侦测电路启动检查MCU的光线强度,如果LD光侦测电路通过可信度量,则MCU未被开盖或者电子辐射,否则MCU进入复位状态并且发出警告;
步骤S1.4:CD时钟侦测电路启动检查MCU内部或者外部的时钟,如果CD时钟侦测电路通过可信度量,则MCU内部或者外部的时钟未被破坏,否则MCU进入复位状态并且发出警告。
3.根据权利要求2所述的一种带主动防御功能的在线调试的MCU设计方法,其特征在于,步骤S2具体实施为以下步骤:
步骤S2.1:在启动Boot loader程序之前,对Boot loader程序所在的自启动程序存储器的数据进行检查,把自启动程序存储器的数据搬运到HSAH硬件模块并且对数据进行可行度量,如果发现数据错误,则MCU进入复位状态并且发出警告;
步骤S2.2:对于变量所在的变量存储器进行数据清零并且对校验清零之后的变量数据进行可信度量,如果发现数据错误,则MCU进入复位状态并且发出警告;
步骤S2.3:在启动客户程序之前,对客户程序所在的客户存储器的数据进行还检查,把客户存储器的数据搬运到HSAH硬件模块并且对数据进行可行度量,如果发现数据错误,则MCU进入复位状态并且发出警告。
4.根据权利要求1或3任一项所述的一种带主动防御功能的在线调试的MCU设计方法,其特征在于,步骤S3具体实施为以下步骤:
步骤S3.1:MCU在启动调试接口时对调试电路进行身份确认,如果调试电路通过可信度量,则MCU进行启用调试电路;
步骤S3.2:如果启动调试接口时发现调试接口的通路被关闭,MCU通过在线调试器发送命令并且通过内部对称算法对数据进行加密,数据与预存入MCU的特定地址数据进行硬件匹配,如果匹配正确,则调试接口的通路被打开并且进行调试;
步骤S3.3:如果MCU对调试电路的身份确认失效,则MCU配合时钟系统将攻击记录在存储器,MCU进入复位状态并且发出警告。
5.根据权利要求4所述的一种带主动防御功能的在线调试的MCU设计方法,其特征在于,步骤S4具体实施为以下步骤:
步骤S4.1:MCU对在线调试器进行主动身份认证;
步骤S4.2:MCU对在线调试器的身份确认后进行在线调试、监控数据和升级程序。
6.根据权利要求5所述的一种带主动防御功能的在线调试的MCU设计方法,其特征在于,步骤S4.1具体实施为以下步骤:
步骤S4.1.1:在线调试器通过调试接口将认证密文发送到MCU;
步骤S4.1.2:MCU收到密文后进行解析并且把解析后的密文发送到在线调试器;
步骤S4.1.3:在线调试器接收到解析后的密文后结合步骤S4.1.1中的认证密文解析出MCU要求在线调试器的认证指令并且把认证指令发送到MCU;
步骤S4.1.4:MCU得到认证指令后解析出在线调试器ID号,如果在线调试器ID号属于白名单,则在线调试器通过身份确认,否则MCU进入复位状态并且发出警告。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010504480.0A CN111708293A (zh) | 2020-06-05 | 2020-06-05 | 带主动防御功能的在线调试的mcu设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010504480.0A CN111708293A (zh) | 2020-06-05 | 2020-06-05 | 带主动防御功能的在线调试的mcu设计方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111708293A true CN111708293A (zh) | 2020-09-25 |
Family
ID=72538956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010504480.0A Withdrawn CN111708293A (zh) | 2020-06-05 | 2020-06-05 | 带主动防御功能的在线调试的mcu设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111708293A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116860656A (zh) * | 2023-08-30 | 2023-10-10 | 深圳市瑞之辰科技有限公司 | 基于KeilC的MCU调试方法及系统 |
-
2020
- 2020-06-05 CN CN202010504480.0A patent/CN111708293A/zh not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116860656A (zh) * | 2023-08-30 | 2023-10-10 | 深圳市瑞之辰科技有限公司 | 基于KeilC的MCU调试方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10733291B1 (en) | Bi-directional communication protocol based device security | |
Parno | Bootstrapping Trust in a" Trusted" Platform. | |
CN104156642B (zh) | 一种基于安全触控屏控制芯片的安全密码输入系统和方法 | |
Van Woudenberg et al. | Practical optical fault injection on secure microcontrollers | |
Parno et al. | Bootstrapping trust in modern computers | |
US8782404B2 (en) | System and method of providing trusted, secure, and verifiable operating environment | |
US10659237B2 (en) | System and method for verifying integrity of an electronic device | |
US20040128523A1 (en) | Information security microcomputer having an information securtiy function and authenticating an external device | |
CN101351807A (zh) | 用于把嵌入式安全芯片与计算机相关联的方法和系统 | |
TW201633207A (zh) | 裝置金鑰保護 | |
Shepherd et al. | Physical fault injection and side-channel attacks on mobile devices: A comprehensive analysis | |
US8151111B2 (en) | Processing device constituting an authentication system, authentication system, and the operation method thereof | |
CN111708293A (zh) | 带主动防御功能的在线调试的mcu设计方法 | |
Nisarga et al. | System-level tamper protection using MSP MCUs | |
CN112948086A (zh) | 一种可信plc控制系统 | |
US20210281398A1 (en) | Method For Protecting A Payment Terminal | |
US20200034832A1 (en) | Tokenization devices, systems, and methods | |
CN111709019A (zh) | 带主动防御功能的在线烧录的mcu设计方法 | |
CN111709020A (zh) | 带主动防御功能的离线烧录的mcu设计方法 | |
Woschek | Owasp cheat sheets | |
EP3244375A1 (fr) | Microcontrôleur pour démarrage sécurisé avec pare-feu | |
CN209785060U (zh) | 物联网安全支付平台 | |
Msgna et al. | Secure application execution in mobile devices | |
Jacob et al. | faultpm: Exposing amd ftpms’ deepest secrets | |
KR101296402B1 (ko) | 암호화된 시드를 이용한 모바일 오티피 장치의 등록 방법 |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200925 |
|
WW01 | Invention patent application withdrawn after publication |