CN116982046A - 安全芯片范围通信 - Google Patents

安全芯片范围通信 Download PDF

Info

Publication number
CN116982046A
CN116982046A CN202280020810.6A CN202280020810A CN116982046A CN 116982046 A CN116982046 A CN 116982046A CN 202280020810 A CN202280020810 A CN 202280020810A CN 116982046 A CN116982046 A CN 116982046A
Authority
CN
China
Prior art keywords
integrity
data
destination
host
bits
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
CN202280020810.6A
Other languages
English (en)
Inventor
蒂莫西·杰伊·陈
迈克尔·斯特法诺·弗里茨·沙夫纳
克里斯托弗·戈里
金恩赞
唐纳·沙纳汉·桑德斯
米格尔·安赫尔·奥索里奥洛萨诺
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN116982046A publication Critical patent/CN116982046A/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/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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
    • 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
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)
  • Retry When Errors Occur (AREA)
  • Electroluminescent Light Sources (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Adhesives Or Adhesive Processes (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本文档公开了安全芯片范围通信的方面。在一些方面中,系统的主机为通过系统的互连件发布到目的地的命令有效载荷生成完整性元数据。可以基于形成命令有效载荷的位——诸如明文数据位——的相应值来生成完整性元数据。目的地在消耗命令有效载荷之前基于完整性元数据来验证命令有效载荷的完整性。在一些情况下,目的地将完整性元数据与命令有效载荷的数据一起存储,完整性元数据可以在请求时与数据一起返回到主机。通过这样做,系统的主机和目的地可以使用完整性元数据来实现安全芯片范围通信,这可以防止在传输期间或在系统内的临时存储位置处对命令有效载荷或响应数据的故障注入攻击。

Description

安全芯片范围通信
背景技术
由于社会的计算机化程度不断提高并且越来越依赖个人计算设备存储敏感用户信息并为其用户执行各种操作,包括操作车辆、执行用户认证以及完成数字货币交易,世界越来越容易受到对计算设备的敏感信息的各种代价高昂的攻击。
最近基于故障的密码分析方法已经识别出涉及故障注入攻击的潜在安全威胁方法。故障注入攻击涉及攻击者将故障物理注入计算系统中,而不是软件注入,由此有意地更改电子组件的行为。因此,故障注入攻击可以绕过许多低级别的系统安全功能,更改计算系统行为以实现恶意意图,和/或提取敏感信息。故障注入攻击可能涉及电压毛刺、时钟毛刺、激光注入、电磁注入等。在一些情况下,这些攻击可能会在各种位置中引入故障注入以破坏或削弱电子系统安全性。因此,故障注入攻击可能更改在计算系统内传递的命令或数据,并且可能潜在地更改系统的执行流程,从而导致下游问题,诸如密钥泄漏、权限提升或代码的无意执行。
发明内容
本文档描述用于安全芯片范围(chip-wide)通信的装置和技术。在一些方面中,系统的主机为通过系统的互连件(例如,结构、总线、信道等)发布到目的地的命令有效载荷生成完整性元数据。可以基于形成命令有效载荷的位——诸如明文数据位——的相应值来生成完整性元数据。目的地在消耗命令有效载荷之前基于完整性元数据来验证命令有效载荷的完整性。在一些情况下,目的地将完整性元数据与命令有效载荷的数据一起存储,该完整性元数据可以在请求时与数据一起返回到主机。另外,当目的地是存储器时,可以在存储数据之前对数据进行加扰,以在数据存储在存储器中时保护数据。当形成响应有效载荷时,目的地还可以为响应有效载荷的数据生成完整性数据。在接收到响应有效载荷时,主机可以基于返回的完整性位或由目的地生成的完整性位来验证响应有效载荷的完整性。通过这样做,系统的主机和各种目的地(例如,存储器或外围设备)可以使用完整性元数据来实现安全芯片范围通信,这可以防止在传输期间或在系统内的临时存储位置处对命令有效载荷或响应数据的故障注入攻击。
提供本发明内容以介绍下文在具体实施方式中进一步描述并且在附图中图示的用于实现安全芯片范围通信的简化概念。本发明内容并非旨在标识所要求保护的主题的基本特征,其也不旨在用于确定所要求保护的主题的范围。
附图说明
在整个公开中参考附图描述安全芯片范围通信的一个或多个方面的细节。在说明书和附图的不同情况下使用相同附图标记指示相同或相似元件:
图1图示包括其中可以实现安全芯片范围通信的方面的装置的示例操作环境;
图2图示包括可以实现安全芯片范围通信的方面的处理器和多个芯片组件的示例系统;
图3A和图3B图示根据一个或多个方面的实现命令或数据事务的系统组件的示例配置;
图4图示包括用于实现安全芯片范围通信的方面的完整性功能的示例系统;
图5图示包括用于实现安全芯片范围通信的方面的完整性功能的示例目的地;
图6图示包括用于实现安全芯片范围通信的方面的完整性功能的示例存储器组件;
图7图示根据一个或多个方面的可以由主机实现的用于安全芯片范围通信的示例方法;
图8图示根据一个或多个方面的可以由目的地实现的用于安全芯片范围通信的示例方法;
图9图示根据一个或多个方面的用于在消耗有效载荷之前校验消息的有效载荷的完整性的示例方法;
图10图示根据一个或多个方面的用于将包括完整性位的命令消息的数据写入到存储器的示例方法;
图11图示根据安全芯片范围通信的一个或多个方面的指令高速缓存数据事务的示例;
图12图示根据安全芯片范围通信的一个或多个方面的静态随机存取存储器数据事务的示例;
图13图示根据一个或多个方面的用于存取存储器的数据并且将数据与完整性位一起传输的示例方法;
图14图示根据一个或多个方面的用于将命令消息的数据写入具有纠错码位的存储器中的示例方法;
图15图示根据安全芯片范围通信的一个或多个方面的闪存存储器数据事务的示例;
图16图示根据一个或多个方面的用于存取存储器的数据并且将数据与生成的完整性位一起传输的示例方法;并且
图17图示可以实现安全芯片范围通信的方面的示例片上系统。
具体实现方式
计算系统通常包括具有安全电路系统和软件的集成电路,以提供针对缺陷、攻击和其它潜在危害事件的保护措施。在当今的计算环境中,不良行为者可以使用大量攻击向量在无数级别上攻击计算设备。例如,故障注入攻击降低许多这些安全模式提供的保护。故障注入攻击可以绕过系统安全功能,更改系统行为以实现恶意意图,和/或揭露机密信息。使用故障注入攻击,攻击者可以使用毛刺(例如,系统中突然的、临时的、注入的故障)间接地或直接地更改电子组件(例如,中央处理单元)的编程操作。这种攻击有时可能会“破坏”计算设备,但是在其它情况下,精确且有针对性的攻击可能带来危害安全的威胁。例如,故障注入攻击可以允许对手故意破坏程序的控制流,这可能导致调用不正确的函数,诸如在“return to libc”类型的攻击中。在一些情况下,这些攻击可能使得计算设备暴露敏感数据或执行未校验的代码。因此,故障注入攻击可能更改在计算系统内传递的命令或数据,并且可能潜在地更改系统的执行流程,从而导致下游问题,诸如密钥泄漏、权限提升或代码的无意执行。
然而,旨在解决此类攻击的先前技术在防止攻击者危害系统安全方面通常较弱且无效。在一些情况下,数据奇偶校验用作在系统的组件之间传送的数据的仅总线安全方案。这种类型的基于奇偶校验的方案遭受许多问题,诸如允许攻击者有百分之五十的几率通过攻击,仅仅是总线而不是端到端,因为攻击者可以简单地将焦点转移到系统端点,并且对加扰数据的攻击可能无法提供正确的结果,但消费者可能无法知道数据是错误的,它可能只是看起来不同。因此,旨在防止上述攻击的先前技术通常无法防止系统入侵,或者仅将攻击转移到数据受到较少保护的易受攻击的系统端点。
与先前的安全技术相比,本公开描述安全芯片范围通信的方面。在方面中,系统的主机为通过系统的结构发布到目的地的命令有效载荷生成完整性元数据。可以基于形成命令有效载荷的位——诸如,明文数据位——的相应值来生成完整性元数据。目的地在消耗命令有效载荷之前基于完整性元数据来验证命令有效载荷的完整性。在一些情况下,目的地将完整性元数据与命令有效载荷的数据一起存储,该完整性元数据可以在请求时与数据一起返回到主机。另外,当目的地是存储器时,可以在存储数据之前对数据进行加扰,以在数据存储在存储器中时保护数据。当形成响应有效载荷时,目的地还可以为响应有效载荷的数据生成完整性数据。在接收到响应有效载荷时,主机可以基于返回的完整性位或由目的地生成的完整性位来验证响应有效载荷的完整性。通过这样做,系统的主机和各种目的地(例如,存储器或外围设备)可以使用完整性元数据来实现安全芯片范围通信,这可以防止在传输期间或在系统内的临时存储位置处对命令有效载荷或响应数据的故障注入攻击。
所描述的传输完整性方案可以实现对在系统中的各种源和目的地之间传送的数据的完整性检查或验证,这可以包括主机对外围设备和存储器的请求,以及来自外围设备和存储器的对主机的响应。通常,传输完整性或安全芯片范围通信的所描述的方面旨在保护在请求和/或响应方向上具有端到端安全性的整个系统或芯片中传送的命令和/或数据。在各方面中,如在整个本公开中所描述的,跨组件的整个系统采用一致的完整性方案。例如,芯片范围通信的安全框架可以使用纠错码(ECC)作为通用通信方案(例如,由通过结构或总线发送命令和/或数据的实体所采用的传输方案)。此通信方案或协议可以指当在系统或芯片的实体之中或之间传输数据时使用的格式。关于与外围设备或存储器的本地通信,在不偏离安全芯片范围安全性的所描述的方面的情况下,仍然可以使用不同的格式。在一些实现中,采用完整性方案将N个位的数据变成M个位的数据,同时(例如,使用ECC、循环冗余校验(CRC)、Reed-Solomon码等)进行检查以校验那些M个位是否具有期望值。这可能相对于基于奇偶校验的先前技术有利,先前技术允许多达百分之50的错误逃脱检测和/或校正。在整个本公开中描述安全芯片范围通信的方面,这些方面使得能够改进用于在系统或芯片内传送数据的完整性或安全性。
在各方面中,可以实现传输完整性方案以在系统中从目的地一直到主机的功能边界端到端地保护数据,并且还可以在相反方向上端到端地保护数据。通常,数据和命令伴随有完整性位(例如,ECC),并且这些完整性位不仅覆盖跨结构或总线的传输过程,而且可以扩展到目的地存储和主机功能中。因此,由主机生成的完整性位(例如,完整性元数据)可以一直扩展到诸如ROM或SRAM的存储器中,并且稍后将相同的完整性位返回到主机以用于数据的检查或验证。当目的地设备无法完全接受所有完整性位时,目的地可以实现稳健的变换过程以确保不会引入漏洞。
为了保护计算系统免受上述危害事件的影响,本文档描述用于安全芯片范围通信的装置和技术,其使用完整性元数据和/或存储器加扰用于计算系统内的安全事务和数据存储。在一些实现中,系统的所有执行流关键存储器都受到密码加密和解密(例如,加扰)以及完整性位的保护。这可以确保这些存储器不会在任何完整性逻辑的下游受到攻击,并且对存储器的任何读取或写入都绑定到攻击者无法更改的特定地址。以下讨论描述操作环境、示例系统和组件、安全芯片范围通信的示例实现、示例方法以及其中可以体现操作环境的组件的片上系统(SoC)。在本公开的场境中,仅以示例的方式参考操作环境。
示例环境
图1图示包括其中可以实现安全芯片范围通信和相关联的通信完整性方案的方面的装置102的示例环境100。装置102可以实现为任何合适的设备,其中的一些被图示为智能手机102-1、平板计算机102-2、膝上型计算机102-3、游戏控制台102-4、台式计算机102-5、服务器计算机102-6、可穿戴计算设备102-7(例如,智能手表)和宽带路由器102-8(例如,移动热点)。尽管未示出,但是装置102也可以实现为移动台(例如,固定或移动STA)、移动通信设备、客户端设备、用户设备、移动手机、娱乐设备、移动游戏控制台、个人媒体设备、媒体回放设备、健康监测设备、无人机、相机、能够进行无线互联网接入和浏览的互联网家用电器、IoT设备和/或其它类型的电子设备。装置102可以提供其它功能或包括为了清楚性或视觉简洁性而从图1省略的组件或接口。
装置102包括集成电路104,该集成电路利用一个或多个处理器106和计算机可读介质(CRM 108),该计算机可读介质可以包括存储器介质或存储介质。处理器106可以实现为(例如,多核中央处理单元(CPU)或应用处理器(AP)的)通用处理器、专用集成电路(ASIC))、图像处理单元(GPU)或具有集成在其中的装置102的其它组件的片上系统(SoC)。在安全芯片范围通信的方面中,处理器106中的一个或多个还可以包括如在整个本公开中描述的完整性功能。
CRM 108可以包括任何合适类型的存储器介质或存储介质,诸如只读存储器(ROM)、可编程ROM(PROM)、随机存取存储器(RAM)、动态RAM(DRAM)、静态RAM(SRAM)或闪存存储器。在此讨论的上下文中,装置102的计算机可读介质108实现为不包括瞬态信号或载波的至少一个基于硬件的或物理存储设备。装置102的应用、固件和/或操作系统(未示出)可以作为处理器可执行指令体现在计算机可读介质108上,这些指令可以由处理器106执行以提供本文描述的各种功能。计算机可读介质108还可以存储设备数据112,诸如可通过装置102的应用、固件或操作系统访问的用户数据或用户介质。
在此示例中,集成电路104包含安全电路系统114。装置102、集成电路104,或者安全电路系统114可以实现安全密码处理器。安全电路系统114可以使用例如电路组件116-1到电路组件116-n的一个或多个电路组件116实现。电路组件116可以被组织成执行任何数目的操作以实现装置102的功能。电路组件的示例包括如图2中所描述的处理器和多个功能组件和/或IP块。安全电路系统114可以被实现为例如受保护的飞地、可信芯片平台、基于硬件的信任根(RoT)芯片(例如,硅RoT)等等。无论安全电路系统114如何或在何处并入到电子设备中,安全电路系统114都可以对抗或阻止许多不同类型的攻击。
在各方面中,安全电路系统114包括电路组件116-1到116-n,这些电路组件提供或实现安全电路系统114、集成电路104和/或装置102的相应功能。为了实现安全芯片范围通信的方面,电路系统组件116包括一个或多个完整性功能118,这些完整性功能可以实现安全电路系统114的组件之间的通信完整性和/或各种加密或加扰操作以保护装置102的数据。一般来说,安全电路系统114和电路组件116的完整性功能118可以实现具有以下机制的数据通信和/或存储方案:在由组件消耗之前验证请求消息(例如,命令有效载荷)、在由主机或其他总线主控器消耗之前验证响应消息(例如,响应有效载荷),和/或对存储器(例如,指令高速缓存或SRAM)进行加扰以提供可以防止物理存储器攻击的强地址和数据绑定。因此,安全芯片范围(或系统范围)通信的方面可以确保在互连件120(例如,结构)和装置102的临时存储位置的遍历中完整性有效载荷持续存在。在一些情况下,电路组件116的完整性功能118包括:完整性检查功能,用于在消耗之前校验从主机接收的命令有效载荷的完整性;以及完整性生成功能,用于生成完整性位以包括在发送到主机的响应有效载荷中或附加到该响应有效载荷,这使得主机能够在消耗之前校验响应有效载荷的完整性。这些只是对实现安全芯片范围通信有用的实体的几个示例,这些示例的实现和使用变化并且在整个本公开中描述。
如图所示,安全电路系统114耦合到互连件120,该互连件可以将安全电路系统的组件、外围设备和/或目的地与主机或主机接口耦合。互连件120可以使用例如总线、交换结构、链路、通信信道或使各种电路组件能够通信的总线网络来实现。在一些方面中,互连件包括根据TileLink通信标准实现的结构,该结构可以包括具有A信道和D信道配置的TileLink无缓存轻量级(TL-UL)结构。每个电路元件可以直接地或间接地耦合到互连件120。互连件120可以实现与装置102的数据端口或接口通信,以使得电路组件能够与其它设备或数据网络进行通信。
装置102还可以包括显示器122、收发器124、输入/输出端口(I/O端口126)和/或传感器128。显示器122可以与处理器106中的一个(例如,图形处理单元(GPU))可操作地耦合,并且被配置成以图形方式呈现装置102的操作系统或应用的相应接口。收发器124可以被配置成实现根据任何合适的通信协议通过有线或无线网络进行数据(例如,设备数据112)的有线或无线通信。装置102的I/O端口126可以包括通用串行总线(USB)端口、同轴电缆端口和其它串行或并行连接器(包括内部连接器),这些连接器有用于将电子设备耦合到各种组件、外围设备或附件,诸如键盘、麦克风或相机。
装置102还包括传感器128,该传感器使装置102能够感测装置102操作的环境的各种属性、变化、刺激或特性。例如,传感器128可以包括各种运动传感器、环境光传感器、声学传感器、电容传感器、红外传感器、温度传感器、雷达传感器,或磁传感器。替代地或另外,传感器128可以诸如通过触摸感测、手势感测或接近感测实现与装置102的用户交互,或从装置102的用户接收输入。
示例电路组件
图2在200处图示包括可以实现为支持安全芯片范围通信的方面的多个电路组件的示例安全电路系统114。如图所示,安全电路系统114包括耦合到互连件120的处理器106。处理器106、多个存储器和多个其它电路组件116中的每一个可以直接地或间接地耦合到互连件120。在各方面中,图2的组件可以体现为实现信任根和/或其它安全密码特征的安全计算平台或安全片上系统。替代地或另外,图2的组件可以实现为通过互连件120耦合的系统的一个或多个IC或IP块,该互连件可以实现为可操作地耦合系统的组件或IP块的结构。
在各方面中,安全电路系统114的处理器106可以包括用于实现安全芯片范围通信的方面的完整性功能110。在一些情况下,完整性功能110包括完整性生成功能,用于生成完整性位以包括在发送到安全电路系统114的组件或目的地的请求消息(例如,命令有效载荷)中或附加到该请求消息,这使组件能够在消耗之前校验请求有效载荷的完整性。完整性功能110还可以包括完整性检查功能,用于校验从安全电路系统114的组件或目的地中的相应组件或目的地接收的响应消息(例如,响应有效载荷)的完整性。这些只是完整性功能110的几个示例,这些示例的实现和使用变化并且参考图3A到图6在整个本公开中描述。
处理器106可以通过互连件120与电路组件116耦合和/或直接与其它组件或接口耦合。如图2中所示,系统可以包括耦合到互连件120的多个电路组件116,以实现与处理器106的交互,该处理器可以充当系统的主机。在此示例中,电路组件116包括寄存器堆202和各种存储器204至208,这些存储器可以用相应的完整性功能118实现。电路组件116可以包括任何合适配置的一个或多个存储器(例如,CRM 108),并且包括ROM 204、SRAM 206和闪存存储器208。尽管未示出,但是电路组件116可以包括其它存储器(例如,一次性可编程存储器或DRAM存储器)和/或经由其它组件耦合的存储器,诸如串行外围接口(SPI)或USB耦合存储器。
为了实现安全芯片范围通信的方面,寄存器堆202、ROM 204、SRAM 206或闪存存储器208可以包括完整性功能118,用于校验数据和通过互连件120实现的其它事务。在一些情况下,完整性功能118包括完整性检查功能,以在组件消耗命令有效载荷之前校验从主机接收的命令有效载荷的完整性。替代地或另外,完整性功能118包括完整性生成功能,用于生成完整性位以包括在由组件发送到主机的响应有效载荷中或附加到该响应有效载荷,这使主机能够在消耗响应有效载荷之前校验响应有效载荷的完整性。这些只是完整性功能118的几个示例实现,这些示例实现的实现和使用变化并且参考图3A到图6在整个本公开中描述。
如图2中所示,电路组件116还可以包括警报处置器210、高级加密标准(AES)单元(AES单元212)、基于散列的消息认证码(HMAC)引擎(HMAC引擎214)和串行外围接口(SPI)设备(SPI设备216)。电路组件116还可以包括通用异步接收器/发射器(UART)单元(UART单元218)、通用输入/输出(GPIO)接口(GPIO接口220)、引脚复用器(引脚复用器222)和焊盘控制器224。多个电路组件116还可以包括随机数生成器(RNG 226)和定时器228(例如,看门狗定时器),其它组件可以从该随机数生成器获得高熵值以用作认证令牌。尽管图2中描绘或本文中描述存储器和其它组件116的某些示例,但是安全电路系统114的给定实现可以包括处理器、控制器、存储器、模块或外围设备的更多、更少和/或不同实例,包括其复制品。
图示的电路组件可以基于一个或多个时钟信号同步操作。尽管在图2中未示出,但是安全电路系统114可以包括至少一个时钟发生器以产生时钟信号,或可以包括复位电路系统以将一个或多个单独的组件彼此独立地、多个组件联合地或整个IC芯片复位。或者,安全电路系统114可以从安全电路系统114外部的源接收至少一个时钟信号或复位信号,该源可以在单独的芯片上,也可以不在单独的芯片上。一个或多个单独的组件116可以在相应的单独的时钟域中操作。例如,电路组件可以与相应组件本地的时钟同步。不同时钟域中的组件可以彼此异步地操作或通信。
下文描述所示组件的示例实现。处理器106可以实现为用于安全电路系统114的“主”、“中央”或“核心”处理器,主机或总线控制器的功能通过该安全电路系统实现。仅作为示例,处理器106可以用具有多级流水线的32位有序精简指令集计算(RISC)核心来实现。利用例如RISC-V功能,处理器可以实现M(机器)和U(用户)模式。激活复位引脚(未示出)(例如,通过取消低有效复位引脚的断言)使得处理器106退出复位并且开始在其复位向量处执行代码。复位向量可以在ROM 204中开始,ROM 204在跳到嵌入式闪存(e flash,未示出)之前验证该嵌入式闪存中的代码。换句话说,在释放复位之前,代码预计已经实例化到eflash中。在一些情况下,根据适合性规范,可以使整个安全电路系统114中的复位为异步低有效,以支持各种电路组件之间的互操作性。复位可以由警报处置器210作为安全对策生成;由看门狗定时器生成;等等。还可以将复位信号发送到其它电路组件,诸如存储器中的一个或其它组件116中的一个。
调试模块230(DM)和中断控制器232(ItC)耦合到处理器106,它们中的任一个也可以是合适的。调试模块230提供对处理器106的调试访问。通过与IC的某些引脚接口连接,调试模块230中的逻辑允许处理器106进入调试模式,并且提供将代码注入设备(例如,通过模拟指令)中或存储器中的能力。中断控制器232可以设置在处理器106附近。中断控制器232可以接受来自安全电路系统114内的中断源的向量。中断控制器232还可以在将中断转发到处理器106以进行处理之前向中断分配均衡和优先级。
处理器106可以提供任何所需的性能水平或包括任何内部电路组件。例如,处理器106可以包括至少一个算术逻辑单元(ALU)(例如,包括用于计算分支目标以去除所采取的条件分支上的时延的循环的“附加”ALU)、寄存器堆、控制单元和输入/输出(I/O)单元,以及多个流水线级。对于多流水线级,流水线可以执行寄存器写回,以减少来自加载和存储的时延的循环,并且防止流水线在请求之后的循环内对加载或存储的响应可用时停滞。处理器106可以实现单循环乘法器,或在对存储错误响应时产生不精确的异常,这允许处理器在不等待响应的情况下继续执行完成存储。尽管未描绘,但是处理器106具体地或安全电路系统114通常可以包括指令高速缓存,以提供指令的单循环访问时间。
ALU可以被配置成对接收到的数据执行算术和逻辑运算。参考图3A和图3B进一步描述的寄存器堆(例如,寄存器堆202)可以是处理器寄存器(例如,控制寄存器)的阵列,用作配置用于在编程或功能处理期间的快速数据访问的高速半瞬态存储器。寄存器堆可以紧密地耦合到处理器106的ALU。为了进一步便于访问数据,寄存器堆可以包括多个读取端口或多个写入端口,以使ALU和/或执行单元能够在单个循环中同时检索多个操作数。寄存器堆可以由触发器形成以加速读取和写入数据的位。控制单元可以被配置成控制整个系统中的数据流。I/O单元可以包括与设备或安全电路系统114的其它组件可操作地接口连接的端口。参考图3A到图6在整个本公开中描述处理器106、电路组件116和完整性功能110和118的其它方面。
图3A和图3B分别在300和301处图示根据安全芯片范围通信的一个或多个方面的实现命令或数据事务的系统组件的示例配置。所示的示例系统配置表示可以实现支持安全芯片范围通信的系统的多种方式之一。因此,安全芯片范围通信的方面可以通过类似地或不同地配置的系统,诸如包括参考图2和/或图3A到图6所描述的一个或多个组件的系统实现。一般来说,安全芯片范围通信的方面可以在系统中实现,该系统包主机以及经由互连件或结构耦合到主机的至少一个目的地或外围设备。如本文所描述的,当与系统的其它组件通信时,主机和目的地可以彼此不同地配置和/或实现不同级别或类型的数据完整性。在图3A到图6的以下描述中,在安全芯片范围通信的各个方面的场境中描述各种系统组件,这些安全芯片范围通信可以在组件彼此交互以交换或处理命令和/或数据时实现。
在安全芯片范围通信的一些方面中,可以采用完整性方案,其中数据和命令伴随有完整性元数据或完整性位,可以通过完整性元数据和完整性位校验数据或命令的完整性。在一些情况下,主机和目的地使用纠错码(ECC)位来实现这些完整性操作。因此,启用ECC的完整性方案不仅覆盖通过结构或互连件的传输过程,而且扩展到目的地存储器和主机功能中。换句话说,由主机生成的完整性元数据可以一直扩展到存储器中,并且可以将相同的完整性元数据返回到主机以用于后续完整性校验。在目的地或外围设备无法接受或存储完整性元数据的情况下,可以通过稳健的数据变换过程实现目的地或外围设备,以确保诸如在目的地内剥离完整性元数据时不会引入漏洞。另外或替代地,对执行流至关重要的存储器可以通过加密/解密以及完整性数据来保护。通过这样做,可以针对完整性逻辑下游的攻击增强存储器或系统端点,并且对存储器的任何读取或写入都可以绑定到攻击者无法更改的特定地址。因此,安全芯片范围通信的方面可以对整个系统中的所有数据——无论是代码还是原始数据——提供强有力的保护,并且减少潜在攻击者可用的攻击表面积。
返回到图3A,主机302通过互连件120耦合到示例系统的目的地(例如,组件),该主机的功能可以通过处理器106实现。在此示例中,互连件120被配置为具有请求信道304(信道A 304)和响应信道306(信道D 306)的TileLink无缓存轻量级(TL-UL)结构,主机通过该TL-UL结构与目的地通信。借助于示例,主机302可以通过结构的信道A 304向目的地发布命令有效载荷,并且通过结构的信道D 306从目的地接收响应消息。如图3A和图3B中所示,主机经由结构可操作地耦合到调试模块230、寄存器堆202、可以表示ROM 204或SRAM 206的存储器模块以及闪存存储器208。尽管未示出,但是主机302可以与任何数目的附加系统组件或目的地可操作地耦合。
在各方面中,主机302可以表示具有或提供总线主机功能的任何模块或组件。主机302可以被抽象为、实现有和/或包括功能核心308、数据存储设备310以及将主机302与系统的互连件120耦合的数据接口312。一般来说,功能核心308可以表示实现和/或执行主机或系统的主要功能的逻辑或处理单元。因此,功能核心308可以包括处理器的流水线、处理器核心、直接存储器存取引擎的主有限状态机等中的一个或多个。数据存储设备310可以包括存储器和寄存器,这些存储器和寄存器使得能够临时存储传送到主机中的数据和从主机传送出去的数据。数据接口312可以耦合在数据存储设备310和/或功能核心308与互连件120之间,以实现或促进与耦合到互连件120的目的地(例如,存储器和I/O)的数据交换。因此,目的地可以包括主机302可以经由结构与之通信的任何模块或组件,该模块或组件可以包括ROM、SRAM、闪存存储器、系统的外围设备、系统的接口等。
在此示例中,主机302还包括耦合在数据存储设备310与功能核心308之间的完整性检查功能314(例如,用于在消耗之前校验数据)和耦合在功能核心308与数据接口312之间的奇偶校验生成功能316(例如,用于为出站请求和/或数据有效载荷提供完整性位)。在各方面中,完整性检查功能314和奇偶校验生成功能316(或完整性生成功能)可以在由功能核心308消耗之前基于完整性元数据来校验数据的完整性,和/或生成用于发送到目的地的命令或数据的完整性元数据(例如,ECC位),该完整性元数据使目的地能够在消耗之前校验命令或数据的完整性。关于主机302和安全芯片范围通信的方面,功能核心308的边界(虚线)可以经由其它安全机制保护,因为在功能核心308变换数据时,完整性方案不可能持续存在,诸如不保留完整性元数据的属性的ALU操作。
在各方面中,由主机302发起的事务伴随有主机生成的完整性元数据(例如,ECC位),该主机生成的完整性元数据使下游目的地能够将从主机接收的数据的完整性校验为正确的。在一些方面中,主机302与各种目的地之间的结构也可以对命令消息或响应消息执行完整性检查,然而,在成功的基于结构的完整性检查之后,完整性元数据应持续存在,直到消息到达适当的主机或目的地。因此,从目的地返回到主机302的数据也可能伴随有目的地生成或供应的完整性元数据(例如,ECC位)。在各方面中,此完整性元数据应与数据或响应消息一起持续存在,直到数据到达功能核心的无法再维护完整性数据的边界,或到达功能核心的将完整性数据转换为不同形式的边界。当数据到达无法再维护完整性数据的边界时,主机302可以在剥离完整性元数据并且消耗数据之前检查数据的完整性。替代地,当数据到达转换完整性数据的边界时,主机302可以在计算或确定数据的新完整性元数据之前(例如,在功能核心308的数据操纵或处理期间)检查数据的完整性。
在此示例中,主机302的数据存储设备310还包括加扰功能块318,该加扰功能块实现在通过主机302的传输期间对数据进行加扰。在各方面中,加扰功能块318的加扰机制可以是地址可调的,使得加扰块318将加扰数据绑定到存储器中的特定位置。在一些情况下,使用计数器或CTR加扰模式,其中采用块密码来用加扰密钥加密64位IV,以便创建与数据进行逐位XOR运算的64位密钥流块,从而将明文转换为密文,反之亦然。可以通过将随机数与字地址级联来组装IV。
通常,所使用的加扰机制可以是地址可调的。例如,在加扰机制的场境中,可调块密码接受称为调整的第二输入以及其通常的明文或密文输入。调整值和密钥一起选择由密码计算的排列。当改变调整足够轻量级(与通常相当昂贵的密钥设置操作相比)时,一些有趣的新操作模式就成为可能。在特定实现中可能需要地址调整,因为它将加扰的数据绑定到存储器中的特定位置。在一些情况下,应该对地址本身进行加扰以进一步增加攻击的难度。在各方面中,由主机302或目的地生成的完整性元数据可以通过系统的结构和/或任何临时存储元件与命令消息(例如,命令有效载荷)和/或响应消息(例如,数据有效载荷)一起持续存在。
例如,如本文所描述的,完整性元数据(例如,ECC位)可以伴随有在TL-UL先进先出寄存器(TL-UL FIFO)、指令高速缓存(i-cache)、处理器(或主机)的各种寄存器、密码处理器(例如,大数加速器)、SRAM、对执行控制流至关重要的寄存器或存储器等中或通过其的数据或与这些数据一起持续存在。根据安全芯片范围通信的方面,在消耗之前,可以在主机302和系统的各个目的地处校验数据完整性或有效载荷完整性。在一些实现中,主机302和系统的目的地实现ECC作为校验有效载荷的完整性机制,但是可以使用其它轻量级完整性机制(例如,CRC位或奇偶校验位)。尽管实现ECC用于完整性校验或验证,但是在各方面中,不使用ECC的校正特征,因为ECC检测用于完整性校验。在一些方面中,所描述的ECC完整性编码可以实现对每个消息或有效载荷多达三个位错误的检测。
返回到图3A,主机302可以使用包括完整性元数据或完整性位的消息与调试模块230和寄存器堆202传送命令或数据,如本文所描述。在此示例中,调试模块203或调试存储器(例如,ROM、rv_dm)可以配置有完整性生成功能320,以生成用于发送到主机302的响应或数据的完整性元数据(例如,ECC位)。由于调试存储器是ROM或只读,调试模块可以不包括完整性检查功能。在一些情况下,调试模块230可以受到轻微保护,因为对此接口或存储器的访问仅在系统的调试状态期间受限或有效。
在各方面中,寄存器堆202可以包括或直接提供数据或响应消息的完整性,使得寄存器堆202可以可选地包括完整性生成功能320。寄存器堆202可以包括完整性检查功能322,以用于校验从主机302接收的命令消息、请求消息或命令有效载荷的完整性。在此示例中,寄存器堆202与对大数加速器的窗口访问324可操作地耦合。如所提及的,提供给寄存器堆202或通过寄存器堆202提供的数据可以包括完整性元数据或完整性位,并且可以诸如从窗口324直接提供给结构以用于与主机通信。
如在图3B的301处所示,主机302还可以与耦合到结构的存储器目的地通信,该结构从图3A图示为信道A 304和信道D 306。在此示例中,第一存储器目的地可以表示包括具有加扰保护(虚线)的存储器宏326的ROM 204和/或SRAM 206。在各方面中,ROM 204或SRAM206可以将经由结构接收的数据328与伴随着数据328的完整性元数据330一起存储。换句话说,一些存储器可以直接将完整性元数据(例如,ECC位、主机提供的ECC)与数据一起存储,以提供通过系统的数据事务的端到端完整性。因此,完整性元数据伴随着从在主机处通过结构发起产生的数据有效载荷,并与数据一起存储在存储器目的地中。另外,存储器目的地可以包括加扰功能332,用于在由宏326进行存储之前对数据和完整性元数据进行加扰。因此,所描绘的存储器ROM204/SRAM 206不包括完整性生成功能,因为完整性元数据330在进入存储器宏326时以及通过从存储器宏326检索而与数据328一起持续存在。
主机302还可以与闪存存储器208通信,以将数据存储到闪存宏334或从闪存宏334访问数据。此处,应注意,在完整性检查功能322校验数据的完整性之后,闪存存储器208可以剥离完整性数据。在一些情况下,闪存存储器208的大小限制可以防止闪存ECC位和完整性元数据与数据一起存储。如图3B中所示,闪存宏334存储数据336以及ECC位338,该ECC位由闪存存储器208生成,以用于在从闪存宏334读取数据336时对数据336进行错误检测和校正。另外,闪存存储器208可以包括加扰功能332,用于在由闪存宏334进行存储之前对数据336和/或ECC位进行加扰。因为闪存存储器208可能不会以端到端的方式存储完整性元数据,因此闪存存储器208可以包括完整性生成功能320,以在从闪存宏334读取数据336时生成数据336的完整性元数据,这使得主机302能够校验由闪存存储器208返回的数据的完整性。
作为另一示例,考虑图4,其中在400处图示包括用于实现安全芯片范围通信的方面的完整性功能的示例系统。图4的示例系统400可以表示其中主机302通过结构120可操作地耦合到一个或多个目的地402的系统的简化图。在此示例中,主机302(例如,RISC-V核心)包括命令完整性生成功能404(命令生成404)和响应完整性检查功能406(响应检查406),它们可以对应于基于主机的完整性功能110、完整性检查功能314,和/或奇偶校验/完整性生成功能316。当与系统的目的地通信时,命令生成功能404可以生成完整性位以包括在发送到组件或目的地的命令消息(例如,命令有效载荷)中或附加到该命令消息,和/或响应检查功能406可以校验从相应组件接收的响应消息(例如,响应有效载荷)的完整性。
目的地402(例如,外围设备或存储器)可以包括命令完整性检查功能408(命令检查功能408)和响应完整性生成功能410(响应生成功能410),它们可以对应于组件完整性检查功能118、完整性生成功能320和/或完整性检查功能322。当与系统的主机通信时,命令检查功能408可以在组件或目的地消耗命令有效载荷之前校验从主机(例如,处理器106、主机302)接收的命令有效载荷的完整性。替代地或另外,响应生成功能410可以生成完整性位以包括在由组件或目的地发送到主机的响应有效载荷中或附加到该响应有效载荷,这使主机能够在消耗响应有效载荷之前校验响应有效载荷的完整性。
关于外围设备目的地,诸如基于USB或SPI的外围设备,这些或其它外围设备目的地可以在寄存器堆(例如,寄存器堆202)或窗口(例如,窗口324)内部终止对下游功能的访问。在各方面中,基于完整性元数据,在消耗之前对目的地402处的传入事务的正确性进行完整性检查。对于寄存器堆或窗口终止,可以实现完整性元数据(例如,ECC位),使得完整性数据在读取时生成并返回到主机边界,完整性元数据与数据一起存储并直接返回到主机边界,或当数据读取前进通过窗口时,下游窗口化的完整性数据也可以返回到主机边界。当窗口访问没有完整性元数据时,那么目的地可以生成响应的完整性元数据,并且将该生成的完整性数据与返回的数据一起返回。
在设计用于安全芯片范围通信时的其它考虑因素可能包括使用和/或启用附加或所有外围寄存器的奇偶校验,这些外围寄存器可以包括芯片或系统中的安全域或空间内的所有外围寄存器。在一些系统设计中,跨现有外围设备(并非所有外围设备都实例化)可能有大致12k个可配置位,这些外围设备不包括可能包括三个I2C、一个SPI主机、一个rbox和一个dcd的各种外围设备/接口。在各方面中,用于在所有寄存器上实现芯片范围奇偶校验的开销可能运行大约2k~3k个触发器。
图5在500处图示包括用于实现安全芯片范围通信的方面的完整性功能的示例外围设备。在此示例中,目的地502用存储器和FIFO的两个实例实现,即具有完整性元数据存储的存储器和FIFO 504以及没有完整性元数据存储的另一存储器和FIFO 506。因此,目的地502可以被配置成为由具有完整性的存储器和FIFO 504存储的至少一些数据提供端到端完整性。如图5中所示,目的地502可以包括耦合到TileLink输入节点的命令检查功能408以及耦合到TileLink输出节点的响应生成功能410。这些完整性功能可以对应于组件完整性检查功能118、完整性生成功能320和/或完整性检查功能322。当与系统的主机通信时,命令检查功能408可以在组件或目的地消耗命令有效载荷之前校验从主机(例如,处理器106、主机302)接收的命令有效载荷的完整性。替代地或另外,响应生成功能410可以生成完整性位以包括在由组件或目的地发送到主机的响应有效载荷中或附加到该响应有效载荷,这使主机能够在消耗响应有效载荷之前校验响应有效载荷的完整性。
然而,在一些情况下,完整性位可以存储在存储器和FIFO 504中,使得响应生成功能410不需要为返回到主机的数据生成新的完整性位。参考命令检查功能408,当命令消息或请求消息未通过完整性检查时,命令检查功能408可以被配置成丢弃消息并生成警报(例如,警报发送器)或中断,从而通知系统完整性检查失败。替代地或另外,系统可以采用安全对策以响应于警报或中断而保护敏感数据和/或秘密。这些只是处理失败的完整性检查的几个示例,其它示例参考图9在整个本公开中描述。
图6在600处图示包括用于实现安全芯片范围通信的方面的完整性功能的示例存储器组件。在此示例中,存储器602(例如,SRAM、ROM)用TL-UL结构适配器和存储器宏实现,它们可以表示支持完整性元数据(ECC位)的存储的SRAM或ROM功能。因此,存储器602可以被配置成为由具有完整性元数据的存储器宏存储的数据提供端到端完整性。如图6中所示,存储器602可以包括耦合到TileLink输入节点的命令检查功能408以及耦合到TileLink输出节点的响应生成功能410。这些完整性功能可以对应于组件完整性检查功能118、完整性生成功能320和/或完整性检查功能322。当与系统的主机通信时,命令检查功能408可以在存储器消耗命令有效载荷之前校验从主机(例如,处理器106、主机302)接收的命令有效载荷的完整性。替代地或另外,响应生成功能410可以生成完整性位以包括在由存储器发送到主机的响应有效载荷中或附加到该响应有效载荷,这使主机能够在消耗响应有效载荷之前校验响应有效载荷的完整性。
在各方面中,参考SRAM和ROM类型目的地,可以在消耗之前检查传入事务的正确性。在一些情况下,对存储器目的进行加扰并且进行完整性保护。例如,加扰直接保护对存储器宏的攻击,并且防止合法形成但不正确的数据的返回。在一些情况下,CTR加扰用于通过互连件120进行安全通信。如本文所描述的,事务的完整性可以是字节奇偶校验或ECC,其选择可以适当地取决于模块。
例如,对于字节写入性能可能很重要的主SRAM 206,应使用奇偶校验,而对于字节写入能力可能不重要的保留SRAM,可以使用ECC。对于字节写入不重要或不可能的加密的大数加速器存储器、指令高速缓存和/或ROM,可以使用ECC。通常,在读取数据或获取数据时,存储器的行为取决于其存储的完整性数据是否与高级选择一致。例如,如果完整性数据相同,则存储的完整性数据将直接返回到主机边界。另一方面,如果完整性数据不同,则必须计算目标完整性数据,同时检查存储的完整性数据的正确性。
示例方法
方法700到1000、1300、1400和1600被图示为描绘可以执行的动作或操作的相应块集合,但不一定限于所示的用于由相应块执行操作的顺序或组合。此外,可以重复、组合、重组或链接一个或多个操作中的任一个,以提供各种各样的附加和/或替代方法。所描述的技术不限于由在一个系统或设备上操作的一个实体或多个实体执行。在各个方面中,方法700到1000、1300、1400和1600的操作或动作由处理器、安全电路系统组件、存储器、完整性生成功能、完整性检查功能、或配置为实现安全芯片范围通信的其它实体执行或管理。为了清楚起见,参考图1的元件和/或参考图2到图6和图17描述的实体、组件或配置描述方法。
图7图示根据一个或多个方面的可以由主机实现的用于安全芯片范围通信的示例方法700。在各个方面中,系统的完整性功能110或主机可以实现方法700的操作,以安全地通信和/或利用系统的数据。在各方面中,可以重复方法700的操作以发送具有完整性位的多个请求消息和/或校验包括完整性位的多个响应消息的完整性。
在702处,生成目的地的请求消息(例如,命令消息)。请求消息可以包括供目的地消耗的数据的有效载荷,这可以包括处理数据、存储数据、传送数据等等。替代地或另外,请求消息可以包括命令或操作码,该命令或操作码被配置成使目的地执行由主机指示的操作或功能。
在704处,生成请求消息的有效载荷的第一完整性位。在一些情况下,主机的命令完整性生成功能生成请求消息的完整性位。完整性位可以包括任何合适类型的编码或加密,诸如ECC位、CRC位、非对称加密等。在706处,将第一完整性位插入请求消息中,或附加到请求消息的有效载荷的数据或另一字段。
在708处,通过结构将包括第一完整性位的请求消息传输到目的地。在各方面中,请求消息的完整性可以通过结构或互连件的完整性检查功能校验或检查,请求消息通过该结构或互连件处理或传送。从操作708,方法700可以返回到操作702以生成另一请求消息,或前进到操作710,在操作710处从该目的地或另一目的地接收响应消息。
在710处,通过结构接收来自目的地的响应消息。响应消息可以是对最后发送到目的地的请求消息的响应,或对发送到另一目的地的请求消息的另一响应。请求消息可以包括供主机消耗的数据或其它信息的有效载荷。
在712处,从响应消息中提取第二完整性位。第二完整性位可以包括用于完整性校验的ECC位或CRC位,该ECC位或CRC位不用于有效载荷数据或信息的错误检测或错误校正。在一些情况下,第二完整性位与由主机生成的第一完整性位相同。在其它情况下,第二完整性位由目的地生成并且插入到发送到主机的响应消息中。
在714处,基于第二完整性位来校验或验证响应消息的有效载荷的完整性。在一些情况下,针对有效载荷解码或确定ECC或CRC值以校验有效载荷的完整性。这可以包括向ECC解码器提供明文数据位和完整性位,以基于与响应消息一起接收的完整性位来验证明文。因此,主机的完整性检查功能可以计算有效载荷的ECC位或CRC位,并且校验所计算的ECC或CRC值和与有效载荷一起接收的完整性位匹配。
在716处,响应于校验有效载荷的完整性而消耗响应消息的有效载荷。因此,在主机消耗或使用有效载荷的数据或信息之前,校验或验证响应消息的有效载荷的完整性。替代地,主机可以响应于未能校验有效载荷的完整性而丢弃响应消息(例如,方法900)。从操作716,方法700可以返回到操作702以生成另一请求消息,或返回到操作710,以接收并处理由主机接收的另一响应消息。
图8图示根据一个或多个方面的可以由目的地实现的用于安全芯片范围通信的示例方法800。在各个方面中,系统的完整性功能118或目的地可以实现方法800的操作,以安全地通信和/或利用系统的数据。在各方面中,可以重复方法800的操作以接收具有完整性位的多个请求消息和/或校验包括完整性位的多个请求消息的完整性。
在802处,通过结构从主机接收包括完整性位的请求消息。请求消息可以包括供目的地消耗的数据的有效载荷,这可以包括处理数据、存储数据、传送数据等等。替代地或另外,请求消息可以包括命令或操作码,该命令或操作码被配置成使目的地执行由主机指示的操作或功能。
在804处,从请求消息中提取第一完整性位。第一完整性位可以包括用于完整性校验的ECC位或CRC位,该ECC位或CRC位不用于有效载荷数据或信息的错误检测或错误校正。
在806处,基于第一奇偶校验位来校验请求消息的有效载荷的完整性。在一些情况下,针对有效载荷解码或确定ECC或CRC值以校验有效载荷的完整性。这可以包括向ECC解码器提供明文数据位和完整性位,以基于与请求消息一起接收的完整性位来验证明文。因此,目的地的完整性检查功能可以计算有效载荷的ECC位或CRC位,并且校验所计算的ECC或CRC值和与有效载荷一起接收的完整性位匹配。
在808处,响应于校验有效载荷的完整性而消耗请求消息的有效载荷。因此,在目的地消耗或使用有效载荷的数据或信息之前,校验或验证请求消息的有效载荷的完整性。替代地,目的地可以响应于未能校验有效载荷的完整性而丢弃请求消息(例如,方法900)。从操作808,方法800可以返回到操作802,在操作802处从主机接收另一请求消息,或前进到操作810,在操作810处由目的地确定响应消息并且将响应消息发送到主机。
在810处,确定主机的响应消息。响应消息可以包括目的地的功能或操作——诸如处理操作、存储器读取操作、通信操作等等——的结果数据。
可选地在812处,生成响应消息的有效载荷的第二完整性位。在一些情况下,目的地的响应完整性生成功能生成响应消息的完整性位。完整性位可以包括任何合适类型的编码或加密,诸如ECC位、CRC位、非对称加密等。或者,第二完整性位可以与响应消息的有效载荷的数据一起检索或接收。因此,第二完整性位可以与由主机生成的第一完整性位相同。在814处,将第二完整性位插入响应消息中,或附加到响应消息的有效载荷的数据或另一字段。
在816处,通过结构将包括第二完整性位的响应消息传输到主机。响应消息中包括的第二完整性位可以使主机能够在消耗响应消息的有效载荷之前校验响应消息的完整性。从操作816,方法800可以返回到操作802以从主机接收另一请求消息,或返回到操作710,以确定另一响应消息并且将另一响应消息发送到主机。
图9图示根据一个或多个方面的用于在消耗有效载荷之前校验消息的有效载荷的完整性的示例方法900。在各个方面中,系统的完整性功能、主机或目的地可以实现方法900的操作,以在消耗有效载荷的数据之前校验消息有效载荷的完整性,以防止攻击影响系统的数据完整性和/或操作。
在902处,通过结构接收消息,该消息包括消息的有效载荷的完整性位。消息可以包括来自系统的主机的命令消息或来自系统的目的地或外围设备的响应消息。完整性位可以包括用于有效载荷完整性校验的ECC位或CRC位,该ECC位或CRC位不用于有效载荷数据或信息的错误检测或错误校正。
在904处,对有效载荷的完整性位和/或内容进行解码,以校验消息的有效载荷的完整性。在一些情况下,针对有效载荷解码或确定ECC值或CRC值以校验有效载荷的完整性。这可以包括向ECC解码器提供明文数据位和完整性位,以基于与请求消息一起接收的完整性位来验证明文。从操作904,方法900可以响应于校验消息的完整性而前进到操作906,或响应于未能校验消息的完整性而前进到操作908。
在906处,响应于校验有效载荷的完整性而消耗消息的有效载荷。在校验之后,主机或目的地可以消耗消息的有效载荷,这可以确保主机或目的地正消耗正确的数据,而不是被攻击者更改或篡改的数据。
在908处,响应于未能校验有效载荷的完整性而丢弃有效载荷。为了防止主机或目的地消耗更改的或不正确的数据,丢弃消息的有效载荷。可选地,在910处,生成中断或警报以通知系统校验失败。在一些情况下,系统的安全代理会收到警报,这反过来可能会导致系统的状态的变化以防止数据泄露。可选地,在912处,激活对策以防止对系统的数据或信息的访问。在一些情况下,激活或参与系统的安全对策可以包括擦除系统的一个或多个存储器的内容、擦除系统的多个加密密钥、复位系统的熵生成网络、更改系统的安全状态、更改系统的功率状态等。通过这样做,系统可以防止数据完整性故障暴露系统的敏感数据或密钥。
图10图示根据一个或多个方面的用于将包括完整性位的命令消息的数据写入到存储器的示例方法1000。在各个方面中,系统的完整性功能118或存储器目的地可以实现方法1000的操作,以安全地通信和/或存储系统的数据。
在1002处,通过结构从主机接收包括完整性位的命令消息。命令消息可以由任何合适类型的存储器,诸如系统的指令高速缓存(i-cache)或SRAM接收。命令消息(或请求消息)包括将命令消息的有效载荷的数据写入到存储器的地址的请求。借助于示例,考虑图11和图12,其中数据事务分别由指令高速缓存存储器和SRAM执行。如图11中所示,指令高速缓存存储器可以在1102处接收传入数据,该传入数据包括ECC位作为完整性元数据。在图12中,SRAM在1202处接收传入数据,该传入数据包括ECC位作为完整性数据。
在1004处,对命令消息的完整性位进行解码以校验命令消息的内容(例如,有效载荷数据)的完整性。在图11的场境中,指令高速缓存的ECC解码块(例如,完整性功能)在1104处对由指令高速缓存接收的命令消息的明文和ECC位进行解码。在图12中,SRAM的ECC解码块(例如,完整性功能)在1204处对由SRAM接收的命令消息的明文和ECC位进行解码。
可选地,在1006处,针对命令消息内容的明文数据生成奇偶校验位或对ECC位进行编码,作为数据的替代完整性位。参考指令高速缓存示例,在1106处,对明文数据的ECC位进行编码。在各方面中,由于字节写入对指令高速缓存可能不重要,指令高速缓存可以采用ECC作为完整性检查。在其它方面中,由于字节写入性能对SRAM可能很重要,因此奇偶校验可以用于避免读取-修改-写入延迟。应注意,在此示例中,假设即使在字节写入期间,总线数据也完全填充(可能用垃圾或填充数据填充),并且与ECC正确地相关联。在图12的场境中,在1206处生成要写入到SRAM的明文数据的奇偶校验位。
在1008处,对命令消息内容的明文数据和完整性位进行加扰。如图11中所示,在1108处,指令高速缓存的加扰块对明文和ECC位进行加扰。参考SRAM示例,SRAM目的地的加扰块在存储在SRAM中之前在1208处对明文数据和奇偶校验位进行加扰。
在1010处,将加扰数据和完整性位写入到存储器。在指令高速缓存示例的结尾,在1110处,将加扰数据和ECC位写入到指令高速缓存存储器。在图12中,在1210处,SRAM单元将加扰数据和奇偶校验位写入到SRAM。可选地在1012处,通过结构将数据写入操作的确认传输到主机。
图13图示根据一个或多个方面的用于存取存储器的数据并且将数据与完整性位一起传输的示例方法1300。在各个方面中,系统的完整性功能118或存储器目的地可以实现方法1300的操作,以安全地传送和/或存取系统的数据。
在1302处,通过结构从主机接收请求数据的命令消息。命令消息可以由任何合适类型的存储器,诸如系统的指令高速缓存(i-cache)或SRAM接收。命令消息(或请求消息)包括将从存储器的地址读取数据的请求。
在1304处,对命令消息的完整性位进行解码以校验命令消息的内容(例如,命令有效载荷)的完整性。完整性位可以包括用于完整性校验的ECC位或CRC位,该ECC位或CRC位不用于命令消息的有效载荷数据或信息的错误检测或错误校正。
在1306处,基于命令消息的地址从存储器读取加扰数据和完整性位。返回到图11的指令高速缓存示例,在1112处,从指令高速缓存读取加扰数据和ECC位。在图12的SRAM示例的场境中,在1212处,从SRAM读取加扰数据和奇偶校验位。
在1308处,对加扰数据和完整性位进行解扰以提供明文数据和对应完整性位。如图11中所示,在1114处,指令高速缓存的解扰块对从指令高速缓存读取的加扰的明文和ECC位进行解扰。参考SRAM示例,在1214处,SRAM目的地的解扰块对从SRAM读取的加扰的明文数据和奇偶校验位进行解扰。
在1310处,对完整性位进行解码或检查奇偶校验位以校验从存储器读取的明文数据的完整性。参考指令高速缓存示例,在1116处对ECC位进行解码以校验明文数据的完整性。在图12的场境中,在1216处检查从SRAM读取的明文数据的奇偶校验位。
可选地在1312处,对明文数据的ECC位进行编码,作为明文数据的替代完整性位。在与数据一起接收的完整性位没有与数据一起存储的情况下,可以为数据生成新的或第二ECC位以包括在响应消息中。在图11中,在1118处,对指令高速缓存的明文数据的ECC位进行编码。在SRAM示例的场境中,在1218处生成在传输到主机之前从SRAM读取的明文数据的ECC位。
在1314处,通过结构将包括明文数据和完整性位的响应消息传输到主机。在指令高速缓存示例的结尾,在1120处,将明文数据和ECC位作为响应消息传输到主机。在图12中,SRAM单元在1220处通过结构将明文数据和ECC位作为响应消息传输到主机,以完成与主机的数据事务。
图14图示根据一个或多个方面的用于将命令消息的数据写入具有纠错码位的存储器中的示例方法1400。在各个方面中,系统的完整性功能118或存储器目的地可以实现方法1400的操作,以安全地传送和/或存储系统的数据。
在1402处,通过结构从主机接收命令消息,该命令消息包括请求数据的完整性位。命令消息可以由任何合适类型的存储器,诸如系统的闪存存储器接收。命令消息(或请求消息)包括将命令消息的有效载荷的数据写入到存储器的地址的请求。借助于示例,考虑图15,其中数据事务由系统的闪存存储器执行。如图15中所示,闪存存储器块在1502处接收传入数据,该传入数据包括ECC位作为完整性元数据。
在1404处,对命令消息的完整性位进行解码以校验命令消息的内容(例如,有效载荷数据)的完整性。换句话说,可以在消耗之前检查存储器的传入事务的正确性。在图15的场境中,闪存的ECC解码块(例如,完整性功能)可以在1504处对由闪存接收的命令消息的明文和ECC位进行解码,以校验有效载荷数据。在1406处,为命令消息内容的明文数据计算CRC位和/或ECC位。在闪存存储器示例中,CRC块或ECC块可以在1506处为要写入到闪存的数据的明文计算CRC位或ECC位。
在1408处,对命令消息的明文数据进行加扰以提供加扰数据。可以对闪存目的地进行加扰,这可以保护不受对闪存宏的攻击影响或直接防止对闪存宏的攻击并且防止合法形成但不正确的数据的返回。由于其非易失性性质,闪存存储器可以使用XEX进行加扰。返回到图15,在1508处由闪存单元的加扰块对明文数据进行加扰。
在1410处,对加扰数据以及CRC位和/或ECC位的ECC位进行编码。在安全芯片范围通信的一些方面中,出于耐久性的目的,闪存由ECC覆盖。在一些情况下,闪存字大小是76个位(64b数据,12b元数据),并且ECC(8个位)必须根据加扰数据进行计算,因为加扰方案影响整个64块。因此,闪存块可以使用稍微不同的数据保护方法。参考用于安全通信的各种ECC实现,对于闪存上程序,可以在原始64b数据上计算CRC-4或截断ECC。然后对64b数据进行加扰,并且根据级联的加扰和CRC/ECC值计算新的ECC。在图15的场境中,加扰数据和CRC/ECC位在写入到闪存存储器之前在1510处进行ECC编码。
在1412处,将加扰数据、明文数据的CRC位和/或ECC位、以及加扰数据和CRC位和/或ECC位的ECC位写入到存储器。总结如图15中所示的方法1400,在1512处,将加扰数据、CRC/ECC位、以及ECC位写入到闪存存储器。可选地在1414处,通过结构将数据写入操作的确认传输到主机。
图16图示根据一个或多个方面的用于存取存储器的数据并且将数据与生成的完整性位一起传输的示例方法1600。在各个方面中,系统的完整性功能118或存储器目的地可以实现方法1600的操作,以安全地传送和/或存取系统的数据。
在1602处,通过结构从主机接收请求数据的命令消息。命令消息可以由任何合适类型的存储器,诸如系统的闪存存储器接收。命令消息(或请求消息)包括将从存储器的地址读取数据的请求。
在1604处,对命令消息的完整性位进行解码以校验命令消息的内容(例如,有效载荷)的完整性。完整性位可以包括用于完整性校验的ECC位或CRC位,该ECC位或CRC位不用于命令消息的有效载荷数据或信息的错误检测或错误校正。
在1606处,基于命令消息的内容从存储器读取加扰数据、ECC位、和/或CRC位。返回到图15的闪存存储器示例,在1514处,从闪存存储器读取加扰数据、CRC/ECC位、以及ECC位。
在1608处,对ECC位进行解码以检查加扰数据以及数据的CRC位和/或ECC位。如在图15的1516处所示,ECC块对从闪存存储器读取的加扰数据、CRC/ECC位、以及ECC位进行解码。在1610处,对从存储器读取的加扰数据进行解扰以提供明文数据。在闪存示例的场境中,闪存单元的解扰块在1518处对从闪存存储器读取的明文数据进行解扰。
在1612处,基于在图15的1520处图示的明文数据的CRC位和/或ECC位来检查明文数据。因此,对于闪存上读取,可以对数据进行ECC解码和解扰,并且针对原始CRC-4/截断ECC进行检查。如果此检查匹配,则数据被视为无错误。此处,应注意,CRC-4/原始ECC在存储到闪存中时可能由一些其它轻量级机制(减少的CTR)加扰。
在1614处,对明文数据的ECC位进行编码,以使主机能够校验明文数据的完整性。由于完整性位不会通过存储到闪存存储器中而持续存在,因此闪存单元生成响应消息的新的或第二完整性位。在图15中,在1522处,对闪存存储器响应的明文数据的ECC位进行编码。
在1616处,通过结构将响应消息传输到主机,该响应消息包括明文数据和明文数据的ECC位。在图15的闪存存储器示例的结尾,闪存存储器在1524处将明文数据和ECC位作为响应消息传输到主机。
示例片上系统
图17图示根据一个或多个方面的可以实现安全芯片范围通信的示例片上系统1700(SoC 1700)的各种组件。SoC 1700可以实现为固定设备、移动设备、独立设备或嵌入式设备中的任何单个或多个;以任何形式的消费者、计算机、便携式、用户、服务器、通信、电话、导航、游戏、音频、相机、消息收发、媒体回放和/或其他类型的启用SoC的设备,诸如在图1中描绘或参考图1描述的那些装置102实现。所示组件中的一个或多个可以实现为离散组件、模块、IP块,或实现为SoC 1700的至少一个集成电路上的集成组件。通常,SoC 1700的各种组件经由互连件120和/或根据安全芯片范围通信的一个或多个方面支持组件之间的通信的一个或多个结构耦合。
SoC 1700可以包括一个或多个通信收发器124,该通信收发器实现设备数据112的有线和/或无线通信,该设备数据诸如接收的数据、传输的数据或上面识别的其它信息。通信收发器124的示例包括近场通信(NFC)收发器、符合各种IEEE 802.15(蓝牙TM)标准的无线个域网(PAN)(WPAN)无线电、符合各种IEEE 802.11(WiFiTM)标准中的任何一个的无线局域网(LAN)(WLAN)无线电,用于蜂窝电话的无线广域网(WAN)(WWAN)无线电(例如,符合第三代合作伙伴计划(符合3GPP)的那些)、符合各种IEEE 802.16(WiMAXTM)标准的无线城域网(MAN)(WMAN)无线电、符合红外数据协会(IrDA)协议的红外(IR)收发器、以及有线局域网(LAN)(WLAN)以太网收发器。
SoC 1700还可以包括一个或多个数据输入/输出端口126(I/O端口126),可以通过其传送任何类型的数据、媒体内容和/或其它输入,诸如用户可选择输入、消息、应用、音乐、电视内容、录制的视频内容以及从任何内容和/或数据源接收的任何其它类型的音频、视频和/或图像数据,包括像麦克风或相机的传感器。数据I/O端口126可以包括USB端口、同轴电缆端口、用于光纤互连或布线的光纤端口以及用于可操作地耦合闪存存储器、光学介质写入器/读取器(例如,DVD、CD)等的其它串行或并行连接器(包括内部连接器)。这些数据I/O端口126可以用于将SoC耦合到组件、外围设备或附件,诸如键盘、麦克风、相机或其它传感器。
此示例的SoC 1700包括至少一个处理器106(例如,应用处理器、微处理器、数字信号处理器(DSP)、控制器等中的任何一个或多个),该处理器可以包括组合的处理器和存储器系统(例如,实现为SoC的一部分),其处理(例如,执行)计算机可执行指令以控制设备的操作。处理器106或处理器106的子系统还可以包括完整性功能110,以实现如本文所描述的安全芯片范围通信的各个方面。例如,处理器106的完整性功能可以包括命令生成功能404,用于生成完整性位以包括在发送到SoC 1700的组件或目的地的命令消息(例如,命令有效载荷)中或附加到该命令消息。替代地或另外,完整性功能110可以包括响应检查功能406,用于验证从SoC 1700的相应组件接收的响应消息(例如,响应有效载荷)的完整性。处理器106可以实现为应用处理器、嵌入式控制器、微控制器、安全处理器、人工智能(AI)加速器等。一般来说,处理器或处理系统可以至少部分地在硬件中实现,该硬件可以包括集成电路或片上系统的组件、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)以及用硅和/或其它材料的其它实现。
替代地或另外,SoC 1700可以用电子电路系统中的任何一个或组合来实现,电子电路系统可以包括结合处理和控制电路实现的软件、硬件、固件或固定逻辑电路系统,该处理和控制电路通常在1702处指示(作为电子电路系统1702)。此电子电路系统1702可以诸如通过存储在计算机可读介质上的处理/计算机可执行指令、通过逻辑电路系统和/或硬件(例如,诸如FPGA)等实现可执行的或基于硬件的模块(图17中未示出)。
在各方面中,SoC 1700包括互连件120,该互连件可以包括系统总线、链路、信道、互连件、交叉开关、数据传送系统或耦合设备内的各种组件以实现与稀疏编码的信令和/或通信的各个方面的其它交换结构中的任何一个或多个。系统总线或互连件可以包括不同总线结构中的任何一个或组合,诸如存储器总线或存储器控制器、外围总线、奇偶校验块、CRC块、ECC块、TL-UL结构、通用串行总线,和/或利用各种总线架构中的任一个的处理器或本地总线。
SoC 1700还包括实现数据存储的一个或多个存储器设备1704,其示例包括随机存取存储器(RAM)、非易失性存储器(例如,只读存储器(ROM)、闪存存储器、可擦除可编程只读存储器(EPROM)和电可擦除可编程只读存储器(EEPROM))以及磁盘存储设备。存储器设备1704中的一个或多个还可以包括完整性功能118,以实现如本文所描述的安全芯片范围通信的各个方面。因此,存储器设备1704可以跨系统的不同逻辑存储级别以及在不同物理组件处分布。存储器设备1704提供数据存储机制来存储设备数据112、其它类型的代码和/或数据、以及各种设备应用1706(例如,软件应用或程序)。例如,操作系统1708可以作为软件指令维护在存储器设备1704内并且由处理器106执行。
在一些实现中,SoC 1700还包括音频和/或视频处理系统1710,其处理音频数据和/或将音频和视频数据传递到音频系统1712和/或显示系统1714(例如,视频缓冲器或智能手机或相机的屏幕)。音频系统1712和/或显示系统1714可以包括处理、显示和/或以其它方式渲染音频、视频、显示和/或图像数据的任何设备。显示数据和音频信号可以经由RF(射频)链路、S视频链路、HDMI(高清晰度多媒体接口)、复合视频链路、分量视频链路、DVI(数字视频接口)、模拟音频连接、视频总线或诸如媒体数据端口1716的其它类似通信链路传送到音频组件和/或显示组件。在一些实现中,音频系统1712和/或显示系统1714是SoC 1700的外部或分离组件。替代地,例如,显示系统1714可以是示例SoC 1700的集成组件,诸如集成触摸接口的一部分。
图17的SoC 1700可以是图1的装置102的示例实现、可以实现如参考图1到图16所描述的安全芯片范围通信的设备或系统的示例实现。因此,SoC 1700可以包括安全电路系统114,其可以是单独的电路系统或IP块,或包括为另一IC芯片或设备的一部分,如处理器106、电子电路系统1702或存储器设备1704。因此,所示组件中的一个或多个可以集成在相同的半导体衬底、半导体封装、IC芯片、SoC或单个印刷电路板(PCB)上。
如图所示,安全电路系统114被实现有完整性功能118,该完整性功能可以包括命令检查功能408和/或响应生成功能410的实例。因此,安全电路系统114和完整性功能118可以使SoC 1700能够实现如本文所描述的安全芯片范围通信的方面。例如,命令检查功能408可以在组件或目的地消耗命令有效载荷之前校验从主机(例如,处理器106)接收的命令有效载荷的完整性。替代地或另外,响应生成功能410可以生成完整性位以包括在由组件或目的地发送到主机的响应有效载荷中或附加到该响应有效载荷,这使主机能够在消耗响应有效载荷之前校验响应有效载荷的完整性。因此,如本文所描述的安全芯片范围通信的概念可以由图17的SoC 1700或结合图17的SoC 1700实现。
除非上下文另有规定,否则本文中对词语“或”的使用可以被视为对“包含性或”的使用,或允许包含或应用由词语“或”链接的一个或多个项目的术语(例如,短语“A或B”可以被解释为只允许“A”,只允许“B”,或同时允许“A”和“B”)。而且,如本文所使用,指代项目列表“中的至少一个”的短语是指那些项目的任何组合,包括单个成员。例如,“a、b或c中的至少一个”可以覆盖a、b、c、a-b、a-c、b-c和a-b-c,以及与多个相同元件的任何组合(例如,a-a、a-a-a、a-a-b、a-a-c、a-b-b、a-c-c、b-b、b-b-b、b-b-c、c-c和c-c-c,或a、b和c的任何其它排序)。此外,在本文所讨论的附图和术语中表示的项目可以指示一个或多个项目或术语,因此可以互换地参考本书面描述中的项目和术语的单数或复数形式。尽管已经用特定于某些特征和/或方法的语言描述了安全芯片范围通信的方面,但是所附权利要求的主题不一定限于所描述的特定特征或方法。相反,将特定特征和方法公开为用于安全芯片范围通信的示例实现。
附加示例
下文提供安全芯片范围通信的示例:
示例1:一种由系统的主机实现的用于与通过互连件耦合到所述主机的至少一个目的地进行安全通信的方法,所述方法包括:生成所述至少一个目的地中的目的地的请求消息;生成所述请求消息的第一数据的第一完整性位;将所述第一完整性位插入所述请求消息中;通过所述互连件将包括所述第一数据和所述第一完整性位的所述请求消息传输到所述目的地;通过所述互连件从所述目的地接收响应消息;从所述响应消息中提取第二完整性位;基于所述第二完整性位来校验所述响应消息的第二数据的完整性;以及响应于校验所述响应消息的所述第二数据的所述完整性,消耗所述响应消息的所述第二数据。
示例2:根据示例中任一项所述的方法,其中所述请求消息包括具有第一有效载荷的命令消息,所述第一有效载荷包括所述第一数据;或所述响应消息包括具有第二有效载荷的响应消息,所述第二有效载荷包括所述第二数据。
示例3:根据示例中任一项所述的方法,其中生成所述第一完整性位包括基于所述请求消息的所述第一数据来生成纠错码(ECC)位;或校验所述响应消息的所述第二数据的所述完整性包括将所述第二完整性位解码为所述请求消息的所述有效载荷的ECC位。
示例4:根据示例中任一项所述的方法,其中所述请求消息的所述第一完整性位包括第一ECC位,并且所述目的地不使用所述请求消息的所述第一ECC位进行错误检测或错误校正;或所述响应消息的所述第二完整性位包括第二ECC位,并且所述主机不使用所述响应消息的所述第二ECC位进行错误检测或错误校正。
示例5:根据示例中任一项所述的方法,其中所述响应消息的所述第二完整性位包括由所述主机生成的所述请求消息的所述第一完整性位;或所述响应消息的所述第二完整性位包括由所述目的地生成的完整性位。
示例6:根据示例中任一项所述的方法,其中所述目的地包括存储器,所述存储器被配置成将所述第一完整性位与所述请求消息的所述第一数据一起存储。
示例7:根据示例中任一项所述的方法,其中所述目的地包括存储器,所述存储器响应于接收到所述请求消息而被配置成:生成所述请求消息的所述第一数据的ECC位或循环冗余校验(CRC);并且将所述ECC位或CRC与所述请求消息的所述第一数据一起存储。
示例8:根据示例中任一项所述的方法,其中所述请求消息的所述第一完整性位或所述响应消息的所述第二完整性位包括以下中的一个:基于所述请求消息或所述响应消息的相应数据确定的奇偶校验位;基于所述请求消息或所述响应消息的相应数据确定的ECC位;或基于所述请求消息或所述响应消息的相应数据确定的CRC位。
示例9:根据示例中任一项所述的方法,其中:所述请求消息包括所述目的地的地址、包括明文位的所述第一数据、以及对应于所述请求消息的所述第一数据的所述第一完整性位;或所述响应消息包括对所述主机的确认、包括明文位的所述第二数据、以及对应于所述响应的所述第二数据的所述第二完整性位。
示例10:根据示例中任一项所述的方法,其中将所述主机耦合到所述至少一个目的地的所述互连件包括以下中的一个:结构、总线、链路或一个或多个通信信道。
示例11:根据示例中任一项所述的方法,其中将所述主机耦合到所述至少一个目的地的所述互连件是根据TileLink通信标准实现的。
示例12:根据示例中任一项所述的方法,其中所述响应消息是第一响应消息,所述方法进一步包括:通过所述互连件从所述目的地或所述至少一个目的地中的另一个接收第二响应消息;从所述第二响应消息中提取第三完整性位;未能基于所述第三完整性位校验所述第二响应消息的第三数据的完整性;以及响应于未能校验所述第二响应消息的所述第三数据的所述完整性,丢弃所述第二响应消息的所述第三数据。
示例13:根据示例中任一项所述的方法,进一步包括响应于未能校验所述第二响应消息的所述第三数据,生成对所述系统的所述主机或安全实体的中断。
示例14:根据示例中任一项所述的方法,进一步包括响应于未能校验所述第二响应消息的所述第三数据,参与所述系统的安全对策,所述安全对策包括以下中的至少一个:擦除所述系统的一个或多个存储器的内容;擦除所述系统的一个或多个加密密钥;复位所述系统的熵生成网络;更改所述系统的安全状态;或更改所述系统的功率状态。
示例15:一种集成电路,所述集成电路包括用于安全通信的电路系统,所述电路系统包括:具有功能核心的主机;包括存储器块或外围块的至少一个目的地;耦合所述主机和所述至少一个目的地的至少一个互连件;以及体现在所述主机和所述至少一个目的地上的相应接口,所述接口可操作地耦合到所述互连件并且被配置成执行根据示例1至14中任一项所述的操作。
结论
尽管已经用特定于特征和/或方法的语言描述用于实现安全芯片范围通信的所描述的系统和方法的方面,但是所附权利要求的主题如根据前述示例中任一项所述不一定限于所描述的特定特征或方法。相反,将特定特征和方法公开为安全芯片范围通信的示例实现,并且其它等同特征和方法旨在处于所附权利要求书的范围内。此外,描述安全芯片范围通信的各个方面,并且应理解,可以独立地或结合一个或多个其他所描述的方面实现每个所描述的方面。

