CN118113544A - 用于调试认证的主机-设备接口 - Google Patents

用于调试认证的主机-设备接口 Download PDF

Info

Publication number
CN118113544A
CN118113544A CN202311619883.XA CN202311619883A CN118113544A CN 118113544 A CN118113544 A CN 118113544A CN 202311619883 A CN202311619883 A CN 202311619883A CN 118113544 A CN118113544 A CN 118113544A
Authority
CN
China
Prior art keywords
processing unit
register
port
debug
host
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
Application number
CN202311619883.XA
Other languages
English (en)
Inventor
X·查巴尼
N·范登博谢
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.)
Italian Semiconductor International Co
Original Assignee
Italian Semiconductor International Co
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 Italian Semiconductor International Co filed Critical Italian Semiconductor International Co
Publication of CN118113544A publication Critical patent/CN118113544A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface

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)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Abstract

本公开提供了用于调试认证的主机‑设备接口。一种电子设备包括提供用于调试目的的通信接口的调试端口、多个处理单元访问端口、被配置为认证外部设备的认证接口电路,以及耦合在调试端口与认证接口电路之间的另外的访问端口。该另外的访问端口被配置为处于打开状态,在打开状态下在调试端口与认证接口电路之间中继通信。认证接口电路具有寄存器,包括能够由外部设备经由调试端口和所述另外的访问端口读取的状态寄存器,状态寄存器被配置为存储每个处理单元访问端口的打开状态或关闭状态的指示。

Description

