首页> 中国专利> 用于外围组件互连(PCI)快速(PCIE)系统的安全技术

用于外围组件互连(PCI)快速(PCIE)系统的安全技术

摘要

用于外围组件互连(PCI)快速(PCIE)系统的安全技术包括传输层协议(TLP)分组,该TLP分组具有指示TLP分组的安全性特征的前置的TLP前缀和附加到TLP分组的完整性检查值(ICV)。ICV基于TLP分组和任何TLP前缀(包括安全性前缀)。在接收器处,如果ICV不匹配,则接收器有证据表明TLP分组可能已经受到篡改。此外,可以对TLP分组进行加密以防止监听,并且该特征将在TLP前缀中指示。更进一步,TLP前缀可以包括可以用于防止重放攻击的计数器。PCIE考虑了灵活的TLP前缀,并且因此,该标准可以轻松地适应指示TLP分组的安全性特征的TLP前缀的添加。

著录项

  • 公开/公告号CN112714911A

    专利类型发明专利

  • 公开/公告日2021-04-27

    原文格式PDF

  • 申请/专利权人 高通股份有限公司;

    申请/专利号CN201980059539.5

  • 申请日2019-09-16

  • 分类号G06F21/60(20060101);G06F21/85(20060101);G06F13/42(20060101);

  • 代理机构11256 北京市金杜律师事务所;

  • 代理人傅远

  • 地址 美国加利福尼亚州

  • 入库时间 2023-06-19 10:44:55

说明书

本申请涉及并且要求于2018年9月14日提交的题为“SECURITY TECHNIQUES FOR APERIPHERAL COMPONENT INTERCONNECT(PCI)EXPRESS(PCIE)SYSTEM”的美国临时专利申请序列号62/731,286的权益。

本申请还涉及并且要求于2018年10月15日提交的题为“SECURITY TECHNIQUESFOR A PERIPHERAL COMPONENT INTERCONNECT(PCI)EXPRESS(PCIE)SYSTEM”的美国临时专利申请序列号62/745,542的权益。

本申请还涉及并且要求于2019年1月4日提交的题为“SECURITY TECHNIQUES FORA PERIPHERAL COMPONENT INTERCONNECT(PCI)EXPRESS(PCIE)SYSTEM”的美国临时专利申请序列号62/788,264的权益。

本申请还涉及并且要求于2019年4月30日提交的题为“SECURITY TECHNIQUES FORA PERIPHERAL COMPONENT INTERCONNECT(PCI)EXPRESS(PCIE)SYSTEM”的美国临时专利申请序列号62/840,643的权益。

本申请还涉及并且要求于2019年9月13日提交的题为“SECURITY TECHNIQUES FORA PERIPHERAL COMPONENT INTERCONNECT(PCI)EXPRESS(PCIE)SYSTEM”的美国专利申请序列号16/569,816的权益。

上面列出的申请通过引用整体并入本文。

技术领域

本公开的技术总体上涉及外围组件互连(PCI)快速(PCIE)系统,并且更具体地涉及向这样的PCIE系统提供安全性。

背景技术

计算设备已经在现代社会中变得很普遍。计算设备的使用的增加部分归因于设备的功能的增加。在很多情况下,功能的增加是计算设备内的不同集成电路(IC)的结果,每个集成电路具有不同的能力。在计算设备中具有多个IC的副产品是要求具有IC可以通过其进行通信的某种机制。

一种流行的机制是符合外围组件互连(PCI)标准的总线。PCI已经发展到多个版本,并且具有多种变体。在撰写本文时,最受欢迎的变体也许是PCI快速(PCIE)。在母案临时申请时,PCIE的最新版本是5.0修订版(即,0.7版),其已于2018年3月31日发布。最近的5.0修订版(即,1.0版)已于2019年5月28日发布。虽然PCIE标准被灵活且广泛地使用,但是迄今为止,它尚未包含任何安全措施来防止未经授权的篡改、监听、重放等。

在历史上,安全措施的缺乏通过以下事实来缓解:承载PCIE兼容信号的导体在计算设备内相对难以访问。然而,最近的发展已经看到PCIE在传统计算设备之外被采用并且扩展到先前未曾考虑的角色。例如,PCIE可以在车辆内的线束内使用。组件之间的导体越长,漏洞越大,并且对PCIE链路的安全系统的需求也越大。

发明内容

