CN116070192A - 针对多个开发端口的中央控制器 - Google Patents
针对多个开发端口的中央控制器 Download PDFInfo
- Publication number
- CN116070192A CN116070192A CN202211338499.8A CN202211338499A CN116070192A CN 116070192 A CN116070192 A CN 116070192A CN 202211338499 A CN202211338499 A CN 202211338499A CN 116070192 A CN116070192 A CN 116070192A
- Authority
- CN
- China
- Prior art keywords
- development tool
- soc
- port
- development
- authentication
- 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
Links
- 238000011161 development Methods 0.000 title claims abstract description 336
- 238000004891 communication Methods 0.000 claims abstract description 21
- 238000000034 method Methods 0.000 claims description 43
- 230000003068 static effect Effects 0.000 claims description 36
- 230000004044 response Effects 0.000 claims description 23
- 230000008878 coupling Effects 0.000 claims description 10
- 238000010168 coupling process Methods 0.000 claims description 10
- 238000005859 coupling reaction Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 5
- 238000012360 testing method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
- G06F11/364—Software debugging by tracing the execution of the program tracing values on a bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Automation & Control Theory (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Storage Device Security (AREA)
Abstract
本公开的各实施例总体上涉及针对多个开发端口的中央控制器。一种片上系统,包括针对被配置为接收第一开发工具的第一开发端口的第一端口控制器以及针对被配置为接收第二开发工具的第二开发端口的第二端口控制器。片上系统还包括与第一端口控制器通信的中央控制器、第二端口控制器和安全子系统。中央控制器被配置为管理安全子系统和第一开发工具之间的身份验证交换以及安全子系统和第二开发工具之间的身份验证交换。
Description
技术领域
本发明整体上涉及用于实现服务于多个调试访问端口的中央控制器和保护片上系统免受工具伪造攻击的系统和方法。
背景技术
通常,片上系统(SoC)可以通过使用由安全子系统管理的身份验证协议来防止工具伪造的攻击。然而,当前的方法可能会使得SoC在身份验证发生之后变得易受攻击。
发明内容
根据一个实施例,SoC包括与被配置为接收第一开发工具的第一开发端口通信的第一端口控制器;与被配置为接收第二开发工具的第二开发端口通信的第二端口控制器;安全子系统;以及与第一端口控制器、第二端口控制器和安全子系统通信的中央控制器,中央控制器被配置为管理安全子系统和第一开发工具之间的身份验证交换以及安全子系统和第二开发工具之间的身份验证交换。
根据一个实施例,SoC可以进一步包括针对第一端口控制器的密码交换邮箱以及针对第二端口控制器的密码交换邮箱。
根据一个实施例,针对第一端口控制器的密码交换邮箱包括安全子系统可访问来写入身份验证交换数据并且经由第一端口控制器可访问第一开发工具来读取身份验证交换数据的寄存器位置。
根据一个实施例,针对第一端口控制器的密码交换邮箱包括安全子系统可访问来读取身份验证交换数据并且经由第一端口控制器可访问第一开发工具来写入身份验证交换数据的寄存器位置。
根据一个实施例,针对第二端口控制器的密码交换邮箱包括安全子系统可访问来写入身份验证交换数据并且经由第二端口控制器可访问第二开发工具来读取身份验证交换数据的寄存器位置。
根据一个实施例,针对第二端口控制器的密码交换邮箱包括安全子系统可访问来读取身份验证交换数据并且经由第二端口控制器可访问第二开发工具来写入身份验证交换数据的寄存器位置。
根据一个实施例,安全子系统包括被配置为将身份验证交换数据写入安全子系统可访问的寄存器位置来写入身份验证交换数据的核心。
根据一个实施例,核心被配置为对从安全子系统可访问的寄存器位置读取的身份验证交换数据进行身份验证,以读取身份验证交换数据。
根据一个实施例,核心被配置为以预定的间隔,对从安全子系统可访问的寄存器位置读取的身份验证交换数据重复地进行身份验证。
根据一个实施例,中央控制器包括静态密码交换邮箱,静态密码交换邮箱包括:由安全子系统读取身份验证交换数据而可访问、并且由第一开发工具经由第一端口控制器并且由第二开发工具经由第二端口控制器写入身份验证交换数据而能够访问的寄存器位置;以及由安全子系统写入身份验证交换数据而能够访问并且由第一开发工具经由第一端口控制器并且由第二开发工具经由第二端口控制器读取身份验证交换数据而能够访问的寄存器位置;并且其中核心被配置为对从静态密码交换邮箱读取的身份验证交换数据进行身份验证。
根据一个实施例,安全子系统包括用于断言访问授予信号的访问授予输出,访问授予信号被提供给第一端口控制器和第二端口控制器,访问授予信号响应于任何未经身份验证的身份验证交换数据而被取消断言。
根据一个实施例,SoC进一步包括跟踪和调试子系统,跟踪和调试子系统由第一端口控制器的跟踪和调试接口而可访问并且由第二端口控制器的跟踪和调试接口而可访问,第一端口控制器和第二端口控制器被配置为响应于访问授予信号被断言而开放其跟踪和调试接口。
根据一个实施例,中央控制器包括独立复位。
根据一个实施例,安全子系统被配置为重复发起与第一开发工具的身份验证交换,并且重复发起与第二开发工具的身份验证交换。
根据一个实施例,用于对针对片上系统(SoC)的开发工具进行身份验证的方法,方法包括:将第一开发工具与SoC的第一开发端口耦合;使用第一开发工具与安全子系统之间经由中央控制器的第一专用密码交换邮箱交换的数据,对第一开发工具进行身份验证;将第二开发工具与SoC的第二开发端口耦合;以及使用第二开发工具与安全子系统之间经由中央控制器的第二专用密码交换邮箱交换的数据,对第二开发工具进行身份验证。
根据一个实施例,方法进一步包括:使用在第一开发工具和安全子系统之间经由静态密码交换邮箱交换的数据来执行一次性身份验证过程。
根据一个实施例,方法进一步包括:使用第一开发工具与安全子系统之间经由中央控制器的第一专用密码交换邮箱交换的数据来对第一开发工具进行重复身份验证。
根据一个实施例,方法进一步包括:使用第二开发工具与安全子系统之间经由中央控制器的第二专用密码交换邮箱交换的数据,对第二开发工具进行重复身份验证。
根据一个实施例,方法进一步包括:响应于第一开发工具和第二开发工具已被身份验证,向第一开发工具和第二开发工具授权对SoC的跟踪和调试子系统的访问。
根据一个实施例,方法进一步包括:响应于第一开发工具或第二开发工具中的一个的身份验证协议失败,拒绝第一开发工具和第二开发工具对SoC的跟踪和调试子系统的访问。
根据一个实施例,针对SoC的中央控制器包括:第一专用密码交换邮箱,其被配置为管理与SoC耦合的第一开发工具与SoC的安全子系统之间的身份验证数据交换;第二专用密码交换邮箱,其被配置为管理与SoC耦合的第二开发工具与SoC的安全子系统之间的身份验证数据交换;以及静态密码交换邮箱,其被配置为管理第一开发工具与安全子系统之间的身份验证数据交换,并且管理第二开发工具与SoC的安全子系统之间的身份验证数据交换。
根据一个实施例,中央控制器进一步包括提供访问授予信号的输出,访问授予信号响应于第一专用密码交换邮箱、第二专用密码交换邮箱和静态密码交换邮箱满足身份验证协议而被断言。
附图说明
为了更全面地理解本发明及其优点,现在结合附图参考以下描述,其中:
图1描绘了根据实施例的具有中央控制器的多端口片上系统;
图2描绘了根据实施例的具有包括专用密码交换邮箱的中央控制器的多端口芯片系统;
图3描绘了根据实施例的专用密码交换邮箱;
图4描绘了根据实施例的静态密码交换邮箱;
图5描绘了一个实施例的安全子系统;
图6描绘了根据一个实施例的具有中央控制器的多端口SoC;
图7描绘了根据一个实施例的方法的流程图;以及
图8描绘了根据一个实施例的方法的流程图。
具体实施方式
在不同的产品中使用SoC已发展到在一系列行业中几乎无处不在的水平。SoC被用在太多的、甚至无法命名的产品中。在许多情况下,对SoC进行测试、校准和调试,以适应将其并入其中的特定应用。当SoC被应用于关键或敏感应用时,校准、测试和调试可能特别重要。汽车工业就是这样一个非限制性示例。SoC被用于各种汽车应用,包括引擎控制、车身和底盘应用。SoC通常由原始设备制造商进行测试和校准。SoC也可以在现场进行测试或校准,用于诊断或其他目的。
校准、调试和测试可以使用与SoC开发端口耦合的开发工具来执行。在一些SoC中需要多个开发端口,因为可能需要同时连接各种类型的工具。在汽车行业,一些开发工具的示例包括跟踪和调试工具以及引擎校准工具。当调试器工具已被连接来调试正在进行的操作时,汽车制造商或OEM可能需要连接多个工具来执行校准任务。当一次使用多个开发工具有益时,多端口SoC在许多其他情况下也可能是期望的。
具有单个或多个开发端口的SoC的安全性变得越来越重要。随着SoC应用的数量和类型的增加,潜在的安全威胁和保护SoC免受黑客攻击的需求也增加。成功的攻击可能会从开发人员那里盗用机密信息。攻击还可能损害应用的功能。这在SoC的敏感和关键应用(例如汽车行业)中尤其成问题。
已知的多端口SoC安全寻址方法通常利用具有身份验证协议的安全子系统来确认开发工具的身份。然而,在完成与多个开发端口之一的一个连接的外部工具的身份验证之后,SoC安全子系统在无需针对与多个端口之一连接的每个工具添加身份验证协议的情况下,将为与任何其他开发端口连接的所有其他外部开发工具开放访问。这种一次性的身份验证过程使SoC暴露于工具伪造攻击,允许未经授权的工具在不通过验证协议的情况下访问SoC内部。
例如,合法的开发工具可以在第一开发端口处被连接。同时,黑客设备可以与SoC的多个开发端口中的不同端口耦合。当与第一开发端口耦合的合法设备清除身份验证协议时,安全子系统开放对所有开发端口的访问。这为与不同开发端口耦合的黑客设备清除了通往SoC内部的路径。
通过将合法设备与黑客设备交换,传统安全方法中的漏洞也可以被利用。合法的开发工具可以在SoC的开发端口处被连接。开发工具可以使用一次性身份验证协议进行身份验证。安全子系统然后授予对SoC的所有开发端口的访问。真正的开发工具可能会从开发端口中移除,并替换为黑客设备,黑客设备然后将能够访问SoC内部。
保护SoC免受与开发端口耦合的开发工具攻击的其他已知方法包括使用预定义的密码。这只提供有限的保护,因为预定义的密码可能会被发现,并在黑客攻击期间被使用,以授予对开发端口接收的黑客工具的不必要访问。
为了对抗工具伪造的风险,需要具有中央控制器的SoC,中央控制器可由所有开发端口访问。中央控制器提供了促进与开发端口耦合的设备与安全子系统之间的身份验证交换(诸如密码交换和质询密码交换)的能力。中央控制器可以允许在重复的基础上对单独开发端口进行独立地身份验证。
图1示出了根据实施例的具有中央控制器的多端口片上系统。
在各种实施例中,片上系统(“SoC”)100可以包括第一开发端口102和第二开发端口104。第一开发端口102可以包括与开发工具(诸如但不限于SoC 100的调试和跟踪工具或校准工具)交换数据的接口。同样,第二开发端口104可以包括与开发工具(诸如但不限于SoC 100的调试和跟踪工具或校准工具)交换数据的接口。开发工具可以被同时连接到第一开发端口102和第二开发端口104。SoC 100还可以在各种实施例中包括附加开发端口。任何数量的开发端口可以被包括在SoC 100上。开发端口可以包括例如联合测试动作组(“JTAG”)端口和串行线路调试(“SWD”)端口。开发端口还可以包括其他标准或自定义的访问端口。
应注意,本公开中描述的各种组件使用诸如“第一”、“第二”、“第三”等的附图标记来引用。这些术语被用于标识组件。除非另有规定或指示,否则它们不应被读取为表示顺序。
还应注意,本公开的附图可以将组件表示为框。然而,框被用于图示组件,并不一定表示组件的物理边界。正如所理解的,各种组件可能由分布在SoC上不同物理位置处的元素组成。
第一开发端口102可以借助总线,向开发工具传输数据和从开发工具传输数据。图1和本公开的其他图中使用线或箭头表示组件之间的总线。箭头表示数据流在组件之间的方向。例如,组件之间的双头箭头指示双向数据交换或双向总线。
数据可以从第一开发端口102传输到第一端口控制器106。数据还可以从第一端口控制器106传输到与第一开发端口102耦合的设备(诸如开发工具)。在各种实施例中,第一端口控制器106可以包括电路或逻辑。
第二开发端口104还可以借助总线,向开发工具传输数据和从开发工具传输数据。数据可以从第二开发端口104传输到第二开发端口控制器108,反之亦然。数据可以从第二端口控制器108传输到与第二开发端口104耦合的设备。在各种实施例中,第二端口控制器108可以包括电路或逻辑。
在各种实施例中,SoC 100可以包括针对附加开发端口的附加端口控制器。在各种实施例中,每个附加开发端口可以具有对应的端口控制器,或者端口控制器可以被组合为信号单元。
SoC 100还可以包括中央控制器110。中央控制器110可以与第一端口控制器106、第二端口控制器108以及针对附加开发端口的任何附加端口控制器通信。中央控制器110和端口控制器之间的通信可以借助总线来完成。如所理解的,SoC 100组件之间的输入、输出和其他接口之间的耦合可以借助连接到总线的方式来完成,数据通过总线传输到组件以及从组件传输。中央控制器的位置可以使得它在调试和复位子系统的其余部分复位时不复位。中央控制器110可以执行调试器功能所需的许多任务。在各种实施例中,中央控制器110可以包括状态位,状态位存储SoC生命周期、当前和最后复位以及自检完成状态。
在各种实施例中,第一端口控制器106可以包括与中央控制器110的读/写接口110A耦合的读/写接口106A。在各种实施例中,第一端口控制器106可以进一步包括输出106B,输出106B与中央控制器110的输入110C或SoC内部的其他组件耦合。在各种实施例中,输入110C和110D可以通信开发工具的连接状态。与第一开发端口102耦合的开发工具可以经由第一端口控制器106与中央控制器110通信,以发起身份验证交换。
在各种实施例中,第二端口控制器108可以包括与中央控制器110的读/写接口110B耦合的读/写接口108A。在各种实施例中,第二端口控制器108可以进一步包括输出108B,输出108B与中央控制器110的输入110D耦合。当开发工具与第二开发端口104耦合时,第二端口控制器108可以被配置为断言信号。并且,与第一端口控制器一样,与第二开发端口104耦合的开发工具可以经由第二端口控制器108与中央控制器110通信,以发起身份验证交换。
其他端口控制器也可以包括与中央控制器110的读/写接口耦合的读/写接口。而且,当开发工具与相应的端口配对时,来自附加端口控制器的主动信号输出也可以被提供给中央控制器110的输入,以断言主动信号。这也可以发起身份验证协议。
SoC 100可以进一步包括安全子系统112。安全子系统可以为SoC提供许多功能。在各种实施例中,安全子系统112可以包括与SoC的其他组件分离的核心和存储器元件(诸如非暂时性计算机可读介质)。该隔离可能有助于保护安全子系统免受攻击。安全子系统可以将密码密钥存储在专用存储器位置中。
在各种实施例中,中央控制器110可以管理安全子系统112以及与开发端口耦合的开发工具之间的身份验证交换。例如,中央控制器110可以管理与第一开发端口102配对的开发工具之间的身份验证交换。数据可以从第一开发端口102借助第一端口控制器106传递到中央控制器110。
类似的,中央控制器110可以管理与第二开发端口104配对的开发工具之间的身份验证交换。数据可以从第二开发端口104借助第二端口控制器108然后传递到中央控制器110。中央控制器110还可以通过对应的端口控制器来管理与附加开发端口配对的附加工具之间的身份验证交换。
中央控制器110还可以包括读/写接口110E,用于与安全子系统112通信。接口110E可以被用于向安全子系统112传输数据。安全子系统112可以通过接口110E向中央控制器110通信身份验证质询已传递。端口115可以被用于从SoC的主机CPU读取和写入中央控制器110内部的存储器位置。在各种实施例中,主机CPU也可以作为安全子系统112的CPU。SoC可以包括多个CPU。
安全子系统112还可以包括读/写接口112A,用于接收来自中央控制器110的密码交换信息。安全子系统112可以从接口112A向中央控制器110通信密码交换已成功。安全子系统112也可以经由端口115读取和写入中央控制器110。一旦信号在端口115处借助内部总线耦合被接收,就可以被路由到中央控制器110的其他组件。端口115可以被用于提供对中央控制器110的寄存器的访问。安全子系统112可以经由该端口来访问中央控制器110的寄存器。安全子系统112可以通过总线被耦合到端口115。
中央控制器110也可以与各种IP电路通信来执行各种任务。例如,SoC 100可以包括第一IP电路IP1、第二IP电路IP2和第三IP电路。SoC 100还可以包括附加的IP电路。第一IP电路IP1可以通过总线与中央控制器110耦合。中央控制器110可以与第一IP电路交换数据。同样,第二IP电路IP2可以与中央控制器110耦合。并且,第三IP电路IP3也可以与中央控制器110耦合。IP1、IP2等可以与中央控制器110通信,以在应用的不同阶段作用时提供SoC的状态。这些端口还可以从中央控制器110接收例如用于控制开发端口IO(例如,第一开发端口102和第二开发端口104)的控制信息,因此在开发工具被连接时,端口为开发工具保留。另一IP可以包括系统时钟控制器。在各种实施例中,中央控制器110可以与时钟控制器通信来将时钟关断,直到密码质询成功。
在各种实施例中,中央控制器110还可以被连接到SoC 100的中央处理单元。例如,端口115可以提供中央控制器110和SoC的其他组件(诸如CPU)之间的接口。中央控制器110可以通过用于CPU访问的端口115来与系统存储器映射组成双向接口。
中央控制器110可以允许在SoC上更安全地使用开发工具。通过具有独立于安全子系统112的中央控制器110,SoC的其他组件可以在不将中央控制器110复位的情况下被复位。这样,在系统复位被执行时,中央控制器110可以保持不变。中央控制器110独立于SoC的其他组件复位也可能是有利的,因为中央控制器可能正在执行帮助调试SoC内部的故障的功能。因此,中央控制器110在剩余SoC复位时可以不复位。中央控制器110的具体复位可以决定其在SoC中的位置。复位可以由中央控制器从SoC的复位生成模块接收(在端口处)。
在各种实施例中,与开发端口中的任一个耦合的开发工具可能被阻断对SoC 100的其他部分的访问。例如,第一端口控制器106可以包括接口106C,接口106C可以访问其他SoC系统(例如,跟踪和调试子系统(未示出))。然而,在身份验证协议被满足之前,与第一个开发端口102配对的开发工具可能无法访问接口106C。
在各种实施例中,身份验证状态可以从中央控制器110通信。中央控制器110可以包括输出110F,用于在满足身份验证协议时断言访问授予信号。访问授予信号可以在第一端口控制器106的输入106D处被接收。第一端口控制器106然后可以向与第一开发端口102配对的开发工具开放接口106C。如所理解的,访问授予信号可以以各种方式开放对SoC系统的其他部分的访问。
类似地,第二端口控制器108可以包括接口108C,接口108C可访问其他SoC系统(例如跟踪和调试子系统(未示出))。接口108C可以对与第二开发端口104配对的开发工具保持不可访问,直到身份验证协议被满足。
同样,在各种实施例中,这可以从中央控制器110进行通信。中央控制器110可以包括输出110G,用于在身份验证协议被满足时断言访问授予信号。访问授予信号可以在第二端口控制器108的输入108D处被接收。第二端口控制器108然后可以将接口108C向与第二开发端口104配对的开发工具开放。附加端口控制器可以以类似的方式为开发工具提供对SoC的其他系统(例如跟踪和调试子系统)的访问。
在各种实施例中,中央控制器110可以包括多个密码交换邮箱。中央控制器110可以包括针对多端口SoC的每个开发端口的专用密码交换邮箱。这可以允许位于不同开发端口处的开发工具单独进行身份验证。
图2描绘了根据实施例的具有中央控制器的多端口片上系统,中央控制器包括专用密码交换邮箱。
在各种实施例中,中央控制器110包括针对第一端口控制器106的第一专用密码交换邮箱202以及针对第二端口控制器108的第二专用密码交换邮箱204。中央控制器110还可以包括针对附加端口控制器的附加密码交换邮箱。中央控制器110可以包括针对SoC 100的每个开发端口的密码交换邮箱。
在各种实施例中,第一专用密码交换邮箱202可以包括用于存储从第一端口控制器106接收的数据的可编程寄存器。这样的数据可能来自与第一开发端口102耦合的开发工具。第一专用密码交换邮箱202也可以包括用于通过安全子系统112编写数据的可编程寄存器。第一专用密码交换邮箱202还可以被配置为使得第一端口控制器106可以读取写入存储器位置中的数据,存储器位置可以由安全子系统112在第一专用密码交换邮箱202中写入。同样,第一专用密码交换邮箱202可以被配置为使得安全子系统112可以读取第一端口控制器106在第一专用密码交换邮箱202的存储器中写入的数据。为了进行读写交换,第一专用密码交换邮箱202可以与接口110A和接口110E通信。在各种实施例中,第一专用密码交换邮箱202可以仅从其中一个端口控制器接收数据。这允许中央控制器110管理与第一开发端口102耦合的开发工具与安全子系统之间的身份验证交换。
在各种实施例中,第二专用密码交换邮箱204可以以类似的方式操作。例如,第二专用密码交换邮箱204可以包括可编程寄存器,用于存储从第二端口控制器108接收的数据。这样的数据可能来自与第二开发端口104耦合的开发工具。第二专用密码交换邮箱204也可以包括可编程寄存器,用于由安全子系统112写入数据。第二专用密码交换邮箱204也可以被配置为使得第二端口控制器108可以读取写入安全子系统112可访问的存储器位置中的数据,以写入第二专用密码交换邮箱204。同样,第二专用密码交换邮箱204可以被配置为使得安全子系统112可以读取第二端口控制器108写入到第二专用密码交换邮箱的存储器位置中的数据。为了进行读写交换,第二专用密码交换邮箱204可以与接口110B和接口110E通信。上述内容允许中央控制器110管理与第二开发端口104耦合的开发工具与安全子系统112之间的身份验证交换。
附加专用密码交换邮箱也可以管理由附加开发端口接收的工具之间的数据交换。通过端口控制器和中央控制器110,数据交换可以在开发工具之间双向流动。
将中央控制器110结构化也可以有益的,使得专用邮箱仅从一个端口控制器接收数据。例如,第一专用密码交换邮箱202可以被限制为仅从第一端口控制器106接收数据。第二专用密码交换邮箱204可以被限制为仅从第二端口控制器108接收数据。在各种实施例中,第一专用密码交换邮箱202仅可以接收与第一端口控制器106耦合的通信总线203而不接收其他端口控制器。第二专用密码交换邮箱204仅可以接收与第二端口控制器108耦合的通信总线205,而不接收其他端口控制器。通信总线203和通信总线205可以向第一端口控制器106和第二端口控制器108提供对相应专用密码交换邮箱的读取访问和写入访问。如所理解的,附加密码交换邮箱可以被限制为仅接收来自对应端口控制器的通信。这是有利的,因为它减少或消除了由另一开发端口接收的开发工具渗透到SoC的机会。
在各种实施例中,中央控制器110可以包括用于密码交换邮箱的访问接口206。访问接口206可以通过内部总线耦合到中央控制器110的专用密码交换邮箱。访问接口206可以与读/写总线外部耦合,读/写总线与安全子系统112耦合。这可以为安全子系统112提供用于读取和写入第一专用密码交换邮箱202和第二专用密码交换邮箱的路径。
中央控制器110还可以包括中断接口208,用于从安全子系统112向密码交换邮箱接收中断并从密码交换邮箱向安全子系统112发射中断。当数据从密码交换邮箱的存储器位置写入或读取时,中断可能生成。
在各种实施例中,由安全子系统112生成的访问授予信号可以由中央控制器110在接口210处接收。当被断言时,访问授予信号可以被提供给输出110F和输出110G。此时,它可以被提供给第一端口控制器106和第二端口控制器108。如所理解的,它也可以被提供给附加端口控制器的附加输出。访问授予信号也可以通过其他路径传送到端口控制器,或者可以绕过中央控制器110。
在用于对开发工具进行身份验证的安全协议已被满足之后,访问授予信号可以由安全子系统112断言。例如在开发工具满足了质询-响应交换之后,这可能发生。在各种实施例中,如果任何端口已接收未经身份验证的工具,或者任何端口处的工具未通过身份验证协议,则访问授予信号可以被取消断言。例如,在未经身份验证的开发工具已在第二开发端口104处被接收或者第二端口104接收的开发工具没有通过身份验证协议之后,访问可以针对在第一开发端口102处接收的经身份验证的开发工具被撤销。在各种实施例中,在任何SoC的开发端口处接收的每个开发工具必须经过身份验证,以使得任何开发工具具有开放访问。如果第二开发端口104处接收的开发工具经过身份验证,则访问可以重新建立。
针对每个开发端口的专用邮箱可以允许在每个开发端口处接收的工具独立地进行身份验证。这可以防止开发端口处的真实工具开放对所有开发端口的访问的工具伪造攻击。
附加安全层可以由静态密码交换邮箱212来提供。静态密码交换邮箱212可以提供对SoC 100的每个端口控制器的读取访问和写入访问。例如,静态密码交换邮箱可以与读写接口110A和读写接口110B耦合。静态交换密码邮箱还可以与针对任何附加端口控制器的接口耦合,以提供对静态密码交换邮箱212的读/写访问。静态密码交换邮箱212也可以提供对安全子系统112的读/写访问。中央控制器110可以包括读/写接口214,用于提供对安全子系统112的访问。通过这种方式,与任何开发端口配对的开发工具可以为静态密码交换邮箱212发起并满足身份验证协议。在各种实施例中,静态交换邮箱仅可以被用于一次性身份验证协议。
在各种实施例中,只有在针对静态交换邮箱212的身份验证协议已被满足并且针对接收开发工具的每个开发端口的专用密码交换邮箱的身份验证协议已被满足之后,访问授予信号才可以被断言。可能需要一次性身份验证,然后使用专用身份验证来开放访问。这可以提供防范攻击的两个层。
专用密码交换邮箱还允许持续执行身份验证交换。安全子系统112可以被配置为要求开发工具以间隔时间满足身份验证协议。间隔的长度可以被预先确定。例如,在第一开发端口102处接收的开发工具可能需要每200毫秒满足身份验证协议。身份验证协议可以包括质询-响应身份验证。如果开发工具无法通过身份验证协议,对SoC 100内部的访问可以针对某些或所有开发端口撤销。如所理解的,在各种实施例中,这可以通过安全子系统112将访问授予信号取消断言来完成。
在第二开发端口104处接收的附加开发工具也可能需要同时满足每200毫秒持续的身份验证协议。前述内容可以阻止经身份验证的工具被黑客设备替换。
在各种实施例中,中央控制器110可以被用于仅具有一个开发端口的SoC中。由中央控制器110提供的、包括密码交换邮箱和静态交换邮箱的两层安全性可以防止使用非真实工具切换真实开发之后发生的攻击。
图3描绘了一个实施例的专用密码交换邮箱。
专用密码交换邮箱300可以允许在SoC 100的给定开发端口处接收的工具与安全子系统112之间进行身份验证交换。例如,第一专用密码交换邮箱202可以包括针对第一开发端口102的专用密码交换邮箱。第二专用密码交换邮箱204可以包括针对第二开发端口104的专用密码交换邮箱等。
专用密码交换邮箱300可以包括第一存储器位置302和第二存储器位置304。第一存储器位置302可以包括寄存器位置或可编程寄存器位置。第二存储器位置304可以包括寄存器位置或可编程寄存器位置。第一存储器位置302和第二存储器位置304可以被用于在安全子系统112和在对应端口处接收的开发工具之间进行身份验证交换期间存储数据。例如,第一存储器位置302可以被安全子系统112访问来写入身份验证交换数据,并且可以由第一开发端口102接收的开发工具经由第一端口控制器访问来读取身份验证交换数据。第二存储器位置304可以被安全子系统112访问来读取身份验证交换数据,并且可以被第一端口接收的开发工具经由第一端口控制器106访问来写入身份验证交换数据。如所理解的,专用密码交换邮箱可以被配置,使得其可以被第二开发端口104或任何其他开发端口进行读写。
专用密码交换邮箱300可以从端口控制器接收读/写总线306。这可以在读/写接口300A处被接收。专用密码交换邮箱300可以在接口300B处接收读写总线308。读/写总线308可以从安全子系统112接收。
读/写总线306可以允许在对应开发端口处接收的开发工具将加密或非加密数据写入第二存储器位置304。它还可以允许与对应开发端口耦合的开发工具从第一存储器位置302读取加密或非加密数据。
读/写总线308可以允许安全子系统112将加密或非加密数据写入第一存储器位置302。它还可以允许安全子系统112从第二存储器位置304读取加密或非加密数据。
在各种实施例中,专用密码交换邮箱300可以利用其他机制来允许开发工具对专用密码交换邮箱300进行读写,并允许安全子系统112对专用密码交换邮箱300进行读写。
专用密码交换邮箱300还可以提供与第一存储器位置302和第二存储器位置304通信的中断信号。中断信号可以在接口300C处被传递到与安全子系统112耦合的总线。当数据从第一存储器位置302读取或者被写入第二存储器位置304时,中断信号可以被触发。
开发端口可以轮询专用密码交换寄存器的寄存器,以确定何时数据已被安全子系统写入和读取。
为了例示的目的,现在讨论一个非限制性示例。在各种实施例中,安全子系统112的核心可以向第一存储器位置302写入加密或非加密的质询。由安全子系统112写入的内容可以由对应端口(例如第一开发端口102)接收的开发工具读取(通过端口控制器)。这也可能触发中断。开发工具然后可以对安全子系统提出的质询生成加密或非加密响应。响应可以被写入(经由控制端口,例如第一端口控制器106)到第二存储器位置304。中断可能生成并且安全子系统112可以读取内容并评估身份验证协议是否已通过。在该交换期间写入和读取的数据可以被称为身份验证交换数据。安全子系统112和开发工具可以继续交换数据,直到开发工具通过身份验证。在各种实施例中,附加质询可以间隔地发布,因此开发工具被持续地进行身份验证。间隔可以是预定长度。
图4描述了一个实施例的静态密码交换邮箱。
在各种实施例中,静态密码交换邮箱400可以包括用于对一次性密码进行编程的可编程寄存器集402。可编程寄存器集402可以包括128位、256位或其他大小。与开发端口耦合的开发工具可以使用在接口400A处连接的总线406写入静态密码。这可以经由端口控制器来完成(诸如通过读/写接口110A的第一端口控制器106或通过读/写接口110B的第二端口控制器108)。静态密码可以被写入可编程寄存器402中。可编程寄存器402可以包括控制状态寄存器集,用于指示可编程寄存器集402中的密码编程何时已完成。在密码写入完成时,密码请求400C被设置。接口400B处连接的密码总线408可以携带可编程寄存器集中存储的、提供给安全子系统112(例如,通过读/写接口214)的密码。在确定正确的密码被提供之后,访问授予信号可以经由图2的接口210被断言。
图5描绘了一个实施例的安全子系统。
在各种实施例中,安全子系统112可以基于密钥和加密技术来对密码进行身份验证。经身份验证的开发工具具有与正确质询密码有关的信息。
在各种实施例中,安全子系统112可以包括核心502。核心可以包括加密引擎。安全子系统112还可以包括读写接口112A,以向中央控制器110和其他SoC组件接收和发射信号。如所理解的,安全子系统可以包括附加接口。安全子系统112可以包括存储器504。存储器504可以被用于存储用于加密的密钥。存储器504还可以包括非暂时性计算机可读存储器。存储器504可以存储由核心执行的指令集。核心502可以生成待写入中央控制器110的专用邮箱的加密或非加密的身份验证交换数据。这样的身份验证交换数据可以包括对与开发端口耦合的工具的质询。例如,核心可以将身份验证交换数据写入安全子系统可访问的存储器位置(诸如寄存器位置),例如专用密码交换邮箱300的第一存储器位置302或静态交换邮箱的存储器位置(可编程寄存器402)。
核心502还可以执行指令集来对从安全子系统112可访问的存储器位置读取的身份验证交换数据进行身份验证。例如,专用密码交换邮箱300的第二存储器位置304数据读取可以包括对安全子系统112发布的质询的响应,响应由开发工具提供。因此,核心502可以对提供给专用密码邮箱的数据进行身份验证。在各种实施例中,静态密码交换邮箱向安全子系统提供密码。然后可以在安全子系统112中进行比较来进行身份验证。
在各种实施例中,核心502可以使用与开发端口配对的开发工具来重复发起身份验证序列。身份验证序列之间的间隔可以被预先确定。用于执行身份验证序列的指令可以被存储在存储器504中。间隔可以由时钟计时(未描绘)。间隔的长度可以由存储器504中存储的指令集来确定。
当身份验证协议被满足时,核心502也可以断言访问授权信号。这可以通过总线或其他方式传递到中央控制器110。在各种实施例中,只有当所有开发工具通过相应专用密码邮箱满足了身份验证并且静态密码身份验证已被满足时,访问授予信号才可以被断言。如果任何开发工具无法通过身份验证协议,则访问授予信号可以被取消断言。访问授予信号可以被提供给输出506。在各种实施例中,访问授予信号还可以被提供给读/写接口112A并在总线上携带。
如所理解的,SoC可以包括任意数量的开发端口。SoC 100上可以包括的开发端口的数量没有限制。中央控制器110可以包括针对每个开发端口的专用密码交换邮箱。在各种实施例中,SoC还可以包括针对每个开发端口的端口控制器。
图6描绘了根据一个实施例的具有中央控制器的多端口SoC。
SoC 100可以包括第一开发端口102、第二开发端口104、第三开发端口105和第n开发端口107。SoC可以包括第一端口控制器106、第二端口控制器108、第三端口控制器111和第n端口控制器113。中央控制器110可以包括第一专用密码交换邮箱202、第二专用密码交换邮箱204、第三专用密码交换邮箱207和第n专用密码交换邮箱209。每个专用密码交换邮箱可以被限制,因此其仅由对应的端口控制器访问。中央控制器110可以包括与每个端口控制器通信的静态密码交换邮箱212(连接在图6中未示出)。
图7描述了根据一个实施例的方法的流程图。
在各种实施例中,用于对针对片上系统(SoC)的开发工具进行身份验证的方法700可以包括:在步骤702处,将第一开发工具与SoC的第一开发端口耦合;在步骤704处,使用第一开发工具与安全子系统之间经由中央控制器的第一专用密码交换邮箱交换的数据对第一开发工具进行身份验证;在步骤706处,将第二开发工具与SoC的第二开发端口耦合;以及在步骤708处,使用第二开发工具和安全子系统之间经由中央控制器的第二专用密码交换邮箱交换的数据对第二开发工具进行身份验证。
在各种实施例中,方法700可以进一步包括使用在第一开发工具和安全子系统之间经由静态密码交换邮箱交换的数据来执行一次性身份验证过程。
在各种实施例中,方法700可以进一步包括使用在第一开发工具和安全子系统之间经由中央控制器的第一专用密码交换邮箱交换的数据来对第一开发工具进行重复身份验证。
在各种实施例中,方法700可以进一步包括使用第二开发工具与安全子系统之间经由中央控制器的第二专用密码交换邮箱交换的数据来对第二开发工具进行重复身份验证。
在各种实施例中,方法700可以进一步包括响应于第一开发工具和第二开发工具已经过身份验证,向第一开发工具和第二开发工具授予对SoC的跟踪和调试子系统的访问。
在各种实施例中,方法700可以进一步包括响应于第一开发工具或第二开发工具中的一个未通过身份验证协议,拒绝第一开发工具和第二开发工具对SoC的跟踪和调试子系统的访问。
图8描绘了根据一个实施例的方法的流程图。
在各种实施例中,用于对针对片上系统(SoC)的开发工具进行身份验证的方法800可以包括:在步骤801处,将第一开发工具与SoC的第一开发端口耦合;在步骤802处,使用中央控制器的静态密码交换邮箱,对第一开发工具进行身份验证;在步骤804处,使用第一开发工具和安全子系统之间经由中央控制器的第一专用密码交换邮箱交换的数据,对第一开发工具进行周期性身份验证;在步骤806处,将第二开发工具与SoC的第二开发端口耦合;以及在步骤808处,使用第二开发工具和安全子系统之间经由中央控制器的第二专用密码交换邮箱交换的数据,对第二开发工具进行周期性身份验证。
示例1.SoC包括:第一端口控制器,与被配置为接收第一开发工具的第一开发端口通信;第二端口控制器,与被配置为接收第二开发工具的第二开发端口通信;安全子系统;以及与第一端口控制器、第二端口控制器和安全子系统通信的中央控制器,中央控制器被配置为管理安全子系统和第一开发工具之间的身份验证交换以及安全子系统和第二开发工具之间的身份验证交换。
示例2.根据示例1所述的SoC,其中中央控制器包括针对第一端口控制器的密码交换邮箱以及针对第二端口控制器的密码交换邮箱。
示例3.根据示例1或示例2所述的SoC,其中针对第一端口控制器的密码交换邮箱包括安全子系统可访问以写入身份验证交换数据,并且第一开发工具经由第一端口控制器可访问来读取身份验证交换数据的寄存器位置。
示例4.根据示例1-示例3所述的SoC,其中针对第一端口控制器的密码交换邮箱包括安全子系统可访问以读取身份验证交换数据,并且第一开发工具经由第一端口控制器可访问来写入身份验证交换数据的寄存器位置。
示例5.根据示例1-示例4所述的SoC,其中针对第二端口控制器的密码交换邮箱包括安全子系统可访问以写入身份验证交换数据,并且第二开发工具经由第二端口控制器可访问来读取身份验证交换数据的寄存器位置。
示例6.根据示例1-示例5所述的SoC,其中针对第二端口控制器的密码交换邮箱包括安全子系统可访问以读取身份验证交换数据,并且第二开发工具经由第二端口控制器可访问来写入身份验证交换数据的寄存器位置。
示例7.根据示例1-示例6所述的SoC,其中安全子系统包括核心,核心被配置为将身份验证交换数据写入安全子系统可访问来写入身份验证交换数据的寄存器位置。
示例8.根据示例1-示例7所述的SoC,其中核心被配置为对从安全子系统可访问来读取身份验证交换数据的寄存器位置读取的身份验证交换数据进行身份验证。
示例9.根据示例1-示例8所述的SoC,其中核心被配置为以预定的间隔,对从安全子系统可访问的寄存器位置读取的身份验证交换数据进行重复身份验证。
示例10.根据示例1-示例9所述的SoC,其中中央控制器包括静态密码交换邮箱,静态密码交换邮箱包括由安全子系统读取身份验证交换数据而可访问并且由第一开发工具经由第一端口控制器并且由第二开发工具经由第二端口控制器写入身份验证交换数据而可访问的寄存器位置;以及由安全子系统写入身份验证交换数据可访问并且由第一开发工具经由第一端口控制器并且由第二开发工具经由第二端口控制器来读取身份验证交换数据而可访问的寄存器位置;其中核心被配置为对从静态密码交换邮箱读取的身份验证交换数据进行身份验证。
示例11.根据示例1-示例10所述的SoC,其中安全子系统包括访问授予输出来断言访问授予信号,访问授予信号被提供给第一端口控制器和第二端口控制器,访问授予信号响应于任何身份验证交换数据未经身份验证而被取消断言。
示例12.根据示例1-示例11所述的SoC,其中SoC进一步包括由第一端口控制器的跟踪和调试接口可访问并且由第二端口控制器的跟踪和调试接口可访问的跟踪和调试子系统,第一端口控制器和第二端口控制器被配置为响应于访问授予信号被断言而开放其跟踪和调试接口。
示例13.根据示例1-示例12所述的SoC,其中安全子系统被配置为重复发起与第一开发工具的身份验证交换,并且重复发起与第二开发工具的身份验证交换。
示例14.根据示例1-示例14所述的SoC,其中中央控制器包括独立复位。
示例15.一种用于在SoC上对针对系统的开发工具进行身份验证的方法,方法包括:将第一开发工具与SoC的第一开发端口耦合;使用第一开发工具与安全子系统之间经由中央控制器的第一专用密码交换邮箱交换的数据,对第一开发工具进行身份验证;将第二开发工具与SoC的第二开发端口耦合;以及使用第二开发工具与安全子系统之间经由中央控制器的第二专用密码交换邮箱交换的数据,对第二开发工具进行身份验证。
示例16.根据示例15所述的方法,进一步包括使用第一开发工具和安全子系统之间经由静态密码交换邮箱交换的数据,执行一次性身份验证过程。
示例17.根据示例15或示例16所述的方法,进一步包括使用第一开发工具和安全子系统之间经由中央控制器的第一专用密码交换邮箱交换的数据,对第一开发工具进行重复身份验证。
示例18.根据示例15-示例17所述的方法,进一步包括使用第二开发工具和安全子系统之间经由中央控制器的第二专用密码交换邮箱交换的数据,对第二开发工具进行重复身份验证。
示例19.根据示例15-示例18所述的方法,进一步包括响应于第一开发工具和第二开发工具已经过身份验证,向第一开发工具和第二开发工具授予对SoC的跟踪和调试子系统的访问。
示例20.根据示例15-示例19所述的方法,进一步包括响应于第一开发工具或第二开发工具中的一个开发工具未经过身份验证协议,拒绝第一开发工具和第二开发工具对SoC的跟踪和调试子系统的访问。
示例21.一种针对SoC的中央控制器,中央控制器包括:第一专用密码交换邮箱,其被配置为管理与SoC耦合的第一开发工具以及SoC的安全子系统之间的身份验证数据交换;第二专用密码交换邮箱,其被配置为管理与SoC耦合的第二开发工具以及SoC的安全子系统之间的身份验证数据交换;以及静态密码交换邮箱,其被配置为管理第一开发工具与安全子系统之间的身份验证数据交换,并且管理第二开发工具与SoC的安全子系统之间的身份验证数据交换。
示例22.根据示例21所述的中央控制器,进一步包括提供访问授予信号的输出,访问授予信号响应于身份验证协议针对第一专用密码交换邮箱、第二专用密码交换邮箱和静态密码交换邮箱被满足而被断言。
虽然本发明已参考例示性实施例进行了描述,但本描述并不旨在限制性意义上进行解释。本发明的例示性实施例的各种修改和组合以及其他实施例在本领域技术人员参考本描述时是显而易见的。因此,所附权利要求涵盖任何这样的修改或实施例。
Claims (22)
1.一种片上系统SoC,包括:
第一端口控制器,与被配置为接收第一开发工具的第一开发端口通信;
第二端口控制器,与被配置为接收第二开发工具的第二开发端口通信;
安全子系统;以及
与所述第一端口控制器、所述第二端口控制器和所述安全子系统通信的中央控制器,所述中央控制器被配置为管理所述安全子系统和所述第一开发工具之间的身份验证交换以及所述安全子系统和所述第二开发工具之间的身份验证交换。
2.根据权利要求1所述的SoC,其中所述中央控制器包括针对所述第一端口控制器的密码交换邮箱以及针对所述第二端口控制器的密码交换邮箱。
3.根据权利要求2所述的SoC,其中针对所述第一端口控制器的所述密码交换邮箱包括所述安全子系统能够访问以写入身份验证交换数据、并且所述第一开发工具经由所述第一端口控制器能够访问来读取所述身份验证交换数据的寄存器位置。
4.根据权利要求3所述的SoC,其中针对所述第一端口控制器的所述密码交换邮箱包括所述安全子系统能够访问以读取身份验证交换数据、并且所述第一开发工具经由所述第一端口控制器能够访问来写入所述身份验证交换数据的寄存器位置。
5.根据权利要求4所述的SoC,其中针对所述第二端口控制器的所述密码交换邮箱包括所述安全子系统能够访问以写入身份验证交换数据、并且所述第二开发工具经由所述第二端口控制器能够访问来读取身份验证交换数据的寄存器位置。
6.根据权利要求5所述的SoC,其中针对所述第二端口控制器的所述密码交换邮箱包括所述安全子系统能够访问以读取身份验证交换数据、并且所述第二开发工具经由所述第二端口控制器能够访问来写入身份验证交换数据的寄存器位置。
7.根据权利要求6所述的SoC,其中所述安全子系统包括核心,所述核心被配置为将身份验证交换数据写入所述安全子系统能够访问来写入身份验证交换数据的所述寄存器位置。
8.根据权利要求7所述的SoC,其中所述核心被配置为对从所述安全子系统能够访问来读取身份验证交换数据的寄存器位置读取的身份验证交换数据进行身份验证。
9.根据权利要求8所述的SoC,其中所述核心被配置为以预定的间隔,对从所述安全子系统能够访问的所述寄存器位置读取的身份验证交换数据进行重复身份验证。
10.根据权利要求9所述的SoC,其中所述中央控制器包括静态密码交换邮箱,所述静态密码交换邮箱包括:
针对由所述安全子系统读取身份验证交换数据而能够访问、并且针对由所述第一开发工具经由所述第一端口控制器并且由所述第二开发工具经由所述第二端口控制器写入身份验证交换数据而能够访问的寄存器位置;以及
针对由所述安全子系统写入身份验证交换数据而能够访问、并且针对由所述第一开发工具经由所述第一端口控制器并且由所述第二开发工具经由所述第二端口控制器来读取身份验证交换数据而能够访问的寄存器位置;其中
所述核心被配置为对从所述静态密码交换邮箱读取的身份验证交换数据进行身份验证。
11.根据权利要求10所述的SoC,其中所述安全子系统包括访问授予输出来断言访问授予信号,所述访问授予信号被提供给所述第一端口控制器和所述第二端口控制器,所述访问授予信号响应于任何身份验证交换数据未经身份验证而被解除断言。
12.根据权利要求11所述的SoC,其中所述SoC还包括由所述第一端口控制器的跟踪和调试接口能够访问并且由所述第二端口控制器的跟踪和调试接口能够访问的跟踪和调试子系统,所述第一端口控制器和所述第二端口控制器被配置为响应于所述访问授予信号被断言而开放其跟踪和调试接口。
13.根据权利要求12所述的SoC,其中所述安全子系统被配置为重复发起与所述第一开发工具的身份验证交换,并且重复发起与所述第二开发工具的身份验证交换。
14.根据权利要求1所述的SoC,其中所述中央控制器包括独立复位。
15.一种对针对片上系统SoC的开发工具进行身份验证的方法,所述方法包括:
将第一开发工具与所述SoC的第一开发端口耦合;
使用所述第一开发工具与安全子系统之间经由中央控制器的第一专用密码交换邮箱交换的数据,对所述第一开发工具进行身份验证;
将第二开发工具与所述SoC的第二开发端口耦合;以及
使用所述第二开发工具与所述安全子系统之间经由所述中央控制器的第二专用密码交换邮箱交换的数据,对所述第二开发工具进行身份验证。
16.根据权利要求15所述的方法,还包括使用所述第一开发工具和所述安全子系统之间经由静态密码交换邮箱交换的数据,执行一次性身份验证过程。
17.根据权利要求15所述的方法,还包括使用所述第一开发工具和所述安全子系统之间经由所述中央控制器的所述第一专用密码交换邮箱交换的数据,对所述第一开发工具进行重复身份验证。
18.根据权利要求15所述的方法,还包括使用所述第二开发工具和所述安全子系统之间经由所述中央控制器的所述第二专用密码交换邮箱交换的数据,对所述第二开发工具进行重复身份验证。
19.根据权利要求15所述的方法,还包括响应于所述第一开发工具和所述第二开发工具已经过身份验证,向所述第一开发工具和所述第二开发工具授予对所述SoC的跟踪和调试子系统的访问。
20.根据权利要求15所述的方法,还包括响应于所述第一开发工具或所述第二开发工具中的一个开发工具未经过身份验证协议,拒绝所述第一开发工具和所述第二开发工具对所述SoC的跟踪和调试子系统的访问。
21.一种针对片上系统SoC的中央控制器,所述中央控制器包括:
第一专用密码交换邮箱,被配置为管理与所述SoC耦合的第一开发工具以及所述SoC的安全子系统之间的身份验证数据交换;
第二专用密码交换邮箱,被配置为管理与所述SoC耦合的第二开发工具以及所述SoC的所述安全子系统之间的身份验证数据交换;以及
静态密码交换邮箱,被配置为管理所述第一开发工具与所述安全子系统之间的身份验证数据交换,并且管理所述第二开发工具与所述SoC的所述安全子系统之间的身份验证数据交换。
22.根据权利要求21所述的中央控制器,还包括提供访问授予信号的输出,所述访问授予信号响应于身份验证协议针对所述第一专用密码交换邮箱、所述第二专用密码交换邮箱和所述静态密码交换邮箱被满足而被断言。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/515,149 US20230133385A1 (en) | 2021-10-29 | 2021-10-29 | Central controller for multiple development ports |
US17/515,149 | 2021-10-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116070192A true CN116070192A (zh) | 2023-05-05 |
Family
ID=83691305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211338499.8A Pending CN116070192A (zh) | 2021-10-29 | 2022-10-28 | 针对多个开发端口的中央控制器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230133385A1 (zh) |
EP (1) | EP4174692A1 (zh) |
CN (1) | CN116070192A (zh) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9747435B2 (en) * | 2015-04-27 | 2017-08-29 | Apple Inc. | Authentication and control of encryption keys |
US10878113B2 (en) * | 2017-12-14 | 2020-12-29 | Apple Inc. | Multiple mailbox secure circuit |
-
2021
- 2021-10-29 US US17/515,149 patent/US20230133385A1/en active Pending
-
2022
- 2022-10-13 EP EP22201273.4A patent/EP4174692A1/en active Pending
- 2022-10-28 CN CN202211338499.8A patent/CN116070192A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4174692A1 (en) | 2023-05-03 |
US20230133385A1 (en) | 2023-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7886150B2 (en) | System debug and trace system and method, and applications thereof | |
EP2248063B1 (en) | Method and apparatus for controlling system access during protected modes of operation | |
US7810002B2 (en) | Providing trusted access to a JTAG scan interface in a microprocessor | |
US8185934B2 (en) | Programmable data protection device, secure programming manager system and process for controlling access to an interconnect network for an integrated circuit | |
US8549630B2 (en) | Trojan-resistant bus architecture and methods | |
US20100263043A1 (en) | Method and device for secure test port authentication | |
CN105094082B (zh) | 用于执行在控制设备之间的通信的方法 | |
US8489888B2 (en) | Processor apparatus having a security function | |
US20150161408A1 (en) | Protecting Information Processing System Secrets From Debug Attacks | |
US9633185B2 (en) | Device having secure JTAG and debugging method for the same | |
CN110337652A (zh) | 芯片的访问方法、安全控制模块、芯片和调试设备 | |
KR20060032954A (ko) | 액세스 허용을 결정하는 방법 및 장치 | |
Guo et al. | Investigation of obfuscation-based anti-reverse engineering for printed circuit boards | |
Pierce et al. | Enhanced secure architecture for joint action test group systems | |
US8239663B2 (en) | System and method for maintaining the security of memory contents and computer architecture employing the same | |
JP2006523347A (ja) | 周辺装置アクセス保護を有するデータ処理システムおよびその方法 | |
US8171542B2 (en) | Advanced encryption standard to provide hardware key interface | |
CN111191214B (zh) | 一种嵌入式处理器及数据保护方法 | |
WO2013095411A1 (en) | INCORPORATING ACCESS CONTROL FUNCTIONALITY INTO A SYSTEM ON A CHIP (SoC) | |
CN111295645A (zh) | 一种SoC芯片及总线访问控制方法 | |
CN107066871B (zh) | 功能装置和控制设备 | |
US20170243011A1 (en) | Component for processing a protectable date and method for implementing a security function for protecting a protective date in such a component | |
JP2007026051A (ja) | 情報処理装置および情報処理システム | |
WO2020002441A1 (en) | Method of debugging a device | |
Lee et al. | A brief review on jtag security |
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 |