CN107004097B - 用于片上系统平台的安全插件 - Google Patents

用于片上系统平台的安全插件 Download PDF

Info

Publication number
CN107004097B
CN107004097B CN201580063003.2A CN201580063003A CN107004097B CN 107004097 B CN107004097 B CN 107004097B CN 201580063003 A CN201580063003 A CN 201580063003A CN 107004097 B CN107004097 B CN 107004097B
Authority
CN
China
Prior art keywords
component
message
cryptographic
interconnect
security
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.)
Active
Application number
CN201580063003.2A
Other languages
English (en)
Other versions
CN107004097A (zh
Inventor
M·R·萨斯特里
A·纳伦德拉特里维迪
龙门
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Priority to CN202010661342.3A priority Critical patent/CN111859472B/zh
Publication of CN107004097A publication Critical patent/CN107004097A/zh
Application granted granted Critical
Publication of CN107004097B publication Critical patent/CN107004097B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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/72Protecting 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 cryptographic circuits
    • 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
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • G06F2211/008Public Key, Asymmetric Key, Asymmetric Encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/76Proxy, i.e. using intermediary entity to perform cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Small-Scale Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本文描述了用于片上系统(SoC)安全插件的系统和技术。可以在互连端点处接收来自SoC组件的组件消息。互连端点可以经由安全互连将组件消息传递到安全组件。安全组件可以使用密码引擎来保护组件消息,以创建安全消息。安全消息经由安全互连传递回互连端点,并由互连端点跨互连发送。

Description

用于片上系统平台的安全插件
优先权要求
本申请要求于2014年12月19日提交的美国专利申请序号14/577,812的权益,其全部内容通过引用并入本文。
技术领域
本文描述的实施例总体上涉及片上系统(SoC)互连,并且更具体地涉及用于SoC平台的安全插件。
背景技术
SoC是在单个芯片基板上包括多个计算机组件的集成电路(IC)。SoC可以包括任何数量的执行诸如图形处理、存储器管理、通用或专用处理等功能的组件块(例如,知识产权块或IP块),这里被称为SoC组件。SoC还可以包括经由互连(例如,总线)将各种SoC组件彼此连接(例如,芯片内的通信)或者与SoC外部的组件连接(例如,芯片间的通信)的结构。互连端点可以将SoC组件接口到互连,例如,通过将SoC组件数据打包成互连消息以用于在互连上传送,以及将互连消息解包以用于传送到SoC组件。
发明内容
本公开的一个方面涉及一种用于片上系统平台的装置,该装置包括:密码电路,其包括:从多个密码引擎中选择的密码引擎;以及通用于多个密码引擎的标准接口,其中,在操作中,由片上系统互连接口接收的来自发起方组件的未加密消息是经由标准接口提供给密码引擎的,以产生被发送到目的地组件的经加密消息,其中,标准接口是消息传递总线,其中发送对特定密码引擎的请求并将对特定密码引擎的请求转换到该密码引擎的特定硬件接口并且其中,标准接口被配置为针对多个密码引擎的每个密码引擎来执行这样的转换,由此使得该密码引擎可用于片上系统互连结构而与从多个密码引擎中选择哪个密码引擎无关;密码控制器,其用于管理由密码引擎用于创建经加密消息的密码密钥;以及密码状态管理器,其用于管理发起方组件与目的地组件之间的密码会话的密码会话状态。
本公开的另一个方面涉及一种使用用于片上系统平台的安全插件的方法,该方法包括:在总线端点处接收来自片上系统组件的组件消息;由总线端点经由安全互连将组件消息传递到安全组件;由安全组件经由安全互连来接收组件消息;使用密码引擎来加密组件消息,密码引擎是多个密码引擎中的一个,安全互连对于多个密码引擎中的全部是相同的,其中,加密包括:在安全互连的消息传递总线上发送对密码引擎的请求,由此将请求转换到密码引擎的特定硬件接口,其中,安全互连被配置为针对多个密码引擎的每个密码引擎来执行这样的转换,由此使得该密码引擎可用于片上系统互连结构而与从多个密码引擎中选择哪个密码引擎无关;经由安全互连将经加密消息传送到总线端点;以及由总线端点跨互连来发送经加密消息。
本公开的另一个方面涉及一种包括用于片上系统平台的安全插件的系统,该系统包括用于执行上述方法的模块。
本公开的另一个方面涉及一种机器可读介质,其上存储有指令,该指令在被机器执行时使得机器执行用于片上系统平台的安全插件的操作,该操作实现上述方法。
附图说明
在附图中,不一定按比例绘制,同样的数字可以在不同的视图中描述类似的组件。具有不同的字母后缀的同样的数字可以表示类似组件的不同实例。附图以示例而非限制的方式总体地示出了在本文档中讨论的各种实施例。
图1是根据实施例的用于SoC平台的安全插件的系统的示例的框图。
图2示出了根据实施例的用于SoC平台的安全插件的系统中的数据流的示例。
图3-6示出了根据实施例的用于SoC平台的安全插件的系统中的互连消息的示例。
图7是示出根据实施例的用于SoC平台的安全插件的方法的示例的泳道流程图。
图8是示出可以在其上实现一个或多个实施例的机器的示例的框图。
具体实施方式
随着SoC在市场上的新兴主导,SoC平台正在成为精通且全面的平台,其包括大量的SoC组件,范围从视频/音频/图像处理、到极大数量的传感器、到低级通用处理器、以及输入-输出接口。固定功能且可编程的SoC组件使得制造商能够在市场上提供差异化。
可以将SoC组件设计为在多个平台中使用并在特定平台的安全性需求已经定义之前实现。对于SoC组件设计人员而言,该设计周期可能使得确定要并入到给定的SoC组件中用于解决目标平台的安全性需求的特征成为挑战。由于平台资产(密钥、配置值等)跨结构/互连从IP块传输到另一IP块,所以数据的完整性和机密性变得至关重要。对于目标平台的示例安全性需求可以包括处理芯片内攻击——例如,使用例如调试硬件或软件在两个SoC组件之间的互连上进行消息窥探或修改——或者包括处理芯片间攻击——例如,对经由芯片间互连的第一SoC上的SoC组件与第二SoC上的SoC组件之间的消息进行窥探或修改。
同时,通过定义普通结构(包括组件互连)的SoC融合正在驱动SoC组件跨各种SoC平台(范围从手机/平板计算机/微型服务器到客户端/服务器平台)的重用和快速集成。因此,已经识别了以下示例问题:
·SoC平台(例如,14nm晶体管工艺)需要特定的SoC组件,其具有建立在较旧一代的工艺技术(例如,45nm晶体管工艺)上的密码电路。这导致较少程度优化的平台。
·从不同组开发的SoC组件可能具有不一致的安全实现,因为一些组使用具有良好的安全实践的更大程度优化的电路,而其它组则以专门/定制的密码设计而结束。
·鉴于SoC结构的多样性,集成SoC组件需要开发包装器和桥接器,这增加了管芯区域,并需要附加的实现和确认资源。
·基于目标平台的安全性需求来集成SoC组件的密码/安全性成为繁重的任务。
作为结果,安全特征的实现在调度影响方面面临着艰苦的斗争,并且可能无法及时使产品面市。为了解决这些问题,可以将模块化且可伸缩的微架构安全插件(例如,安全组件或安全块)用作具有经由对SoC互连结构的标准接口可用的各种密码引擎的SoC组件。如本文所使用的,安全插件是SoC平台中的硬件实现的功能块。通过使用标准接口,可以在不重新设计其它SoC组件的情况下选择不同的密码引擎来满足安全性和制造目标。例如,SoC设计人员可以选择四种或五种不同的高级加密标准(AES)SoC组件实现。没有安全插件,每种实现可能具有不同的接口,SoC集成团队必须适应集成任何一种实现。这可能表示对他们面市时间的挑战。然而,使用所描述的密码引擎,SoC集成人员可以在不重新设计其它SoC组件的连接的情况下选择实现中的任何实现。因此,SoC集成团队不需要在安全电路的内部或安全电路与控制器之间的总线接口上浪费时间。相反,他们可以基于其安全性和制造目标——例如,加密吞吐量、功耗、管芯尺寸、成本等——选择合适的策略,并对在不进行附加设计的情况下就满足这些目标的安全插件进行实例化。此外,通过在SoC互连的端点集成插件,单独的SoC组件不需要关注安全性,因为所有通信都将受益于由所描述的插件提供的安全性。附加的细节提供如下。
图1是根据实施例的用于SoC平台的安全插件的系统100的示例的框图。系统100可以包括经由互连170连接的第一SoC管芯105和第二SoC管芯175。第一SoC管芯105可以包括多个SoC组件(例如,组件A 110、组件B 115、以及组件C 120),其经由互连端点125以彼此或管芯外组件(例如,第二SoC管芯的组件D 195)方式中的任何一个或多个方式通信地耦合。互连端点125可以包括安全组件130、面向组件的收发器155、安全互连160、以及互连封装器165。类似于第一SoC管芯105,第二SoC管芯175可以包括一个或多个SoC组件(例如,组件D195)和互连端点180。类似于互连端点125,互连端点180可以包括安全组件185、互连封装器186、安全互连187、以及面向组件的收发器188。在示例中,互连端点180和安全组件185的组件分别镜像互连端点125和安全组件130的组件。
面向组件的收发器155可以被布置(例如,配置、设计、制造、结构化等)为发送或接收到组件(例如,组件A 110、组件B 115、组件C 120、或组件D 195)的组件消息。如本文所使用的,组件消息是单独的SoC组件与互连端点125之间的通信,例如,寄存器读取或写入(例如,到存储器映射的输入-输出寄存器)或直接存储器访问(DMA)消息。
安全互连160可以被布置为将面向组件的收发器155和互连封装器165的消息传递管线连接到安全组件130。安全互连160可以符合安全组件130的标准接口。在操作期间,可以将在互连封装器165处从面向组件的收发器155接收的组件消息或者从互连170接收的组件消息传递到安全组件130,以在继续到其目的地之前分别对该消息进行加密或解密。在示例中,互连消息报头分析器可以存在于安全组件130、安全互连160、或互连端点125中的其它地方中,以读取互连消息报头并确定消息是否为经加密消息,并且如果消息为经加密消息则使得安全组件130对消息进行解密或认证。
互连封装器165可以被布置为将组件消息变换成互连消息,并且反之亦然。如本文所使用的,互连消息被结构化,以便于符合互连170的消息传递标准。示例互连消息在图3-6中示出,包括图3中的基本互连消息。
安全组件130可以包括密码电路135、密码控制器140、以及状态管理器145。在示例中,安全组件可以包括访问控制器150。密码电路135可以包括从多个密码引擎中选择的密码引擎。例如,SoC组件密码引擎库可以对SoC设计人员可用。在SoC设计期间,设计人员可以具有一个或多个安全性或制造目标。政策可以会体现这些目标,并被应用于密码引擎的特性,以选择合适的引擎。示例目标可以包括成本、管芯尺寸、功耗、数据吞吐量、密码强度等。例如,各种密码引擎可以实现AES。AES实现可以符合带宽需求,例如,对于一般将使用大的管芯尺寸或占用大量的功率的高性能实现而言大于10吉比特每秒(Gbps),对于与高性能实现相比可以具有较小的管芯尺寸或消耗较少的功率的中等性能实现而言大于100兆比特每秒(Mbps),并且对于小的(例如,大约10000个门)管芯尺寸实现而言大约1Mbps。因此,如果SoC规范要求1Gbps的加密带宽,则匹配该吞吐量的实现可以由具有中等性能AES块的SoC积分器来实例化。
密码引擎库还可以包括执行其它安全操作的引擎,例如,散列函数、完整性引擎(例如,消息认证码(MAC)引擎)、或公共密钥操作(Rivest-Shamir-Adleman密码系统(RSA)、椭圆曲线加密(ECC)等)。在示例中,密码电路135可以包括从多个完整性引擎中选择的完整性引擎,并且标准接口通用于多个完整性引擎。因此,标准接口操作以将互连端点125的消息传递管线连接到密码引擎和完整性引擎中的一个或其二者。在示例中,可以通过芯片尺寸、功耗、成本、吞吐量性能(例如,每秒的比特数)、密码性能(例如,破解的难度水平)、制造考虑因素(例如,不同特征尺寸)等中的至少一个来对多个密码引擎或完整性引擎进行分类。这些分类可以用于选择密码引擎或完整性引擎以满足SoC设计人员的设计目标。
密码电路还可以包括通用于多个密码引擎的标准接口。标准接口可以是在密码引擎和请求方(例如,安全互连160)之间双向的。通用于各种可能的密码引擎允许SoC设计人员在SoC设计期间的几乎任何时间选择特定的密码引擎,因为附加的连接接口、包装器等并非必须使用密码引擎。在示例中,标准接口是消息传递总线,其中对特定密码引擎的请求被发送并转换成密码引擎的特定硬件接口。
密码控制器140可以被布置为管理由密码引擎使用的密码密钥。在示例中,种子(例如,初始化)密钥在其被制造时可以被指定给密码控制器140。在示例中,在SoC的操作期间,加密控制器140可以被布置为执行与其它端点组件(例如,安全组件185)的密钥协商,以例如获得会话密钥。在示例中,可以从诸如现场内可编程熔断器、只读存储器等的现场可编程设备中获得密码密钥(包括会话密钥)。在示例中,会话密钥在不同的密码会话之间是不同的。密码控制器140将密码密钥提供给密码电路,并与密码状态管理器145进行通信,以维护通信会话状态。
密码状态管理器可以被布置为管理发起方组件(例如,组件A 110)与目的地(例如,响应方)组件之间的密码会话状态。在示例中,密码状态管理器145可以维护用于管理密码会话状态的表。在示例中,该表可以包括针对每个密码会话的目的地SoC组件标识符、序列号、以及会话密钥字段。使用针对不同会话的不同会话密钥的以上示例,到不同SoC组件的事务可以使用不同的会话密钥。因此,危及到组件D 195的事务不会危及到组件B 115的事务。序列号可以用于阻碍重放攻击以防止之前的会话数据被用于修改会话的当前状态。在示例中,会话密钥和序列号中的一个或其二者由目的地SoC组件标识符来索引。
访问控制器150可以被布置为管理SoC组件的访问权限。访问控制器150可以包括发起方安全属性注册表,其被布置为存储SoC组件的访问权限。访问控制器150还可以包括过滤器,其用于响应于基于发起方安全属性注册表确定消息(例如,或者是组件消息,或者是互连消息)的发起方组件不能访问(例如,发送消息到)目的地组件而对该消息进行阻止。在示例中,访问控制器150可以访问消息报头中的安全属性索引,以确定是否允许消息事务。
通过使用如上面所描述的安全组件130,可以在不重新设计SoC组件的情况下保护所有的SoC组件间和SoC组件内通信。因此,系统100与例如需要SoC组件级兼容性的防盗硬件组件加密(例如,从图形处理器到显示驱动器的加密)不同地操作。系统100提供更安全的环境,这是因为使用独立于单独的SoC组件的密码实现来保护每次通信。此外,密码引擎实现的灵活本质允许满足安全性和制造目标的灵活的架构。
图2示出了根据实施例的用于SoC平台的安全插件的系统200中的数据流的示例。系统200的组件可以由上面关于图1讨论的组件来实现。系统200可以包括发起方组件205、具有安全组件215的互连端点210、包括互连220的SoC结构、具有安全组件230的另一互连端点225、以及目的地组件235。实线箭头表示在互连端点和SoC组件的边界内的消息流。该链路由SoC组件独有,并且一般不受益于密码保护。点线表示安全消息流(例如,加密的或安全的防篡改消息),由于所表示的链路不由给定的SoC组件控制。
如所示出的,发起方组件205向服务于发起方组件的互连端点210发送消息。互连端点210可以将消息传递到其安全组件215以保护消息,创建安全消息。可以将安全消息返回到互连端点以包装到互连消息中。互连消息可以经由互连220发送到互连端点225。互连端点225读取互连消息的报头并确定其是安全消息。响应于该确定,互连端点225将互连消息的安全部分转发到其安全组件230。在示例中,安全组件230可以在此时与安全组件215进行协商以获得用于该事务的会话密钥。然而,在示例中,会话密钥协商可以在由安全组件215接收到对保护组件消息的请求之间的任何时间发生,并且会话密钥协商可以由安全组件215发起。
在示例中,互连端点210和225在相同的SoC管芯上(例如,执行芯片内通信)。在示例中,互连端点210和225不在相同的SoC管芯上(例如,执行芯片间通信)。通过如图2所示来保护SoC组件通信,可以通过在恶意行为在SoC互连220上移动时拒绝其访问消息而对其进行阻碍。此外,可以使用任何SoC组件,而不考虑SoC设计人员选择了哪个或多个安全性配置。
图3-6示出了根据各种实施例的用于SoC平台的安全插件的系统中的互连消息的示例。
图3示出了根据实施例的基本(例如,不安全的)互连消息的组成部分。基本互连消息可以包括消息报头305和消息数据有效载荷310。在该示例中,消息报头305专用于互连的协议。此外,消息数据有效载荷310可以是整个组件消息或组件消息的一部分(例如,要写入寄存器的数据,而寄存器地址可以放置在消息报头305中)。
图4示出了根据实施例的经加密消息的组成部分。在通过密码引擎(例如,上面关于图1所描述的密码引擎)对组件消息的全部或一部分进行加密之后,可以创建经加密消息,以创建经加密消息数据有效载荷320。经加密消息还可以包括例如由密码控制器或密码电路提供的安全报头315。安全报头315至少将消息标识为到接收方互连端点的经加密消息。此外,在示例中,安全报头315可以包括标识信息,以准许接收方安全组件对经加密消息数据有效载荷进行解密。例如,安全报头315可以标识发起安全组件到目的地安全组件,以准许二者之间的会话密钥协商。经加密消息还可以包括消息报头305,以准许互连用于递送消息,而不需要对消息的加密特性进行任何关注。
图5示出了根据实施例的完整性保护的消息的组成部分。完整性保护的消息可以正如基本互连消息一样包括消息报头305和消息数据有效载荷310(未加密)。附加地,完整性保护的消息可以包括完整性组件325(例如,MAC、密码散列等)和安全报头315。
图6示出了根据实施例的加密且完整性保护的消息的组成部分。加密且完整性保护的消息对于组件消息数据提供保密和篡改保护二者。加密且完整性保护的消息可以包括如在所有互连消息中都发现的消息报头305。附加地,加密且完整性保护的消息可以包括如上面所描述的安全报头315、经加密消息数据有效载荷320、以及完整性组件325。
图7是示出根据实施例的用于SoC平台的安全插件的方法700的示例的泳道流程图。方法700的操作可以由上面关于图1或图2所列出的组件执行,或者经由计算机硬件(例如,电路组,如下面关于图8所描述的)执行。操作705、710以及730由SoC互连的互连端点组件执行,并且操作715、720以及725由通信地耦合到互连端点的安全组件执行。
在操作705处,可以接收来自SoC组件(例如,发起组件)的组件消息。
在操作710处,可以经由安全互连将组件消息传递到安全组件。
在操作715处,可以由安全组件接收组件消息。
在操作720处,可以由安全组件保护组件消息。在示例中,为了进行保护,可以由安全组件使用密码引擎对组件消息进行加密,该密码引擎是对其而言安全互连相同的多个密码引擎中的一个。在示例中,对组件消息进行加密可以包括添加来自安全组件的消息完整性电路的消息完整性元素。
在示例中,保护组件消息包括添加来自安全组件的消息完整性电路的消息完整性元素,而不对组件消息数据进行加密。消息完整性元素的操作可以包括读取互连消息的安全报头,并使用完整性元素来验证消息有效载荷的完整性。例如,可以由互连端点通过互连接收第二安全消息。端点可以将第二经加密消息中继到安全组件,以使用完整性元素和完整性引擎来验证消息有效载荷的完整性。例如,有效载荷的密码散列可以存储在完整性元素中。完整性引擎可以根据有效载荷计算散列,并将散列与完整性元素中的散列进行比较。如果散列匹配,则有效载荷在运送过程中未改变。在示例中,安全组件可以响应于不能够验证第二经加密消息的完整性而放弃第二安全消息。
在操作725处,经加密消息可以经由安全互连传送到互连端点。在示例中,安全组件可以建立密码会话以用于SoC组件与目的地组件之间的通信。在示例中,密码引擎使用密码会话的会话密钥来对组件消息加密。在示例中,会话密钥对应于通信流,而不对应于互连的其它通信流。
在操作730处,经加密消息可以跨互连发送。在示例中,从总线端点发送的每个消息由安全组件进行加密。在示例中,对总线端点为其终端的总线进行遍历的每个消息在总线端点中由相应的安全组件进行加密。因此,整个互连由安全通信组成。
上面示出的操作总体上描述了出站(outbound)消息的过程。相反的过程可以接受入站(inbound)安全消息,并且不保护用于递送到SoC组件的这些消息。例如,可以通过互连接收第二经加密消息。可以读取第二经加密消息的消息报头(例如,安全报头),以确定其是经加密消息。经加密消息可以经由安全互连从互连端点传递到安全组件。然后可以通过安全组件和递送到端点的组件消息内容对第二经加密消息进行解密。然后,端点可以将组件消息内容发送到目的地SoC组件。
在示例中,访问控制器可以操作以实施SoC组件访问限制。例如,可以接收包括发起方标识符(例如,SoC组件ID)和目的地标识符(例如,另一SoC组件ID)的第二组件消息。安全组件可以访问发起方安全属性注册表,以基于发起方标识符和目的地标识符来确定发起方组件不能访问目的地组件。然后安全组件可以响应于确定发起方组件不能访问目的地组件而丢弃第二组件消息。此过程也可以作用于接收端,其中访问控制器使用访问控制器来丢弃接收到的互连消息(与组件消息相反)。
图8示出了示例机器800的框图,在该示例机器800上可以执行本文讨论的技术(例如,方法)中的任何一种或多种。在替代的实施例中,机器800可以作为独立设备操作,或者可以连接(例如,联网)到其它机器。在联网的部署中,机器800可以在服务器机器、客户端机器的容量中运行,或者在服务器-客户端网络环境二者中运行。在示例中,机器800可以用作对等(P2P)(或其它分布式的)网络环境中的对等机。机器800可以是个人计算机(PC)、平板式PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、网络设备、网络路由器、交换机或网桥、或能够执行指定要由该机器采取的动作的指令(顺序的或以其它方式的)的任何机器。此外,虽然仅示出了单个机器,但是术语“机器”还应被视为包括单独或共同执行一组(或多组)指令以执行本文所讨论的方法中的任何一种或多种方法的任何机器集合,例如,云计算、软件即服务(SaaS)、其它计算机集群配置。
如本文所描述的示例可以包括逻辑或多个组件或机制,或者可以由逻辑或多个组件或机制来操作。电路集(也被称为一组电路或电路组)是在包括硬件(例如,简单电路、门、逻辑等)的有形实体中实现的电路的集合。电路集成员关系可能随着时间和底层硬件可变性而变化。电路集包括在运行时可以单独地或组合地执行指定操作的成员。在示例中,电路集的硬件可以被不变地设计成执行特定的操作(例如,硬连线)。在示例中,电路集的硬件可以包括可变地连接的物理组件(例如,执行单元、晶体管、简单电路等),其包括物理地修改(例如,不变质量的粒子的磁性地、电地可移动放置等)的计算机可读介质以对特定操作的指令进行编码。在连接物理组件时,硬件构成部分的基本电气特性改变,例如,从绝缘体变为导体,反之亦然。该指令使得嵌入式硬件(例如,执行单元或加载机制)能够经由可变连接来创建硬件中的电路集的成员,以在操作时执行特定操作中的部分特定操作。相应地,当设备运行时,计算机可读介质通信地耦合到电路集成员的其它组件。在示例中,物理组件中的任何物理组件可以用于多于一个电路集的多于一个成员中。例如,在运行中,执行单元可以在一个时间点时用于第一电路集的第一电路并由第一电路集中的第二电路重新使用,或者在不同的时间时由第二电路集中的第三电路使用。
机器(例如,计算机系统)800可以包括硬件处理器802(例如,中央处理单元(CPU)、图形处理单元(GPU)、硬件处理器核心或其任何组合)、主存储器804、以及静态存储器806,其中的一些或全部可以经由互连(例如,总线)808彼此通信。机器800还可以包括显示单元810、字母数字输入设备812(例如,键盘)、以及用户界面(UI)导航设备814(例如,鼠标)。在示例中,显示单元810、输入设备812以及UI导航设备814可以是触摸屏显示器。机器800可以附加地包括存储设备(例如,驱动单元)816、信号产生设备818(例如,扬声器)、网络接口设备820、以及一个或多个传感器821,例如,全球定位系统(GPS)传感器、罗盘、加速度计或其它传感器。机器800可以包括输出控制器828,例如,串行(例如,通用串行总线(USB)、并行或其它有线或无线(例如,红外(IR)、近场通信(NFC)等)连接以与一个或多个外围设备(例如,打印机、读卡器等)通信或对其进行控制。
存储设备816可以包括机器可读介质822,其上存储有由本文所描述的技术或功能中的任何一种或多种体现或利用的一组或多组数据结构或指令824(例如,软件)。在由机器800执行指令期间,指令824还可以完全地或至少部分地驻留在主存储器804内、在静态存储器806内、或者在硬件处理器802内。在示例中,硬件处理器802、主存储器804、静态存储器806或存储设备816中的一个或任何组合可以构成机器可读介质。
虽然机器可读介质822被示为单个介质,但是术语“机器可读介质”可以包括被配置为存储一个或多个指令824的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。
术语“机器可读介质”可以包括任何以下介质:能够存储、编码或携带由机器800执行的指令并且使得机器800执行本公开的技术中的任何一种或多种技术,或者能够存储、编码或携带由这些指令使用或与这些指令相关联的数据结构。非限制性机器可读介质示例可以包括固态存储器,以及光介质和磁介质。在示例中,大容量机器可读介质包括具有多个具有不变(例如,静止)质量的粒子的机器可读介质。相应地,大容量机器可读介质不是暂时性的传播信号。大容量机器可读介质的具体示例可以包括:非易失性存储器,例如,半导体存储器设备(例如,电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))和闪速存储器设备;磁盘,例如,内部硬盘和可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM磁盘。
可以进一步通过使用传输介质的通信网络826经由网络接口设备820利用多个传输协议(例如,帧中继、因特网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、超文本传输协议(HTTP)等)中的任何一个传输协议来发送或接收指令824。示例通信网络可以包括局域网(LAN)、广域网(WAN)、分组数据网络(例如,因特网)、移动电话网络(例如,蜂窝网络)、普通老式电话(POTS)网络、和无线数据网络(例如,被称为
Figure GDA0002835824020000121
的电气和电子工程师协会(IEEE)802.11标准系列、被称为
Figure GDA0002835824020000122
的IEEE 802.16标准系列)、IEEE802.15.4标准系列、对等(P2P)网络,以及其它。在示例中,网络接口设备820可以包括用于连接到通信网络826的一个或多个物理插孔(例如,以太网、同轴电缆或电话插孔)或一个或多个天线。在示例中,网络接口设备820可以包括使用单输入多输出(SIMO)、多输入多输出(MIMO)或多输入单输出(MISO)技术中的至少一种技术进行无线通信的多个天线。术语“传输介质”应被视为包括能够存储、编码或携带由机器800执行的指令的任何无形介质,并且包括数字或模拟通信信号或促进这种软件的通信的其它无形介质。
附加注释和示例
示例一包括主题(例如,设备、装置或机器),其包括:密码电路,其包括:从多个密码引擎中选择的密码引擎;以及通用于多个密码引擎的标准接口,其中,在操作中,由片上系统互连接口接收的来自发起方组件的未加密消息是经由标准接口提供给密码引擎的,以产生被发送到目的地组件的经加密消息;密码控制器,其用于管理由密码引擎用于创建经加密消息的密码密钥;以及密码状态管理器,其用来管理发起方组件与目的地组件之间的密码会话的密码会话状态。
在示例二中,示例一的主题可以包括,其中,密码电路包括从多个完整性引擎中选择的完整性引擎,并且其中,标准接口通用于多个完整性引擎。
在示例三中,示例一至二中任一项的主题可以包括,其中,多个密码引擎包括一组高级加密标准密码引擎。
在示例四中,示例一至三中任一项的主题可以包括,其中,多个密码引擎是通过管芯尺寸、功耗、成本、吞吐量性能、或密码性能中的至少一个来分类的。
在示例五中,示例一至四中任一项的主题可以包括,其中,密码控制器包括种子密钥或初始化密钥中的至少一个。
在示例六中,示例一至五中任一项的主题可以包括,其中,密码控制器与通信对等体协商以获得会话密钥。
在示例七中,示例一至六中任一项的主题可以包括,其中,密码控制器从片上系统的现场可编程组件中取回会话密钥。
在示例八中,示例一至七中任一项的主题可以包括,其中,管理发起方组件与目的地组件之间的密码会话状态包括,密码状态管理器维护密码会话的数据结构,数据结构包括针对目的地组件、序列号、以及会话密钥的字段。
在示例九中,示例一至八中任一项的主题可以包括,其中,会话密钥在不同的密码会话之间是不同的。
在示例十中,示例一至九中任一项的主题可以包括:用于存储片上系统组件的访问权限的发起方安全属性注册表;以及响应于基于发起方安全属性注册表确定发起方组件不能访问目的地组件而对该消息进行阻止的过滤器。
在示例十一中,示例一至十中任一个的主题可以包括:确定由互连接口从另一片上系统互连接口接收的消息是否为经加密消息;如果该消息是经加密消息,则将该消息中继到密码电路;以及如果该消息不是经加密消息,则将该消息传递到互连接口。
示例十二包括主题(例如,设备、装置或机器),其包括:安全块,其包括:密码电路,密码电路包括:从多个密码引擎中选择的密码引擎;以及通用于多个密码引擎的标准接口,标准接口是在密码引擎与请求方之间双向的;密码控制器,其用于管理由密码引擎使用的密码密钥;以及密码状态管理器,其用于管理发起方组件与目的地组件之间的密码会话状态;以及耦合到片上系统的互连的片上系统互连端点,互连耦合到多个片上系统互连端点,多个片上系统互连端点耦合到片上系统的组件,片上系统互连接口包括:面向组件的收发器,其用于发送或接收到组件的组件消息;互连封装器,其用于将从组件接收的组件消息变换为互连消息,并将从另一互连端点接收的互连消息变换为组件消息;以及安全互连,其符合安全块的密码电路的标准接口,安全互连插入在面向组件的收发器与互连封装器的通信之间,其中,由面向组件的收发器接收的组件消息经由标准接口被传递到安全电路以创建经加密消息,该经加密消息经由标准接口被返回,以在在互连上发送之前由互连封装器进行封装。
在示例十三中,示例十二的主题可以包括,其中,互连端点包括互连报头分析器,其用于确定从互连接收的消息是否被加密,并且如果该消息经由安全互连被加密则将该消息中继到安全块,否则绕过安全互连。
在示例十四中,示例十二至十三中任一项的主题可以包括:访问控制器,其用于管理片上系统组件的访问权限,访问控制器包括:发起方安全属性注册表,其用于存储片上系统组件的访问权限;以及过滤器,其用于响应于基于发起方安全属性注册表确定发起方组件不能访问目的地组件而对该消息进行阻止。
在示例十五中,示例十二至十四中任一项的主题可以包括,其中,密码电路包括从多个完整性引擎中选择的完整性引擎,并且其中,标准接口通用于多个完整性引擎。
在示例十六中,示例十二至十五中任一项的主题可以包括,其中,多个密码引擎通过管芯尺寸、功耗、成本、吞吐量性能、或密码性能中的至少一个来进行分类。
在示例十七中,示例十二至十六中任一项的主题可以包括,其中,管理发起方组件与目的地组件之间的密码会话状态包括,密码状态管理器维护密码会话的数据结构,数据结构包括针对目的地组件、序列号、以及会话密钥的字段。
在示例十八中,示例十二至十七中任一项的主题可以包括,其中,会话密钥在不同的密码会话之间是不同的。
示例十九包括主题(例如,方法、用于执行动作的模块、包括指令的机器可读介质(该指令在被机器执行时使得机器执行动作)、或用于执行的装置),其包括:在总线端点处接收来自片上系统组件的组件消息;由总线端点经由安全互连将组件消息传递到安全组件;由安全组件经由安全互连来接收组件消息;使用密码引擎来加密组件消息,密码引擎是多个密码引擎中的一个,安全互连对于多个密码引擎中的全部是相同的;经由安全互连将经加密消息传送到总线端点;以及由总线端点跨互连来发送经加密消息。
在示例二十中,示例十九的主题可以包括,其中,对组件消息进行加密包括添加来自安全组件的消息完整性电路的消息完整性元素。
在示例二十一中,示例十九至二十中任一项的主题可以包括:通过互连接收第二经加密消息;将第二经加密消息中继到安全组件以验证第二经加密消息的完整性;以及响应于不能验证第二经加密消息的完整性而放弃第二经加密消息。
在示例二十二中,示例十九至二十一中任一项的主题可以包括,其中,第二经加密消息包括无效消息完整性元素。
在示例二十三中,示例十九至二十二中任一项的主题可以包括:通过互连接收第二经加密消息;读取第二经加密消息的消息报头以确定其被加密;由总线端点经由安全互连将第二经加密消息传递到安全组件;由安全组件对第二经加密消息进行解密以创建第二组件消息;以及将第二组件消息发送到片上系统组件。
在示例二十四中,示例十九至二十三中任一项的主题可以包括:接收包括发起方标识符和目的地标识符的第二组件消息;访问发起方安全属性注册表以基于发起方标识符和目的地标识符来确定发起方组件不能访问目的地组件;以及响应于确定发起方组件不能访问目的地组件而丢弃第二组件消息。
在示例二十五中,示例十九至二十四中任一项的主题可以包括,建立用于片上系统组件与目的地组件之间的通信的密码会话。
在示例二十六中,示例十九至二十五中任一项的主题可以包括,其中,用于密码会话的会话密钥由密码引擎用于对组件消息进行加密。
在示例二十七中,示例十九至二十六中任一项的主题可以包括,其中,会话密钥对应于通信流,并且不对应于互连的其它通信流。
在示例二十八中,示例十九至二十七中任一项的主题可以包括,其中,从总线端点发送的每个消息由安全组件进行加密。
在示例二十九中,示例十九至二十八中任一项的主题可以包括,其中,对总线端点为其终端的总线进行遍历的每个消息在总线端点中由相应的安全组件进行加密。
在示例三十中,至少一种机器可读介质包括指令,指令在被机器执行时使得机器实现示例十九-二十九中任一项。
在示例三十一中,系统可以包括用于实现示例十九-二十九中任一项的模块。
示例三十二包括主题(例如,设备、装置或机器),其包括:用于在总线端点处接收来自片上系统组件的组件消息的模块;用于由总线端点经由安全互连将组件消息传递到安全组件的模块;用于由安全组件经由安全互连来接收组件消息的模块;使用密码引擎来加密组件消息,密码引擎是多个密码引擎中的一个,安全互连对于多个密码引擎中的全部是相同的;用于经由安全互连将经加密消息传送到总线端点的模块;以及用于由总线端点跨互连来发送经加密消息的模块。
在示例三十三中,示例三十二的主题可以包括,其中,对组件消息进行加密包括添加来自安全组件的消息完整性电路的消息完整性元素。
在示例三十四中,示例三十二至三十三中任一项的主题可以包括:用于通过互连接收第二经加密消息的模块;用于将第二经加密消息中继到安全组件以验证第二经加密消息的完整性的模块;以及用于响应于不能验证第二经加密消息的完整性而放弃第二经加密消息的模块。
在示例三十五中,示例三十二至三十四中任一项的主题可以包括,其中,第二经加密消息包括无效消息完整性元素。
在示例三十六中,示例三十二至三十五中任一项的主题可以包括:用于通过互连接收第二经加密消息的模块;用于读取第二经加密消息的消息报头以确定其被加密的模块;用于由总线端点经由安全互连将第二经加密消息传递到安全组件的模块;用于由安全组件对第二经加密消息进行解密以创建第二组件消息的模块;以及用于将第二组件消息发送到片上系统组件的模块。
在示例三十七中,示例三十二至三十六中任一项的主题可以包括:用于接收包括发起方标识符和目的地标识符的第二组件消息的模块;用于访问发起方安全属性注册表以基于发起方标识符和目的地标识符来确定发起方组件不能访问目的地组件的模块;以及用于响应于确定发起方组件不能访问目的地组件而丢弃第二组件消息的模块。
在示例三十八中,示例三十二至三十七中任一项的主题可以包括,建立用于片上系统组件与目的地组件之间的通信的密码会话。
在示例三十九中,示例三十二至三十八中任一项的主题可以包括,其中,用于密码会话的会话密钥由密码引擎用于对组件消息进行加密。
在示例四十中,示例三十二至三十九中任一项的主题可以包括,其中,会话密钥对应于通信流,并且不对应于互连的其它通信流。
在示例四十一中,示例三十二至四十中任一项的主题可以包括,其中,从总线端点发送的每个消息由安全组件进行加密。
在示例四十二中,示例三十二至四十一中任一项的主题可以包括,其中,对总线端点为其终端的总线进行遍历的每个消息在总线端点中由相应的安全组件进行加密。
上文的详细描述包括对附图的参考,其构成了详细描述的一部分。附图通过图示说明的方式示出了可以实践的具体的实施例。这些实施例在本文中还被称为“示例”。这些示例可以包括除了所示出或所描述的元素之外的元素。然而,本发明人还构思包括仅提供了所示出或所描述的那些元素的示例。此外,本发明人还构思使用所示出或所描述的那些元素(或其一个或多个方面)的任何组合或置换的示例,或者针对特定的示例(或其一个或多个方面)或者针对本文所示出或所描述的其它示例(或其一个或多个方面)。
在本文档与如此通过引用并入的那些文档之间用法不一致的情形下,并入的(多个)引用文献中的用法应当被视为对本文档中的用法的补充;对于无法协调的不一致,以本文档中的用法为准。
在本文档中,如专利文献中常见的,使用术语“一(a)”或“一个(an)”,来包括一个或多于一个,独立于“至少一个”或“一个或多个”的任何其它实例或用法。在本文档中,除非另作说明,否则使用术语“或者”来指代非排他性的或者,以使得“A或B”包括“A而非B”、“B而非A”以及“A和B”。在所附的权利要求中,术语“包括(including)”和“其中(in which)”用作相应的术语“包含(comprising)”和“其中(wherein)”的通俗英语等效词。另外,在所附的权利要求中,术语“包括”和“包含”是开放式的,也就是说,包括除了在权利要求中的这样的术语后所列的那些元素之外的元素的系统、设备、产品或过程仍被认为落入该权利要求的范围内。此外,在所附的权利要求中,术语“第一”、“第二”以及“第三”等仅用作标签,而并非旨在暗示对其对象的数值的需求。
上面的说明旨在示例性的,而非限制性的。例如,上面所描述的示例(或其一个或多个方面)可以与彼此组合地使用。例如,本领域普通技术人员在阅读上面的说明时可以使用其它的实施例。摘要允许读者快速地查明技术公开的本质,并且在理解摘要并非用于解释或限制权利要求的范围或含义的情况下提交。另外,在上面的具体实施方式中,可以将各种特征组合在一起而使得公开内容流畅。这不应被解释为旨在使未要求保护的公开特征对于任何权利要求都是必要的。相反,发明主题可以在于,其特征比特定公开的实施例的全部特征少。因此,所附的权利要求特此并入具体实施方式中,其中每项权利要求本身独立地作为单独的实施例。应当参考所附的权利要求以及对这些权利要求赋予权利的等同内容的整个范围来确定实施例的范围。

Claims (24)

1.一种用于片上系统平台的装置,所述装置包括:
密码电路,其包括:
从多个密码引擎中选择的密码引擎;以及
通用于所述多个密码引擎的标准接口,其中,在操作中,由片上系统互连接口接收的来自发起方组件的未加密消息是经由所述标准接口提供给所述密码引擎的,以产生被发送到目的地组件的经加密消息,其中,所述标准接口是消息传递总线,其中发送对特定密码引擎的请求并将所述对特定密码引擎的请求转换到该密码引擎的特定硬件接口并且其中,所述标准接口被配置为针对所述多个密码引擎的每个密码引擎来执行这样的转换,由此使得该密码引擎可用于片上系统互连结构而与从所述多个密码引擎中选择哪个密码引擎无关;
密码控制器,其用于管理由所述密码引擎用于创建所述经加密消息的密码密钥;以及
密码状态管理器,其用于管理所述发起方组件与所述目的地组件之间的密码会话的密码会话状态。
2.根据权利要求1所述的装置,其中,所述密码电路包括从多个完整性引擎中选择的完整性引擎,并且其中,所述标准接口通用于所述多个完整性引擎。
3.根据权利要求1所述的装置,其中,所述多个密码引擎包括一组高级加密标准密码引擎。
4.根据权利要求1所述的装置,其中,所述多个密码引擎是通过管芯尺寸、功耗、成本、吞吐量性能、或密码性能中的至少一个来分类的。
5.根据权利要求1所述的装置,其中,所述密码控制器包括种子密钥或初始化密钥中的至少一个。
6.根据权利要求1所述的装置,其中,所述密码控制器与通信对等体协商以获得会话密钥。
7.根据权利要求1所述的装置,其中,所述密码控制器从所述片上系统的现场可编程组件中取回会话密钥。
8.根据权利要求1所述的装置,其中,管理所述发起方组件与所述目的地组件之间的密码会话状态包括,所述密码状态管理器维护密码会话的数据结构,所述数据结构包括针对目的地组件、序列号、以及会话密钥的字段。
9.根据权利要求8所述的装置,其中,所述会话密钥在不同的密码会话之间是不同的。
10.根据权利要求1-9中任一项所述的装置,包括访问控制器,其用于管理片上系统组件的访问权限,所述访问控制器包括:
发起方安全属性注册表,其用于存储所述片上系统组件的访问权限;以及
过滤器,其用于响应于基于所述发起方安全属性注册表确定所述发起方组件不能访问所述目的地组件而对消息进行阻止。
11.根据权利要求1-9中任一项所述的装置,包括互连消息报头分析器,其用于:
确定由所述互连接口从另一片上系统互连接口接收的消息是否为经加密消息;
如果所述消息是经加密消息,则将所述消息中继到所述密码电路;以及
如果所述消息不是经加密消息,则将所述消息传递到所述互连接口。
12.一种使用用于片上系统平台的安全插件的方法,所述方法包括:
在总线端点处接收来自片上系统组件的组件消息;
由所述总线端点经由安全互连将所述组件消息传递到安全组件;
由所述安全组件经由所述安全互连来接收所述组件消息;
使用密码引擎来加密所述组件消息,所述密码引擎是多个密码引擎中的一个,所述安全互连对于所述多个密码引擎中的全部是相同的,其中,所述加密包括:在所述安全互连的消息传递总线上发送对所述密码引擎的请求,由此将所述请求转换到所述密码引擎的特定硬件接口,其中,所述安全互连被配置为针对所述多个密码引擎的每个密码引擎来执行这样的转换,由此使得该密码引擎可用于片上系统互连结构而与从所述多个密码引擎中选择哪个密码引擎无关;
经由所述安全互连将经加密消息传送到所述总线端点;以及
由所述总线端点跨互连来发送所述经加密消息。
13.根据权利要求12所述的方法,其中,对所述组件消息进行加密包括添加来自所述安全组件的消息完整性电路的消息完整性元素。
14.根据权利要求13所述的方法,包括:
通过所述互连接收第二经加密消息;
将所述第二经加密消息中继到所述安全组件以验证所述第二经加密消息的完整性;以及
响应于不能验证第二经加密消息的完整性而放弃所述第二经加密消息。
15.根据权利要求14所述的方法,其中,所述第二经加密消息包括无效消息完整性元素。
16.根据权利要求12所述的方法,包括:
通过所述互连接收第二经加密消息;
读取所述第二经加密消息的消息报头以确定其被加密;
由所述总线端点经由所述安全互连将所述第二经加密消息传递到所述安全组件;
由所述安全组件对所述第二经加密消息进行解密以创建第二组件消息;以及
将所述第二组件消息发送到所述片上系统组件。
17.根据权利要求12所述的方法,包括:
接收包括发起方标识符和目的地标识符的第二组件消息;
访问发起方安全属性注册表以基于所述发起方标识符和所述目的地标识符来确定发起方组件不能访问目的地组件;以及
响应于确定发起方组件不能访问目的地组件而丢弃所述第二组件消息。
18.根据权利要求12所述的方法,包括建立用于所述片上系统组件与目的地组件之间的通信的密码会话。
19.根据权利要求18所述的方法,其中,用于所述密码会话的会话密钥由所述密码引擎用于对所述组件消息进行加密。
20.根据权利要求19所述的方法,其中,所述会话密钥对应于通信流,而不对应于所述互连中的所述通信流以外的其它通信流。
21.根据权利要求12所述的方法,其中,从所述总线端点发送的每个消息是由所述安全组件进行加密的。
22.根据权利要求21所述的方法,其中,对所述总线端点为其终端的总线进行遍历的每个消息是在所述总线的端点中由相应的安全组件进行加密的。
23.一种包括用于片上系统平台的安全插件的系统,所述系统包括用于执行权利要求12-22中的任一项所述的方法的模块。
24.一种机器可读介质,其上存储有指令,所述指令在被机器执行时使得所述机器执行用于片上系统平台的安全插件的操作,所述操作实现权利要求12-22中的任一项所述的方法。
CN201580063003.2A 2014-12-19 2015-12-08 用于片上系统平台的安全插件 Active CN107004097B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010661342.3A CN111859472B (zh) 2014-12-19 2015-12-08 用于片上系统平台的安全插件

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/577,812 US10726162B2 (en) 2014-12-19 2014-12-19 Security plugin for a system-on-a-chip platform
US14/577,812 2014-12-19
PCT/US2015/064485 WO2016100012A1 (en) 2014-12-19 2015-12-08 Security plugin for a system-on-a-chip platform

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202010661342.3A Division CN111859472B (zh) 2014-12-19 2015-12-08 用于片上系统平台的安全插件

Publications (2)

Publication Number Publication Date
CN107004097A CN107004097A (zh) 2017-08-01
CN107004097B true CN107004097B (zh) 2021-06-08

Family

ID=56127363

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202010661342.3A Active CN111859472B (zh) 2014-12-19 2015-12-08 用于片上系统平台的安全插件
CN201580063003.2A Active CN107004097B (zh) 2014-12-19 2015-12-08 用于片上系统平台的安全插件

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202010661342.3A Active CN111859472B (zh) 2014-12-19 2015-12-08 用于片上系统平台的安全插件

Country Status (5)

Country Link
US (4) US10726162B2 (zh)
EP (2) EP3525392A1 (zh)
CN (2) CN111859472B (zh)
DE (3) DE202015009801U1 (zh)
WO (1) WO2016100012A1 (zh)

Families Citing this family (18)

* 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
EP3304859A1 (en) * 2015-05-26 2018-04-11 Frigerio, Tommaso Telecommunication system for the secure transmission of data therein and device associated therewith
US9710401B2 (en) 2015-06-26 2017-07-18 Intel Corporation Processors, methods, systems, and instructions to support live migration of protected containers
US10664179B2 (en) 2015-09-25 2020-05-26 Intel Corporation Processors, methods and systems to allow secure communications between protected container memory and input/output devices
US10187375B1 (en) * 2016-04-22 2019-01-22 Walgreen Co. Cryptographic services engine
CN109643351B (zh) 2016-08-30 2023-12-15 株式会社索思未来 处理装置、半导体集成电路以及半导体集成电路的启动方法
JP7078633B2 (ja) * 2017-03-08 2022-05-31 ヒタチ・エナジー・スウィツァーランド・アクチェンゲゼルシャフト ネットワーク内のデータパケットの相対的なタイミングと順序を保持するための方法および装置
EP3373183B1 (en) * 2017-03-09 2020-10-28 STMicroelectronics Srl System with soc connections among ip and multiple gpios, and corresponding method
IT201700057307A1 (it) * 2017-05-26 2018-11-26 St Microelectronics Srl Sistema ip-gpio, apparecchiatura e procedimento corrispondenti
US11093653B2 (en) 2018-05-24 2021-08-17 Texas Instruments Incorporated Secure message routing
US11632235B2 (en) * 2019-04-09 2023-04-18 Samsung Electronics Co., Ltd. Method and apparatus for handling security procedure in mc communication system
US11550917B2 (en) * 2019-06-28 2023-01-10 Intel Corporation Standardized interface for intellectual property blocks
US11250167B2 (en) * 2019-09-26 2022-02-15 Intel Corporation Secure external SoC debugging
GB2591978B (en) * 2019-10-07 2023-06-21 Siemens Ind Software Inc Message Monitoring
US11294849B1 (en) * 2020-11-20 2022-04-05 Dell Products L.P. Systems and methods for in-band pulse-addressable multiplexer
US11768963B2 (en) * 2021-01-22 2023-09-26 Nxp Usa, Inc. System and method for validating trust provisioning operation on system-on-chip
KR20230145167A (ko) * 2021-04-09 2023-10-17 구글 엘엘씨 보안 칩-와이드 통신
FR3135585A1 (fr) * 2022-05-13 2023-11-17 Stmicroelectronics S.R.L. Routeur

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6209098B1 (en) * 1996-10-25 2001-03-27 Intel Corporation Circuit and method for ensuring interconnect security with a multi-chip integrated circuit package
CN101031068A (zh) * 2006-02-27 2007-09-05 美国博通公司 用于多媒体数据处理的安全片上系统结构的方法和系统
CN101454783A (zh) * 2006-06-27 2009-06-10 英特尔公司 用于芯片上系统器件中数据通路安全的系统和技术
US9183158B2 (en) * 2008-11-24 2015-11-10 Certicom Corp. System and method for hardware based security

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5559889A (en) * 1995-03-31 1996-09-24 International Business Machines Corporation System and methods for data encryption using public key cryptography
US6295604B1 (en) * 1998-05-26 2001-09-25 Intel Corporation Cryptographic packet processing unit
US7140005B2 (en) * 1998-12-21 2006-11-21 Intel Corporation Method and apparatus to test an instruction sequence
US6389537B1 (en) * 1999-04-23 2002-05-14 Intel Corporation Platform and method for assuring integrity of trusted agent communications
DE10025321A1 (de) 2000-05-22 2002-01-10 Wolff Walsrode Ag Folienlaminate als Hochbarrierefolien und deren Verwendung in Vakuumisolierpaneelen
US7100133B1 (en) * 2000-06-23 2006-08-29 Koninklijke Philips Electronics N.V Computer system and method to dynamically generate system on a chip description files and verification information
US20020104004A1 (en) * 2001-02-01 2002-08-01 Bruno Couillard Method and apparatus for synchronizing real-time clocks of time stamping cryptographic modules
US6578174B2 (en) * 2001-06-08 2003-06-10 Cadence Design Systems, Inc. Method and system for chip design using remotely located resources
US8788996B2 (en) * 2003-09-15 2014-07-22 Nvidia Corporation System and method for configuring semiconductor functional circuits
US20050132186A1 (en) * 2003-12-11 2005-06-16 Khan Moinul H. Method and apparatus for a trust processor
US7636858B2 (en) * 2003-12-11 2009-12-22 Intel Corporation Management of a trusted cryptographic processor
US8711161B1 (en) * 2003-12-18 2014-04-29 Nvidia Corporation Functional component compensation reconfiguration system and method
US7620743B2 (en) * 2004-04-01 2009-11-17 Lsi Corporation System and method for implementing multiple instantiated configurable peripherals in a circuit design
US20060059574A1 (en) * 2004-09-10 2006-03-16 International Business Machines Corporation System for securely configuring a field programmable gate array or other programmable hardware
US7340672B2 (en) * 2004-09-20 2008-03-04 Intel Corporation Providing data integrity for data streams
US7987356B2 (en) * 2004-11-29 2011-07-26 Broadcom Corporation Programmable security platform
US20060224883A1 (en) * 2005-03-30 2006-10-05 Intel Corporation Programming interface for configuring network services in a server
EP1802030A1 (en) * 2005-12-23 2007-06-27 Nagracard S.A. Secure system-on-chip
US8438658B2 (en) * 2006-02-02 2013-05-07 International Business Machines Corporation Providing sealed storage in a data processing device
FR2897736B1 (fr) * 2006-02-22 2008-04-11 Viaccess Sa Procede d'etablissement d'une cle cryptographique, tete de reseau et recepteur pour ce procede, et procede de transmission de signaux
US8782249B1 (en) * 2006-09-28 2014-07-15 Rockwell Automation Technologies, Inc. Message engine
US8467527B2 (en) * 2008-12-03 2013-06-18 Intel Corporation Efficient key derivation for end-to-end network security with traffic visibility
US8316258B2 (en) * 2007-05-03 2012-11-20 Oracle America, Inc. System and method for error detection in a data storage system
US20080320263A1 (en) * 2007-06-20 2008-12-25 Daniel Nemiroff Method, system, and apparatus for encrypting, integrity, and anti-replay protecting data in non-volatile memory in a fault tolerant manner
EP2186251B1 (en) * 2007-08-28 2019-10-09 ABB Schweiz AG Real-time communication security for automation networks
US7778166B2 (en) * 2007-11-28 2010-08-17 Intel Corporation Synchronizing sequence numbers among peers in a network
US8532303B2 (en) * 2007-12-14 2013-09-10 Intel Corporation Symmetric key distribution framework for the internet
US8516602B2 (en) * 2008-04-25 2013-08-20 Nokia Corporation Methods, apparatuses, and computer program products for providing distributed access rights management using access rights filters
WO2009140707A1 (en) * 2008-05-21 2009-11-26 Technische Universität Wien Cross-domain soc architecture for dependable embedded applications
US8281122B2 (en) * 2009-03-02 2012-10-02 Intel Corporation Generation and/or reception, at least in part, of packet including encrypted payload
US20100278338A1 (en) 2009-05-04 2010-11-04 Mediatek Singapore Pte. Ltd. Coding device and method with reconfigurable and scalable encryption/decryption modules
US8675674B2 (en) 2009-12-23 2014-03-18 Citrix Systems, Inc. Systems and methods for queue level SSL card mapping to multi-core packet engine
US8799673B2 (en) * 2009-12-31 2014-08-05 Intel Corporation Seamlessly encrypting memory regions to protect against hardware-based attacks
US8873746B2 (en) * 2010-01-28 2014-10-28 Intel Corporation Establishing, at least in part, secure communication channel between nodes so as to permit inspection, at least in part, of encrypted communication carried out, at least in part, between the nodes
US8332631B2 (en) * 2010-11-22 2012-12-11 Intel Corporation Secure software licensing and provisioning using hardware based security engine
WO2013089725A1 (en) * 2011-12-15 2013-06-20 Intel Corporation Method and device for secure communications over a network using a hardware security engine
US20130275769A1 (en) * 2011-12-15 2013-10-17 Hormuzd M. Khosravi Method, device, and system for protecting and securely delivering media content
WO2013095411A1 (en) * 2011-12-21 2013-06-27 Intel Corporation INCORPORATING ACCESS CONTROL FUNCTIONALITY INTO A SYSTEM ON A CHIP (SoC)
US9092644B2 (en) * 2011-12-28 2015-07-28 Intel Corporation Method and system for protecting memory information in a platform
WO2013147908A1 (en) * 2012-03-31 2013-10-03 Intel Corporation Methods and systems for cryptographic access control of video
WO2014047135A2 (en) * 2012-09-18 2014-03-27 Interdigital Patent Holdings, Inc. Generalized cryptographic framework
US9436623B2 (en) * 2012-09-20 2016-09-06 Intel Corporation Run-time fabric reconfiguration
KR101458479B1 (ko) * 2012-10-12 2014-11-07 한국전자통신연구원 세션상태정보의 암호화 및 복호화 방법
US20140173249A1 (en) 2012-12-18 2014-06-19 Nvidia Corporation System and method for connecting a system on chip processor and an external processor
US9165143B1 (en) * 2013-03-15 2015-10-20 Xilinx, Inc. Image file generation and loading
US9256551B2 (en) * 2013-08-09 2016-02-09 Apple Inc. Embedded encryption/secure memory management unit for peripheral interface controller
US9716708B2 (en) * 2013-09-13 2017-07-25 Microsoft Technology Licensing, Llc Security certificates for system-on-chip security
US9124421B2 (en) * 2013-12-04 2015-09-01 Intel Corporation Data prioritization, storage and protection in a vehicular communication system
KR102263880B1 (ko) * 2014-06-19 2021-06-11 삼성전자주식회사 호스트 컨트롤러 및 시스템-온-칩
CN104202161B (zh) * 2014-08-06 2018-05-04 广东电网公司电力科学研究院 一种SoC密码芯片
US10726162B2 (en) 2014-12-19 2020-07-28 Intel Corporation Security plugin for a system-on-a-chip platform

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6209098B1 (en) * 1996-10-25 2001-03-27 Intel Corporation Circuit and method for ensuring interconnect security with a multi-chip integrated circuit package
CN101031068A (zh) * 2006-02-27 2007-09-05 美国博通公司 用于多媒体数据处理的安全片上系统结构的方法和系统
CN101454783A (zh) * 2006-06-27 2009-06-10 英特尔公司 用于芯片上系统器件中数据通路安全的系统和技术
US9183158B2 (en) * 2008-11-24 2015-11-10 Certicom Corp. System and method for hardware based security

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
A Gbps IPSec SSL Security Processor Design and Implementation in an FPGA Prototyping Platform;Haixin Wang 等;《Journal of Signal Processing Systems》;20090512;第58卷(第3期);全文 *

Also Published As

Publication number Publication date
US20220405427A1 (en) 2022-12-22
CN107004097A (zh) 2017-08-01
US20160180114A1 (en) 2016-06-23
CN111859472A (zh) 2020-10-30
US20200356699A1 (en) 2020-11-12
WO2016100012A1 (en) 2016-06-23
US12093431B2 (en) 2024-09-17
CN111859472B (zh) 2024-01-16
DE202015009799U1 (de) 2020-03-17
US20230376637A1 (en) 2023-11-23
DE202015009801U1 (de) 2020-03-17
US11768964B2 (en) 2023-09-26
DE202015009800U1 (de) 2020-03-17
EP3235166A4 (en) 2018-06-27
EP3525392A1 (en) 2019-08-14
US11263352B2 (en) 2022-03-01
EP3235166A1 (en) 2017-10-25
EP3235166B1 (en) 2019-02-27
US10726162B2 (en) 2020-07-28

Similar Documents

Publication Publication Date Title
CN107004097B (zh) 用于片上系统平台的安全插件
CN110999248B (zh) 使用片上系统(SoC)体系结构的安全通信加速
US10095634B2 (en) In-vehicle network (IVN) device and method for operating an IVN device
US10691619B1 (en) Combined integrity protection, encryption and authentication
Pesé et al. S2-CAN: Sufficiently secure controller area network
US10031758B2 (en) Chained-instruction dispatcher
CN114710351A (zh) 用于在通信过程中改进数据安全性的方法和系统
CN108288004A (zh) 一种加密芯片在ree和tee环境共存系统及方法
CN104137508A (zh) 具有网络附接的无状态安全卸载装置的网络节点
Kornaros et al. Hardware-assisted security in electronic control units: Secure automotive communications by utilizing one-time-programmable network on chip and firewalls
Kumar et al. Fortified-noc: A robust approach for trojan-resilient network-on-chips to fortify multicore-based consumer electronics
US11126567B1 (en) Combined integrity protection, encryption and authentication
CN103795705B (zh) 用于交换安全的数据包的时间锁定的网络和节点
CN1808457B (zh) 可远程动态管理的便携式可信装置
CN114257424B (zh) 基于电力专用芯片的数据包接收处理方法及装置
CN109450857A (zh) 加密数据配置方法、装置、服务器、加密设备及存储介质
US9942196B2 (en) Canonical network isolator component
US20230106378A1 (en) Sufficiently Secure Controller Area Network
KR20110069873A (ko) 휴대용 단말을 이용한 데이터 통신
CN118138275A (zh) 远程直接内存访问方法、装置、设备及存储介质
Janicik Next Generation SPACE Cyber for SWaP Constrained Platforms
Janicik Next Generation Low SWaP SPACE Cyber
Capillon et al. Combining security assurance and high performance in hostile environments

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
GR01 Patent grant
GR01 Patent grant