具体实施方式中公开的各方面包括用于外围组件互连(PCI)快速(PCIE)系统的安全技术。在示例性方面,传输层协议(TLP)分组前置有指示TLP分组的安全性特征的TLP前缀。这样的安全性特征可以包括用于防止重放攻击的计数器或等效计数器、对TLP分组的有效载荷进行加密以防止监听、和/或从TLP分组的一个或多个部分计算的用于检测篡改的认证值。TLP前缀可以指示相关联的TLP分组中存在哪些安全性特征(如果有)。在示例性方面,计数器可以是每个分组中包括的单调增加的数目。在示例性方面,认证值可以是附加到TLP分组的完整性检查值(ICV)。ICV基于TLP分组和任何TLP前缀(其包括安全性前缀)。在接收器处,如果ICV不匹配,则接收器有证据表明TLP分组可能已经受到篡改。

在这点上,在一个方面,公开了一种在PCIE链路的任一端上的设备之间提供安全通信的方法。该方法包括向TLP分组上前置TLP前缀。TLP前缀包括TLP分组是安全分组的指示。该方法还包括向TLP分组附加至少部分在TLP分组的一部分上计算的密码生成的标识符。该方法还包括通过PCIE链路从设备中的第一设备向设备中的另一设备发送TLP分组。

在另一方面,公开了一种在PCIE链路的任一端上的设备之间提供安全通信的方法。该方法包括向TLP分组上前置TLP前缀。TLP前缀包括TLP分组是安全分组的指示。该方法还包括加密TLP分组的有效载荷。该方法还包括通过PCIE链路从设备中的第一设备向设备中的另一设备发送TLP分组。

在另一方面,公开了一种在PCIE链路的任一端上的设备之间提供安全通信的方法。该方法包括向TLP分组上前置TLP前缀。TLP前缀包括关于TLP分组是安全分组的指示,并且包括表示用于检测重放攻击的单调增加计数器的计数器值。该方法还包括通过PCIE链路从设备中的第一设备向设备中的另一设备发送TLP分组。

在另一方面,公开了一种PCIE系统。PCIE系统包括主机设备。主机设备包括根联合体、主机加密/解密引擎和主机接口。PCIE系统还包括耦合到主机接口的PCIE链路。PCIE系统还包括端点设备。端点设备包括耦合到PCIE链路的端点接口和端点加密/解密引擎。根联合体被配置为向TLP分组上前置TLP前缀。TLP前缀包括TLP分组是安全分组的指示和表示用于检测重放攻击的单调增加计数器的计数器值。根联合体还被配置为加密TLP分组的有效载荷。根联合体还被配置为向TLP分组附加至少部分在TLP分组的一部分上计算的密码生成的标识符。根联合体还被配置为通过PCIE链路从主机设备和端点设备中的第一者向主机设备和端点设备中的另一者发送TLP分组。

附图说明

图1是具有通过外围组件互连(PCI)快速(PCIE)链路耦合的设备的示例性计算系统的框图;

图2示出了示例性PCIE端点设备、尤其是端点内的配置寄存器的框图;

图3示出了根据本公开的示例性方面的具有处理器和带有寄存器的PCIE硬件的主机的框图;

图4是车辆内的示例性计算系统的简化示意图;

图5是根据本公开的示例性方面的具有前缀和后缀的简化的PCIE写入分组;

图6是根据本公开的示例性方面的具有前缀和后缀的简化的PCIE读取分组;

图7是根据本公开的示例性方面的具有前缀和后缀的简化的PCIE完成分组;

图8提供了根据本公开的示例性方面的通过PCIE系统的分组流的简化图;

图9是可以包括根据本公开的使用安全性特征的PCIE系统的示例性移动终端的框图;以及

图10A和10B分别是从根联合体和端点角度来看的根据本公开的示例性安全驱动过程的流程图。

具体实施方式

现在参考附图,描述本公开的若干示例性方面。本文中使用的单词“示例性”表示“用作示例、实例或说明”。本文中描述为“示例性”的任何方面不必被解释为比其他方面更优选或更具优势。

具体实施方式中公开的各方面包括用于外围组件互连(PCI)快速(PCIE)系统的安全技术。在示例性方面,传输层协议(TLP)分组前置有指示TLP分组的安全性特征的TLP前缀。这样的安全性特征可以包括用于防止重放攻击的计数器或等效计数器、对TLP分组的有效载荷进行加密以防止监听、和/或从TLP分组的一个或多个部分计算的用于检测篡改的认证值。TLP前缀可以指示相关联的TLP分组中存在哪些安全性特征(如果有)。在示例性方面,计数器可以是每个分组中包括的单调增加的数目。在示例性方面,认证值可以是附加到TLP分组的完整性检查值(ICV)。ICV基于TLP分组和任何TLP前缀(其包括安全性前缀)。在接收器处,如果ICV不匹配,则接收器有证据表明TLP分组可能已经受到篡改。

在开始本公开的特定方面之前,参考图1-4提供PCIE系统和示例性用例的概述。参考图5开始提供根据本公开的示例性分组。

