CN116204473A - 处理系统、相关集成电路、设备和方法 - Google Patents

处理系统、相关集成电路、设备和方法 Download PDF

Info

Publication number
CN116204473A
CN116204473A CN202211534369.1A CN202211534369A CN116204473A CN 116204473 A CN116204473 A CN 116204473A CN 202211534369 A CN202211534369 A CN 202211534369A CN 116204473 A CN116204473 A CN 116204473A
Authority
CN
China
Prior art keywords
flip
processing system
storage element
signal
flop
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
CN202211534369.1A
Other languages
English (en)
Inventor
A·R·扎尔加
N·B·格罗西尔
C·贾因
R·科隆波
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.)
STMICROELECTRONICS INTERNATIONAL NV
STMicroelectronics Application GmbH
STMicroelectronics SRL
Original Assignee
STMICROELECTRONICS INTERNATIONAL NV
STMicroelectronics Application GmbH
STMicroelectronics SRL
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 STMICROELECTRONICS INTERNATIONAL NV, STMicroelectronics Application GmbH, STMicroelectronics SRL filed Critical STMICROELECTRONICS INTERNATIONAL NV
Publication of CN116204473A publication Critical patent/CN116204473A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/24Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1039Read-write modes for single port memories, i.e. having either a random port or a serial port using pipelining techniques, i.e. using latches between functional memory parts, e.g. row/column decoders, I/O buffers, sense amplifiers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1069I/O lines read out arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Hardware Redundancy (AREA)

Abstract

本公开的实施例涉及处理系统、相关集成电路、设备和方法。在一实施例中,处理系统包括:多个存储元件,每个存储元件包括锁存器或触发器且被配置为接收包括数据位的写入请求并将所接收的数据位存储到锁存器或触发器;非易失性存储器,其被配置为存储多个存储元件的数据位;硬件配置电路,其被配置为从非易失性存储器读取数据位并生成写入请求以便将数据位存储到存储元件;以及硬件电路,其被配置为依据存储到多个存储元件的第一存储元件的锁存器或触发器的逻辑电平而改变操作。其中,第一存储元件包括另一锁存器或另一触发器,并且被配置为响应于写请求将所接收的数据位的反相版本存储到另一锁存器或另一触发器。

Description

