一种MCU调试口保护机制的电路架构及其实现方法与流程

专利2025-12-31  8


本发明属于芯片设计领域,特别涉及针对mcu芯片中的调试接口访问保护与权限管理,提出了一种硬件电路架构与方案实现流程,具体为一种mcu调试口保护机制的电路架构及其实现方法。


背景技术:

1、mcu(微控制器),又称单片微型计算机,是一种包含了cpu(中央处理器)、通信外设、存储器、i\o、adc、传感器等电路的片上系统,能够实现比较复杂的人机交互、电机控制、传感器监测等功能;并且随着微电子技术与计算机技术的不断发展,mcu的功能与性能也不断提升,工作频率越来越高、内核与管脚越来越多、功能越来越丰富,这也使得mcu在消费级电子、工业电子、汽车电子领域有了越来越广泛的应用。

2、随着mcu越来越多地应用于重要、关键的领域,这也对mcu提出了更高的安全要求,mcu产品的开发者与使用者希望保护mcu硬件不被非法盗用,软件数据不被非法访问,针对电气电子架构信息安全的标准与法规也开始不断完善,例如,工业网络安全标准iec62443-4-1、汽车网络安全标准iso21434。

3、为实现mcu的信息安全保护,hsm(hardware security module)方案被采用,hsm构建了安全子系统,为整个mcu提供安全启动、安全存储、安全服务、安全访问等功能,hsm对mcu的接口进行了严格的权限管理,从而保护mcu不被非法访问,其中一个很重要的接口就是jtag调试接口。

4、调试接口对于基于mcu的产品开发与调试有着重要的作用,这里的调试接口包括jtag、swd、uart等方式,考虑jtag协议应用较为广泛,下以jtag为主要描述对象。

5、通过jtag接口可以很便捷地获取mcu内部关键信息,监视mcu的运行状况,尤其是现代完善的debug机制提供了内核的高度可见性,从而实现加速产品开发与快速定位问题。jtag接口在提供便利的同时也暴露了安全隐患,给恶意访问的攻击者提供了便利,攻击者可以利用jtag接口获取mcu内部代码、数据等知识产权信息,甚至可以通过jtag接口篡改mcu内部固件,运行非法程序,这些都会造成严重后果。

6、针对jtag接口可能被非法滥用给产品带来的安全漏洞与知识产权泄密的风险,很多厂商会对jtag的权限增加限制,目前主要做法有以下三种:

7、1、基于otp编程机制

8、otp是mcu内部具有一次性编程属性的非易失存储器,在编程后便不可重复编程,利用该特性,可以在mcu产品生产的最后阶段修改控制jtag使能的otp内容,将调试口永久封禁;

9、2、基于固定密钥机制

10、固定密码锁是利用mcu内部电路与非易失存储区域实现密钥编程、上锁和密钥比对、解锁的机制,在mcu产品生产的最后阶段编程固定密钥值进行上锁,用户通过输入对应密钥进行解锁;

11、3、基于密码学认证机制

12、认证机制是通过一个challenge-response的握手方式实现的,用户在对jtag上锁前,需要在mcu中存储用于解锁的密钥,在解锁时,通常通过通信接口向mcu申请随机数相关信息,即为challenge,用户再使用解锁密钥对该challenge进行签名加密,并将该加密值输入至mcu,即为response,mcu中的应用程序利用存储的密钥采用相同协议对加密值进行验签,如验签通过则使能jtag。

13、方案1与方案2的缺点是灵活差、易泄密、易破解,对于实现重要功能、具有高安全需求应用的mcu产品已不再适用,方案3凭借基于密码学的保密机制,被越来越多的应用,例如,arm架构中提供了一组authentication信号用来对debug功能限制,并且开放给用户通过自己的“authentication module”来驱动该信号,并建议使用基于密码学的challenge-response机制实现管理,arm内核技术文档中描述:“arm 建议使用一种基于芯片内随机数生成器或者设备独有硬件密钥的challenge-response机制。”

14、采用方案3的一类典型mcu产品通常内部具有加解密模块(如aes、hash)与随机数发生器(trng),有些mcu产品会采用hsm模块(hardware security module)方案,hsm是将上述加密模块、trng以及安全核组合起来,构成了与应用核安全隔离的“安全岛”,实现提供包括密钥管理、随机数生成、加解密服务等功能,应用核使用核间通信模块(mail box)与hsm进行信息传递,从而实现各种密码学服务应用。