用于调试认证的主机-设备接口
优先权声明
本申请要求于2022年11月30日提交的法国专利申请号2212575的优先权以及于2023年11月28日提交的美国专利申请号18/521,480的优先权,其内容在法律允许的最大范围内通过引用整体并入本文。
技术领域
本公开一般而言涉及诸如微控制器之类的电子设备的领域,并且具体而言涉及允许安全访问电子设备的给定功能(诸如调试功能)的接口电路和方法。
背景技术
诸如微控制器或其它类型的集成电路之类的电子设备常常包括可以存储敏感数据的存储器,诸如闪存、RAM(随机存取存储器)和寄存器。此外,此类电子设备的诸如CPU(中央处理单元)之类的处理单元可以在处理期间操纵敏感数据。敏感数据是应当保持秘密的任何数据,因此不应当从设备外部可访问。这种敏感数据可以例如包括加密密钥、密码、软件代码、启动(boot)代码等。此类电子设备一般包括用于保护存储在设备上或以其它方式由设备操纵的数据的机制。例如,在制造设备时使用一个或多个访问端口将数据存储到存储器,然后关闭这些访问端口以防止在设备的寿命期间进一步访问存储器或处理单元。此类访问端口还可以被用于防止访问电子设备的外围设备。
但是,有时期望电子设备的存储器、处理单元和/或外围设备在设备的寿命期间变得可访问,例如出于调试目的。特别地,现场应用工程师对存储在CPU的存储器和/或寄存器中的数据的分析可以帮助识别错误行为的来源。但是,在实现允许打开访问端口以便在设备的寿命期间访问存储器、处理单元和/或外围设备的接口方面存在技术和安全性挑战。
发明内容
根据一个方面,一种电子设备包括:调试端口,提供用于调试目的的通信接口;第一处理单元;耦合到调试端口的一个或多个处理单元访问端口,其中处理单元访问端口中的第一处理单元访问端口耦合在调试端口与第一处理单元之间,其中一个或多个处理单元访问端口中的每一个被配置为处于打开状态和关闭状态之一,处理单元访问端口在打开状态下中继往返于调试端口的通信,处理单元访问端口在关闭状态下阻止往返于调试端口的通信;认证接口电路,被配置为对外部设备进行认证;以及另外的访问端口,其耦合在调试端口与认证接口电路之间,其中该另外的访问端口被配置为处于打开状态,在打开状态下在调试端口与认证接口电路之间中继通信;并且其中认证接口电路包括寄存器,所述寄存器具有由外部设备经由调试端口和所述另外的访问端口读取的状态寄存器,其中状态寄存器被配置为存储每个处理单元访问端口的打开状态或关闭状态的指示。
根据一个实施例,寄存器还包括主机寄存器,该主机寄存器被配置为由第一处理单元读取并且由外部设备经由调试端口和所述另外的访问端口写入。
根据一个实施例,寄存器还包括设备寄存器,该设备寄存器被配置为由外部设备经由调试端口和所述另外的访问端口读取并且由第一处理单元写入。
根据一个实施例,寄存器还包括确认寄存器,该确认寄存器被配置为指示电子消息的至少部分何时能在主机寄存器中被读取以及电子消息的至少部分何时能在设备寄存器中被读取,其中确认寄存器对于第一处理单元和外部设备是只读的。
根据一个实施例,认证接口电路被配置为:检测电子消息的至少部分何时已被写入主机寄存器,并且作为响应,设置确认寄存器中的主机确认位;以及检测第一处理单元何时读取主机寄存器,并且作为响应,重置确认寄存器中的主机确认位。
根据一个实施例,认证接口电路被配置为:检测电子消息的至少部分何时已被写入设备寄存器,并且作为响应,设置确认寄存器中的设备确认位;以及检测外部设备何时读取设备寄存器,并且作为响应,重置确认寄存器中的设备确认位。
根据一个实施例,第一处理单元被配置为:从主机寄存器读取来自外部设备的认证请求;认证外部设备;将所述一个或多个处理单元访问端口中的至少一个设置为打开状态,从而使得所述一个或多个处理单元访问端口的状态的指示在状态寄存器中被更新。
根据一个实施例,第一处理单元被配置为通过以下操作认证外部设备:将认证质询或密码请求存储到设备寄存器;从主机寄存器读取认证证书或密码;以及核实证书或密码。
根据一个实施例,电子设备还包括单调计数器,其中第一处理单元还被配置为从证书读取计数值的指示,调试功能性根据该计数值被授权,并且其中第一处理单元还被配置为执行包括单调计数器的递增的启动序列,其中一旦单调计数器达到所述计数值调试功能性就被授权。
根据一个实施例,处理单元访问端口各自耦合到相关联的处理单元。
根据一个实施例,电子设备还包括:外围接口;以及外围接口访问端口,其耦合在调试端口与外围接口之间,其中外围接口访问端口被配置为处于打开状态和关闭状态之一,外围接口访问端口在打开状态下中继往返于调试端口的通信,外围接口访问端口在关闭状态下阻止往返于调试端口的通信,其中状态寄存器被配置为存储外围接口访问端口的打开状态或关闭状态的指示。
根据另一方面,提供了一种发起上述电子设备的调试的方法,包括:由外部设备经由调试端口和另外的访问端口读取由状态寄存器存储的每个处理单元访问端口的状态;以及由外部设备发起对处于打开状态的处理单元中的一个或多个的调试。
本公开的另一方面涉及一种存储程序的非暂态计算机可读介质,当程序由外部设备中的处理器或计算系统执行时,使得外部设备执行如上定义的方法。
非暂态计算机可读介质可以具有与下面关于相关方法和相关设备阐述的特征和优点类似的特征和优点。
附图说明
前述特征和优点以及其它特征和优点将在以下以说明性而非限制性的方式给出的具体实施例的描述中参考附图进行详细描述,其中:
图1示意性地图示了电子设备;
图2更详细地示意性地图示了图1的电子设备的访问端口;
图3示意性地图示了图2的通信接口的认证接口电路的寄存器;以及
图4是图示使用外部设备访问电子设备用于调试目的的方法中的操作的流程图。
具体实施方式
在各个附图中相似的特征由相似的附图标记表示。特别地,在各个实施例之间共同的结构和/或功能特征可以具有相同的附图标记并且可以具有完全相同的结构、维度和材料特性。
为了清楚起见,已经详细地图示和描述了对于理解本文描述的实施例有用的操作和元件。例如,使用外部调试器的用于电子设备的调试技术在本领域中是众所周知的并且尚未详细描述。
除非另有指示,否则当提到连接在一起的两个元件时,这表示除了导体以外没有任何中间元件的直接连接,而当提到耦合在一起的两个元件时,这表示这两个元件可以连接或者它们可以经由一个或多个其它元件耦合。
在下面的公开中,除非另有指示,否则当提到绝对位置限定词(诸如术语“前”、“后”、“上”、“下”、“左”、“右”等)或者相对位置限定词(诸如术语“上方”、“下方”、“高于”、“低于”等)或者朝向限定词(诸如“水平”、“垂直”等)时,参考图中所示的朝向。
除非另有指定,否则表述“大约”、“近似”、“基本上”和“…左右”表示在10%以内,并且优选地在5%以内。
术语“易失性存储器”在本文中用于指存储在存储器中的数据仅在设备通电时才被保存的存储器设备,这意味着数据在断电时丢失。相比之下,“非易失性存储器”即使在设备通电时也会保存其存储的数据向下。
图1示意性地图示了根据示例实施例的电子设备100。电子设备100是例如集成电路。在一些实施例中,电子设备是微控制器。电子设备100例如包括一个或多个处理单元CPU1、CPU2、CPUn,诸如中央处理单元(CPU)。例如,在一些实施例中,电子设备100包括至少两个处理单元。电子设备100的处理单元之一例如被指定为主处理单元。在以下描述的示例实施例中,处理单元CPU1被指定为主处理单元,但是在替代实施例中另一个处理单元可以是主处理单元。
处理单元CPU1至CPUn例如耦合到系统总线102,系统总线102进一步耦合到一个或多个存储器电路。存储器电路可以包括一个或多个非易失性存储器和/或一个或多个易失性存储器。在图1的示例中,存储器电路包括非易失性存储器104(FLASH)(例如,闪存)和易失性存储器106(RAM)(例如,随机存取存储器)。一个或多个存储器电路104、106可以存储例如包括由一个或多个处理单元执行的指令的软件代码,以便实现电子设备100的功能性。
在一些实施例中,电子设备100还包括单调计数器108(MONOTONIC CNTR)。单调计数器108可以例如耦合到总线102。
单调计数器在现有技术中是已知的,这种计数器的示例在LFGSarmenta等人的出版物“Virtual Monotonic Counters and Count-Limited Objects using a TPM withouta Trusted OS”中描述,该出版物在法律允许的最大范围内通过引用并入。这个论文描述了由硬件和/或软件实现的计数器的实施例。单调计数器108例如由诸如专用集成电路(ASIC)之类的数字电路形式的硬件来实现。单调计数器108被配置为维持可在计数器的输出端109处访问的计数值。在图1的示例中,单调计数器108可以耦合到非易失性存储器104。
在例如由主处理单元CPU1生成的递增指令之后,单调计数器108被配置为将其计数值不可逆地增加一个或多个单位,但是在每次递增之后,操作是不可逆的。实际上,单调计数器108被配置为使得其计数值只会增加而绝不会减小。而且,在两次递增之间,计数值受到保护,不会被任何修改,因此无法擦除或改变。只有递增指令允许用高于当前值的新值替换当前值。
单调计数器106被配置为使得一旦执行递增指令,除了电子设备100的重置之外,就没有指令将允许计数器返回到先前的计数值。在计数值以易失性方式存储的情况下,每次电子设备100断电时,计数值都丢失,而每次设备100重启时,单调计数器108例如再次生成初始计数值。在计数值被存储在非易失性存储器中的情况下,在每次重启时,存储在非易失性存储器中的当前计数值例如被初始计数值覆写。
电子设备100还包括认证接口电路110(DBG AUTH硬件接口),其例如是耦合到总线102的硬件电路,并且被配置为允许对外部设备(图1中未示出)的认证,该外部设备可以连接到电子设备100以用于调试目的。
电子设备100还包括调试端口112(DEBUG PORT),其提供用于调试目的的通信接口。例如,调试端口112是包括数据缓冲器和/或用于促进电子设备100与耦合到调试端口112的外部设备之间的数据通信的其它电路系统的硬件电路。例如,调试端口112包括被配置为在电子设备100与外部设备之间提供有线通信的有线通信接口,该有线通信接口例如包括用于接收将设备100链接到外部设备的电缆的插头的插座。可替代地,调试端口112包括用于在电子设备100与外部电路之间提供无线通信的无线通信接口。
调试端口112例如经由与系统总线102不同的专用总线114耦合到认证接口电路110并耦合到处理单元CPU1至CPUn中的每一个。
虽然图1中未图示,但是电子设备100还可以包括用于与设备100的外围设备接口的一个或多个外围设备接口电路。例如,此类接口电路还耦合到系统总线102,并且还可由调试端口112经由专用总线114访问。
图2示意性地图示了根据本公开的示例实施例的图1的电子设备100的访问端口AP0至APn。
特别地,调试端口112经由例如专用总线114并经由对应的访问端口AP1至APn耦合到处理单元CPU1至CPUn中的每一个。这些访问端口在本文中也将被称为处理单元访问端口,并且每个都能够处于打开和关闭状态。此外,在电子设备100包括一个或多个外围设备接口电路的情况下,调试端口112例如经由专用总线114并经由类似于访问端口AP1至APn的对应外围接口访问端口(未示出)耦合到每个接口电路。在下文中,关于处理单元访问端口所描述的内容类似地(例如,经过必要的修改)适用于外围接口访问端口。
当处于打开状态时,每个访问端口中继往返于调试端口112的通信。当处于关闭状态时,调试端口阻止往返于调试端口112的通信。
此外,调试端口112例如经由专用总线114并经由访问端口AP0耦合到例如认证接口电路110。访问端口AP0例如被配置为在电子设备100的一种或多种状态期间始终打开,如现在将定义的。例如,当电子设备100处于根据其被通电的状态但在设备的重置状态释放之前,以及在已做出调试认证请求的情况下的启动状态期间,访问端口AP0打开,如下文更详细地描述。在这个打开状态下,访问端口AP0被配置为中继调试端口112和认证接口电路110之间的通信。
访问端口AP0至APn中的每一个例如是包括存储器缓冲器和/或用于在处于打开状态时中继调试端口与电路110或处理单元CPU1至CPUn之间的通信的其它电路系统的硬件电路。在处理单元访问端口AP1至APn的情况下,这些端口分别定位在调试端口112与处理单元CPU1至CPUn之间,并且提供调试端口112与处理单元CPU1至CPUn之间的唯一可用的通信信道。因此,当这些访问端口AP1至APn处于关闭状态时,在调试端口112与处理单元CPU1至CPUn之间没有可用的通信链路,并且因此保护处理单元CPU1至CPUn免受经由调试端口112的未授权访问尝试。
访问端口AP0至APn例如由存储在系统控制寄存器201中的控制位控制为处于打开状态或关闭状态,系统控制寄存器201例如由主处理单元CPU1编程。
如图2中所示,当要发起调试过程时,外部设备200(EXTERNAL DEVICE)例如连接到调试端口112。外部设备200例如是执行调试器的计算机,调试器是用于调试电子设备100的软件程序。
认证接口电路110例如包括允许外部设备200(主机)与主处理单元CPU1之间的通信的寄存器202(主机-设备寄存器),如现在将参考图3更详细描述的。
图3更详细地示意性地图示了根据本公开的示例实施例的图2的认证接口电路110的主机-设备寄存器202。
寄存器202例如是易失性寄存器。
寄存器202例如包括状态寄存器(DBG_AUTH状态寄存器[31:0])302,其被配置为存储设备的每个访问端口(诸如处理单元访问端口AP1至APn,以及一个或多个外围接口访问端口(如果存在))的打开状态或关闭状态的指示。状态寄存器302能够由外部设备200经由调试端口112并经由访问端口AP0读取。在一些实施例中,状态寄存器302是只读的。在图3的示例中,状态寄存器302是32位寄存器,但在替代实施例中其它大小也是可能的。此外,在图3的示例实施例中,状态寄存器302能够指示多达16个访问端口AP0至AP15的状态,但是在替代实施例中可以支持更多或更少的访问端口,这取决于状态寄存器302的尺寸。在图3的示例中,状态寄存器302针对每个访问端口存储指示对应访问端口AP0至AP15是否存在的第一位AP0P至AP15P,以及指示对应访问端口AP0至AP15的当前状态(换句话说,打开或关闭)的第二位AP0S至AP15S。
当电子设备100通电时,状态寄存器302的内容例如由状态机(未示出)从非易失性存储器(诸如图1的存储器104)中的安全存储装置加载。例如,默认情况下,在通电时,访问端口AP1至APn都被设置为关闭,而访问端口AP0被设置为打开。例如,通过存储在安全存储装置中的电子设备100的存储的状态来直接控制访问端口AP0至APn中的每一个的打开状态或关闭状态。
状态寄存器的优点是它提供了一种可扩展的能够支持向系统添加另外的访问端口的解决方案。
在一些实施例中,寄存器202还包括主机寄存器304(DBG_AUTH主机寄存器[31:0]),其允许充当主机的外部设备200写入电子设备100,例如写入主处理单元CPU1。因此,主机寄存器304例如能够被外部设备200写入和读取,并且能够被电子设备100(例如被主处理单元CPU1)读取。在图3的示例中,主机寄存器304是32位寄存器,但是在替代实施例中其它尺寸也是可能的。
在一些实施例中,寄存器202还包括允许电子设备100(例如,主处理单元CPU1)向外部设备200写入的设备寄存器306(DBG_AUTH设备寄存器[31:0])。因此,设备寄存器306例如能够由外部设备200经由调试端口112和访问端口AP0读取,并且能够例如由主处理单元CPU1向电子设备100写入和从电子设备100读取。在图3的示例中,设备寄存器306是32位寄存器,但是在替代实施例中,其它尺寸也是可能的。
主机和设备寄存器304、306例如被配置为起到单字接收/传输深度FIFO(先进先出)缓冲器的作用。特别地,大于任一寄存器的尺寸的数据消息可以例如经由寄存器304、306一次一个字地传输,并且一次读取一个字,直到整个消息已被传送。
在一些实施例中,寄存器202还包括确认寄存器308(DBG_AUTH确认寄存器[1:0]),用于指示电子消息的至少部分何时能在主机寄存器304中被读取以及电子消息的至少部分何时能在设备寄存器306中被读取。
确认寄存器308例如对于处理单元CPU1和对于外部设备200是只读的。在一些实施例中,确认寄存器308存储主机确认位HOSTACK和设备确认位DEV_ACK。
例如,认证接口电路110被配置为检测电子消息的至少部分何时已被写入主机寄存器304,并且作为响应而设置确认寄存器308中的主机确认位HOST_ACK。主处理单元例如被配置为轮询主机确认位HOST_ACK,并且响应于主机确认位HOST_ACK被设置而读取主机寄存器304。认证接口电路110例如还被配置为检测电子设备(例如,主处理单元CPU1)何时读取主机寄存器304,并且作为响应,重置确认寄存器308中的主机确认位HOST_ACK。
例如,认证接口电路110还被配置为检测电子消息的至少部分何时已被写入设备寄存器306,并且作为响应而设置确认寄存器308中的设备确认位DEV_ACK。外部设备200例如被配置为轮询设备确认位DEV_ACK,并且响应于设备确认位DEV_ACK被设置而读取至少一个设备寄存器306。认证接口电路110例如还被配置为检测外部设备何时从设备寄存器306读取电子消息,并且作为响应,重置确认寄存器308中的设备确认位DEV_ACK。
专用确认寄存器308的技术优点在于,它导致外部设备200与主处理单元CPU1之间的改进的通信带宽,因为数据消息或帧可以在两个方向上并行流动。确认寄存器是只读的技术效果是这提高了安全性。
此外,提供设备寄存器和主机寄存器两者的技术优点在于它们加速了调试认证过程,因为设备或主机无需在在另一个方向上传输之前等待读取确认。
图4是图示根据本公开的示例实施例的使用外部设备200访问电子设备100用于调试目的的方法中的操作的流程图。
在操作401(连接调试器)中,外部设备200例如经由有线或无线链路连接到电子设备100的调试端口112。
在操作402(在重置下检测调试被关闭),外部设备200在调试器的控制下例如被配置为例如通过读取状态寄存器302并确定要经由其执行调试的访问端口AP1至APn中的一个或多个被关闭来检测电子设备100的调试功能被关闭。例如,在外部设备200例如经由电子设备100的重置引脚向电子设备100施加重置命令时执行这个操作。
在操作403(将认证请求写入主机寄存器+释放重置)中,外部电路200在调试器的控制下例如被配置为将认证请求写入主机寄存器304,然后释放电子设备100的重置。作为响应,认证接口电路110例如被配置为设置确认寄存器308中的ACK_HOST位。
在操作404(主CPU启动+读取主机寄存器)中,主处理单元CPU1例如被配置为启动并读取主机寄存器304中的认证请求,例如在检测到确认寄存器308中的ACK_HOST位被设置之后。这例如使得主处理单元在启动期间维持访问端口AP0的打开状态。作为响应,认证接口电路110例如被配置为重置确认寄存器308中的ACK_HOST位。
在操作405(主CPU将认证质询写入设备寄存器和调试器读取设备寄存器)中,主处理单元CPU1例如被配置为将认证质询写入设备寄存器306。作为响应,认证接口电路110例如被配置为设置确认寄存器308中的ACK_DEV位。然后,在调试器的控制下,外部设备200例如被配置为读取设备寄存器306中的认证质询,例如在检测到确认寄存器308中的ACK_DEV位被设置之后。作为响应,认证接口电路110例如被配置为重置确认寄存器308中的ACK_DEV位。当然,如果质询的尺寸超过设备寄存器306的尺寸,那么例如由主处理单元在几个写/读周期上将其传送到外部电路200,直到其被完全发送为止。
在操作406(调试器将证书存储到主机寄存器)中,外部电路200在调试器的控制下例如被配置为基于质询生成认证证书,并且将该证书存储到主机寄存器304。作为响应,认证接口电路110例如被配置为设置确认寄存器308中的ACK_HOST位。主处理单元CPU1然后例如被配置为例如在检测到确认寄存器308中的ACK_HOST位被设置之后读取主机寄存器304。作为响应,认证接口电路110例如被配置为重置确认寄存器308中的ACK_HOST位。当然,如果证书的尺寸超过主机寄存器306的尺寸,那么例如由外部设备200在几个写/读周期上将其传送到主处理单元CPU1,直到其被完全发送为止。
在操作407(主CPU核实证书+解锁AP)中,主处理单元CPU1例如被配置为核实证书,并且如果通过验证,那么基于由证书指示的凭证解锁处理单元访问端口AP1至APn中的一个或多个并因此设置为打开状态。换句话说,针对所有或针对所选择的处理单元访问端口AP1至APN打开调试。例如,这是通过主处理单元CPU1向图2的一个或多个系统控制寄存器201写入来完成的。例如,每个处理设备访问端口在系统控制寄存器201中具有其自己的专用控制位。
在一些实施例中,证书中指示的凭证还指示允许的调试级别,例如指示是否可以调试所有固件,或者仅可以调试非安全固件。
此外,在一些实施例中,主处理单元CPU1被配置为基于由证书指示的凭证来设置图1的单调计数器108的计数值,调试功能性根据该计数值被授权。这个计数值例如作为参数存储在非易失性存储器104中。然后,当主处理单元CPU1接下来被配置为执行涉及单调计数器108的递增的启动序列时,一旦单调计数器达到所确定的计数值,调试功能性就被授权。例如,启动序列包括两个或更多个级,每个级与对应的软件代码相关联,该软件代码按顺序执行。用于每个级的软件代码与对应的计数值相关联,这意味着一旦单调计数器108超过这个计数值,非易失性存储器104就被配置为不再允许访问该代码。例如在欧洲专利申请EP04068134中更详细地描述了用于在启动序列期间控制安全调试的单调计数器108的使用,该专利申请的内容在法律允许的最大范围内通过引用并入本文。
在操作407中主处理单元CPU1对证书的核实失败(例如,因为证书是假的)的情况下,主处理单元例如被配置为将处理单元访问端口AP1至APn维持在关闭状态,并且例如经由设备寄存器306通知外部设备。
在操作408(主CPU向调试器发送认证有效性消息+等待认证ACK)中,主处理单元CPU1例如将授权有效性消息存储到设备寄存器306,该授权有效性消息在调试器的控制下由外部设备200读取。主处理单元CPU1然后例如等待来自外部设备200的确认。
在操作409(调试器配置调试外围设备+使CPU暂停请求+发送认证ACK)中,外部设备200在调试器的控制下例如经由访问端口配置调试外围设备,然后发出CPU暂停请求,例如向主处理单元和/或另一个处理单元发出CPU暂停请求。例如,当访问端口AP1处于打开状态时,与主处理单元相关联的图2的系统控制寄存器201是可访问的,使得调试器可以经由这些寄存器做出CPU暂停请求。例如,如果这个暂停请求与启动级对应,该启动级与等于或大于授权的计数值的单调计数器的计数值对应,那么这个停止请求将仅被主处理单元CPU1允许。外部设备200在调试器的控制下还例如经由主机寄存器304向主处理单元CPU1发送认证确认。
在操作410(主CPU打开调试)中,主处理单元CPU1例如被配置为完全打开由证书覆盖的处理单元访问端口的调试,例如通过当到达适当的启动执行级时,写入图2的系统控制寄存器201。例如,完全打开调试意味着外部设备200的调试器能够访问相关联的处理单元的系统控制寄存器,诸如在主处理单元的情况下的寄存器201。
在一些实施例中,发起图1的电子设备100的调试的方法包括:在将外部设备200耦合到调试端口112之后,由外部设备200经由调试端口112和另外的访问端口AP0读取由状态寄存器302存储的处理单元访问端口AP0至APn中的每一个的状态;以及由外部设备发起对处于打开状态的一个或多个处理单元的调试。
本文描述的实施例的优点在于,它们提供了允许运行调试器的外部设备(诸如计算机)以安全的方式与电子设备通信以便识别电子设备的调试状态,并且在一些情况下获得电子设备100的唯一标识符,该唯一标识符例如存储在非易失性存储器中(诸如存储器104中),和/或发出用于在电子设备上调试重新打开的凭证的技术效果。
已经描述了各种实施例和变体。本领域技术人员将理解的是,这些实施例的某些特征可以组合,并且本领域技术人员将容易想到其它变体。例如,对于本领域技术人员来说显而易见的是,在一些实施例中,图3的寄存器302、304、306和308中仅一个或一些可以存在于认证接口电路110中。此外,虽然已经描述了认证基于质询和响应证书的实施例,但在替代实施例中,不是质询,而是由主处理单元向外部设备设置密码请求,并且外部设备以密码而不是证书应答,然后密码由主处理单元核实。
最后,基于上文提供的功能描述,本文描述的实施例和变体的实际实施方式在本领域技术人员的能力范围内。