在这点上,图1示出了计算环境100,其中主机102直接耦合到多个设备104(1)-104(N)并且通过交换机108耦合到第二多个设备106(1)-106(M)。主机102可以包括PCIE根联合体(RC)110,RC 110包括链路接口(未直接示出),该链路接口被配置为耦合到多个PCIE链路112(1)-112(N+1)。注意,PCIE链路有时可以称为一个或多个总线。但是,由于PCIE链路是点对点链路,因此在PCIE规范中使用术语“链路”。交换机108通过PCIE链路114(1)-114(M)与设备106(1)-106(M)通信。设备104(1)-104(N)和106(1)-106(M)可以是或可以包括PCIE端点。在第一示例性方面,计算环境100可以是单个计算设备,诸如计算机,其中主机102是中央处理单元(CPU),并且设备104(1)-104(N)和106(1)-106(M)是诸如硬盘驱动器、磁盘驱动器等内部组件。在第二示例性方面,计算环境100可以是计算设备,其中主机102是板上的集成电路(IC)并且设备104(1)-104(N)和106(1)-106(M)是计算设备内的其他IC。在第三示例性方面,计算环境100可以是具有耦合到外部设备104(1)-104(N)和106(1)-106(M)的内部主机102(诸如耦合到一个或多个外部存储器驱动器的服务器)的计算设备。注意,这些方面不一定是互斥的,因为设备中的不同设备相对于单个主机102可以是在内部或外部的IC。

图2提供了可以是图1的设备104(1)-104(N)或设备106(1)-106(M)之一的设备200的框图。具体地,设备200充当PCIE系统中的端点,并且可以是例如包括存储器元件202和控制系统204的存储器设备。此外,设备200包括PCIE硬件元件206,PCIE硬件元件206包括被配置为耦合到PCIE链路的链路接口。PCIE硬件元件206可以包括物理层(PHY)208,PHY 208是链路接口或与链路接口一起工作以在PCIE链路上进行通信。控制系统204通过系统总线210与PCIE硬件元件206通信。PCIE硬件元件206还可以包括多个寄存器212。寄存器212可以在概念上被分为配置寄存器214和能力寄存器216。配置寄存器214和能力寄存器216由原始PCI标准定义,并且包括寄存器214和216的最新设备与传统设备后向兼容。使用本公开的加密系统或其他安全机制的能力可以存储在能力寄存器216或扩展配置寄存器空间218中,并且在启动或初始化时被访问。PCIE硬件元件206还可以具有加密/解密引擎220,该加密/解密引擎220对根据本公开而发送的分组进行加密和解密。

类似地,图3示出了可以是图1的主机102的主机300。主机300可以包括应用处理器302或与具有与其一起操作的操作系统306的存储器元件304通信的其他处理器核心。系统总线308将应用处理器302与存储器元件304和PCIE RC 310互连。PCIE RC 310可以包括PHY312,PHY 312与被配置为耦合到PCIE链路的链路接口一起工作或者是该链路接口。PCIE RC310还包括多个寄存器,这些寄存器包括配置地址寄存器318(CONFIG_ADDR)和数据寄存器320(CONFIG_DATA)。各种端点的能力和配置可以存储在数据寄存器320中,使得根联合体可以将本公开的安全性特征与这样启用的端点一起使用。此外,PCIE RC 310可以包括加密/解密引擎322,该加密/解密引擎322对根据本公开而发送的分组进行加密和解密。

注意,在端点和根联合体两者处具有加密/解密引擎220和322实现了双向加密通信。

图4是可以在其中包括一个或多个PCIE链路的车辆400的简化框图。车辆400被示出为汽车,但是可以是另一种形式的车辆,诸如摩托车、船、飞机等。车辆400可以包括各种传感器402(1)-402(N),其中如图所示,N=7。应当理解,可以存在多于或少于七个传感器402。传感器402(1)-402(N)可以是使用声纳、激光或某种形式的雷达来检测附近物体的接近传感器。另外,车辆400可以包括一个或多个内部传感器404(1)-404(2)。内部传感器404(1)-404(2)可以检测门406是否打开或车辆400的其他内部情况。车辆400还可以包括一个或多个相机408(1)-408(M),其中如图所示,M=4。应当理解,可以存在多于或少于四个相机408。车辆400可以具有将传感器402和404中的一些或全部耦合到集线器412的网络410。可以存在网桥414以帮助提供网络410。显示器416和扬声器418也可以与网络410相关联。集线器412可以包括访问存储在存储器420中的软件的控制系统。