Claims (15)

1.一种由系统的主机实现的用于与通过互连件耦合到所述主机的至少一个目的地进行安全通信的方法,所述方法包括:
生成所述至少一个目的地中的目的地的请求消息;
生成所述请求消息的第一数据的第一完整性位;
将所述第一完整性位插入所述请求消息中;
通过所述互连件将包括所述第一数据和所述第一完整性位的所述请求消息传输到所述目的地;
通过所述互连件从所述目的地接收响应消息;
从所述响应消息中提取第二完整性位;
基于所述第二完整性位来校验所述响应消息的第二数据的完整性;以及
响应于校验所述响应消息的所述第二数据的所述完整性,消耗所述响应消息的所述第二数据。
2.根据权利要求1所述的方法,其中:
所述请求消息包括具有第一有效载荷的命令消息,所述第一有效载荷包括所述第一数据;或
所述响应消息包括具有第二有效载荷的响应消息,所述第二有效载荷包括所述第二数据。
3.根据权利要求1所述的方法,其中:
生成所述第一完整性位包括基于所述请求消息的所述第一数据来生成纠错码ECC位;或
校验所述响应消息的所述第二数据的所述完整性包括将所述第二完整性位解码为所述响应消息的所述有效载荷的ECC位。
4.根据权利要求3所述的方法,其中:
所述请求消息的所述第一完整性位包括第一ECC位,并且所述目的地不使用所述请求消息的所述第一ECC位进行错误检测或错误校正;或
所述响应消息的所述第二完整性位包括第二ECC位,并且所述主机不使用所述响应消息的所述第二ECC位进行错误检测或错误校正。
5.根据权利要求1至4中任一项所述的方法,其中:
所述响应消息的所述第二完整性位包括由所述主机生成的所述请求消息的所述第一完整性位;或
所述响应消息的所述第二完整性位包括由所述目的地生成的完整性位。
6.根据权利要求1至5中任一项所述的方法,其中所述目的地包括存储器,所述存储器被配置成将所述第一完整性位与所述请求消息的所述第一数据一起存储。
7.根据权利要求1至5中任一项所述的方法,其中所述目的地包括存储器,所述存储器响应于接收到所述请求消息而被配置成:
生成所述请求消息的所述第一数据的ECC位或循环冗余校验CRC;并且
将所述ECC位或CRC与所述请求消息的所述第一数据一起存储。
8.根据权利要求1至7中任一项所述的方法,其中所述请求消息的所述第一完整性位或所述响应消息的所述第二完整性位包括以下中的一个:
基于所述请求消息或所述响应消息的相应数据确定的奇偶校验位;
基于所述请求消息或所述响应消息的相应数据确定的ECC位;或
基于所述请求消息或所述响应消息的相应数据确定的CRC位。
9.根据权利要求1至8中任一项所述的方法,其中:
所述请求消息包括所述目的地的地址、包括明文位的所述第一数据、以及对应于所述请求消息的所述第一数据的所述第一完整性位;或
所述响应消息包括对所述主机的确认、包括明文位的所述第二数据、以及对应于所述响应的所述第二数据的所述第二完整性位。
10.根据权利要求1至9中任一项所述的方法,其中将所述主机耦合到所述至少一个目的地的所述互连件包括以下中的一个:结构、总线、链路或一个或多个通信信道。
11.根据权利要求1至10中任一项所述的方法,其中将所述主机耦合到所述至少一个目的地的所述互连件是根据TileLink通信标准实现的。
12.根据权利要求1至11中任一项所述的方法,其中所述响应消息是第一响应消息,所述方法进一步包括:
通过所述互连件从所述目的地或所述至少一个目的地中的另一个接收第二响应消息;
从所述第二响应消息中提取第三完整性位;
未能基于所述第三完整性位校验所述第二响应消息的第三数据的完整性;以及
响应于未能校验所述第二响应消息的所述第三数据的所述完整性,丢弃所述第二响应消息的所述第三数据。
13.根据权利要求12所述的方法,进一步包括响应于未能校验所述第二响应消息的所述第三数据,生成对所述系统的所述主机或安全实体的中断。
14.根据权利要求12或权利要求13所述的方法,进一步包括响应于未能校验所述第二响应消息的所述第三数据,参与所述系统的安全对策,所述安全对策包括以下中的至少一个:
擦除所述系统的一个或多个存储器的内容;
擦除所述系统的一个或多个加密密钥;
复位所述系统的熵生成网络;
更改所述系统的安全状态;或
更改所述系统的功率状态。
15.一种集成电路,所述集成电路包括用于安全通信的电路系统,所述电路系统包括:
具有功能核心的主机;
包括存储器块或外围块的至少一个目的地;
耦合所述主机和所述至少一个目的地的至少一个互连件;以及
体现在所述主机和所述至少一个目的地上的相应接口,所述接口可操作地耦合到所述互连件并且被配置成执行根据权利要求1至14中任一项所述的操作。
CN202280020810.6A 2021-04-09 2022-04-07 安全芯片范围通信 Pending CN116982046A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163173221P 2021-04-09 2021-04-09
US63/173,221 2021-04-09
PCT/US2022/071604 WO2022217260A1 (en) 2021-04-09 2022-04-07 Secure chip-wide communication