15、hsm方案同独立的加解密模块与trng模块组合方案同样能够实现本专利所描述的方法,为简化与统一描述,下以密码服务引擎代称上述两种方案。

16、当前方案3的主要实现流程是:

17、1、发起者通过外设通信模块向mcu应用核传递debug解锁请求信息,应用核应用程序向密码服务引擎发起challenge生成请求;

18、2、密码服务引擎接收到challenge生成请求,密码服务引擎运行随机数生成,并将随机数及其他信息组装成challenge信息返回至应用核;

19、3、应用核应用程序将challenge信息通过通信外设返回至发起者,发起者需根据约定好的协议对接收到的challenge信息使用密钥进行加密处理,生成信息摘要;

20、4、发起者通过外设通信模块向mcu应用核传递response解锁验证信息,应用核应用程序向密码服务引擎发起response验证请求;

21、5、密码服务引擎接收到response验证请求,密码服务引擎运行同样的协议,使用相应密钥对challenge信息进行加密处理,将生成的信息摘要与接收到的response信息进行比对,如果一致则解锁mcu jtag,否则保持锁定,并可选反馈状态信息。

22、基于前述分析,方案3中基于密码学认证机制相较方案1与方案2更适合高价值、高安全需求mcu应用场景,相对应的是其需要额外使用一定软硬件资源。

23、当前已有的实现方案仍存在以下缺陷与欠缺:

24、1、需要额外占用mcu通信接口,与对应的应用程序空间

25、根据前述方案3实现流程的描述,jtag解锁过程,发起者都是通过通信外设模块,如can、uart等,与mcu进行通信,mcu需增加基于该外设、用于认证流程的应用程序,专门用于jtag解锁应用;因此将占用mcu珍贵的外设、管脚资源与程序存储空间,这对于资源敏感的mcu产品是不合算的,甚至不可接受的。

26、2、依赖mcu应用核的运行

27、根据前述方案3实现流程的描述,需要mcu应用核处于运行状态,以运行认证流程的应用程序,但实际情况,应用核可能因各种复杂原因无法运行,例如,应用程序固件错误无法启动、应用程序陷入死循环、硬件电路故障等,在此场景下,jtag无法解锁,这将会限制、甚至阻塞问题的分析。

28、3、欠缺多核不同权限等级管理功能

29、当前已有实现方案暂未考虑多核mcu不同核具有单独jtag访问权限管理场景,通常对jtag的解锁/上锁是直接控制jtag所在端口或管脚的使能/禁能实现的,此方案下jtag上锁后,所有核均无法通过jtag访问,jtag解锁后,jtag能够访问到所有内核信息。这对于大型mcu产品的开发是不友好的,例如,某些产品会将mcu不同核运行不同类型应用程序,如应用核0运行安全功能,应用核1运行非安全功能,应用核1的开发与调试人员是不希望其他开发人员能够访问到应用核0内部信息的。


技术实现思路

1、本发明的目的是针对现有技术存在的问题,提供一种mcu调试口保护机制的电路架构及其实现方法,在不额外占用mcu通信接口、不依赖于mcu应用核的运行且能满足多核不同权限等级管理的前提下,实现了高价值、高安全需求mcu应用场景的基于密码学认证机制。

2、根据本发明说明书的一方面,提供一种mcu调试口保护机制的电路架构,包括:调试访问端口和调试鉴权模块;

3、所述调试访问端口包括一路寄存器访问通路、若干具有独立上锁/解锁控制的ap通路,以及锁控制单元,所述锁控制单元用于分别与若干所述具有独立上锁/解锁控制的ap通路连接;

4、所述调试鉴权模块包括寄存器接口,用于寄存器访问通路进行读写访问;主状态机,用于根据寄存器配置信息管理各ap通路的解锁流程;邮箱信息生成单元,用于在主状态机的管理下,根据寄存器配置信息,按照预定格式生成挑战请求命令与应答验证命令并发送给密码服务引擎;ap锁控制状态单元,与调试访问端口的锁控制单元连接,用于在主状态机的管理下,控制各个ap通路的解锁状态。

5、作为进一步的技术方案,所述存储器空间包括:

6、ap通道选择配置寄存器,用于选择对哪个ap通路进行解锁;

7、挑战-应答协议相关配置寄存器,用于选择要使用的算法;

8、挑战-应答协议相关数据寄存器,用于存储所需读取的挑战信息与所需写入的应答信息;