应当理解,图4中的车辆400的图示大大简化。网络410可以是单个同质网络,诸如具有多点或环形拓扑的公共总线,或者可以由不同通信链路(诸如单独的点对点电缆)形成。同样,可能有用于多种用途的多个集线器。一些输入可以到达一个或多个集线器。集线器可以互连和/或复制以用于冗余目的。在通信链路是点对点电缆的情况下,可以使用PCIE,并且因此,汽车或其他车辆环境可以从本公开的示例性方面中受益。具体地,汽车供应商可能不希望自己的算法暴露于竞争对手或被破坏,从而损害自动驾驶或发动机性能。

本公开的示例性方面提供了三种支持安全措施,以协助通过PCIE链路在主机与端点之间提供安全的消息传递。第一安全措施是加密分组的有效载荷使得分组不能被监听。第二安全措施是使用计数器或等效计数器来防止重放攻击。第三安全措施是提供至少部分在分组的内容上计算的密码生成的标识符或认证机制以检测篡改。为了帮助使用这些安全措施,本公开的示例性方面提供了一种TLP前缀,该TLP前缀包括特定安全措施是否被使用的指示。

在这点上,分别参考图10A和10B提供用于实现本公开的安全技术的过程1000A和1000B。过程1000A来自根联合体的观点,过程1000B来自端点的观点。尽管过程1000A和1000B为了说明而采取某些观点,但是应当理解,通信可以是双向的,并且端点200可以从主机300内的根联合体310读取和写入。在这一点上,过程1000A开始于系统的初始化(框1002)。该初始化可以在启动、重新引导等时发生,但是涉及根联合体310识别端点200已经连接到PCIE链路。根联合体310诸如通过读取能力寄存器216中的寄存器来读取端点200的能力(框1004)。一旦根联合体310知道端点200具有安全PCIE的能力,根联合体310就可以启用端点200中的安全功能并且建立和交换安全密钥(框1006)。密钥可以基于公共密钥基础设施(PKI)系统通过Diffie-Helman密钥交换或任何其他密钥交换协议来协商。根据需要或期望,密钥可以按原样供应和使用,也可以具有某种推导。

过程1000A继续进行,根联合体310确定有效载荷是否不应当被监听(框1008)。根据需要或期望,该确定可以基于默认规则、根联合体310正在与之通信的端点的类型、或其他规则。在某个时刻,根联合体310被告知主机300具有要被写入端点的数据。因此,需要写入命令(框1010)以将数据提供给端点200。根联合体310创建与具有适当地址的写入命令相对应的报头(框1012)。报头可以包括充当用于防止重放攻击的计数器的分组编号。创建TLP前缀,该TLP前缀包含关于正在使用哪些(如果有)安全性特征的指示(框1014)。取决于在框1008处是否指示加密和/或是否期望篡改检测,有效载荷被加密并且完整性校验值(ICV)被计算(框1016)。如果不需要保护有效载荷免于监听或篡改检测,则可以跳过该步骤。根联合体310基于前缀、报头和有效载荷附加ICV(框1018)。通过PCIE链路向端点200发送写入命令(框1020)。

在根联合体310被指示从端点200获取数据的情况下,需要读取命令(框1022),并且过程1000A继续进行。根联合体310创建具有要从中读取数据的地址的报头(框1024)。根联合体310创建指示分组的安全性质的TLP前缀(框1026)。根联合体310基于组合的报头和前缀来计算并且附加ICV(框1028)。然后,根联合体310发送读取命令(框1030)。作为读取命令,通常不存在有效载荷,并且因此可以省略加密。根联合体310最终应当从端点200接收安全完成分组(框1032)。如果加密被指示,则根联合体310解密安全完成分组的有效载荷(框1034),并且检查安全完成分组的ICV(框1036)以查看安全完成分组的有效载荷中的数据是否已经被破坏。注意,在不脱离本公开的范围的情况下,分组的有效载荷的解密和ICV的校验可以同时或以相反的顺序发生。如果ICV检查失败,则接收器可以调用与端到端循环冗余校验(ECRC)错误类似的故障。也就是说,对于存储器读取命令,将返回具有不支持的请求(UR)完成状态的完成。由于接收器无法区分自然发生的错误和攻击,因此可以使用软件进行这种确定。替代地,接收器可以终止连接,因为它已经损坏。在终止之后,可以使用新密钥建立新的加密链路。同样,可以向入侵检测系统等提供警报。还可以执行加密的其他移动(算法、密钥长度等),以促进安全(secure)或安全(safe)状态的重新建立。还可以验证TLP前缀的分组编号以停止重放攻击。然后,根联合体310可以使用接收的数据(框1038)。

注意,读取和写入命令可以以与过程1000A中呈现的顺序相反、重复或以其他顺序发生。还应当注意,ICV可以被替换为至少部分基于分组的一个或多个部分而计算的其他认证值或密码生成的标识符。同样地,虽然预期充当单调增加计数器的分组编号被用于检测重放攻击,但是在不脱离本公开的范围的情况下,可以使用其他形式的计数器等同物。