Claims (30)

1.一种电子设备,包括:
调试端口,提供用于调试目的的通信接口;
第一处理单元;
耦合到调试端口的多个处理单元访问端口,所述多个处理单元访问端口中的第一处理单元访问端口耦合在调试端口与第一处理单元之间,所述多个处理单元访问端口中的每个处理单元访问端口被配置为处于打开状态和关闭状态之一,处理单元访问端口在打开状态下中继往返于调试端口的通信,处理单元访问端口在关闭状态下阻止往返于调试端口的通信;
认证接口电路,被配置为对外部设备进行认证;以及
另外的访问端口,耦合在调试端口与认证接口电路之间,所述另外的访问端口被配置为处于打开状态,在打开状态下在调试端口与认证接口电路之间中继通信,认证接口电路包括寄存器,所述寄存器包括被配置为能由外部设备经由调试端口和所述另外的访问端口读取的状态寄存器,状态寄存器还被配置为存储所述多个处理单元访问端口中的每个处理单元访问端口的打开状态或关闭状态的指示。
2.如权利要求1所述的电子设备,其中所述寄存器还包括主机寄存器,所述主机寄存器被配置为能由第一处理单元读取并且能由外部设备经由调试端口和所述另外的访问端口写入。
3.如权利要求1所述的电子设备,其中所述寄存器还包括设备寄存器,所述设备寄存器被配置为能由外部设备经由调试端口和所述另外的访问端口读取并且能由第一处理单元写入。
4.如权利要求3所述的电子设备,其中所述寄存器还包括:
主机寄存器,被配置为能由第一处理单元读取并且能由外部设备经由调试端口和所述另外的访问端口写入;以及
确认寄存器,被配置为指示电子消息的至少部分何时能在主机寄存器中被读取以及电子消息的至少部分何时能在设备寄存器中被读取。
5.如权利要求4所述的电子设备,其中确认寄存器被配置为对于第一处理单元和外部设备是只读的。
6.如权利要求4所述的电子设备,其中认证接口电路被配置为:
检测电子消息的至少部分何时已被写入主机寄存器,并且作为响应,设置确认寄存器中的主机确认位;以及
检测第一处理单元何时读取主机寄存器,并且作为响应,重置确认寄存器中的主机确认位。
7.如权利要求4所述的电子设备,其中认证接口电路被配置为:
检测电子消息的至少部分何时已被写入设备寄存器,并且作为响应,设置确认寄存器中的设备确认位;以及
检测外部设备何时读取设备寄存器,并且作为响应,重置确认寄存器中的设备确认位。
8.如权利要求4所述的电子设备,其中第一处理单元被配置为:
从主机寄存器读取来自外部设备的认证请求;
认证外部设备;以及
将所述多个处理单元访问端口中的至少一个处理单元访问端口设置为打开状态,从而使得所述多个处理单元访问端口的状态的指示在状态寄存器中被更新。
9.如权利要求8所述的电子设备,其中所述寄存器还包括:
主机寄存器,被配置为能由第一处理单元读取并且能由外部设备经由调试端口和所述另外的访问端口写入;以及
设备寄存器,被配置为能由外部设备经由调试端口和所述另外的访问端口读取并且能由第一处理单元写入;
其中第一处理单元被配置为通过以下操作认证外部设备:
将认证质询或密码请求存储到设备寄存器;
从主机寄存器读取认证证书或密码;以及
核实认证证书或密码。
10.如权利要求9所述的电子设备,还包括单调计数器,其中第一处理单元还被配置为从认证证书读取计数值的指示,并且执行包括单调计数器的递增的启动序列,调试功能性根据所述计数值被授权,一旦单调计数器达到所述计数值调试功能性就被授权。
11.如权利要求1所述的电子设备,其中所述多个处理单元访问端口各自耦合到相关联的处理单元。
12.如权利要求1所述的电子设备,还包括:
外围接口;以及
外围接口访问端口,耦合在调试端口与外围接口之间,外围接口访问端口被配置为处于打开状态和关闭状态之一,外围接口访问端口在打开状态下中继往返于调试端口的通信,外围接口访问端口在关闭状态下阻止往返于调试端口的通信,其中状态寄存器被配置为存储外围接口访问端口的打开状态或关闭状态的指示。
13.一种用于管理电子设备中的通信的方法,所述方法包括:
经由调试端口提供用于调试目的的通信接口;
经由多个处理单元访问端口中的第一处理单元访问端口将第一处理单元耦合到调试端口;
选择性地将所述多个处理单元访问端口中的每个处理单元访问端口设置为以下之一:
打开状态,其中中继往返于调试端口的通信;以及
关闭状态,其中阻止往返于调试端口的通信;
使用认证接口电路来认证外部设备;
经由另外的访问端口将调试端口耦合到认证接口电路,其中在打开状态下,在调试端口与认证接口电路之间中继通信;
由外部设备经由调试端口和所述另外的访问端口读取认证接口电路中的状态寄存器;
将所述多个处理单元访问端口中的每个处理单元访问端口的打开状态或关闭状态的指示存储在状态寄存器中;
由外部设备经由调试端口和所述另外的访问端口读取由状态寄存器存储的所述多个处理单元访问端口中的每个处理单元访问端口的状态;以及
由外部设备发起所述多个处理单元访问端口中处于打开状态的一个或多个处理单元访问端口的调试。
14.如权利要求13所述的方法,还包括:由外部设备经由调试端口和所述另外的访问端口读取认证接口电路中的设备寄存器;以及由第一处理单元写入设备寄存器。
15.如权利要求14所述的方法,还包括:由第一处理单元读取认证接口电路中的主机寄存器;由外部设备经由调试端口和所述另外的访问端口写入主机寄存器;经由确认寄存器指示主机寄存器和设备寄存器中电子消息的可用性。
16.如权利要求15所述的方法,其中确认寄存器由第一处理单元和外部设备以只读模式访问。
17.如权利要求15所述的方法,还包括:由认证接口电路检测主机寄存器中写入的电子消息;设置确认寄存器中的主机确认位;以及在主机寄存器被第一处理单元或外部设备读取时重置主机确认位。
18.如权利要求15所述的方法,还包括:
由第一处理单元从主机寄存器读取认证请求;
认证外部设备;
将所述多个处理单元访问端口中的至少一个处理单元访问端口设置为打开状态,从而更新状态寄存器中所述多个处理单元访问端口的状态的指示;
由第一处理单元将认证质询或密码请求存储在设备寄存器中;
从主机寄存器读取认证证书或密码;
核实认证证书或密码;
由第一处理单元从认证证书中读取计数值,调试功能性根据所述计数值被授权;以及
执行包括递增单调计数器的启动序列,其中一旦单调计数器达到计数值就授权调试功能性。
19.一种电子设备,包括:
调试端口,提供用于调试目的的通信接口;
第一处理单元;
耦合到调试端口的多个处理单元访问端口,所述多个处理单元访问端口中的第一处理单元访问端口耦合在调试端口与第一处理单元之间,所述多个处理单元访问端口中的每个处理单元访问端口被配置为处于打开状态和关闭状态之一,处理单元访问端口在打开状态下中继往返于调试端口的通信,处理单元访问端口在关闭状态下阻止往返于调试端口的通信;
认证接口电路,被配置为对外部设备进行认证;以及
另外的访问端口,耦合在调试端口与认证接口电路之间,在通电期间释放电子设备的重置状态之前以及在从外部设备接收到认证请求时的启动期间,所述另外的访问端口被配置为处于打开状态,在打开状态下在调试端口与认证接口电路之间中继通信。
20.如权利要求19所述的电子设备,其中认证接口电路包括主机寄存器,所述主机寄存器被配置为能由第一处理单元读取并且能由外部设备经由调试端口和所述另外的访问端口写入。
21.如权利要求19所述的电子设备,其中认证接口电路包括设备寄存器,所述设备寄存器被配置为能由外部设备经由调试端口和所述另外的访问端口读取并且能由第一处理单元写入。
22.如权利要求21所述的电子设备,其中认证接口电路还包括:
主机寄存器,被配置为能由第一处理单元读取并且能由外部设备经由调试端口和所述另外的访问端口写入;以及
确认寄存器,被配置为指示电子消息的至少部分何时能在主机寄存器中被读取以及电子消息的至少部分何时能在设备寄存器中被读取。
23.如权利要求22所述的电子设备,其中确认寄存器被配置为对于第一处理单元和外部设备是只读的。
24.如权利要求22所述的电子设备,其中认证接口电路被配置为:
检测电子消息的至少部分何时已被写入主机寄存器,并且作为响应,设置确认寄存器中的主机确认位;以及
检测第一处理单元何时读取主机寄存器,并且作为响应,重置确认寄存器中的主机确认位。
25.如权利要求22所述的电子设备,其中认证接口电路被配置为:
检测电子消息的至少部分何时已被写入设备寄存器,并且作为响应,设置确认寄存器中的设备确认位;以及
检测外部设备何时读取设备寄存器,并且作为响应,重置确认寄存器中的设备确认位。
26.如权利要求22所述的电子设备,其中第一处理单元被配置为:
从主机寄存器读取来自外部设备的认证请求;
认证外部设备;以及
将所述多个处理单元访问端口中的至少一个处理单元访问端口设置为打开状态,从而使得所述多个处理单元访问端口的状态的指示在认证接口电路的状态寄存器中被更新。
27.如权利要求26所述的电子设备,其中第一处理单元被配置为通过以下操作认证外部设备:
将认证质询或密码请求存储到设备寄存器;
从主机寄存器读取认证证书或密码;以及
核实认证证书或密码。
28.如权利要求27所述的电子设备,还包括单调计数器,其中第一处理单元还被配置为从认证证书读取计数值的指示,并且执行包括单调计数器的递增的启动序列,调试功能性根据所述计数值被授权,一旦单调计数器达到所述计数值调试功能性就被授权。
29.如权利要求19所述的电子设备,其中所述多个处理单元访问端口各自耦合到相关联的处理单元。
30.如权利要求19所述的电子设备,还包括:
外围接口;以及
外围接口访问端口,耦合在调试端口与外围接口之间,其中外围接口访问端口被配置为处于打开状态和关闭状态之一,外围接口访问端口在打开状态下中继往返于调试端口的通信,外围接口访问端口在关闭状态下阻止往返于调试端口的通信,其中状态寄存器被配置为存储外围接口访问端口的打开状态或关闭状态的指示。
CN202311619883.XA 2022-11-30 2023-11-30 用于调试认证的主机-设备接口 Pending CN118113544A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
FR2212575A FR3142576A1 (fr) 2022-11-30 2022-11-30 Interface de dispositif hôte pour une authentification de débogage
FR2212575 2022-11-30
US18/521,480 US20240176864A1 (en) 2022-11-30 2023-11-28 Host-device interface for debug authentication
US18/521,480 2023-11-28