Publications (1)

Publication Number Publication Date
CN116982046A true CN116982046A (zh) 2023-10-31

Family

ID=81392698

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280020810.6A Pending CN116982046A (zh) 2021-04-09 2022-04-07 安全芯片范围通信

Country Status (7)

Country Link
US (1) US20240169098A1 (zh)
EP (1) EP4285264A1 (zh)
JP (1) JP2024513159A (zh)
KR (1) KR20230145167A (zh)
CN (1) CN116982046A (zh)
TW (1) TWI807766B (zh)
WO (1) WO2022217260A1 (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10726162B2 (en) * 2014-12-19 2020-07-28 Intel Corporation Security plugin for a system-on-a-chip platform
US10585809B2 (en) * 2016-04-01 2020-03-10 Intel Corporation Convolutional memory integrity
US11743240B2 (en) * 2019-03-08 2023-08-29 Intel Corporation Secure stream protocol for serial interconnect
US11165794B2 (en) * 2019-09-30 2021-11-02 Infineon Technologies Ag Alert system for controller area networks
US20210050941A1 (en) * 2020-07-06 2021-02-18 Intel Corporation Characterizing and margining multi-voltage signal encoding for interconnects
US20210089388A1 (en) * 2020-07-14 2021-03-25 Intel Corporation System, Apparatus And Method For Providing Protection Against Silent Data Corruption In A Link

Also Published As

Publication number Publication date
TWI807766B (zh) 2023-07-01
TW202240412A (zh) 2022-10-16
JP2024513159A (ja) 2024-03-22
US20240169098A1 (en) 2024-05-23
EP4285264A1 (en) 2023-12-06
WO2022217260A1 (en) 2022-10-13
KR20230145167A (ko) 2023-10-17

Similar Documents

Publication Publication Date Title
KR102113937B1 (ko) 메모리 무결성
CN113557515A (zh) 外围设备与安全电路系统的兼容性
TWI807766B (zh) 安全之全晶片通信
TWI856849B (zh) 安全加密協同處理器
US20230177154A1 (en) Sparse Encodings for Control Signals
TWI821971B (zh) 安全加密協同處理器
US20240361923A1 (en) Read-Only Memory (ROM) Security
US20240184932A1 (en) Read-Only Memory (ROM) Security
TWI845059B (zh) 執行安全密碼操作之積體電路及方法
US20220391540A1 (en) Register File Protection
WO2022213129A1 (en) Read-only memory (rom) security
US20230400996A1 (en) Apparatus, Device, and Method for a Memory Controller, Memory Controller, and System
CN118575161A (zh) 安全伪随机数生成器(prng)重播种

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