来自端点200侧的过程1000B的相似之处在于,过程1000B开始于系统初始化(框1050)。在初始化期间,端点200可以提供端点200具有安全能力的指示(框1052)。如果根联合体310启用安全通信,则根联合体310和端点200交换密钥(框1054)。在某个时刻,根联合体310发送接收写入命令,并且端点200接收写入命令(框1056)。如果有效载荷被加密,则端点200解密有效载荷(框1058),并且检查命令的ICV(框1060)。如果需要,ICV可以在有效载荷被解密之前被检查。端点200还检查分组编号,以查看该分组是否是下一分组,以防止重放攻击(或至少检测所尝试的重放攻击)。无序分组可以被丢弃。如果ICV是正确的,则端点200将来自有效载荷的数据写入报头中的地址(框1062)。这样的地址可以对应于存储器元件202中的地址。

在其他时间,读取命令被接收(框1064)。端点200检查ICV(框1066)。如果ICV是正确的,则端点200从在报头中指示的地址(在存储器元件202中)检索数据(框1068),并且创建具有报头的分组(框1070)。分组可以包括适当的分组编号。端点200然后可以创建TLP前缀(框1072)。如果加密被指示,则端点200加密有效载荷,并且计算分组的ICV(框1074),并且向分组附加ICV(框1076)。端点200然后向根联合体310发送具有有效载荷的安全完成分组(框1078)。

再次,应当注意,双向通信的性质可以相对于读取/写入命令和对应响应的来源来反转根联合体310和端点200的角色。

此外,应当注意,在存在中间交换机或桥接器(例如,交换机108)的情况下,本公开的各方面是端对端安全的,使得这种中间交换机不会影响加密。例如,交换机108可以在不检查或改变数据的情况下使分组通过。交换机108仅需要评估的是地址的报头,以便可以进行通过,并且报头不被加密。应当理解,如果不存在中间交换机,则本公开的示例性方面是有效的基于链路的安全性(例如,主机102与EP 104(1)之间的链路既是端到端安全的又是基于链路的安全的)。注意,多步PCIE系统的每个链路(例如,从主机102通过交换机108到EP106(1))可以是基于链路的安全的,尽管在这种情况下,每个组件可能需要被认证。该结构要求交换机108具有加密能力。在这种系统中,可能需要替换不具有加密能力的传统交换机。

为了实现过程1000A和1000B,新的TLP前缀被定义并且被前置到分组。同样,至少部分基于分组的部分而计算的ICV或其他认证值被附加到分组。在图5-7中示出了示例性的已修改的分组。在这点上,图5示出了安全写入分组500,安全写入分组500具有报头502、要写入端点200(或者如果源于端点200,则要写入主机300)的有效载荷504、TLP前缀506和ICV508。TLP前缀506被前置到报头502,并且ICV 508被附加在有效载荷504之后。报头502永远不会被加密,因为报头502中的信息需要用于路由目的。报头502可以通过由PCIE规范定义的字段而被很好地理解。

应当理解,可以按照AES-GCM-128中的概述对报头502进行签名(但仍不被加密)。这样的签名的报头可以称为“附加认证数据”(AAD)。

TLP前缀506包括指示TLP前缀506是安全性前缀的TLP标识符字段510。此外,TLP前缀506包括密钥编号(KN)位512、长ICV(LI)位514、有效载荷加密(PE)位516(或替代地称为TLP加密(TE)位)和分组编号字段518。应当理解,TLP前缀是根据八位部分来定义的。TLP标识符字段510是八位,并且KN位512、LI位514和PE位516是另外三位。分组编号字段518可以是二十一(21)位以提供适当大小的TLP前缀506。

根据需要或期望,有效载荷504可以被加密。如果有效载荷504被加密,则该状态通过设置PE位516来指示。如果有效载荷504中的数据仅需要避免篡改,并且不涉及监听,则有效载荷504中的数据可以不被加密。以这种方式放弃加密可以减少总开销,否则有效载荷504中的数据将在根联合体310处加密并且在端点200处解密。注意,在示例性方面,如果PE位516在读取请求中设置,则返回完成有效载荷应当被加密。注意,TLP数据是DWORD对准的(例如,4个字节)。块密码可以接受16个字节的数据(例如,块对准)。因此,填充数据可以不被发送,但是可以由接收器处的安全层附加以执行计算。