Publications (1)

Publication Number Publication Date
CN118113544A true CN118113544A (zh) 2024-05-31

Family

ID=86272388

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311619883.XA Pending CN118113544A (zh) 2022-11-30 2023-11-30 用于调试认证的主机-设备接口

Country Status (4)

Country Link
US (1) US20240176864A1 (zh)
EP (1) EP4379582A1 (zh)
CN (1) CN118113544A (zh)
FR (1) FR3142576A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8644499B2 (en) * 2009-09-14 2014-02-04 Broadcom Corporation Method and system for securely protecting a semiconductor chip without compromising test and debug capabilities
KR102415388B1 (ko) * 2015-11-13 2022-07-01 삼성전자주식회사 시스템 온 칩 및 그것의 보안 디버깅 방법
US11105850B2 (en) * 2018-05-24 2021-08-31 Seagate Technology Llc Secure debug system for electronic devices
FR3121529B1 (fr) * 2021-03-31 2023-12-08 St Microelectronics Alps Sas Débogage sécurisé

Also Published As

Publication number Publication date
FR3142576A1 (fr) 2024-05-31
US20240176864A1 (en) 2024-05-30
EP4379582A1 (en) 2024-06-05

Similar Documents

Publication Publication Date Title
JP6985011B2 (ja) アクセス保護スキームを確保するための装置及び方法
US9116840B2 (en) Semiconductor device and data processing method
US6976136B2 (en) Flash memory protection scheme for secured shared BIOS implementation in personal computers with an embedded controller
US7774619B2 (en) Secure code execution using external memory
CN102063591B (zh) 基于可信平台的平台配置寄存器参考值的更新方法
US20090204823A1 (en) Method and apparatus for controlling system access during protected modes of operation
US9164925B2 (en) Method and apparatus for authorizing host to access portable storage device
US12001689B2 (en) Transparently attached flash memory security
US10846438B2 (en) RPMC flash emulation
US11263350B2 (en) Cryptographic apparatus and self-test method of cryptographic apparatus
JP2013537343A (ja) プラットフォーム・ファームウェア・アーマリング技術
KR20170102285A (ko) 보안 요소
CN221927109U (zh) 电子设备
CN118113544A (zh) 用于调试认证的主机-设备接口
TWI728572B (zh) 具有快閃記憶體仿真功能之控制器及其控制方法
JP7005676B2 (ja) システム起動を監視するための安全装置及び安全方法
US11443075B2 (en) Secure storage system
JP2014222546A (ja) 自動車
JP5603993B2 (ja) 電装ユニット及びデータ処理方法
CN118733505A (zh) 用于与外围电路接口连接的电路和方法
US20220108016A1 (en) Methods for fast, secure boot from nonvolatile memory device and corresponding systems and devices for the same

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