9、命令发起控制寄存器,用于发起挑战请求命令、发起应答验证命令;

10、命令完成状态寄存器,用于命令完成状态。

11、作为进一步的技术方案,所述调试鉴权模块与密码服务引擎之间硬件通信。

12、作为进一步的技术方案,所述调试鉴权模块连接一硬件通信接口,所述硬件通信接口通过总线连接密码服务引擎。

13、根据本发明说明书的一方面,提供一种mcu调试口保护机制的实现方法,采用所述的电路架构实现,所述方法包括:

14、接收使能的挑战请求命令,所述挑战请求命令的配置信息包括待解锁的ap通道及挑战-应答协议所使用的算法类型;

15、响应于所述挑战请求命令,根据配置信息生成并发起挑战请求mailbox命令;

16、在所述挑战请求mailbox命令完成且成功时,获取密码服务引擎生成的挑战信息并存储于寄存器接口;

17、接收使能的应答验证命令,所述应答验证命令是根据生成的挑战信息、使用约定好的算法与密钥进行加密后生成;

18、响应于所述应答验证命令,根据配置信息生成并发起应答验证mailbox命令;

19、在所述应答验证mailbox命令完成且成功时,更新对应ap的锁状态,以解锁对应的ap通路。

20、作为进一步的技术方案,所述方法还包括:在所述挑战请求mailbox命令完成但失败时,自动更新命令完成状态寄存器,输出挑战请求命令失败。

21、作为进一步的技术方案,所述方法还包括:在所述应答验证mailbox命令完成但失败时,自动更新命令完成状态寄存器,输出应答验证命令失败。

22、与现有技术相比,本发明的有益效果是:

23、1、本发明利用调试访问端口dap电路特点,复用了jtag接口用于基于密码学认证机制方案的通信接口,不需占用mcu额外外设与管脚资源。

24、2、本发明由调试鉴权模块adm模块硬件完成challenge-response协议的实现,不需要mcu应用核的参与,节省了应用程序空间,降低了解锁条件要求。

25、3、本发明由调试鉴权模块adm模块实现对不同ap通路的独立的权限管理,满足了mcu产品级灵活调试权限管理需求。


技术特征:

1.一种mcu调试口保护机制的电路架构,其特征在于,包括:调试访问端口和调试鉴权模块;

2.根据权利要求1所述一种mcu调试口保护机制的电路架构,其特征在于,所述存储器空间包括:

3.根据权利要求1所述一种mcu调试口保护机制的电路架构,其特征在于,所述调试鉴权模块与密码服务引擎之间硬件通信。

4.根据权利要求3所述一种mcu调试口保护机制的电路架构,其特征在于,所述调试鉴权模块连接一硬件通信接口,所述硬件通信接口通过总线连接密码服务引擎。

5.一种mcu调试口保护机制的实现方法,采用权利要求1-4中任一项权利要求所述的电路架构实现,其特征在于,所述方法包括:

6.根据权利要求5所述一种mcu调试口保护机制的实现方法,其特征在于,所述方法还包括:在所述挑战请求mailbox命令完成但失败时,自动更新命令完成状态寄存器,输出挑战请求命令失败。

7.根据权利要求5所述一种mcu调试口保护机制的实现方法,其特征在于,所述方法还包括:在所述应答验证mailbox命令完成但失败时,自动更新命令完成状态寄存器,输出应答验证命令失败。


技术总结
本发明公开一种MCU调试口保护机制的电路架构及其实现方法,电路架构包括:调试访问端口和调试鉴权模块;调试访问端口包括一路寄存器访问通路、若干具有独立上锁/解锁控制的AP通路,以及锁控制单元,所述锁控制单元用于分别与若干所述具有独立上锁/解锁控制的AP通路连接;所述调试鉴权模块包括寄存器接口,用于寄存器访问通路进行读写访问;主状态机,用于根据寄存器配置信息管理各AP通路的解锁流程;邮箱信息生成单元,用于在主状态机的管理下,根据寄存器配置信息,按照预定格式生成挑战请求命令与应答验证命令并发送给密码服务引擎;AP锁控制状态单元,与调试访问端口的锁控制单元连接,用于在主状态机的管理下,控制各个AP通路的解锁状态。

技术研发人员:蒋晓伟
受保护的技术使用者:武汉芯必达微电子有限公司
技术研发日:
技术公布日:2024/12/17
转载请注明原文地址:https://xbbs.6miu.com/read-28760.html