ICV 508可以是具有三十二(32)字节的长ICV或具有十六(16)字节的短ICV。ICV508的长度差在LI位514中表示。如上所述,ICV 508可以使用完整性密码算法(诸如AES-GCM-128)来计算,并且可以在安全TLP前缀、TLP报头和有效载荷中计算(即,至少部分基于分组的一个或多个部分来计算)。

注意,尽管设想特定字段和位,但是可以在不脱离本公开的范围的情况下修改这些位和字段。例如,如果仅允许一个大小的ICV,则可以省略LI位514。同样,LI位514可以更一般地指示附加在分组之后的认证值(或密码生成的标识符)的存在或不存在。尽管本公开的示例性方面设想ICV可以替换分组中的循环冗余校验(CRC)字段(例如,由PCIE规范定义的CRC字段),但是可以在CRC字段之后添加ICV或其他认证值。应当理解,除了检测篡改,ICV或其他密码生成的标识符的使用还可以检测位错误,诸如当前使用CRC进行的位错误检测。

KN位512指示哪个密钥正在被使用。如在密码学领域中理解的,密钥可以在一定时间之后到期。密钥更新是一个可以理解的过程。然而,因为本公开依赖于共享密钥,所以当第一密钥到期时,也可以对端点进行密钥更新。为了使端点知道哪个密钥正在被使用(例如,在密钥更新之前或之后),KN位512可以被切换以指示哪个密钥正在被使用。

分组编号字段518包含分组编号,该分组编号是用于防止重放攻击的单调增加的编号。根据需要或期望,分组编号还可以用于帮助检测丢失的分组。在使用中,接收器希望有效分组具有递增的分组编号。如果接收到的分组具有非顺序的分组编号,则即使ICV有效,分组也可能被丢弃。通过丢弃具有重复或非顺序分组编号的分组,重播攻击可以被避免(重用同一分组以实现重复结果)。如果由于某些原因而导致二十一位不合适,则可以缩短分组编号或仅发送最低有效位。

同样,代替对具有分组编号字段518的分组进行计数,分组编号字段518可以参考TLP编号,或者可以对某个其他元素进行计数(例如,四个分组的集合或三个写入命令的集合),只要它是单调增加的并且能够与易于验证的指标进行比较以击败重放攻击。应当理解,分组编号还可以用于将初始化向量(IV)公式化为诸如AES-GCM-128等块密码算法的输入。

在示例性方面,分组编号表示较大计数器(例如,50位)的二十一个最低有效位,以表示密钥在被刷新之前可以持续多长时间。当较大的计数器将要溢出时,可以切换KN位512以指示第二位将被使用。计数器越大,密钥被刷新的频率就越低。

为了防止重放,较大的计数器在根联合体和端点上都递增。应当理解,如果在电源循环事件期间计数器被重置,则重放攻击可以被启用。因此,在示例性方面,计数器在电源循环期间被维持。为此,一侧可以将最后的计数器值存储在安全的非易失性存储器中。注意,在会话启动期间交换密钥的设备可以重新启动计数器。配置寄存器也可以用于设置计数器。作为另一选择,每种类型的PCIE TLP(已发布、未发布、完成)都可以具有单独的计数器。

类似地,图6示出了具有报头602、TLP前缀606和ICV 608的安全读取分组600。TLP前缀606被前置到报头602,并且ICV 608被附加在报头602之后。由于这是一条读取命令,因此没有有效载荷。头602永远不会被加密,因为报头602中的信息需要用于路由目的。报头602通过由PCIE规范定义的字段被很好地理解。

应当理解,可以按照AES-GCM-128中的概述对报头602进行签名(但仍不加密)。这样的签名的报头可以称为“附加认证数据”(AAD)。

TLP前缀606包括指示TLP前缀606是安全性前缀的TLP标识符字段610。此外,TLP前缀606包括KN位612、LI位614、PE位616和分组编号字段618。应当理解,TLP前缀是根据八位部分来定义的。TLP标识符字段610是八位,并且KN位612、LI位614和PE位616是另外三位。分组编号字段618可以是二十一(21)位以提供适当大小的TLP前缀606。TLP前缀606的子部分如上所述起作用。PE位616指示是否应当对所返回的有效载荷进行加密。

应当理解,与图5的TLP前缀506一样,可以在不脱离本公开的情况下改变、重命名或替代地实现TLP前缀606的位和字段。

类似地,图7示出了响应于读取命令的安全完成分组700。安全完成分组700具有报头702、要写入端点的有效载荷704、TLP前缀706和ICV 708。TLP前缀706被前置到报头702,并且ICV 708被附加在有效载荷704之后。报头702永远不会被加密,因为报头702中的信息需要用于路由目的。报头702通过由PCIE规范定义的字段而被很好地理解。

应当理解,可以按照AES-GCM-128中的概述对报头702进行签名(但仍不加密)。这样的签名的报头可以称为“附加认证数据”(AAD)。