处理系统、相关集成电路、设备和方法
相关申请的交叉引用
本申请要求2021年11月30日提交的意大利专利申请No.102021000030332的权益,该申请在此引入作为参考。
技术领域
本发明的实施例涉及保护处理系统不受寄存器修改的影响。
背景技术
图1示出了典型的电子系统,例如车辆的电子系统,包括多个处理系统10,例如嵌入式系统或集成电路,例如现场可编程门阵列(FPGA),数字信号处理器(DSP)或微控制器(例如专用于汽车市场)。
例如,在图1中示出了通过适当的通信系统20连接的三个处理系统101,102和103。例如,通信系统可以包括经由网关连接到车辆控制总线的车辆控制总线,例如控制器区域网络(CAN)总线,以及可能的多媒体总线,例如面向媒体的系统传输(MOST)总线。通常,处理系统10位于车辆的不同位置,并且可以包括例如发动机控制单元,变速器控制单元(TCU),防抱死制动系统(ABS),车身控制模块(BCM)和/或导航和/或多媒体音频系统。因此,一个或多个处理系统10也可以实现实时控制和调节功能。这些处理系统通常被识别为电子控制单元。
图2示出了可以用作图1的任何处理系统10的示例性数字处理系统10(例如微控制器)的框图。
在所考虑的例子中,处理系统10包括通过软件指令编程的微处理器102,通常是中央处理单元(CPU)。通常,由微处理器102执行的软件存储在非易失性程序存储器104中,例如闪存或EEPROM。因此,存储器104被配置为存储处理单元102的固件,其中固件包括将由微处理器102执行的软件指令。一般来说,非易失性存储器104还可用于存储其它数据,例如配置数据,例如校准数据。
微处理器102通常还与易失性存储器104b相关联,例如随机存取存储器(RAM)。例如,存储器104b可用于存储临时数据。
如图2所示,通常经由一个或多个存储器控制器100来执行与存储器104和/或104b的通信。存储器控制器100可集成在微处理器102中或经由通信信道(例如,处理系统10的系统总线)连接到微处理器102。类似地,存储器104和/或104b可以与微处理器102集成在单个集成电路中,或者存储器104和/或104b可以是单独的集成电路的形式并且例如经由印刷电路板的迹线连接到微处理器102。
在所考虑的示例中,微处理器102可以具有从以下各项的组中选择的相关联的一个或多个(硬件)资源/外围设备106:
-一个或多个通信接口IF,例如用于经由通信系统20交换数据,诸如通用异步接收器/发送器(UART),串行外围接口总线(SPI),集成电路间(I2C),控制器局域网(CAN)总线,和/或以太网接口,和/或调试接口;和/或
-一个或多个模数转换器AD和/或数模转换器DA;和/或
-一个或多个专用数字组件DC,例如硬件定时器和/或计数器,或密码协处理器;和/或
-一个或多个模拟部件AC,例如比较器,传感器,例如温度传感器等;和/或
-一个或多个混合信号分量MSC,例如PWM(脉宽调制)驱动器。
通常,专用数字组件DC也可以对应于集成在处理系统10中的FPGA。例如,在这种情况下,存储器104还可以包括用于这种FPGA的程序数据。
因此,数字处理系统10可以支持不同的功能。例如,微处理器102的行为由存储在存储器104中的固件确定,例如由微控制器10的微处理器102执行的软件指令。因此,通过安装不同的固件,相同的硬件(微控制器)可以用于不同的应用。
未来几代的处理系统,特别是专用于汽车应用的微控制器,将表现出复杂性的显著增加,这主要是由于功能(例如新的协议,新的特征等)的数目的增加以及涉及系统的操作条件的严格约束(例如较低的功耗,增加的计算能力和速度等)。
并行地,每个处理系统10的安全框架也变得越来越复杂。通常,安全框架基于资源保护的概念,即,给定一组资源,该框架被设计为使得对一个或多个资源的访问可基于特定条件被选择性地阻止或准许。例如,通常可以通过将一个或多个位存储到非易失性存储器104的保留存储器位置来阻止对给定资源(例如非易失性存储器104的存储器区域和/或调试接口)的访问。附加地或替换地,通常可以阻止对资源的访问,直到例如经由微处理器102或通信接口IF提供了给定的密码。
在这方面,对给定资源的访问是被阻止还是被授权的状态通常被存储在寄存器中,例如用一个或多个触发器来实现。然而,这意味着黑客可能试图修改这样的寄存器的内容,以便准许访问被阻塞的资源。
发明内容
实施例提供了能够保护寄存器的解决方案,特别是用于存储安全信息的配置寄存器,诸如被配置为存储标识对资源的访问是被准许还是被阻止的数据的配置寄存器和/或被配置为存储一个或多个参考密码的配置寄存器。
根据一个或多个实施例,通过具有在所附权利要求中具体阐述的特征的处理系统来实现一个或多个上述目的。实施例还涉及相关的集成电路和方法。
如上所述,本公开的各种实施例涉及处理系统。具体地,所述处理系统包括多个存储元件,其中每个存储元件包括锁存器或触发器并且被配置为接收包括数据位的写入请求并将所接收的数据位存储到所述锁存器或触发器。因此,硬件电路可被配置为依据存储到所述多个存储元件中的至少一个第一存储元件的锁存器或触发器的逻辑电平而改变操作。
具体地,在各种实施例中,第一存储元件可用于存储安全相关的配置数据。例如,如将在下面更详细地描述的,硬件电路可以包括至少一个子电路,诸如资源/外围设备,存储器控制器或微处理器,以及保护电路,该保护电路被配置为接收用于子电路的控制命令并且选择性地执行(或抑制执行)控制命令,即选择性地将控制命令转发(或不转发)到子电路。举例来说,在各种实施例中,处理系统包括微处理器和/或调试接口,其被配置为提供此控制命令来控制硬件电路的操作。例如,控制命令可以是读或写请求。
因此,保护电路可选择性地(至少)根据存储到第一存储元件的锁存器或触发器的逻辑电平来执行控制命令。举例来说,存储到第一存储元件的数据位可对应于配置数据和/或生命周期数据。
因此,在各种实施例中,所述处理系统还包括:非易失性存储器,其被配置为存储所述多个存储元件的数据位;及硬件配置电路,其被配置为从所述非易失性存储器读取数据位并生成写入请求以将所述数据位存储到所述存储元件。
在各种实施例中,处理系统被配置为保护存储到第一存储元件的锁存器或触发器的数据免受篡改攻击。为此目的,第一存储元件包括另一个锁存器或触发器,并且被配置为响应于写请求将所接收的数据位的反相版本存储到另一个锁存器或触发器。此外,所述第一存储元件还包括组合逻辑电路,所述组合逻辑电路被配置为将存储到所述第一存储元件的锁存器或触发器的逻辑电平与存储到所述第一存储元件的另一锁存器或触发器的逻辑电平进行比较。具体地,在各种实施例中,第一存储元件被配置为当逻辑电平不同时解除断言与第一存储元件相关联的第一篡改信号,并且当逻辑电平相同时断言第一篡改信号。
因此,在各种实施例中,硬件电路被配置为还根据第一篡改信号来改变操作。例如,硬件电路的保护电路可以被配置为根据存储到第一存储元件的锁存器或触发器的逻辑电平和第一篡改信号来选择性地执行控制命令。例如,保护电路可以被配置为当第一存储元件的锁存器或触发器已经存储了第一逻辑电平并且第一篡改信号被解除断言时执行(即,转发)控制命令,并且当第一存储元件的锁存器或触发器已经存储了第二逻辑电平或者第一篡改信号被断言时抑制执行(即,不转发)控制命令。
可选地,保护电路可以被配置为根据控制信号选择性地执行控制命令,并且硬件电路或第一存储元件可以包括被配置为确定第一篡改信号是否被断言的组合逻辑电路。在这种情况下,响应于确定第一篡改信号被解除断言,组合逻辑电路可以将第一控制信号设置为存储到第一存储元件的锁存器或触发器的逻辑值。相反,响应于确定第一篡改信号被断言,组合逻辑电路可以将第一控制信号设置为预定的篡改值。
通常,保护电路还可以被配置为管理对多个子电路和/或存储器区域的访问,其中每个子电路和/或存储器区域与至少相应的第一存储元件相关联。在这种情况下,保护电路可以被配置为在断言由多个第一存储元件提供的第一篡改信号中的至少一个时禁止控制命令的执行(到子电路和/或存储器区域的子集或全部)。
在各种实施例中,所述硬件电路还可包括被配置为从所述微处理器及/或所述调试接口接收密码验证命令的密码验证电路,其中所述密码验证命令包括密码。接下来,密码验证电路可以将密码与参考密钥进行比较,其中参考密钥被确定为存储到多个存储元件的多个第二存储元件的锁存器或触发器的逻辑电平的函数,并且当密码对应于参考密钥时断言重写信号。因此,在这种情况下,保护电路可以被配置为当重写信号被断言时执行(即,转发)控制命令。
例如,在各种实施例中,每个第二存储元件还包括另一个锁存器或触发器和组合逻辑电路,该组合逻辑电路被配置为通过将存储到相应第二存储元件的锁存器或触发器的逻辑电平与存储到相应第二存储元件的另一锁存器或触发器的逻辑电平进行比较来选择性地断言第二篡改信号。
在各种实施例中,密码验证电路也可以考虑相应的篡改信号。例如,验证电路可以被配置为当密码对应于参考密钥并且由第二存储元件提供的第二篡改信号被解除断言时断言重写信号,并且当密码不对应于参考密钥或者由第二存储元件提供的第二篡改信号中的至少一个被断言时解除断言重写信号。
附加地或替换地,保护电路可以被配置为当由第二存储元件提供的第二篡改信号中的至少一个被断言时禁止控制命令的执行。
附图说明
现在将参照附图描述本公开的实施例,附图仅通过非限制性示例的方式提供,其中:
图1示出了包括多个处理系统的典型电子系统;
图2示出了处理系统的示例;
图3示出了处理系统的实施例;
图4示出了处理系统的安全架构的实施例;
图5示出了包括密码验证电路的处理系统的安全架构的实施例;
图6示出了包括密码验证电路和临时密码库的处理系统的安全架构的实施例;
图7和8示出了包括配置电路和配置数据客户端的处理系统的实施例;以及
图9到12示出了用于图7和8的配置数据客户端的存储元件的实施例。
具体实施方式
在以下描述中,给出了许多具体细节以提供对实施例的透彻理解。可以在没有一个或几个具体细节的情况下,或者利用其它方法,组件,材料等来实践实施例。在其它情况下,未示出或详细描述公知的结构,材料或操作,以避免使实施例的各方面模糊。
在整个说明书中对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征,结构或特性被包括在至少一个实施例中。因此,在本说明书中各处出现的短语“在一个实施例中”或“在实施例中”不一定都指同一实施例。此外,特定特征,结构或特性可以以任何合适的方式组合在一个或多个实施例中。
本文提供的标题仅仅是为了方便,并不解释实施例的范围或含义。
在下面的图3至12中,已经参照图1和2描述的部分,元件或部件由先前在这些图中使用的相同附图标记表示;为了不使本发明的详细描述负担过重,下面将不再重复对这些先前描述的元件的描述。
图3示出了根据本说明书的处理系统10a的实施例。
具体地,在所考虑的实施例中,处理系统10a包括集成在集成电路30中的至少一个处理核心102,例如n个处理核心1021…102n,其中一个或多个处理核心102连接到(片上)通信系统114。例如,在实时控制系统的环境中,处理核心1021…102n可以是
Figure BDA0003969869050000071
-R52核心。通常,通信系统114可以包括例如基于高级可扩展接口(AXI)总线体系结构和/或片上网络(NoC)的一个或多个总线系统。
例如,如处理核心1021的示例所示,每个处理核心102可以包括微处理器1020和通信接口1022,通信接口1022被配置为管理微处理器1020和通信系统114之间的通信。在所考虑的实施例中,接口1022是主接口,其被配置为将(读或写)请求从微处理器1020转发到通信系统114,并将可选响应从通信系统114转发到微处理器1020。在各种实施例中,处理核心102a还可包括从属接口1024。例如,以这种方式,第一微处理器1020可以向第二微处理器1020发送请求(经由第一微处理器的通信接口1022,通信系统114和第二微处理器的通信接口1024)。例如,为此目的,除了系统总线或NoC之外,通信系统114还可以包括附加的协处理器总线,例如连接同一处理核心102a或所有处理核心102a的微处理器1020。
在各种实施例中,每个处理核心1021…102n还可以包括另外的本地资源,一个或多个本地存储器1026,通常被标识为紧耦合存储器(TCM)。
如前所述,典型地,处理核心1021…102n被安排成与非易失性存储器104和/或易失性存储器104b交换数据。在各种实施例中,这些存储器是系统存储器,即,为处理核心1021…102n共享。举例来说,在各种实施例中,处理系统10a包括一个或多个存储器控制器100,其被配置为将至少一个非易失性存储器104和至少一个易失性存储器104b连接到通信系统114。如前所述,存储器104和/或104b中的一个或多个可以集成在包括处理核心102的集成电路30中,或者可以在外部连接到集成电路30。
如前所述,处理系统10a可以包括一个或多个资源106,诸如一个或多个通信接口或协处理器(例如,密码协处理器)。资源106通常连接到通信系统114。例如,为此目的,通信系统114实际上可以包括高级微控制器总线体系结构(AMBA)高性能总线(AHB),以及用于将资源/外围设备106连接到AMBA AHB总线的高级外围总线(APB)。例如,每个资源106可以经由资源106的从接口1062和/或经由DMA控制器107连接到通信系统114,DMA控制器107包括被配置为通过向通信系统114发送读或写请求来直接交换数据的主接口。
如图3所示,处理系统10a的集成电路30还可以包括调试接口50。例如,典型的调试接口50包括两个子电路:通信接口502(例如JTAG(联合测试动作组),CAN,SPI或I2C通信接口)管理与外部调试器52的数据交换,并且内部调试电路500被配置为(例如)通过经由通信系统114或专用调试总线发送读取或写入请求来管理调试操作。一般来说,调试电路500还可经由经由处理核心102执行的软件指令(例如,通过经由处理系统10a的通信接口IF中的一者接收调试命令)来实施。
如前所述,在各种实施例中,处理系统10a包括被配置为限制对处理系统10a的一个或多个资源的访问的安全体系结构。
图4示出了处理系统10a的安全体系结构的实施例。
如上所述,诸如微控制器之类的处理系统10a的安全体系结构旨在限制对处理系统10a的一个或多个电路的访问,所述电路在下文中表示为资源110,诸如存储器104和/或104b,一个或多个处理单元102和/或一个或多个资源106。
举例来说,如图4中所示,处理系统的资源110中的一者或一者以上可具有相关联(例如,包括)被配置为控制对相应资源110的存取的保护电路150。例如,可以从处理系统10a的另一资源(例如处理单元102和/或调试接口50)接收相应的访问请求CMD。
举例来说,在各种实施例中,保护电路150可通过选择性地将来自源资源(例如,处理单元102和/或调试接口50)的读取或写入转发到目标资源110来控制对目标资源110的存取。一般来说,这些读取或写入可经由通信系统114(例如,在处理核心102的情况下)或经由专用调试通信系统/总线(例如,在硬件调试接口50的情况下)来转发。例如,保护电路150可以被配置为:
-选择性地向所述通信系统转发来自所述源资源的读取或写入;和/或
-选择性地将来自通信系统的读或写转发到目标资源110。
然而,通常,保护电路150也可以在目标和/或源资源内实现。例如,如前所述,典型的调试接口50包括管理与外部调试器52的数据交换的通信接口502,以及被配置为管理调试操作的内部调试电路500。因此,在此情况下,保护电路150可被配置为通过中断通信接口500与内部调试电路502之间的连接和/或通信接口500与外部调试器52可连接到的引脚的连接来停用调试接口50。
通常,虽然一些资源110可能根本不具有任何访问限制,但是对其他资源110的访问可以被默认或选择性地依据配置数据来阻止(即,可以激活保护)。例如,在各种实施例中并且也如在美国专利申请公开US2018/0357015A1和US2018/0357012A1中详细描述的那样(出于该目的通过引用将其并入本文),可以根据处理系统10a的生命周期阶段来选择性地激活给定资源的保护,如生命周期数据LCD和/或配置数据CD所指示的。例如,处理系统10a的每个保护150可以处于以下状态之一:
a)所述生命周期数据LCD独立于所述配置数据CD指示所述保护被禁用;
b)所述生命周期数据LCD指示所述保护可以被选择性地启用,并且所述配置数据CD指示所述保护被禁用;
c)生命周期数据LCD指示可以选择性地启用保护,并且配置数据指示启用保护;或是
d)所述生命周期数据LCD指示独立于所述配置数据CD启用所述保护。
例如,在存储器104和/或104b的上下文中,存储器的存储器范围可以被划分为扇区,并且每个扇区可以与相应的配置数据CD的一个或多个位相关联,从而指示对相应的存储器扇区的读和/或写访问是否被允许。
图5示出了处理系统10a的修改后的安全体系结构的实施例。
具体地,在所考虑的实施例中,为了准许对受保护资源的访问,处理系统10a包括用于在提供特定密码时重写一个或多个保护的电路。通常,某些保护150一旦被激活,也可以不再被解除激活,或者给定的密码可以仅解除激活给定的保护子集。例如,即使当提供密码时,也从不访问包括诸如密码密钥的安全相关数据的读保护存储器区域。
在所考虑的示例中,至少一个参考密码/关键字RK以某种方式存储在处理系统10a中。例如,参考密码RK可以是硬连线的或存储在处理系统10a的非易失性存储器104中,例如非易失性程序存储器104a。在后一种情况下,处理系统10a优选地被配置为限制对包括参考密码RK的存储器区域的读访问,以便确保参考密码RK被保密。例如,在上面引用的专利申请中描述了用于在非易失性存储器中存储引用关键字的可能解决方案。
在所考虑的示例中,处理系统10a还包括密码验证电路152。
因此,为了使至少一个保护解除激活,用户应该能够向密码验证电路152提供包括密码/关键字K的密码验证命令VPW。例如,在所考虑的实施例中,用户可以经由由处理系统10a的处理单元102执行的软件指令和/或经由处理系统10a的通信接口,诸如经由连接到外部调试器52的CAN接口或(例如,JTAG)调试接口50)来向密码验证电路152提供密码K。
例如,在各种实施例中,块110,密码验证电路152和接口IF和/或处理单元102可以通过诸如通信系统114的适当通信系统连接。在这种情况下,命令CMD和密码验证命令VPW可以通过相同的总线发送,指定块110(用于命令CMD)的地址或密码验证电路152(用于密码验证命令VPW)的地址作为目标地址。
因此,一旦密码验证电路152已经接收到包括密码K的密码验证命令VPW,密码验证电路152就可以获得参考密码RK并将密码K与参考密码RK进行比较,并且在两个密码匹配的情况下,密码验证电路152可以生成重写信号OW,该信号被发送到一个或多个保护电路150。因此,响应于重写信号OW,保护电路150可以停用相应保护的至少一部分。
图6示出了与美国专利申请公开US2019/026498A1一致的处理系统10a的安全架构的实施例,该美国专利申请公开US2019/026498A1通过引用结合于此。
具体地,与图5相比,处理系统10a还包括密码上载电路154和临时密码库156。
因此,在所考虑的示例中,密码验证电路152不动态地访问(一个或多个)原始参考密码RK,该(一个或多个)原始参考密码RK是硬连线的或者优选地存储在非易失性存储器104中。相反,密码上载电路154读取(一个或多个)参考密码RK一次并将(一个或多个)参考密码RK存储在临时密码库156中,临时密码库156例如用寄存器来实现,寄存器仅可由密码验证电路152读取。因此,密码验证电路152可将接收到的密码K与存储在临时密码库156中的参考密码RK进行比较,其中密码验证电路152与临时密码库156之间的读取路径不与处理系统10a的其它资源共享,并且因此可不被窥探。
因此,如上所述,在各种实施例中,可以激活保护,并且类似地,块110也可以基于生命周期数据LCD和/或配置数据CD来配置。
例如,图7示出了处理系统10a的示例,其中当处理系统10a通电时,配置数据CD可被写入非易失性存储器的特定区域并被检索。
例如,配置数据CD可以存储在非易失性存储器104和/或附加的非易失性存储器中,例如用熔丝实现的一次性可编程(OTP)存储器。例如,在存储器与微处理器102集成在同一集成电路30中的情况下,可以使用存储器104。相反,在存储器104是外部存储器的情况下,可以使用附加的非易失性存储器。因此,在各种实施例中,配置数据CD存储在集成电路30的非易失性存储器中。
例如,这种配置数据CD可以包括用于保证硬件行为一致的校准数据,从而补偿可能的生产过程容差。例如,这经常应用于处理系统的模拟部件的校准,例如温度传感器,模数转换器,电压基准等。此外,如前所述,配置数据CD还可以用于根据不同的应用需要定制硬件(例如硬件块110和/或保护电路150)的行为。例如,如前所述,一旦处理系统10a的固件已经存储在处理系统10a中,就可以写入一些配置数据CD,以便解除激活调试接口50,调试接口50例如可以用于下载处理系统10a的固件。因此,通常配置数据CD的第一部分可由处理系统的硬件的制造者(例如,集成电路的制造者)写入,和/或配置数据CD的第二部分可由处理系统10a的固件的开发者写入。
在各种实施例中,在配置阶段期间读取编程的配置数据CD,所述配置阶段通常在处理系统10a一通电就开始。
具体地,如图7所示,为此目的,处理系统10a可以包括配置电路108,配置电路108被配置为从非易失性存储器104读取配置数据CD,并在处理系统10a内分发这些配置数据CD。例如,在所考虑的实施例中,配置数据CD例如以多个连续存储器位置的形式存储在保留的存储器区域中。因此,在所考虑的实施例中,配置电路108访问包括配置数据CD的保留存储区,读取配置数据CD并将配置数据CD发送到处理系统10a内的相应块110和/或保护电路150。如上所述,块110可以对应于需要配置数据的处理系统10a的任何块,并且可以对应于处理单元102,硬件资源106或甚至存储器(例如,存储器104a)。
例如,为了分发配置数据CD,每个块110和每个保护电路150可以具有相关联的相应配置数据客户端112。例如,在图7中示出了分别向电路110和保护电路150提供配置数据的两个配置数据客户端112a,112b。通常,每个配置数据客户端112可以与单个电路110或单个保护电路150单义地相关联,并且仅向相关联的电路110或保护电路150(例如,特定硬件资源106)提供配置数据。然而,配置数据客户端112也可以与多个硬件块110和/或保护电路150相关联。例如,在各种实施例中,相同的配置数据客户端112用于向电路110和与该硬件块110相关联的保护电路150提供配置数据CD。通常,配置数据客户端也可以集成在相应的电路110或保护电路150中。
因此,在所考虑的实施例中,配置电路108可以为要配置的每个目标块110/150确定相应的配置数据(选自配置数据CD),并将与目标块110/150相关联的配置数据发送到与目标块110/150相关联的配置数据客户端112。类似地,当从存储器104读取配置数据CD时,配置电路108可确定当前配置信息的目标块并将当前配置数据发送到与相应目标块相关联的配置数据客户端。通常,任何通信都可以用于将配置数据CD发送到配置数据客户端112,包括串行和并行通信。例如,配置电路108和配置数据客户端112可以经由总线109连接,也可能对应于通信系统114,并且每个配置数据客户端112可以具有相关联的相应目标地址。
因此,每个配置数据客户端112被配置为从模块108接收配置数据,将它们存储到内部寄存器中,例如将它们存储到一个或多个内部触发器或锁存器中。存储在寄存器中的数据然后可用于生成影响一个或多个硬件块110和/或保护电路150的行为的一个或多个信号。
在各种实施例中,上述机制还用于将参考密码RK发送到临时密码库156。具体地,在各种实施例中,参考密码RK与配置数据CD一起存储在存储器104中,并且一个或多个配置数据客户端112c与临时密码库156相关联(优选地单义地)。因此,在各种实施例中,配置电路108还从存储器104读取参考密码RK以及其它配置数据CD,并将参考密码RK发送到与临时密码库156相关联的配置数据客户端112c,从而将参考密码RK加载到临时密码库156中。
图8在这方面示出了与US2019/026498A1的公开相一致的配置电路108和配置数据客户端112之间的通信的可能实施例。
具体地,同样在这种情况下,处理系统10a包括配置电路108和多个配置数据客户端112,配置电路108被配置为从一个或多个非易失性存储器104读取配置数据CD,配置数据客户端112被配置为从配置电路108接收相应的配置数据CD并将它们分布在需要配置数据的块110/150/156中。例如,如前所述,每个配置数据客户端112可以与各自的电路110/150/156单义地关联。例如,在所考虑的实施例中,处理系统10a又包括三组配置数据客户端112a,112b和112c。
在所考虑的实施例中,配置电路108包括被配置为从存储器104读取配置数据CD的数据读取模块1080和被配置为向配置数据客户端112发送配置数据的调度模块1082。
如上所述,任何通信都可以用于调度模块1082和配置数据客户端112之间的通信。例如,在各种实施例中,调度模块1082与配置数据客户端112之间的通信基于根据给定格式的数据帧,该给定格式在以下设备配置格式(DCF)中被称为。例如,在各种实施例中,每个数据帧包括两个字段:被称为DCF格式有效载荷的有效载荷(即,实际数据)和被称为DCF格式属性的用于标识数据的接收方的可能的附加数据属性,其中接收方是表示DCF客户端的配置数据客户端112之一。例如,数据属性可以包括16或32位,其中给定数量的位指定配置数据客户端112之一的地址,并且有效载荷可以包括16或32位。举例来说,在各种实施例中,数据读取模块1080被配置为从存储器104读取64个位的块,其中前32个位含有数据属性(包括配置数据客户端的地址)且第二32个位含有待传输到数据属性中所指定的地址的配置数据。
如上所述,每个配置数据客户端/DCF客户端112可以是硬件电路,通常包括被配置为将接收到的数据存储在例如用触发器/锁存器实现的内部寄存器中的组合电路,从而允许经由作为存储在内部寄存器中的数据的函数而生成的一个或多个内部信号将接收到的配置数据分发到关联硬件块110/150/156的各个部分。例如,如前所述,每个配置数据客户端112可以具有相关联的意义明确的地址(即,在每个处理系统10a内意义明确的),并且分析由分派模块1082发送的数据,以便确定附加数据属性(DCF格式属性)是否包括与配置数据客户端112相关联的地址。
在各种实施例中,模块108还可以包括被配置为管理处理系统10a的各种配置阶段的状态控制模块1084。举例来说,在各种实施例中,一旦处理系统10a接通,处理系统10a的复位模块116便可生成复位信号RESET,其用于执行处理系统10a的各种组件的复位。例如,复位信号RESET可以对应于提供给处理系统10a的块110的给定数量的时钟周期的复位脉冲。例如,在所考虑的实施例中,配置数据客户端112可以使用复位信号RESET,以便将内部寄存器设置为给定的复位值。
类似地,响应于复位,状态控制模块1084可以激活配置阶段。具体来说,在配置阶段期间,数据读取模块1080可从存储器104读取配置数据CD,并且调度模块1082可将配置数据CD发送到各种配置数据客户端112,借此重写复位值。
例如,在各种实施例中,分派模块1082可以生成数据信号DATA,该数据信号DATA具有给定数目的位(对应于有效载荷的位),该给定数目的位包括要被发送到给定配置数据客户端112的配置数据以及用于选择目标配置数据客户端112的其他控制信号。例如,在所考虑的实施例中,分派模块1082还生成包括目标配置数据客户端112的地址的地址信号ADR,以及可选地生成用于发信号通知地址信号ADR和数据信号DATA有效的芯片选择信号CS。
例如,在各种实施例中,地址信号ADR(和芯片选择信号CS)可以被提供给解码器124,该解码器124被配置为根据地址信号ADD来激活配置数据客户端112之一。例如,在所考虑的实施例中,当地址信号ADR对应于分配给配置数据客户端112a的地址时(并且芯片选择信号CS被设置),解码器124可以设置芯片选择信号CSa,以便指示配置数据客户端112a应当读取数据信号DATA。类似地,当地址信号ADR对应于分配给配置数据客户端112b的地址时(并且芯片选择信号CS被设置),解码器124可以设置芯片选择信号CSb,以便指示配置数据客户端112b应当读取数据信号DATA。
因此,如前所述,配置数据CD还可以包括用于配置保护150的安全配置数据,例如对调试接口的外部访问或对给定存储器位置的(读和/或写)访问,以及要存储在临时密码库156中的参考密码RK。
具体地,在各种实施例中,每段配置数据与配置数据客户端112的标识符/地址一起被插入到帧中。硬件配置电路108读取在非易失性存储器104中编程的所有这些DCF数据帧,并将它们发送到相应的配置数据客户端112。
因此,通过在具有与临时密码库156相关联的配置数据客户端112c的地址的DCF数据帧中包括参考密码RK,可以将参考密码RK存储在临时密码库156中。
例如,如图8所示,临时密码库156可以包括一个或多个槽PW0,PW1……,每个槽适于存储相应的参考密码RK。此外,在所考虑的实施例中,单个配置数据客户端112c与临时密码库156相关联。在这种情况下,可以将多个DCF帧(每个DCF帧包括相应的参考密码RK)依次发送到所配置的数据客户端112c的地址,并且一旦接收到参考密码RK,临时密码库156就可以将参考密码存储到内部存储器的相应插槽PW0,PW1…中。通常,DCF帧还可以包括指示时隙号的字段,其中应当存储相应的参考密码RK。
通常,由于配置数据客户端112也包括内部寄存器,这些寄存器也可以直接用作临时密码库152的存储器。例如,在这种情况下,多个配置数据客户端112c可以与临时密码库152相关联,其中每个配置数据客户端112c具有各自的(单义的)地址。在这种情况下,可以将多个DCF帧(每个DCF帧包括相应的参考密码RK)依次发送到所配置的数据客户端112c的地址。
一旦密码加载阶段完成,参考密码RK被存储在临时密码库152的存储器中。因此,无需在密码质询请求时进一步访问存储在非易失性存储器104中的参考密码RK。因此,在所考虑的实施例中,处理系统10a的其它块可能不窥探通信,因为其它块在处理系统10a的配置阶段期间不可操作。
通常,由于配置数据CD在数据分组中的组织,因此配置数据CD可以包括配置数据的至少两个子集,例如:
-由处理系统10a(例如,芯片制造)的制造者写入的第一组配置数据(例如,校准数据);以及
-在稍后阶段写入的第二组配置数据,例如由固件开发者和/或系统集成商(例如发动机控制单元(ECU)的制造者)写入的配置数据。
例如,在这种情况下,包括在第一组配置数据中的安全配置数据还可以允许设置对存储第一组配置数据的存储器位置的访问权限。举例来说,以此方式,第一组配置数据可不被重写,并且/或存储器接口可抑制对第一组配置数据的读取存取(例如,由处理单元102)。相反地,包括在第二组配置数据中的安全配置数据可以用于从功能的观点来配置块110的行为,例如,以便启用或禁用调试接口等。因此,同样在这种情况下,一旦调试接口被停用,第二组配置数据就可以不被重写或读取。类似地,用于解除保护的参考密码可以与第一组和/或第二组配置数据一起配置。例如,第一组可包括用于执行访问操作以读取和/或写入受保护存储器位置的参考密码,而第二组可包括用于再次启用调试接口的参考密码。
相反,生命周期数据LCD指示产品的生命周期。生命周期是写入非易失性存储器的永久签名,其确定处理系统10a在其生命周期中的阶段。例如,生命周期可以用位序列来编码。举例来说,在各种实施例中,位序列LCD可指示以下级中的一者:
-“生产”(LC1),当处理系统10a(例如微控制器)在芯片工厂中时;
-“客户交付”(LC2),当处理系统10a已经被运送到第一层客户(例如,发动机控制单元的生产者)时;
-“OEM产品”(LC3),当该设备已经被运送到下一级客户(例如,汽车制造商)时;
-“现场”(LC4),当该装置安装在最终产品中时(例如,在市场上销售的汽车中);
-“故障分析”(LC5),当该设备被发回处理系统10a的生产者或软件开发者用于诊断目的时。
在各种实施例中,该位序列被存储在非易失性存储器104的保留存储器位置处,或者被存储在诸如一次性可编程存储器的单独的非易失性存储器126中。在各种实施例中,寿命周期数据LCD被写入,使得一旦达到某一阶段,就不可能将其恢复到前一阶段,即,寿命周期只能前进。例如,这可以利用单热编码来实现,在该单热编码中,熔丝在每次到达给定阶段时被烧毁。例如,生命周期前进到下一阶段可以由拥有当前生命周期阶段中的设备的实体来完成(例如,芯片制造者在将其运送到客户交付阶段时将前进生命周期;当运输到OEM生产阶段等时,第一层客户将推进生命周期。
如图8所示,在各种实施例中,硬件配置电路108还可以被配置为从存储器126(或104)读取生命周期数据/位序列,将生命周期数据存储到寄存器128,并且信号LCD可以对应于存储到该寄存器的生命周期数据。例如,硬件配置电路108可以通过以下方式将生命周期数据存储到寄存器:
-将生命周期数据存储到配置电路108的寄存器,即,寄存器128可以集成在配置电路108中;和/或
-将生命周期数据传输到一个或多个专用配置数据客户端112,即,寄存器128可以集成在一个或多个配置数据客户端112中。
例如,当生命周期数据被存储到非易失性存储器104时和/或当生命周期数据可以被重写用于测试/调试目的时,可以使用该解决方案。
通常,配置电路108还可以被配置为对从存储器126(或104)读取的生命周期位序列进行解码。例如,从存储器读取的生命周期位序列可以对应于(例如,一热)编码位序列,并且信号LCD可以对应于指示与相应生命周期阶段相关联的数值的二进制编码序列。通常,在这种情况下,可以将编码的位顺序或解码的位顺序存储到寄存器128,即,可以在将数据存储到寄存器128之前或之后执行解码。
因此,在各种实施例中,处理系统10a包括用于存储安全相关信息的寄存器,特别是以下各项中的一项或多项:
-被配置为存储用于启用或禁用保护电路150的配置数据的寄存器,诸如配置数据客户端112b的寄存器;和/或
-被配置为存储用于重写由一个或多个保护电路150实施的保护的参考密码的寄存器,诸如配置数据客户端112c的寄存器;和/或
-被配置为存储生命周期数据LCD的寄存器128。
发明人已经观察到,这样的寄存器因此应该被保护,以避免寄存器可能被有意或无意地重写。例如,为此目的,美国专利申请公开US2019/0227747A1公开了配置数据客户端112的实施例,其中配置数据客户端可以被配置为根据至少一个类型识别信号选择性地允许或禁止对已经存储的配置数据的重写。因此,通过引用将该文件并入本文以用于配置数据客户端112的可能实施例。
因此,刚才描述的机制允许决定给定的配置数据分组是否可以重写已经存储到相同客户端112的先前配置数据,例如,以避免已经激活的保护可以经由到相同配置数据客户端112的后续DCF分组地址被再次解除激活。然而,这种保护不覆盖可能的篡改攻击。具体地,这种窜改攻击是指旨在改变触发器/锁存器的位状态(例如,利用电磁攻击)的技术,通常旨在去除编程保护或简单地恢复默认位保护状态,其通常对应于未保护状态。
图9在这方面示出了改进的处理系统10a的实施例。
具体地,同样在这种情况下,处理系统10a包括:
-保护电路150,其被配置为根据配置数据来控制对相应资源110的访问,所述配置数据在下文中表示为配置数据CDb;
-多个配置数据客户端112,其中至少一个配置数据客户端112b被配置为存储用于保护电路150的配置数据CDb;
-非易失性存储器104,其被配置为例如以数据分组的形式存储多个配置数据客户端112中的一个或多个的配置数据CD,其中每个数据分组还包括相应的配置数据客户端112的地址;以及硬件配置电路108,其被配置为从非易失性存储器104读取配置数据CD并将配置数据存储到配置数据客户端112。
例如,在所考虑的实施例中,每个配置数据客户端112包括寄存器,该寄存器被配置为存储给定数目N个位,例如32或64个位。具体来说,图9在此方面展示配置数据客户端112的单个存储元件113,其中存储元件113包括被配置为存储单个位的锁存器或触发器1122。因此,在各种实施例中,每个配置数据客户端112包括N个存储元件113。
如上所述,在各种实施例中,给定配置数据客户端112可向若干电路110和/或保护电路150提供配置数据,即,配置数据CDb可对应于由给定配置数据客户端112的存储元件113的子集提供的数据。附加地或替换地,在各种实施例中,电路110和/或保护电路150可以从若干配置数据客户端112接收配置数据,即,给定的保护电路150可以从至少两个配置数据客户端112的存储元件113接收配置数据CDb。通常,配置数据CDb因此可以对应于指示保护电路150是否应当实施一个或多个安全规则的一个或多个位。
因此,在各种实施例中,每个配置数据客户端112被配置为接收包括待写入到配置数据客户端112的存储元件113的数据的写入请求,并且响应于所述写入请求将所接收的数据存储到锁存器或触发器1122。例如,写请求可以对应于先前描述的数据信号DATA和芯片选择信号CS,或类似的写使能信号。在这方面,虽然未在图9中示出,但是存储元件113还可以被配置为根据先前提到的类型标识信息选择性地执行写请求,例如以便仅执行第一写请求,然后禁止对锁存器或触发器1122的进一步写操作,从而确保所存储的配置数据不会被进一步的写请求重写。
在此方面,在各种实施例中,每个配置数据客户端112被配置为响应于复位信号RESET而将存储元件113(具体来说,锁存器或触发器1122)的内容复位为默认/复位值RV。举例来说,如所提及,此复位信号RESET可由复位电路116生成,所述复位电路116(例如)被配置为在处理系统10a接通时和/或响应于其它事件而在复位信号RESET中生成脉冲/触发。或者,复位信号RESET也可由配置电路108(例如,状态控制电路1084)提供。
举例来说,在所考虑的实施例中,将复位信号RESET提供到多路复用器1120,多路复用器1120被配置为将由配置电路108提供的数据(例如,先前提及的信号DATA的给定位)或复位值RV存储到锁存器或触发器1122。因此,为了将数据存储到锁存器或触发器1122,存储元件可被配置为存储由多路复用器1120响应于写入请求(如由芯片选择信号CS所指示)或响应于复位信号而提供的信号。
一般来说,基于配置数据CDb的相应位应默认设定为高还是低,复位值RV可对应于逻辑电平1或逻辑电平0。
在各种实施例中,存储元件113,特别是至少被布置为存储安全相关信息的存储元件113,因此被保护免受可能的篡改攻击。
具体地,在各种实施例中,除了锁存器或触发器1122之外,向保护电路150提供相应的一个或多个位的配置数据CDb的给定配置数据客户端112(例如配置数据客户端112b)的一个或多个存储元件113还包括另一锁存器或触发器1124。
具体地,在各种实施例中,锁存器或触发器1122和1124紧密靠近地布置在处理系统10a的集成电路30内。实际上,发明人已经观察到,在这种情况下,篡改攻击将很可能将物理锁存器或触发器1122和1124设置为0或1,但是几乎不可能施加不同的逻辑电平。
因此,为了检测可能的篡改攻击,存储元件113还包括逻辑非门/反相器1126,其被配置为例如通过将多路复用器1120提供的位的反相器版本存储到锁存器或触发器1124,来将存储到寄存器1122的逻辑值的反相版本存储到锁存器或触发器1124。此外,存储元件包括XOR门1128,其在输入端接收存储到锁存器或触发器1122和1124的位值,并在输出端提供窜改信号TAMP。
因此,在各种实施例中,存储元件被配置为将给定位值(DATA或RV)存储到锁存器或触发器1122,并且将相应经反转位值(DATA或RV)存储到锁存器或触发器1124。此外,存储元件113被配置为当锁存器或触发器1122和1124被设置为相同值时断言篡改信号TAMP。
因此,在各种实施例中,向保护电路150提供相应的一个或多个位的配置数据CDb的给定配置数据客户端112的一个或多个存储元件113也向保护电路150提供相应的篡改信号TAMP。因此,在这种情况下,保护电路150可以被配置为不仅根据配置数据CDb的位,而且根据相应的篡改信号TAMP来控制对相应资源110的访问。
例如,在保护电路150被配置为根据配置数据CDb来启用或禁用对关联电路110的访问的情况下,例如,当配置数据CDb的给定位被设置为相应的复位值RV(例如,低)时启用访问,并且当配置数据CDb的给定位被设置为复位值RV的反相值(例如,高)时禁用访问,保护电路150可以在任何情况下当断言相应的篡改信号TAMP时禁用访问。
然而,一般来说,保护电路150还可管理对多个电路110或存储器区域的存取,例如调试接口50对多个电路110和/或存储器区域的存取。例如,在这种情况下,配置数据CDb可以包括用于启用/禁用对每个子电路或存储器区域的访问的一个或多个位。因此,在各种实施例中,当给定篡改信号TAMP被断言时,保护电路150可以仅针对相应的电路110或存储器区域,电路和/或存储器区域的子集,或者甚至由保护电路150管理的所有电路110和/或存储器区域来激活给定配置(例如,指示应当禁用访问)。
例如,图10示出了一个实施例,其中处理系统10a被配置为仅针对配置数据CBb的相应位激活给定配置。
具体而言,在所考虑的实施例中,由相应锁存器或触发器1122提供的配置数据CDb的位被提供给多路复用器1130。多路复用器1130还接收相应的窜改信号TAMP和指示在窜改攻击的情况下要使用的配置的值TV。因此,在所考虑的实施例中,多路复用器1130被配置为将配置数据CDb'的位提供到保护电路150,其中位CDb'对应于:
-当篡改信号TAMP被解除断言时,由相应的锁存器或触发器1122提供的配置数据CDb的位;或者
-当解断言篡改信号TAMP时,位TV。
通常,多路复用器1130(以及类似的多路复用器1120)也可以用任何其它合适的组合逻辑电路来代替。例如,在信号TV被设置为高的情况下,多路复用器1122可以用在输入端接收配置数据CDb的位和窜改信号TAMP的逻辑或门来代替。
例如,组合逻辑电路1130可以是:
-集成在存储元件113中,由此存储元件已经管理相应位的篡改保护,并且在篡改攻击的情况下提供给定的预定配置TV;
-集成在保护电路150中;-相对于存储元件113和保护电路150是外部的。
此外,与前面的描述一致,这样的组合逻辑电路1130可以被配置为从多个存储元件113接收篡改信号TAMP。
例如,这也在图11中示出。具体地,图11示出了一个实施例,其中配置数据客户端112向给定的关联电路提供多个位的配置数据。
例如,这适用于向密码验证电路152提供一个或多个参考密钥RK的配置数据客户端112c。
因此,同样在这种情况下,先前描述的存储元件113(具有附加锁存器1124和XOR门1128)可用于为配置数据的每个位(如由相应的锁存器1122提供的)提供相应的篡改信号TAMP。
例如,在这种情况下,密码验证电路152可以从一个或多个配置数据客户端112c接收给定的参考密钥RK和相应的篡改信号TAMP。
具体地,在各种实施例中,密码验证电路152被配置为当接收到的篡改信号TAMP中的至少一个被断言时禁用密码验证操作。实际上,当窜改信号TAMP之一被断言时,相应的参考密钥RK不再有效。
因此,在各种实施例中,即使密码验证命令VPW提供对应于参考密钥RK的密码,密码验证电路152也被配置为保持对重写信号OW解除断言。
因此,在这种情况下,被配置为组合多个篡改信号TAMP的组合逻辑电路将在密码验证电路152内实现。
然而,图11还示意性地示出了诸如OR门的组合逻辑电路1502,其被配置为通过组合由给定配置数据客户端112和/或由多个配置数据客户端112提供的多个篡改信号TAMP来生成组合的篡改信号TAMP'。
例如,以这种方式,保护电路150可以接收组合的窜改信号TAMP',当相关联的窜改信号TAMP中的至少一个(如由相应的组合逻辑电路1502接收的)被断言时,该组合的窜改信号TAMP'被断言。
例如,以这种方式,当处于以下情况时,组合的篡改信号TAMP'可以被断言:
-如图9所示,当断言与由保护电路150管理的配置数据CDb的给定位相关联的篡改信号TAMP时;和/或如
-图11所示,当断言与用于重写由保护电路150管理的一个或多个保护的参考密码RK相关联的篡改信号TAMP时。
如前所述,保护电路150和/或密码验证电路152中的一个或多个可以被配置为还作为生命周期数据LCD的函数来操作。
因此,应用于配置数据CDb和/或参考密钥RK的先前解决方案也可用于生命周期数据。
例如,这在图12中示意性地示出,其中先前描述的被配置为存储生命周期数据LCD的寄存器128被一组存储元件113代替。
因此,在此情况下,存储元件113包括锁存器或触发器1122和另一锁存器或触发器1124,其中生命周期数据LCD对应于存储到锁存器或触发器1122的位,并且其中存储元件113被配置为接收包括数据位的写入请求,并且响应于所述写入请求将所接收的数据位存储到相应锁存器或触发器1122,并且将所接收数据的数据位的反相版本存储到相应锁存器或触发器1124。同样在这种情况下,存储元件113可以管理复位信号RESET,以便复位锁存器或触发器1122的内容。
此外,存储元件113被配置为当相应的锁存器或触发器1122和1124存储相同的逻辑电平时为相应的锁存器或触发器1122声明窜改信号TAMP。
例如,在所考虑的实施例中,与活动周期数据LCD相关联的窜改信号TAMP被提供给保护电路150(也如参照图9所述)。然而,类似于关于图10或11描述的实施例,保护电路150可以接收:
-当与生命周期数据LCD相关联的篡改信号TAMP中的至少一个被断言时,给定预定的生命周期数据,诸如指示其中应用最高安全级别的生命周期阶段的生命周期数据,诸如现场阶段;和/或
-通过组合与生命周期数据LCD的位相关联的篡改信号TAMP而生成的组合的篡改信号TAMP'。
在各种实施例中,还可以将篡改信号TAMP和/或组合的篡改信号TAMP'提供给处理电路10a内的一个或多个其它电路,例如微处理器1020和/或错误管理电路。例如,在各种实施例中,组合的篡改信号TAMP'作为中断信号和/或寄存器状态位被提供给微处理器1020,并且微处理器1020还能够读取相关联的篡改信号的内容。
因此,在先前描述的实施例中,处理系统10a包括硬件电路110(例如存储器控制器100或资源/外围设备106)和数字处理电路102和/或调试接口50,所述数字处理电路102和/或调试接口50被配置为提供控制命令CMD来控制硬件电路110的操作。
在各种实施例中,处理系统102还包括保护电路150,其被配置为接收控制命令CMD并根据一个或多个控制信号选择性地将控制命令CMD转发到硬件电路110。例如,一个或多个控制信号可以对应于配置数据CDb,生命周期数据LCD和/或重写信号OW。
具体,在各种实施例中,处理系统10a还包括一个或多个存储元件113,其中每个存储元件113包括相应的锁存器或触发器1122,并且其中基于所述一个或多个锁存器或触发器1122的内容而生成所述一个或多个控制信号。因此,例如在配置数据CDb和/或生命周期数据LCD的情况下,每个控制信号可以对应于由相应锁存器或触发器1122提供的信号,或者例如在密码验证电路152生成重写信号OW的情况下,可以经由更复杂的逻辑操作来生成每个控制信号。
具体来说,在各种实施例中,每个存储元件113包括另一锁存器或触发器1124,并且被配置为接收包括数据位的写入请求,并且响应于所述写入请求而将所接收的数据位存储到相应锁存器或触发器1122,并且将所接收数据的数据位的反相版本存储到相应锁存器或触发器1124。在各种实施例中,存储元件113还可接收复位信号RESET,并且响应于复位信号RESET,将锁存器或触发器1122的内容复位为给定复位值RV且将锁存器或触发器1124的内容复位为复位值RV的反相版本。
因此,在各种实施例中,处理系统包括被配置为存储数据位(即,配置数据和/或生命周期数据位序列)的非易失性存储器和被配置为从非易失性存储器读取数据位并生成写入请求以便将数据位存储到存储元件113的硬件配置电路108。
具体来说,在各种实施例中,存储元件113被配置为在相应锁存器或触发器1122及1124存储相同逻辑电平时断言用于相应锁存器或触发器1122的篡改信号TAMP,并且在相应锁存器或触发器1122及1124存储不同逻辑电平时解除断言用于相应锁存器或触发器1122的篡改信号TAMP。
因此,在各种实施例中,处理系统10a被配置为使得保护电路150还根据篡改信号TAMP将控制命令CMD转发到硬件电路110。例如,为此目的,保护电路150可以:
-直接接收所述篡改信号TAMP;和/或
-一个或多个控制信号不仅可以基于一个或多个锁存器或触发器1122的内容生成,而且可以作为篡改信号TAMP的函数生成。
通常,虽然先前的实施例主要涉及安全相关的配置数据,但是存储元件113也可以用于保护其它数据,例如,以便在篡改攻击的情况下强加默认配置数据(如图10所示)。
当然,在不违背本发明的原理的情况下,构造和实施例的细节可以相对于在此仅通过示例的方式描述和示出的内容而广泛地变化,而不由此脱离由所附权利要求限定的本发明的范围。
虽然已经参考说明性实施例描述了本发明,但是该描述不旨在以限制的意义来解释。对于本领域技术人员来说,在参考说明书的基础上,说明性实施例的各种修改和组合以及本发明的其它实施例将是显而易见的。因此,所附权利要求书旨在涵盖任何此类修改或实施例。

Claims (18)

1.一种处理系统,包括:
多个存储元件,每个存储元件包括锁存器或触发器,并且每个存储元件被配置为接收包括数据位的写入请求并且将所接收的数据位存储到所述锁存器或所述触发器;
非易失性存储器,其被配置为存储用于所述多个存储元件的数据位;
硬件配置电路,其被配置为从所述非易失性存储器读取数据位并且生成写入请求以将所述数据位存储到所述存储元件;以及
硬件电路,其被配置为依据存储到所述多个存储元件中的第一存储元件的锁存器或触发器的逻辑电平而改变操作,
其中所述第一存储元件包括另一锁存器或另一触发器,并且所述另一锁存器或所述另一触发器被配置为响应于所述写入请求而将所接收的数据位的反相版本存储到所述另一锁存器或所述另一触发器,
其中所述第一存储元件包括组合逻辑电路,其被配置为:
将存储到所述第一存储元件的所述锁存器或所述触发器的逻辑电平与存储到所述第一存储元件的所述另一锁存器或所述另一触发器的逻辑电平进行比较,
当逻辑电平不同时解除断言与所述第一存储元件相关联的第一篡改信号,并且
当逻辑电平相同时断言所述第一篡改信号,并且
其中所述硬件电路进一步被配置为根据所述第一篡改信号而改变操作。
2.根据权利要求1所述的处理系统,进一步包括:
微处理器,被配置为提供控制命令以控制所述硬件电路的操作,
其中所述硬件电路包括保护电路,所述保护电路被配置为:
接收所述控制命令,以及
依据存储在所述第一存储元件的所述锁存器或所述触发器中的逻辑电平和所述第一篡改信号来选择性地执行所述控制命令。
3.根据权利要求2所述的处理系统,其中所述保护电路被配置为:
当所述第一存储元件的所述锁存器或所述触发器存储第一逻辑电平、并且所述第一篡改信号被解除断言时执行所述控制命令,并且
当所述第一存储元件的所述锁存器或所述触发器存储第二逻辑电平、或所述第一篡改信号被断言时抑制所述控制命令的执行。
4.根据权利要求2所述的处理系统,
其中所述保护电路被配置为依据控制信号选择性地执行所述控制命令,并且
其中所述硬件电路包括组合逻辑电路,所述组合逻辑电路被配置为:
确定所述第一篡改信号是否被断言,
响应于确定所述第一篡改信号被解除断言,将第一控制信号设置为存储在所述第一存储元件的所述锁存器或所述触发器中的逻辑值,并且
响应于确定所述第一篡改信号被断言,将所述第一控制信号设置为预定的篡改值。
5.根据权利要求2所述的处理系统,
其中所述保护电路被配置为依据控制信号而选择性地执行所述控制命令,并且
其中所述第一存储元件包括组合逻辑电路,所述组合逻辑电路被配置为:
确定所述第一篡改信号是否被断言,
响应于确定所述第一篡改信号被解除断言,将第一控制信号设置为存储在所述第一存储元件的所述锁存器或所述触发器中的逻辑值,并且
响应于确定所述第一篡改信号被断言,将所述第一控制信号设置为预定的篡改值。
6.根据权利要求2所述的处理系统,
其中所述保护电路被配置为管理对多个子电路和/或存储器区域的存取,
其中至少相应的第一存储元件与每个子电路和/或存储器区域相关联,并且
其中所述保护电路被配置为由多个第一存储元件提供的所述第一篡改信号中的至少一个第一篡改信号被断言时抑制所述控制命令的执行。
7.根据权利要求2所述的处理系统,
其中所述保护电路被配置为当重写信号被断言时执行所述控制命令,并且
其中所述硬件电路包括密码验证电路,所述密码验证电路被配置为:
从所述微处理器接收密码验证命令,所述密码验证命令包括密码,
将所述密码与参考密钥进行比较,所述参考密钥依据存储到所述多个存储元件的多个第二存储元件的锁存器或触发器的逻辑电平来确定,以及
当所述密码对应于所述参考密钥时断言所述重写信号。
8.根据权利要求7所述的处理系统,其中所述第二存储元件中的每个第二存储元件包括另一锁存器或另一触发器以及组合逻辑电路,所述组合逻辑电路被配置为通过将存储到相应第二存储元件的所述锁存器或所述触发器的逻辑电平与存储到所述相应第二存储元件的所述另一锁存器或所述另一触发器的逻辑电平进行比较来选择性地断言第二篡改信号。
9.根据权利要求8所述的处理系统,其中所述密码验证电路被配置为:
当所述密码对应于所述参考密钥并且由所述第二存储元件提供的所述第二篡改信号被解除断言时,断言所述重写信号,并且
当所述密码不对应于所述参考密钥或者由所述第二存储元件提供的所述第二篡改信号中的至少一个第二篡改信号被断言时,解除断言所述重写信号。
10.根据权利要求8所述的处理系统,其中所述保护电路被配置为在由所述第二存储器元件提供的所述第二篡改信号中的至少一个第二篡改信号被断言时抑制所述控制命令的执行。
11.根据权利要求1所述的处理系统,进一步包括:
调试接口,其被配置为提供控制命令以控制所述硬件电路的操作,
其中所述硬件电路包括保护电路,所述保护电路被配置为:
接收所述控制命令,并且
依据存储在所述第一存储元件的锁存器或触发器中的逻辑电平和所述第一篡改信号来选择性地执行所述控制命令。
12.根据权利要求11所述的处理系统,其中所述保护电路被配置为:
当所述第一存储元件的所述锁存器或所述触发器存储第一逻辑电平并且所述第一篡改信号被解除断言时执行所述控制命令,并且
当所述第一存储元件的所述锁存器或所述触发器存储第二逻辑电平或所述第一篡改信号被断言时抑制所述控制命令的执行。
13.根据权利要求11所述的处理系统,
其中所述保护电路被配置为依据控制信号选择性地执行所述控制命令,并且
其中所述硬件电路包括组合逻辑电路,所述组合逻辑电路被配置为:
确定所述第一篡改信号是否被断言,
响应于确定第一篡改信号被解除断言,将第一控制信号设置为存储在所述第一存储元件的所述锁存器或所述触发器中的逻辑值,并且
响应于确定所述第一篡改信号被断言,将所述第一控制信号设置为预定的篡改值。
14.根据权利要求11所述的处理系统,
其中所述保护电路被配置为依据控制信号而选择性地执行所述控制命令,并且
其中所述第一存储元件包括组合逻辑电路,所述组合逻辑电路被配置为:
确定所述第一篡改信号是否被断言,
响应于确定所述第一篡改信号被解除断言,将第一控制信号设置为存储在所述第一存储元件的所述锁存器或所述触发器中的逻辑值,并且
响应于确定所述第一篡改信号被断言,将所述第一控制信号设置为预定的篡改值。
15.根据权利要求11所述的处理系统,
其中所述保护电路被配置为当重写信号被断言时执行所述控制命令,并且
其中所述硬件电路包括密码验证电路,所述密码验证电路被配置为:
从所述调试接口接收密码验证命令,所述密码验证命令包括密码,
将所述密码与参考密钥进行比较,所述参考密钥依据存储到所述多个存储元件的多个第二存储元件的锁存器或触发器的逻辑电平来确定,并且
当所述密码对应于所述参考密钥时断言所述重写信号。
16.一种集成电路,包括:根据权利要求1所述的处理系统。
17.一种车辆,包括:
多个处理系统,每个处理系统是根据权利要求1所述的处理系统,其中所述处理系统经由通信系统连接。
18.一种用于操作处理系统的方法,所述方法包括:
将用于所述处理系统的多个存储元件的数据位存储到所述处理系统的非易失性存储器;以及
在所述处理系统上切换,其中
所述处理系统的硬件配置电路从所述非易失性存储器读取数据位并且生成写入请求以将所述数据位存储到所述处理系统的所述存储元件,
其中所述处理系统的第一存储元件:将存储到所述第一存储元件的锁存器或触发器的逻辑电平与存储到所述第一存储元件的另一锁存器或另一触发器的逻辑电平进行比较,当所述逻辑电平不同时解除断言与所述第一存储元件相关联的第一篡改信号,并且当所述逻辑电平相同时断言所述第一篡改信号。
CN202211534369.1A 2021-11-30 2022-11-29 处理系统、相关集成电路、设备和方法 Pending CN116204473A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
IT102021000030332A IT202100030332A1 (it) 2021-11-30 2021-11-30 Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento
IT102021000030332 2021-11-30
US18/056,803 US20230170006A1 (en) 2021-11-30 2022-11-18 Processing system, related integrated circuit, device and method
US18/056,803 2022-11-18

Publications (1)

Publication Number Publication Date
CN116204473A true CN116204473A (zh) 2023-06-02

Family

ID=80121885

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211534369.1A Pending CN116204473A (zh) 2021-11-30 2022-11-29 处理系统、相关集成电路、设备和方法

Country Status (4)

Country Link
US (1) US20230170006A1 (zh)
EP (1) EP4187415A1 (zh)
CN (1) CN116204473A (zh)
IT (1) IT202100030332A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10289840B2 (en) * 2017-06-02 2019-05-14 Silicon Laboratories Inc. Integrated circuit with tamper protection and method therefor
IT201700062830A1 (it) 2017-06-08 2018-12-08 Stmicroelectronics Application Gmbh Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento
IT201700062788A1 (it) 2017-06-08 2018-12-08 Stmicroelectronics Application Gmbh Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento
IT201700082176A1 (it) 2017-07-19 2019-01-19 Stmicroelectronics Application Gmbh Sistema di elaborazione, relativo circuito integrato e procedimento
IT201800001633A1 (it) 2018-01-22 2019-07-22 Stmicroelectronics Application Gmbh Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento

Also Published As

Publication number Publication date
IT202100030332A1 (it) 2023-05-30
EP4187415A1 (en) 2023-05-31
US20230170006A1 (en) 2023-06-01

Similar Documents

Publication Publication Date Title
JP6372941B2 (ja) 共有システムリソースのセマフォベースの保護のためのシステムおよび方法
CN110502932B (zh) 处理系统、相关集成电路和方法
KR101010801B1 (ko) 액세스 허용을 결정하는 방법 및 장치
US11068255B2 (en) Processing system, related integrated circuit, device and method
US11474752B2 (en) Processing system including one-time programmable memory with original life cycle data, related integrated circuit, device and method
JP5576557B2 (ja) プロセッサシステム及びその制御方法
US10845999B2 (en) Processing system, related integrated circuit, device and method
EP3432190B1 (en) Processing system and related integrated circuit for handling password management
US7054121B2 (en) Protection circuit for preventing unauthorized access to the memory device of a processor
US10922015B2 (en) Processing system, related integrated circuit, device and method
US11915008B2 (en) Processing system, related integrated circuit, device and method
EP4187415A1 (en) Processing system, related device and method for protecting latches or flip-flops of a register
EP4296850A1 (en) Processing system, related integrated circuit, device and method
US20240004804A1 (en) Method for managing access rights of memory regions and corresponding system on chip
US8924672B2 (en) Device with processing unit and information storage
CN116610615A (zh) 处理系统、相关集成电路、设备和方法
CN118245428A (zh) 具有安全的、选择性的外围设备启用/禁用的soc架构
CN117349853A (zh) 用于管理存储区域的访问权限的方法和对应的片上系统
CN117253518A (zh) 一次性可编程存储器控制器、相关处理系统、集成电路和方法

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