TLP前缀706包括指示TLP前缀706是安全性前缀的TLP标识符字段710。此外,TLP前缀706包括KN位712、LI位714、PE位716和分组编号字段718。应当理解,TLP前缀是根据八位部分来定义的。TLP标识符字段710是八位,并且KN位712、LI位714和PE位716是另外三位。分组编号字段718可以是二十一(21)位以提供适当大小的TLP前缀706。

应当理解,与图5的TLP前缀506一样,可以在不脱离本公开的情况下改变、重命名或替代地实现TLP前缀706的位和字段。

图8示出了安全信令的各方面在堆栈中的何处发生。在这点上,图8示出了具有传输器802和接收器804的系统800。在传输器802中,在事务层806,与TLP前缀(例如,506、606、706)一起生成TLP报头(例如,502、602、702)并且可选地对有效载荷进行加密。基于此,计算并且附加ICV(例如,508、608、708)。然后,将组合的分组传递到数据链路层808和物理层810,在物理层810,分组通过PCIE链路812被发送给接收器804。在接收器804处,分组穿过物理层814和数据链路层816,之后到达事务层818,在事务层818,有效载荷被解密(包括任何填充),ICV被验证并且TLP报头被评估以将有效载荷输出到适当的地址。如上所述,在端到端安全系统中,中间交换机108不改变TLP分组并且不需要解密或验证数据。PCIE端口可以基于安全TLP前缀是否被前置而发送安全或不安全的TLP分组。应当理解,必须返回具有安全的TLP前缀的安全读取请求TLP的完成。

应当理解,正在生成安全请求的RC 110应当知道应当使用哪个密钥和计数器来保护数据。如果只有一个端点200是安全的,则这种确定相对简单。但是,如果多个端点(例如,104(1)-104(N))正在使用安全消息传递,则该确定是重要的。如上所述,密钥和计数器是端到端属性,并且对于单个RC 110,在PCIE链路之间将是不同的。因此,RC 110需要能够辨别目的地端点。一种解决方案是使用将在RC 110内嗅探数据以确定目的地并且向PHY提醒目的地的软件。第二解决方案是定义PCIE能力,其中PCIE驱动程序将构建地址范围和对应安全属性表。

安全存储器映射:

注意,第二行中的虚线可以指示不安全的端点,或者如果地址不在表中,则可以推断出不安全的性质。

注意,端点可以具有与同一端点的不同存储器区域相对应的多个条目(例如,用于不同功能),但是由于端点相同,因此仍将使用相同的密钥。

当存在诸如图1的交换机108等交换机时,可以存在一些附加预防措施。这样的交换机应当被信任和认证。同样,交换机108应当阻止在安全链路上接收的业务在不安全链路上发送。密钥管理实体应当通过整个PCIE拓扑来维持安全的密钥对。可以从最接近RC110的链路开始并且然后向外移动顺序地建立安全PCIE链路,以帮助确保端到端链路是安全的(例如,在图1中,首先是链路112(N+1),然后是链路114(1))。注意,交换机108可能存在由内部漏洞引起的其他漏洞。例如,从端点106(1)到端点106(M)的分组可以通过交换机108内的内部导体。如果数据被端到端加密,则数据在内部导体上保持安全。但是,如果安全性是基于链路的,则数据可能在到达交换机108时未被加密,然后在离开交换机108时被重新加密,从而使数据在内部导体上不受保护。替代地,可以提供其他安全措施以在这种情况下保护数据。

根据本文中公开的各方面的用于PCIE系统的安全技术可以设置在任何基于处理器的设备中或集成到任何基于处理器的设备中。示例包括但不限于机顶盒、娱乐单元、导航设备、通信设备、固定位置数据单元、移动位置数据单元、全球定位系统(GPS)设备、移动电话、蜂窝电话、智能电话、会话发起协议(SIP)电话、平板电脑、平板手机、服务器、计算机、便携式计算机、移动计算设备、可穿戴计算设备(例如,智能手表、健康或健身跟踪器、眼镜等)、台式计算机、个人数字助理(PDA)、显示器、计算机显示器、电视机、调谐器、收音机、卫星广播、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光盘(DVD)播放器、便携式数字视频播放器、汽车、车辆组件、航空电子系统、无人机、汽车、车辆和多旋翼飞行器。

在这点上,图9是示例性移动终端900(诸如智能电话、移动计算设备平板电脑等)的系统级框图。移动终端900包括应用处理器904(有时称为主机),该应用处理器904通过通用闪存(UFS)总线908与大容量存储器元件906通信。应用处理器904还可以通过显示器串行接口(DSI)总线912连接到显示器910,并且通过相机串行接口(CSI)总线916连接到相机914。诸如麦克风918、扬声器920和音频编解码器922等各种音频元件可以通过串行低功率芯片间多媒体总线(SLIMbus)924耦合到应用处理器904。此外,音频元件可以通过SOUNDWIRE总线926彼此通信。调制解调器928也可以耦合到SLIMbus 924和/或SOUNDWIRE总线926。调制解调器928还可以通过PCIe总线930和/或系统电源管理接口(SPMI)总线932连接到应用处理器904。诸如PCIE总线930等PCIE总线可以受益于本公开的示例性方面。

继续参考图9,SPMI总线932也可以耦合到无线局域网(LAN或WLAN)IC(LAN IC或WLAN IC)934、电源管理集成电路(PMIC)936、伴随IC(有时称为桥接芯片)938和射频IC(RFIC)940。应当理解,单独的PCI总线942和944也可以将应用处理器904耦合到伴随IC 938和WLAN IC 934。应用处理器904还可以通过传感器总线948连接到传感器946。调制解调器928和RFIC 940可以使用总线950进行通信。

继续参考图9,RFIC 940可以通过射频前端(RFFE)总线958耦合到一个或多个RFFE元件,诸如天线调谐器952、开关954和功率放大器956。此外,RFIC 940可以通过总线962耦合到包络跟踪电源(ETPS)960,并且ETPS 960可以与功率放大器956通信。包括RFIC 940在内的RFFE元件可以统称为RFFE系统964。应当理解,RFFE总线958可以由时钟线和数据线(未示出)形成。

应当理解,设计者在安全性方面可以具有不同的优先级。在使用基于链路的安全性与端到端安全性时需要权衡。这些差异在随附的第二附录中指出。

本领域技术人员将进一步了解,结合本文中公开的各方面而描述的各种说明性逻辑块、模块、电路和算法可以实现为电子硬件、存储在存储器或另一计算机可读介质中并且由处理器或其他处理设备执行的指令、或两者的组合。作为示例,本文中描述的设备可以用在任何电路、硬件组件、IC、或IC芯片中。本文中公开的存储器可以是任何类型和大小的存储器,并且可以被配置为存储期望的任何类型的信息。为了清楚地说明这种可互换性,上面已经在功能方面对各种说明性的组件、块、模块、电路和步骤进行了总体描述。如何实现这样的功能取决于特定应用、设计选择和/或强加于整个系统的设计约束。技术人员可以针对每个特定应用以不同方式实现所描述的功能,但是这样的实现决策不应当被解释为导致脱离本公开的范围。

结合本文中公开的各方面而描述的各种说明性逻辑块、模块和电路可以用被设计为执行本文中描述的功能的处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、离散门或晶体管逻辑、分立硬件组件或其任何组合来实现或执行。处理器可以是微处理器,但是在替代方案中,处理器可以是任何传统处理器、控制器、微控制器或状态机。处理器还可以实现为计算设备的组合(例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP核、或任何其他这样的配置)。

本文中公开的各方面可以实施为硬件和存储在硬件中的指令,并且可以驻留在例如随机存取存储器(RAM)、闪存、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、寄存器、硬盘、可移动磁盘、CD-ROM或本领域已知的任何其他形式的计算机可读介质中。示例性存储介质耦合到处理器,使得处理器可以从存储介质读取信息和向存储介质写入信息。在替代方案中,存储介质可以是处理器的组成部分。处理器和存储介质可以驻留在ASIC中。ASIC可以驻留在远程站中。在替代方案中,处理器和存储介质可以作为分立组件驻留在远程站、基站或服务器中。

还应当注意,描述在本文中的任何示例性方面中描述的操作步骤以提供示例和讨论。所描述的操作可以以除了所示顺序之外的很多不同顺序来执行。此外,在单个操作步骤中描述的操作实际上可以在很多不同的步骤中执行。另外,在示例性方面中讨论的一个或多个操作步骤可以组合。应当理解,流程图中示出的操作步骤可以进行很多不同的修改,这对于本领域技术人员来说是很清楚的。本领域技术人员还将理解,信息和信号可以使用各种不同技术和技艺中的任何一种来表示。例如,在整个以上描述中可以参考的数据、指令、命令、信息、信号、位、符号和芯片可以由电压、电流、电磁波、磁场或粒子、光场或粒子或其任何组合来表示。

提供先前对本公开的描述是为了使得本领域技术人员能够制作或使用本发明。对于本领域技术人员来说,对本公开的各种修改是很清楚的,并且本文中定义的一般原理可以应用于其他变体。因此,本发明不旨在限于本文中描述的示例和设计,而是与符合本文中公开的原理和新颖特征的最宽范围相一致。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号