CN111630513B - 认证所存储代码和代码更新的真实性 - Google Patents
认证所存储代码和代码更新的真实性 Download PDFInfo
- Publication number
- CN111630513B CN111630513B CN201880087333.9A CN201880087333A CN111630513B CN 111630513 B CN111630513 B CN 111630513B CN 201880087333 A CN201880087333 A CN 201880087333A CN 111630513 B CN111630513 B CN 111630513B
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- application controller
- update
- stored
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3234—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Computer Hardware Design (AREA)
- Storage Device Security (AREA)
Abstract
数据的真实性和/或完整性是基于密码测量值来确定。在一些状况下,所述数据为存储在***存储器中的计算机程序的可执行代码。在其它状况下,所述数据为存储在存储装置或引导装置中的固件。在又一些其它状况下,所述数据为可执行代码,所述可执行代码为由应用程序控制器接收的更新的一部分。例如,所述更新可为存储在固件中(例如,在存储装置或引导装置上)的软件的安全无线下载SOTA更新。
Description
相关申请案
本申请案主张2018年1月25日提出申请且标题为“认证所存储代码和代码更新的真实性(Certifying Authenticity of Stored Code and Code Updates)”的美国专利申请案第15879787号的申请日期的权益,其全部揭示内容特此通过引用的方式并于本文中。
技术领域
本文中所揭示的至少一些实施例大体上涉及确定数据(例如,所存储计算机程序或可执行代码,或用于上述所存储计算机程序或可执行代码的安全无线(SOTA)代码更新)的真实性,且更特定地但不限于,基于将数据(例如,所存储数据或数据更新)的密码测量值与预期值(例如,所存储代码的摘要或代码更新)进行比较来确定是接受还是拒绝所述数据。
背景技术
密码散列函数为一类散列函数,其属性使其适合用于密码学。其将任意大小的数据映射到固定大小的位串(散列),且被设计为单向函数(例如,不可行求反的函数)。从密码散列函数的输出重新创建输入数据的唯一方法是尝试对可能的输入进行蛮力搜索,以查看其是否产生匹配。输入数据通常被称为消息,且输出(散列值或散列)通常被称为消息摘要或简称为摘要。
密码散列功能具有许多信息安全应用程序,尤其是在数字签名、消息鉴别码(MAC)和其它形式的鉴别中。其还可用作普通散列函数,为散列表中的数据加索引,进行指纹识别,检测重复数据或唯一标识文件,以及用作校验和以检测意外数据损坏。
在一个实例中,MAC是用于鉴别消息的一小段信息。MAC用于确认消息来自规定发件人或来源(例如,确定消息为真实的)且未以未经授权方式进行变更。MAC输出值(例如,摘要)通过允许验证者(例如,其拥有发送方用来计算MAC输出值的秘密密钥的验证者)检测到消息内容的任何改变,从而保护消息的数据完整性及其真实性。
附图说明
在附图的各图中通过实例而非限制的方式说明实施例,在附图中,相同参考编号指示相同元件。
图1展示根据一个实施例的用于基于将数据的密码测量值与存储在查找表中的期望值进行比较来确定是接受还是拒绝数据(例如,存储在引导装置的本地缓冲器中的数据)的***。
图2展示根据另一实施例的用于基于将数据的密码测量值与存储在查找表中的期望值进行比较来确定是接受还是拒绝数据(例如,存储在应用程序控制器的缓冲器中的数据)的***。
图3展示根据一个实施例的含有多个摘要的示范性查找表,每一摘要对应于起始和结束地址。
图4展示根据一个实施例的用于确定所存储数据(例如,存储在***存储器中的数据,存储在引导装置的存储器中的数据或存储在存储装置中的数据)的真实性的***。
图5展示根据一个实施例的包含在应用程序控制器的控制下存储数据的存储装置的计算机***。
图6展示根据一个实施例的基于将数据的密码测量值与期望值进行比较来确定是接受还是拒绝数据的方法。
图7展示根据一个实施例的用以接收存储在存储装置或***存储器中的计算机程序的数据部分且基于将数据部分的密码测量值与相应期望值进行比较来确定是接受还是拒绝每一数据部分的方法。
具体实施方式
本文中所揭示的至少一些实施例提供用于确定数据的真实性和/或完整性的***和方法。在一些实施例中,数据为存储在***存储器中的计算机程序的可执行代码。在其它实施例中,数据为存储在存储装置或引导装置中的固件。在又一其它实施例中,数据为可执行代码,所述可执行代码为由应用程序控制器接收的更新的一部分。例如,更新可为用于更新存储在***存储器中的可执行代码和/或更新应用程序控制器和/或***计算装置(例如,存储装置)的固件的软件的安全无线(SOTA)更新。
本实施例的一方面包含认识到存储器通常为黑客攻击的主要目标。黑客攻击为指示和/或造成潜在危险或其它威胁情况的事件(例如,引入到自主运载工具中的恶意软件可能导致运载工具坠毁和/或对人员或财产造成损伤)。无法检测到此类黑客攻击可能会阻止采取适合此类情况的保护性措施或其它措施。本实施例通过确定用于所存储或所接收数据的数个部分中的每一个的密码测量值且使用所述密码测量值来确定所述数据是否真实来解决此问题。响应于此确定,可例如接受或拒绝所述数据。
如果所述数据被接受,那么应用程序控制器可继续使用所述数据。例如,应用程序控制器可继续执行包含所述数据的软件代码。
在另一实例中,所述数据为在引导过程期间执行的固件。如果所述数据被接受,那么应用程序控制器完成引导过程并开始正常操作(例如,此正常操作可包含执行存储在***存储器中的一或多个计算机程序)。在一个实例中,可基于将每一计算机程序的各部分的密码测量值与存储在查找表中的各个期望值进行比较来测试这些计算机程序中的每一个的真实性和/或完整性,如下文进一步所描述。
如果所述数据被拒绝,那么应用程序控制器可避免使用所述数据。在一些实施例中,应用程序控制器可例如进入救援模式,在所述模式中,应用程序控制器重新引导和/或发出新的软件更新请求。在一些实例中,软件更新用于替换先前存储在应用程序控制器的***存储器中的软件。在一个实例中,基于新接收的更新,从***存储器擦除先前存储的软件,且将新软件写入到***存储器中。
本实施例的另一方面包含认识到对于多种类型的计算装置,包含在物联网(IoT)和自主运载工具实施方案中使用的装置,安全性是所期望的。典型的计算平台包含配备有易失性和/或非易失性存储器的一或多个组件,所述易失性和/或非易失性存储器含有运行时代码和永久代码(例如,固件)。
在一个实施例中,期望平台的所有装置或组件都具有一种机制,以确保识别和修复未经授权的改变(例如,使用来自真实来源的更新代码)。无法检测到未经授权改变可能会导致危险或破坏性的未经授权的功能或一或多个组件的操作。本实施例通过为所存储或所接收的数据的数个部分中的每一个(例如,存储在平台的组件中的运行时代码或固件)确定密码测量值并使用所述密码测量值来确定数据是否已以未经授权的方式进行变更。响应于此确定,可例如,接受或拒绝所述数据(例如,类似于上文所描述)。在一些实施例中,密码存储器(例如,查找表)用于测量存储在一或多个装置上的内容。
在一些状况下,单片***机制可帮助保护一或多个存储器的内容。然而,在一些状况下,通过鉴别存储在单片***的操作期间存取的存储装置中的数据来改进单片***操作。在其它状况下,通过确保发送到存储器装置的数据是安全和可靠的,可改进虚拟机监控程序(hypervisor)或虚拟机的操作。
在一些状况下,平台配置是在无硬件安全模块的情况下实施的。在引导期间,代码从引导装置和存储装置移动至应用程序控制器。应用程序控制器将代码移动到***存储器中。例如,通过解包从引导装置移除代码来获得存储在***存储器中的内容。此解包由应用程序控制器执行。
引导之后,应用程序控制器启动以进行操作。然而,已认识到引导代码或运行时代码可能存在安全风险。例如,引导装置的存储器含有固件。可使用重放攻击来修改或替换固件摘要(不对装置之间的通信进行鉴别)。作为另一实例,在更换引导装置的状况下,由于摘要值被黑客攻击,***可能易受攻击,从而使整个***易受攻击。在另一实例中,在安全无线更新中,可能不存在任何经认证的固件来源。
在其它状况下,平台配置是通过应用程序控制器中的硬件安全模块(HSM)来实施。在引导过程期间,代码从存储装置中的引导装置移动到应用程序控制器。HSM检查代码的完整性,且如果确定内容为安全的,那么在***存储器内部移动代码(例如,通过应用程序控制器将代码写入到***存储器)。然后,应用程序控制器启动以进行操作,使用HSM来验证***存储器和/或引导或存储存储器(例如,一或多个存储装置中的存储器)中的随后代码修改。然而,已意识到,此架构可能具有与上文对没有HSM的平台配置所描述的类似的启动代码和运行时代码安全风险。
为了改进上述平台配置,本文中所描述的各种实施例使用对所存储数据的密码测量值与期望值的比较,且可在各种不同类型的***和平台(例如,IoT装置,或自主运载工具或其它自主***,例如无人机)中实施。在一个实施例中,使用具有密码引擎的组件来执行启动代码安全性检查。在另一实施例中,使用具有密码引擎的组件对运行时代码执行安全性检查。在又一实施例中,使用具有密码引擎的组件来执行安全无线(SOTA)更新。在一些实施例中,这些安全性检查可由单个计算装置(例如,单个芯片)执行。
当实施为安全架构时(例如,在一些状况下,可仅使用具有HSM特征的存储器来实施对等架构),使用所存储数据的密码测量值与期望值进行比较的各种实施例可提供以下实例中所描述的一或多个优势。例如,引导装置的密码引擎可保证整个***的信息的安全性。***中的其它存储器不需要密码引擎。
在另一实例中,在接受更新之前,先在应用程序的硬件中本地下载并验证无线更新。此更新准许识别***的开发人员。所述更新也可实施防重放机制。
在另一实例中,***可经配置以运行救援模式以请求新版本的固件。例如,响应于基于与数据的密码测量值的比较而拒绝数据,可进入救援模式,如下文所描述。
在另一实例中,可实施硬件***以确保使用签名软件来运行***的所有使用阶段。此外,可保护易失性存储器的完整性,以防止实时代码操纵(例如,通过未经授权的黑客)。
图1展示根据一个实施例的用于基于将数据的密码测量值与存储在查找表160中的期望值进行比较来确定是接受还是拒绝数据(例如,存储在引导装置156的本地缓冲器158中的数据)的***。引导装置156例如从***存储器154或存储装置150接收存储在本地缓冲器158中的数据。在一个实例中,数据是在应用程序控制器152的引导期间从存储装置150读取的固件。
在一个实例中,本地缓冲器158为用于存储临时数据的通常为易失性的高速缓存存储器。例如,当一部分数据发送到装置时,会将其存储到高速缓存缓冲器中,以允许例如内部有限状态机离线执行适当的命令。
引导装置156可含有引导代码164,所述引导代码可由引导装置156执行和/或在引导过程中加载到应用程序控制器152。例如,在将密码测量值与正常运行期间运行时代码的期望值进行比较之前,执行此引导过程。
如果比较数据的密码测量值导致拒绝数据,那么可将应用程序控制器152强制进入救援模式。救援模式代码162可用于执行救援模式的至少一部分。救援模式代码162可在救援模式期间由引导装置156和/或应用程序控制器152执行。
各种类型的应用程序可由应用程序控制器152控制和/或支持。此类应用程序的实例包含群集、娱乐或信息娱乐***、运载工具的座椅控制以及运载工具的动力***。
在一个实施例中,密码引擎166确定存储在本地缓冲器158中的数据的密码测量值。密码引擎166将此测量值与期望值进行比较。例如,期望值可存储在查找表160中。密码引擎166基于此比较确定是接受还是拒绝数据。响应于此确定,可执行各种动作,例如下文所描述。在一个实例中,密码引擎166包含位于引导装置156上的一或多个处理器和存储器。
数据可经由互连件168、170、172在***的组件之间传送,互连件中的每一个可为例如内部或外部数据或其它总线(例如,***组件互连(PCI)、扩展的PCI(PCI-X)、快速PCI(PCIe))、通信部分和/或计算机网络。
在一个实施例中,存储装置150、应用程序控制器152和***存储器154中的一或多个为单片***(SOC)装置的一部分(例如,所有这些组件都在同一SOC芯片上)。在一个实施例中,引导装置156可被包含为SOC芯片的一部分。在其它实施例中,这些组件中的每一个可在单独芯片上实施(例如,安装在硬件卡或其它结构上并通过在其上布线进行连接)。
在一个实例中,应用程序控制器152为运行***的主MCU(例如,INTEL corei7为计算机的应用程序控制器)。周围***中的各种控制器(例如,存储器控制器)服务应用程序控制器152以执行功能。
在一个实施例中,经由应用程序控制器152,通过本地缓冲器158从存储装置150或***存储器154接收固件或运行时代码。基于本地缓冲器158中的所存储数据的密码测量值,做出拒绝数据的确定。响应于确定拒绝数据,应用程序控制器152更新***存储器154中的数据的至少一部分。
例如,所更新数据可为包含被拒绝的数据的软件程序。拒绝数据的确定可从密码引擎166传递到应用程序控制器152。在一个实施例中,通过确定数据的数个部分中的每一个的密码测量值来检查固件或运行时代码的安全性。在一个实例中,每一部分为所存储固件或运行时代码中的数据页。
例如,可将一页数据接收到本地缓冲器158中,且在接收到每页运行时代码时执行密码测量。每页具有存储在查找表160中的对应期望值。
在一个实例中,页具有至少4-20K字节的大小。在另一实例中,页具有为可使用命令在***中寻址的最小内存量的大小。
当引导装置156接收到每一页时,将所述页的密码测量值与此期望值进行比较。如果测量值与期望值匹配,那么认为所述页被接受。如果测量值与预期值不匹配,那么拒绝所述页。在一个实例中,如果拒绝任何页的固件或运行时代码,那么将整个固件或运行时代码内容视为有缺陷或不安全。在此类状况下,例如,通过安全无线更新来更新固件或运行时代码。
在另一实施例中,运行时代码存储在***存储器154中。在应用程序控制器152的控制下,运行时代码被本地缓冲器158作为数据页接收。对每页数据进行密码测量。如果所有页均被接受,那么应用程序控制器152继续执行运行时代码。
在一个实施例中,通过使用消息鉴别码(MAC)计算摘要来确定密码测量值。例如,待测量的数据和秘密密钥为用于计算摘要的输入。秘密密钥可例如存储在引导装置156的存储器中。将所计算出的摘要与存储在查找表(例如,查找表160,例如下文参考图3所描述)中的期望值进行比较。在其它实施例中,查找表可存储在应用程序控制器152的存储器、***存储器154和/或***中的其它存储器中。
在各种实例中,MAC为用于生成签名的机制/算法。所述计算基于秘密密钥。MAC背后算法的一个实例为SHA256(其不基于秘密密钥)或HMAC-SHA256(其基于秘密密钥)。在现代密码学中,MAC算法本身不是秘密的(所述算法为标准算法)。只有密钥(如果存在)是秘密的。MAC演算的结果有时被称为:摘要、散列、签名、度量等。在此应用中,MAC算法的输出通常被称为“摘要”。MAC为单向函数。HASH=MAC(密钥,信息)。知道HASH并不能使人们推断关于密钥或信息的任何内容。
在一个实施例中,从存储装置150接收固件或其它代码,并将其一页一页地复制到本地缓冲器158中。响应于确定接受代码的所有页,应用程序控制器152将代码写入到***存储器154中。在一个实施例中,由于基于密码测量值与相应页的期望值的比较来接受计算机程序的每一页,因此在将计算机程序的其它页接收到本地缓冲器158中之前将所接受的页写入到***存储器154。换句话说,即使存在待检查的计算机程序的剩余页,也可将所接受的页写入到***存储器154。
图2展示根据另一实施例的用于基于将数据的密码测量值与存储在查找表中的期望值进行比较来确定是接受还是拒绝数据(例如,存储在应用程序控制器152或引导装置156的缓冲器204中的固件或运行时代码的一部分)的***。预期值可为例如存储在查找表160和/或应用程序控制器152的查找表206中。
在一个实施例中,所存储数据被缓冲器204作为数据流部分接收(例如,如上文所论述,数据部分可为一页或一组页)。密码引擎202为每一数据部分计算密码测量值,并将所述测量值与查找表中的相应期望值进行比较。
在一个实施例中,在将密码测量值与期望值进行比较之前,将期望值从查找表160读取到应用程序控制器152的存储器中。在一个实施例中,响应于密码引擎202确定拒绝所述数据页,应用程序控制器152丢弃先前存储在***存储器154中的最初从中获得被拒绝的数据页的软件。响应于确定拒绝数据页,密码引擎202可使应用程序控制器152进入或保持处于救援模式。
在一个实施例中,引导装置156包含新鲜度210,唯一识别符(UID)212和秘密密钥214(例如,存储在存储器中的机载引导装置156上)。在此实施例中,在从引导装置156读取和/或使用数据之前,应用程序控制器152验证引导装置156的识别码(例如,以避免需要替换引导装置组件)。在此实施例中,识别码认证是基于存储在引导装置156中的UID 212。在一个实例中,UID 212由引导装置156在应用程序控制器152的请求下提供。UID 212与由引导装置156使用秘密密钥214计算出的签名一起提供。例如,可以如下进行此计算:签名=(秘密密钥,UID|新鲜度),其中新鲜度为用于防重播的字段(例如,新鲜度可为单调计数器、时间戳、NONCE等)。在此实例中,识别码被包含在由应用程序控制器152从引导装置156读取的数据中,且所述识别码使用以下关系进行认证:识别码证明=UID|新鲜度|签名,其中如上文所提及,“新鲜度”是用于防重播的字段(例如,“新鲜度”可为单调计数器、时间戳、NONCE等)。
在一个实施例中,先前所存储软件为通过应用程序控制器152请求的无线更新获得。响应于丢弃先前存储软件,应用程序控制器152做出对新的安全无线更新的请求(例如,来自相同或不同来源)。
在一个实施例中,无线更新是从例如服务器的计算装置接收。当应用程序控制器152处于救援模式时,应用程序控制器152可从引导装置156加载救援模式代码162,并使用救援模式代码162的至少一部分从服务器获得先前被拒绝的所述软件的新更新。
在一个实施例中,由缓冲器204接收的数据为从存储装置150获得的代码。响应于确定接受数据,应用程序控制器152将数据从缓冲器204复制到***存储器154。
在另一实施例中,由缓冲器204接收的数据为存储在***存储器154中的运行时代码的一部分。响应于确定接受运行时代码的所有数据部分,运行时代码由应用程序控制器152执行。
在一个实施例中,在引导装置156、存储装置150和/或***存储器154上使用的存储器可为非易失性存储媒体(例如,快闪存储器)和/或易失性存储器。此存储器可例如存储查找表、引导代码和/或救援代码。
图3展示根据一个实施例的含有多个摘要的示范性查找表(例如,查找表160或206),每一摘要对应于起始和结束地址。查找表160可存储对应于待检查的数据的数个部分中的每一者的摘要。每一摘要对应于与待检查的数据相关联的起始和结束地址。例如,起始和结束地址可对应于数据存储在***存储器154中的地址。在其它实例中,起始和结束地址对应于存储装置150的存储器空间或另一装置的存储器空间中的存储位置。
在一个实施例中,查找表含有存储在***存储器154内部的数据的不同部分的起始地址、结束地址和摘要。在一些状况下,数据部分可在存储器的不同区域中分段,每一区域具有不同摘要。在其它状况下,起始地址和结束地址可相互重叠。换句话说,存储在存储器中的数据部分的不同区域可重叠。
在一个实施例中,在引导过程中,应用程序控制器152将与不同数据部分相关联的摘要加载到存储装置150和/或***存储器154中。在加载摘要后,存储器的各种段对应于数据部分,且可视为含有数据部分和对应摘要的查找表。例如,在由应用程序控制器152引导应用程序期间,引导代码、操作***(OS)和软件代码/应用程序将(以压缩方式)从存储装置150移动到***存储器154。然后,此数据未经压缩,且开始由应用程序控制器152执行。在此实例中,还将加载与未经压缩数据的每一段相关联的摘要。此处,摘要按地址范围与数据相关联。因此,当***在引导后启动时,***存储器(例如,易失性内存)含有例如整个操作***,所有软件代码/应用程序以及使此已加载数据的每一段与其对应摘要相关联的表。
在一个实施例中,引导装置156具有硬件安全模块能力,且实施以下特征:经鉴别命令集、对重放攻击的保护;存储在引导装置156的存储器内部的秘密密钥(例如,秘密密钥与作为源的***开发者共享);具有内置基于密钥的MAC计算器的密码引擎;以及可用于程序操作的本地缓冲器。
在一个实施例中,应用程序控制器152在执行引导装置156的一些或全部操作时存取引导装置156。此存取涉及使用上述秘密密钥、算法和经鉴别命令集。所述命令集经保护以防止重放攻击。应用程序控制器152可认证存储在***RAM和/或存储装置150中的数据的真实性,且还可认证安全无线更新的真实性,例如用于固件更新或引导装置更新(安全固件和摘要)。
在一个实例中,经鉴别命令集为由存储器接受(或存储在存储器中)以执行功能(例如,读取/写入/擦除)的一组命令。如果存在签名命令和自变量的机制,那么对命令集进行鉴别;以此方式,如果签名被辨识为属于授权机构(例如,已知的良好来源),那么执行命令。
现在在下文论述关于常驻引导代码检查的各种实施例。在一个实施例中,在***通电时,应用程序控制器152从待执行的存储器接收安全代码。处于出厂级别的引导装置156含有用以启动应用程序控制器152的应用程序的引导代码164,用以拷贝和测量来自存储装置150的数据部分的本地缓冲器,以及救援在引导装置156的存储器空间内部的弹性块中所含有的固件。在一个实例中,救援模式代码162存储在弹性块中。在一个实例中,弹性块为在正常操作模式下可寻址空间之外的存储器的特殊区域。弹性块可位于引导装置156内部,或可位于另一装置中。
在一个实施例中,应用程序控制器152将软件从存储装置150移动到***存储器154。这是通过首先将内容从存储装置150移动到引导装置156的本地缓冲器158来完成的。引导装置执行密码测量值,且如果测量值达到预期值,那么将内容复制到***存储器154。
对于内容的数个数据部分中的每一个继续此过程,直到内容的最后数据部分在***存储器154内部移动为止。在一个实例中,如果发现数据部分中的一或多个不真实,那么丢弃***存储器的全部内容。应用程序控制器152从引导装置156加载救援模式代码162,并运行具有基本功能性的安全固件。在一个实例中,这些功能性包含请求来自另一源的新经认证更新。
在另一实施例中,在***通电时,应用程序控制器152接收待执行的存储在存储装置150中的安全代码。在由应用程序控制器152执行进一步的操作之前,将所述安全代码认证为是真实的。引导代码164用于启动应用程序控制器152的应用程序。引导代码164还控制确定在本地缓冲器158中接收的安全代码的部分的密码测量值。在一个实例中,密码引擎166执行引导代码164的至少一部分。在一个实例中,密码测量值为通过MAC算法计算的摘要,所述MAC算法应用于所接收数据部分的流,并与存储在引导装置156的存储器中的秘密密钥组合。在另一实施例中,应用程序控制器152将密码测量值与存储在引导装置156的查找表中的期望值进行比较。
当检查数据部分时,如果每一部分被接受,那么将相应部分拷贝到***存储器154。如果拒绝任何部分,那么对应于例如特定计算机程序或其它可执行代码的所有部分均将被丢弃。在一个实施例中,如果发现数据部分不是真实的,那么***存储器154的全部内容(或其它定义的或预定的部分)被丢弃和/或应用程序控制器152进入救援模式,例如如上文所论述。
现在在下文论述关于运行时代码检查的各种实施例。在一个实施例中,在运行时,代码存储在***存储器154中。应用程序控制器152在使用特点代码之前确定***存储器154中的内容的密码测量值。此确定可例如以规则的预定间隔和/或仅在使用关键代码之前进行。此方法是为了确保恶意事件没有改变***存储器154内部的运行时代码。
应用程序控制器152通过从***存储器154到引导装置156接收数据页来启动安全性检查。使用密码引擎166在内部测量本地缓冲器158中的页以确定密码测量值,将所述密码测量值与存储在查找表中的期望值进行比较以验证页的真实性。如果比较失败,那么整个***存储器154被更新。例如,可通过安全无线更新来执行此更新。如果与所述代码相对应的页和后续页被接受,那么所述代码可由应用控制器152执行。
在另一实施例中,应用程序控制器152使用密码引擎202执行密码测量值。将测量值与存储在查找表(例如,查找表160或206)中的期望值进行比较。
在另一实施例中,引导装置156使用本地缓冲器158和存储在引导装置156中的算法来计算数据摘要并与期望值进行比较。在此实施例中,应用程序控制器152仅检查在引导装置内部进行的比较的通过/失败。
现在在下文描述关于安全无线更新的各种实施例。在一个实施例中,所述更新用于更新引导装置156中的代码和/或存储装置150中的代码。例如,更新可为真实的软件更新。在另一实例中,如上文所论述,可执行更新以从由密码测量值与期望值之间的比较的失败所确定的所识别攻击修复代码。
在一个实施例中,应用程序控制器152从远程位置接收更新。此更新可为例如存储装置内容更新。***提供者可例如使用此方法来更新应用程序,例如改进功能性和/或安全性。在一个实施例中,应用程序控制器152将所接收到的更新存储在***存储器154内部和/或将更新的签名存储在***存储器154内部。
在一个实施例中,通过无线更新接收的软件被分成页,且每一页被复制到本地缓冲器158中。页的密码测量值的本地值存储在引导装置156内部的临时存储位置内。当在引导装置156内部加载并处理软件的所有页时,对软件的测量完全完成。
在一个实施例中,如果通过由引导装置进行的比较,那么更新被接受。例如,更新被复制在存储装置150内部用于***固件更新,或复制在引导装置156内部用于引导固件更新。软件更新的最终签名可例如存储在引导装置156内部,用于认证后续操作(例如,引导和/或运行期间的操作)。如果引导装置进行的比较失败,那么***进入或保持处于救援模式,例如,如上文所论述。
在一个实施例中,当应用程序控制器152下载更新时,首先将图像存储在***存储器(例如,DRAM)中,和/或不时存储在存储装置150中。对更新进行签名(通过计算其MAC),且所述签名是确保存储器内部的已下载内容为真实的机制。为了执行对签名的检查,下载所有数据,并对照内部应用程序秘密密钥对数据进行测量,且然后将最终签名与所接收到的签名进行比较。如果比较成功,那么确定更新为真实的。
如上文所提及,在一个实施例中,密码测量值为使用MAC算法确定的摘要。OTA更新的度量例如基于秘密密钥(例如,HMAC-SHA256)来实施MAC,所述秘密密钥在***(例如,引导装置)与发送更新的授权机构(例如,服务器或其它计算装置或源)之间为已知的例如,MAC经计算如下:度量=MAC(Secret_Key,pages_content)。在一个实施例中,在所述状况下,可保护***消息的交换,以防止防重播攻击:度量=MAC(Secret_Key,pages_content|新鲜度)。
仅作为具体的非限制性实例,考虑通过使用基于秘密KEY(例如,HMAC-SHA256)的算法计算的消息及其MAC(签名)。在此状况下,MAC算法基于秘密密钥。发送方发送所述一对消息和签名=MAC(KEY,消息)。接收者接收消息和签名,并使用发送者所使用的相同公式和秘密KEY在本地重新计算消息的签名。如果本地计算的签名与所接收到的签名一致,那么接收者可确定所述消息来自经授权的发送者,因为发送者为唯一知道秘密密钥并能够生成正确签名的发送者。
黑客可能会拦截通信并稍后重新发送所述对(消息、签名),以便模拟真实的变迁。但是,如果所发送的信息含有新鲜度,那么黑客将无法执行此攻击(重播攻击)。“新鲜度”为例如在***的每一变迁时不同的一条信息(例如,单调计数器、时间戳或NONCE)。为了避免重放攻击,接收方检查新鲜度是否良好(例如,单调计数器的值、时间戳等),且然后继续进行本地签名的计算。新鲜度包含在计算中:度量=MAC(Secret_Key,pages_content|新鲜度)。
图4展示根据一个实施例的用于确定所存储数据(例如,存储在***存储器154中的数据,存储在引导装置156的存储器中的数据或存储在存储装置150中的数据)的真实性和/或完整性的***103。***103、服务器101和云平台119中的两个或多于两个之间的通信可通过网络115(例如,因特网和/或无线或其它网络)执行。使用通信接口105执行此通信。
例如,在一些状况下,***103可为***应用程序板(SAB)。在此实例中,应用程序控制器自身可为单片***(SOC)。在其它状况下,例如,***103自身可为单片***(SOC)。在这些其它状况下,***103可为例如含有应用程序控制器152的单片包装。
在一个实施例中,服务器101发送请求待由***103执行的功能或动作的通信。***103的***存储器154还可存储关于***103的用户的用户数据114或由***103控制的应用程序或装置。
在一个实施例中,***存储器154的查找表402存储期望值,所述期望值用于与所计算的密码测量值进行比较。可在引导过程期间或在应用程序控制器152正常操作期间的任何时候将期望值加载到查找表402中。
在一个实施例中,服务器101控制将用户的用户数据加载到***103的***存储器154中。在一个实施例中,在生成供***103使用的授权之前,新用户的用户数据已存储在服务器101处的存储器117上(例如,此用户数据与用户的先前使用历史相关联)。在生成供***103使用的授权之后,服务器101将此存储的新用户数据发送到***103,以加载到***103的存储器中。
在一个实施例中,与***103的使用相关联的数据存储在云平台119的存储器中。例如,此数据可提供授权凭证或其它数据,其准许云平台119的用户例如通过打开门和/或启动运载工具的引擎来存取***103。
在一个实例中,应用程序控制器152控制运载工具的一或多个操作。例如,应用程序控制器152控制来自***存储器154或其它存储器的数据的添加或删除。应用程序控制器152还控制将新数据加载到***存储器154和/或***103的其它存储器中。应用程序控制器152还控制信息在显示装置108上的显示。传感器106提供关于***103的操作的数据。此操作数据的至少一部分可被传递到服务器101和/或云平台119。
***存储器154可进一步包含例如配置数据112。配置数据112可为例如与由服务器101提供的***103的操作相关联的数据。例如,配置数据112可为例如基于与运载工具或IoT装置相关联的条件来配置***103的操作的数据。
在一个实施例中,将供***103的使用的授权的通知发送到云平台119或从云平台119接收。服务器101还可向***103发送包含授权的通信。
在一个实施例中,服务器101检查与***103相关联的用户的识别码,且可更新用户数据114和/或配置数据112。
在一个实施例中,云平台119使用无线通信网络115(例如,响应于应用程序控制器152进入救援模式)将安全无线更新提供给到***103。在此实施例中,通信接口105为无线接口。
如在图4中所说明,应用程序控制器152还可控制图像在一或多个显示装置108上的显示。显示装置108可为液晶显示器。控制器152可接收由一或多个传感器106收集的数据。传感器106可例如集成到***103中。在另一实例中,传感器106可包含例如向***103提供数据的相机、麦克风、运动检测器和/或相机。传感器106还可包含例如整合在由包含***103的运载工具中的驾驶员和/或乘客所佩戴的可穿戴装置或客户端装置中的传感器。
在一个实施例中,应用程序控制器152分析从传感器106收集的数据。对所收集数据的分析包含将一些或全部所收集数据提供到服务器101和/或云平台119。
在一个实施例中,存储器存储由传感器106收集的数据和/或由通信接口105从计算装置(例如,服务器101)接收的数据。例如,此通信可用于将所收集数据从传感器106无线传输到服务器101。由***103接收到的数据可包含用于配置应用程序控制器152对显示装置108的控制的配置或其它数据。
在图4中,如本文中所描述,固件104控制例如应用程序控制器152基于将密码测量值与期望值进行比较来确定是否接受或拒绝数据的操作。应用程序控制器152还可例如响应于来自服务器101和/或云平台119的通信而运行固件104以执行操作。通常,固件为提供对工程计算装置的控制、监视和数据操纵的一类型计算机程序。
***103包含易失性动态随机存取存储器(DRAM)111,用于存储由应用程序控制器152使用的运行时数据和指令,以改进控制器152的计算性能和/或提供用于在服务器101与存储器109之间传送的数据的缓冲器。DRAM 111为易失性的,因为其需要功率来维持存储在其中的数据/信息,当功率中断时,所述数据/信息立即或迅速丢失。
易失性DRAM 111通常比非易失性存储媒体具有更少的等待时间,但当移除功率时其数据会迅速地丢失。因此,使用易失性DRAM 111在其当前计算任务中临时存储用于控制器152的指令和数据为有利的,以改进性能。在一些情况下,易失性DRAM 111被易失性静态随机存取存储器(SRAM)代替,其在一些应用中比DRAM使用更少的功率。当***存储器154具有与易失性DRAM 111相当的数据存取性能(例如,在等待时间、读取/写入速度方面)时,可消除易失性DRAM 111;且应用程序控制器152可通过对指令和数据在***存储器154上进行操作而不是对易失性DRAM 111进行操作来执行计算。
在一个实施例中,***存储器154包含易失性DRAM 111,且固件104被加载到并存储在易失性DRAM 111中。在一个实施例中,***存储器154包含非易失性存储媒体,例如涂覆在硬磁盘上的磁性材料,和/或集成电路中的存储器单元。所述存储媒体为非易失性的,因为不需要电源来维持存储在所述非易失性存储媒体中的数据/信息,可在非易失性存储媒体断电且然后再通电之后检索所述数据/信息。在一些实施例中,***存储器154包含易失性和非易失性存储器两者。
在一个实施例中,***存储器154使用各种存储器/存储技术来实施,例如基于“与非”门的快闪存储器,相变存储器(PCM),磁存储器(MRAM),电阻式随机存取存储器和3DXPoint,使得***存储器154为非易失性的,且可在无电源的情况下将存储在其中的数据保持数天、数月和/或数年。
在一个实施例中,服务器101经由具有预定协议的通信信道与通信接口105通信。
在一个实施例中,服务器101可为具有一或多个中央处理单元(CPU)的计算机,可以使用计算机网络将例如***103的***连接到所述中央处理单元。例如,在一些实施方案中,服务器101与通信接口105之间的通信信道包含计算机网络,例如局域网、无线局域网、蜂窝通信网络或宽带高速始终连接的无线通信连接(例如,当前或将来一代的移动网络链路)。
在一些情况中,应用程序控制器152具有处理器内高速缓存存储器,其具有优于易失性DRAM 111和/或***存储器154的数据存取性能。在一些状况下,应用程序控制器152具有多个处理器,每一处理器具有其自己的处理器内高速缓存存储器。
在一个实施例中,应用程序控制器152使用组织在***存储器中或以其它方式组织在***103中的数据和/或指令来执行数据密集型的存储器中处理。例如,应用程序控制器152可对收集和/或存储在***103中的一组数据执行实时分析。例如,在一些应用中,***103连接到实时传感器106以存储传感器输入;且控制器152的处理器经配置以基于传感器输入执行机器学***台119和/或服务器101实施的人工智能(AI)***。数据的此分析可例如与运载工具的操作相关联。此分析可包含例如用户数据114的分析。
***103可与各种计算***交互,例如云计算***(例如,云平台119)、边缘计算***、雾计算***和/或独立计算机。在云计算***中,远程计算机服务器连接到网络中以存储、管理和处理数据。边缘计算***通过在接近于数据源的计算机网络边缘处执行数据处理来优化云计算,且因此减少与集中式服务器和/或数据存储的数据通信。雾计算***使用一或多个最终用户装置或近用户边缘装置来存储数据,且因此减少或消除在集中式数据仓库中存储数据的需求。
可使用由应用程序控制器152(和/或其它控制器或装置)执行的计算机指令(例如,固件104)来实施本文中揭示的***和方法的至少一些实施例。在一些情况下,硬件电路可用于实施固件104的功能中的至少一些。固件104可最初存储在非易失性存储媒体中,例如通过使用***存储器154或另一非易失性装置(例如,存储装置150和/或引导装置156),并被加载到易失性DRAM 111和/或处理器内高速缓存存储器,以由控制器152执行。
例如,固件104可经配置以使用本文中所论述的技术来检查数据的真实性和/或完整性。然而,本文中所论述的技术不限于在图4的***103和/或本文中所论述的实例中使用。
图5展示根据一个实施例的包含在应用程序控制器152的控制下存储数据的存储装置的计算机***。图5中的存储装置150包含非易失性存储媒体509,例如具有不同类型的存储器。如上文所论述,可将存储在存储装置150中的数据加载到例如引导装置156的本地缓冲器158中,以确定数据的密码测量值。
在图5中,应用程序控制器152经由关于使用逻辑地址的读取/写入操作的通信信道与存储装置150通信。存储装置150可用于在非易失性存储媒体509中存储用于应用程序控制器152的数据。通常,计算机存储装置的实例包含硬盘驱动器(HDD)、固态驱动器(SSD)、快闪存储器、动态随机存取存储器、磁带、网络附接存储装置等。
存储装置150具有主机接口505,所述主机接口505使用通信信道来实施与应用程序控制器152的通信。例如,在一个实施例中,应用程序控制器152与存储装置150之间的通信信道为***组件互连快速(快速PCI或PCIe)总线;且应用程序控制器152和存储装置150使用NVMe协议(非易失性存储器主机控制器接口规范(NVMHCI),也被称为快速NVM(NVMe))彼此通信。
在一些实施方案中,应用程序控制器152与存储装置150之间的通信信道包含计算机网络,例如局域网、无线局域网、无线个人局域网、蜂窝通信网络、宽带高速始终连接的无线通信连接(例如,当前或将来一代的移动网络链路);且应用程序控制器152和存储装置150可经配置以使用数据存储管理和类似于NVMe协议中的那些的命令彼此通信。
存储装置150具有存储器控制器507,其运行固件504以响应于来自应用程序控制器152的通信来执行操作。在各种实施例中,固件为对计算装置的控制、监视和数据操纵的一类型计算机程序。在图5中,固件504在操作存储装置150中控制存储器控制器507的操作。
存储装置150具有非易失性存储媒体509,例如涂覆在硬磁盘上的磁性材料,和/或集成电路中的存储器单元。存储媒体509为非易失性的,因为不需要电源来维持存储在非易失性存储媒体509中的数据/信息,可在非易失性存储媒体509断电且然后再通电之后检索所述数据/信息。存储器单元使用各种存储器/存储技术来实施,例如基于“与非”门的快闪存储器,相变存储器(PCM),磁存储器(MRAM),电阻式随机存取存储器和3D XPoint,使得存储媒体509为非易失性的,且可在无电源的情况下将存储在其中的数据保持数天、数月和/或数年。
存储装置150包含易失性动态随机存取存储器(DRAM)506,用于存储由存储器控制器507使用的运行时数据和指令,以改进存储器控制器507的计算性能和/或提供用于在应用程序控制器152与非易失性存储媒体509之间传送的数据的缓冲器。DRAM 506为易失性的,因为其需要功率来维持存储在其中的数据/信息,当功率中断时,所述数据/信息立即或迅速丢失。
图6展示根据一个实施例的基于将数据的密码测量值与期望值进行比较来确定是接受还是拒绝数据的方法。在框601处,从***存储器或存储装置接收数据。例如,可使用引导装置156针对图1或2的应用程序控制器152来实施方法。
在框603处,将所接收数据存储在存储器中。例如,可将数据存储在引导装置156的本地缓冲器158或应用程序控制器152的缓冲器204中。
在框605处,确定存储在存储器中的所接收数据的密码测量值。密码测量值可为例如使用消息认证码(MAC)计算的摘要。
在框607处,将密码测量值与期望值进行比较。期望值可为例如所存储数据值。此值可例如存储在查找表或其它形式的存储数据中。
在框609处,确定是接受还是拒绝所接收数据。此确定基于将密码测量值与期望值进行比较。框607和/或609可例如由密码引擎166或202执行。
现在在下文描述各种额外实施例。在一个实施例中,一种方法由引导装置实施,且所述方法包含:通过引导装置从存储装置或***存储器接收数据,其中通过应用程序控制器从存储装置或***存储器读取数据;将数据存储在引导装置的缓冲器中;通过引导装置的处理器确定数据的密码测量值;通过处理器将密码测量值与存储在查找表中的期望值进行比较;及基于将密码测量值与期望值进行比较,确定是接受还是拒绝数据。
在一个实施例中,从存储装置接收数据,且所述方法进一步包含响应于确定接受数据,使应用程序控制器将数据写入到***存储器。
在一个实施例中,查找表存储在引导装置的存储器中,在应用程序控制器的存储器中或在***存储器中。
在一个实施例中,确定密码测量值包括使用消息认证码来计算摘要,其中数据和秘密密钥是用于计算摘要的输入。
在一个实施例中,秘密密钥存储在引导装置的存储器中。
在一个实施例中,期望值为存储在查找表中的摘要。
在一个实施例中,存储在查找表中的摘要为第一摘要,且查找表包括多个摘要,每一摘要对应于相应起始地址和相应结束地址。
在一个实施例中,相应起始地址和相应结束地址识别存储装置或***存储器的存储器空间中的地址。
在一个实施例中,从存储装置接收数据,计算机程序存储在所述存储装置中,所述计算机程序包括多个数据部分,从所述存储装置接收的数据为多个数据部分中的第一数据部分,且在多个数据部分中的每一个被接受之后,基于使用相应数据部分作为输入的密码测量值,通过应用控制器执行计算机程序,并将计算机程序写入到***存储器。
在一个实施例中,从存储装置接收数据,且将引导代码存储在引导装置的存储器中,所述方法进一步包括在从存储装置接收数据之前,将引导代码加载到应用程序控制器以用于启动应用程序控制器的应用程序。
在一个实施例中,一种***包含:至少一个处理器;以及存储器,其含有经配置以指示至少一个处理器执行以下操作的指令:从***存储器或存储装置接收数据;及将数据存储在第一存储器中;确定数据的密码测量值;将所述密码测量值与期望值进行比较;且基于将密码测量值与期望值进行比较,确定是接受还是拒绝数据。
在一个实施例中,第一存储器为引导装置的缓冲器,所述缓冲器经由应用程序控制器从***存储器接收数据,且所述指令经进一步配置以指示至少一个处理器响应于确定拒绝数据,更新***存储器中的数据的至少一部分。
在一个实施例中,从***存储器接收数据,第一存储器为应用程序控制器的存储器,且包含数据的计算机程序存储在***存储器中,且其中指令经进一步配置以指示至少一个处理器响应于确定接受数据而执行计算机程序。
图7展示根据一个实施例的用以接收存储在存储装置或***存储器中的计算机程序的数据部分且基于将数据部分的密码测量值与相应期望值进行比较来确定是接受还是拒绝每一数据部分的方法在框701处,从存储装置或***存储器接收计算机程序的多个数据部分。例如,如上文所描述,多个数据部分可为固件中的代码页或运行时代码。例如,可使用引导装置156针对图1或2的应用程序控制器152来实施所述方法。
在框703处,每一所接收到的数据部分存储在引导装置的缓冲器中。例如,所述缓冲器为本地缓冲器158,且引导装置为引导装置156。
在方框705处,为所接收的数据部分的每一数据部分确定密码测量值。密码测量值为例如使用MAC计算的摘要。
在方框707处,将每一密码测量值与存储在查找表中的相应期望值进行比较。例如,查找表为查找表160和/或206。
在框709处,确定是接受还是拒绝每一数据部分。所述确定基于将密码测量值与相应期望值进行比较。在一个实施例中,响应于接受代码内容的所有数据部分,应用程序控制器152执行代码内容。
现在在下文描述各种额外实施例。在一个实施例中,一种方法包含:通过至少一个处理器从计算装置接收数据;将数据存储在存储器中;通过至少一个处理器确定数据的密码测量值;通过至少一个处理器将密码测量值与期望值进行比较,其中期望值存储在存储器中;基于将密码测量值与期望值进行比较,确定是接受还是拒绝数据。
在一个实施例中,计算装置为存储装置,且将数据存储在存储器中包括将数据存储在引导装置的缓冲器中,所述方法进一步包括响应于确定接受数据,将数据从缓冲器拷贝到***存储器。
在一个实施例中,所述方法进一步包含响应于确定拒绝数据,致使应用程序控制器进入或保持处于救援模式。
在一个实施例中,数据为第一更新,且从计算装置接收数据包括接收包含所述第一更新的软件的无线更新,且其中救援模式包括致使应用程序控制器从引导装置加载救援模式代码,且执行救援模式代码以从计算装置获得软件的第二更新。
在一个实施例中,所述计算装置为存储装置,所述密码测量值由应用程序控制器的密码引擎确定,且所述方法进一步包含:在将所述密码测量值与所述期望值进行比较之前,致使所述应用程序控制器从引导装置的查找表中读取所述期望值,且将所述期望值存储在所述应用程序控制器的存储器中。
在一个实施例中,由应用程序控制器执行将密码测量值与期望值进行比较,且所述方法进一步包含响应于确定拒绝数据,致使应用程序控制器丢弃先前存储在应用程序控制器的***存储器中的软件,其中所述软件包含被拒绝的数据。
在一个实施例中,通过由应用程序控制器请求的无线更新从计算装置获得先前所存储软件。
在各种实施例中,使用非暂时性计算机存储媒体来存储***103的固件104和/或其它组件(例如,应用程序控制器152、存储装置150或引导装置156)的固件的指令。当指令由控制器(例如,应用程序控制器或引导或存储装置的控制器)执行时,指令致使控制器执行本文中所论述的方法中的任一者。
在此描述中,各种功能和操作可被描述为由计算机指令执行或由计算机指令引起,以简化描述。然而,所属领域的技术人员将认识到,此类表达的意思为功能是由一或多个控制器或处理器(例如,微处理器)执行计算机指令而产生。替代地或组合地,可使用具有或不具有软件指令的专用电路***来实施功能和操作,例如使用专用集成电路(ASIC)或现场可编程门阵列(FPGA)。可使用没有软件指令的硬连线电路***或结合软件指令来实施实施例。因此,所述技术既不限于硬件电路***与软件的任何特定组合,也不限于由数据处理***执行的指令的任何特定源。
虽然一些实施例可在功能齐全的计算机和计算机***中实施,但各种实施例能够以各种形式作为计算产品分布,且能够应用而无论用于实际实现分布的机器或计算机可读媒体的特定类型如何。
所揭示的至少一些方面可至少部分地体现在软件中。即,所述技术可在电脑***或其它数据处理***中响应于其处理器(例如,微处理器或微控制器)执行在存储器(例如,ROM、易失性RAM、非易失性存储器、高速缓存存储器或远程存储装置)中所含有的指令序列而被实施。
被执行以实施实施例的例程可经实施为操作***或被称为“计算机程序”的特定应用程序、组件、程序、对象,模块或指令序列的一部分。所述计算机程序通常包括一或多个指令,所述指令是在不同时间设置在计算机的各种存储器和存储装置中,且所述指令在由计算机中的一或多个处理器读取和执行时致使计算机执行执行涉及各种方面的元素所需的操作。
有形的非暂时性计算机存储媒体可用于存储软件和数据,所述软件和数据在由数据处理***执行时,致使***执行各种方法。可执行软件和数据可存储在各种位置中,包含例如ROM、易失性RAM、非易失性存储器和/或高速缓存存储器。此软件和/或数据的部分可存储在这些存储装置中的任何一个中。此外,数据和指令可从集中式服务器或对等网络获得。可在不同的时间、在不同的通信会话中或在同一通信会话中,从不同的集中式服务器和/或对等网络获得数据和指令的不同部分。可在执行应用程序之前完整获取数据和指令。替代地,可在执行需要时及时地动态获得部分数据和指令。因此,不要求数据和指令在特定时刻全部在机器可读媒体中上。
计算机可读存储媒体的实例包含但不限于可记录和不可记录类型的媒体,例如易失性和非易失性存储装置、只读存储器(ROM)、随机存取存储器(RAM)、快闪存储器装置、软盘和其它可拆卸磁盘、磁盘存储媒体和光学存储媒体(例如,光盘只读存储器(CD ROM),数字多功能磁盘(DVD)等)以及其它媒体。指令可体现在暂时媒体中,例如电、光、声学或其它形式的传播信号,例如载波、红外线信号、数字信号等。暂时性媒体通常用于传输指令,但不能视为能够存储指令。
在各种实施例中,硬连线电路***可与软件指令结合使用以实施技术。因此,所述技术既不限于硬件电路***与软件的任何特定组合,也不限于由数据处理***执行的指令的任何特定源。
尽管一些图式以特定次序说明多个操作,但不依赖顺序的操作可被重新排序,且其它操作可经组合或分解。虽然具体提到一些重新排序或其它分组,但其它分组对于所属领域普通技术人员而言将为显而易见的,且因此并未呈现替代方案的穷尽列表。此外,应认识到,这些阶段可以硬件、固件、软件或其任何组合来实施。
上文描述和附图为说明性的,且不应解释为限制性的。描述许多具体细节以提供透彻的理解。然而,在某些情况下,为了避免使描述不清楚,没有描述众所周知的或常规的细节。在本发明中对一或多个实施例的引用不一定是对同一实施例的引用;且此类参考文献意指至少一个。
在前述说明书中,已参考本发明的特定示范性实施例描述本发明。将显而易见,在不背离如以下权利要求书中所陈述的较宽广精神和范围的情况下,可对本发明做出各种修改。因此,说明书和图式应考虑说明性而非限制性。
Claims (20)
1.一种由引导装置实施的方法,所述方法包括:
通过所述引导装置接收数据,所述数据包含通过应用程序控制器从第一源请求的计算机程序的第一更新;
将所述数据存储在所述引导装置的缓冲器中;
通过所述引导装置的处理器确定所述数据的密码测量值;
通过所述处理器将所述密码测量值与存储在查找表中的期望值进行比较;
基于将所述密码测量值与所述期望值进行比较来判定是接受还是拒绝所述数据;及
响应于确定拒绝所述计算机程序的所述第一更新的至少一部分,
致使所述应用程序控制器从所述引导装置加载救援模式代码,及
致使所述应用程序控制器执行所述救援模式代码以从第二源获得所述计算机程序的第二更新。
2.根据权利要求1所述的方法,其中从存储装置接收所述数据,所述方法进一步包括响应于确定接受所述数据,致使所述应用程序控制器将所述数据写入到***存储器。
3.根据权利要求1所述的方法,其中所述查找表存储在所述引导装置的存储器中,在所述应用程序控制器的存储器中或在***存储器中。
4.根据权利要求1所述的方法,其中确定所述密码测量值包括使用消息认证码来计算摘要,其中所述数据和秘密密钥是用于计算所述摘要的输入。
5.根据权利要求4所述的方法,其中所述秘密密钥存储在所述引导装置的存储器中。
6.根据权利要求1所述的方法,其中所述期望值为存储在所述查找表中的摘要。
7.根据权利要求6所述的方法,其中存储在所述查找表中的所述摘要为第一摘要,且所述查找表包括多个摘要,每一摘要对应于相应起始地址和相应结束地址。
8.根据权利要求7所述的方法,其中所述相应起始地址和所述相应结束地址识别存储装置或***存储器的存储器空间中的地址。
9.根据权利要求1所述的方法,其中从存储装置接收所述数据,所述计算机程序存储在所述存储装置中,所述计算机程序包括多个数据部分,从所述存储装置接收的所述数据为所述多个数据部分中的第一数据部分,且在所述多个数据部分中的每一个被接受之后,基于使用相应数据部分作为输入的密码测量值,通过所述应用程序控制器执行所述计算机程序,并将所述计算机程序写入到***存储器。
10.根据权利要求1所述的方法,其中从存储装置接收所述数据,且将引导代码存储在所述引导装置的存储器中,所述方法进一步包括在从所述存储装置接收所述数据之前,将所述引导代码加载到所述应用程序控制器以用于启动所述应用程序控制器的应用程序。
11.一种用以更新计算机程序的方法,其包括:
通过至少一个处理器从计算装置接收数据,所述数据包含所述计算机程序的第一更新;
将所述数据存储在存储器中;
通过所述至少一个处理器确定所述数据的密码测量值;
通过所述至少一个处理器将所述密码测量值与期望值进行比较,其中所述期望值存储在存储器中;
基于将所述密码测量值与所述期望值进行比较来判定是接受还是拒绝所述数据;及
响应于确定拒绝所述第一更新的一部分,
致使所述至少一个处理器执行救援模式代码,及
致使所述至少一个处理器执行所述救援模式代码以从所述计算装置获得所述计算机程序的第二更新。
12.根据权利要求11所述的方法,其中所述计算装置为存储装置,且将所述数据存储在存储器中包括将所述数据存储在引导装置的缓冲器中,所述方法进一步包括响应于确定接受所述数据,将所述数据从所述缓冲器拷贝到***存储器。
13.根据权利要求11所述的方法,其进一步包括响应于确定拒绝所述数据,致使应用程序控制器进入或保持处于救援模式。
14.根据权利要求13所述的方法,其中所述数据为第一更新,且从所述计算装置接收所述数据包括接收包含所述第一更新的软件的无线更新,且其中所述救援模式包括致使所述应用程序控制器从引导装置加载救援模式代码,且执行所述救援模式代码以从所述计算装置获得所述软件的第二更新。
15.根据权利要求11所述的方法,其中所述计算装置为存储装置,且所述密码测量值由应用程序控制器的密码引擎确定,所述方法进一步包括:
在将所述密码测量值与所述期望值进行比较之前,致使所述应用程序控制器从引导装置的查找表中读取所述期望值,且将所述期望值存储在所述应用程序控制器的存储器中。
16.根据权利要求15所述的方法,其中由所述应用程序控制器执行将所述密码测量值与所述期望值进行比较,所述方法进一步包括响应于确定拒绝所述数据,致使所述应用程序控制器丢弃先前存储在所述应用程序控制器的***存储器中的软件,其中所述软件包含所述被拒绝的数据。
17.根据权利要求16所述的方法,其中通过由所述应用程序控制器请求的无线更新从所述计算装置获得所述先前所存储软件。
18.一种用以更新计算机程序的***,其包括:
至少一个处理器;及
存储器,其含有经配置以指示所述至少一个处理器执行以下操作的指令:
从***存储器或存储装置接收数据,所述数据包含所述计算机程序的第一更新;
将所述数据存储在第一存储器中;
确定所述数据的密码测量值;
将所述密码测量值与期望值进行比较;
基于将所述密码测量值与所述期望值进行比较来判定是接受还是拒绝所述数据;及
响应于确定拒绝所述计算机程序的所述第一更新的至少一部分,执行来自引导装置的救援模式代码以获得所述计算机程序的第二更新。
19.根据权利要求18所述的***,其中所述第一存储器为所述引导装置的缓冲器,所述缓冲器经由应用程序控制器从所述***存储器接收所述数据,且所述指令经进一步配置以指示所述至少一个处理器响应于确定拒绝所述数据,更新所述***存储器中的数据的至少一部分。
20.根据权利要求18所述的***,其中从所述***存储器接收所述数据,所述第一存储器为应用程序控制器的存储器,且包含所述数据的计算机程序存储在所述***存储器中,且其中所述指令经进一步配置以指示所述至少一个处理器响应于确定接受所述数据而执行所述计算机程序。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/879,787 | 2018-01-25 | ||
US15/879,787 US10924277B2 (en) | 2018-01-25 | 2018-01-25 | Certifying authenticity of stored code and code updates |
PCT/US2018/068132 WO2019147389A1 (en) | 2018-01-25 | 2018-12-31 | Certifying authenticity of stored code and code updates |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111630513A CN111630513A (zh) | 2020-09-04 |
CN111630513B true CN111630513B (zh) | 2023-10-17 |
Family
ID=67300232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880087333.9A Active CN111630513B (zh) | 2018-01-25 | 2018-12-31 | 认证所存储代码和代码更新的真实性 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10924277B2 (zh) |
CN (1) | CN111630513B (zh) |
WO (1) | WO2019147389A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10715321B2 (en) | 2017-12-22 | 2020-07-14 | Micron Technology, Inc. | Physical unclonable function using message authentication code |
US10906506B2 (en) | 2017-12-28 | 2021-02-02 | Micron Technology, Inc. | Security of user data stored in shared vehicles |
US11321466B2 (en) * | 2018-03-09 | 2022-05-03 | Qualcomm Incorporated | Integrated circuit data protection |
US10778661B2 (en) * | 2018-04-27 | 2020-09-15 | Micron Technology, Inc. | Secure distribution of secret key using a monotonic counter |
DE102018213616A1 (de) * | 2018-06-20 | 2019-12-24 | Robert Bosch Gmbh | Kryptografiemodul und Betriebsverfahren hierfür |
US11470062B2 (en) * | 2019-03-22 | 2022-10-11 | Raytheon Technologies Corporation | Secure reprogramming of embedded processing system |
US11263308B2 (en) * | 2019-03-25 | 2022-03-01 | Micron Technology, Inc. | Run-time code execution validation |
US11288373B2 (en) * | 2019-04-11 | 2022-03-29 | Baidu Usa Llc | Boot failure recovery scheme for hardware-based system of autonomous driving vehicles |
US11119750B2 (en) * | 2019-05-23 | 2021-09-14 | International Business Machines Corporation | Decentralized offline program updating |
DE102022202824A1 (de) | 2022-03-23 | 2023-01-19 | Vitesco Technologies GmbH | Verfahren zum Ermitteln einer Manipulation von Übertragungs-Messsignalen einer Sensoreinheit eines Systems und System |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103069384A (zh) * | 2010-08-10 | 2013-04-24 | 桑迪士克以色列有限公司 | 用从储存设备加载的操作***代码安全地引导主机设备的主机设备和方法 |
CN107085675A (zh) * | 2016-02-16 | 2017-08-22 | 爱特梅尔公司 | 受控安全代码验证 |
Family Cites Families (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6388558B1 (en) | 1997-12-03 | 2002-05-14 | Adc Technology Inc. | Key system |
US7917888B2 (en) * | 2001-01-22 | 2011-03-29 | Symbol Technologies, Inc. | System and method for building multi-modal and multi-channel applications |
JP2003016577A (ja) | 2001-07-04 | 2003-01-17 | Honda Motor Co Ltd | 車両管理装置 |
US7840803B2 (en) | 2002-04-16 | 2010-11-23 | Massachusetts Institute Of Technology | Authentication of integrated circuits |
JP2004361723A (ja) | 2003-06-05 | 2004-12-24 | Nec Commun Syst Ltd | 楽曲データ配信システム、楽曲データ配信方法、および、楽曲データ配信プログラム |
US7734932B2 (en) * | 2003-11-10 | 2010-06-08 | Broadcom Corporation | System and method for securing executable code |
US7934049B2 (en) * | 2005-09-14 | 2011-04-26 | Sandisk Corporation | Methods used in a secure yet flexible system architecture for secure devices with flash mass storage memory |
US7424398B2 (en) * | 2006-06-22 | 2008-09-09 | Lexmark International, Inc. | Boot validation system and method |
US7757098B2 (en) | 2006-06-27 | 2010-07-13 | Intel Corporation | Method and apparatus for verifying authenticity of initial boot code |
US9794247B2 (en) | 2006-08-22 | 2017-10-17 | Stmicroelectronics, Inc. | Method to prevent cloning of electronic components using public key infrastructure secure hardware device |
US20080148061A1 (en) * | 2006-12-19 | 2008-06-19 | Hongxia Jin | Method for effective tamper resistance |
US8068614B2 (en) * | 2007-09-28 | 2011-11-29 | Intel Corporation | Methods and apparatus for batch bound authentication |
EP2329423B1 (en) | 2008-09-26 | 2018-07-18 | Koninklijke Philips N.V. | Authenticating a device and a user |
US8184812B2 (en) * | 2009-06-03 | 2012-05-22 | Freescale Semiconductor, Inc. | Secure computing device with monotonic counter and method therefor |
US8812854B2 (en) | 2009-10-13 | 2014-08-19 | Google Inc. | Firmware verified boot |
WO2012122994A1 (en) | 2011-03-11 | 2012-09-20 | Kreft Heinz | Off-line transfer of electronic tokens between peer-devices |
KR101881167B1 (ko) | 2011-06-13 | 2018-07-23 | 주식회사 케이티 | 차량 제어 시스템 |
US8776040B2 (en) | 2011-08-19 | 2014-07-08 | International Business Machines Corporation | Protection for unauthorized firmware and software upgrades to consumer electronic devices |
US9183393B2 (en) | 2012-01-12 | 2015-11-10 | Facebook, Inc. | Multiple system images for over-the-air updates |
KR101869059B1 (ko) * | 2012-02-28 | 2018-06-20 | 삼성전자주식회사 | 저장 장치 및 그것의 메모리 컨트롤러 |
US9172538B2 (en) * | 2012-04-20 | 2015-10-27 | T-Mobile Usa, Inc. | Secure lock for mobile device |
KR101975027B1 (ko) * | 2012-05-04 | 2019-05-03 | 삼성전자주식회사 | 시스템 온 칩, 이의 동작 방법, 이를 포함하는 장치들 |
US10079678B2 (en) | 2012-07-24 | 2018-09-18 | Intel Corporation | Providing access to encrypted data |
WO2014030233A1 (ja) | 2012-08-22 | 2014-02-27 | Kamisawa Teruhiko | レンタカー管理システム、レンタカー管理方法、及びレンタカー管理プログラム |
US8874653B2 (en) | 2012-11-12 | 2014-10-28 | Maximilian A. Chang | Vehicle security and customization |
US9342935B2 (en) | 2013-01-04 | 2016-05-17 | Diamond 18 Ltd. | Smartphone based system for vehicle monitoring security |
US9858208B2 (en) | 2013-03-21 | 2018-01-02 | International Business Machines Corporation | System for securing contents of removable memory |
WO2014175861A1 (en) * | 2013-04-23 | 2014-10-30 | Hewlett-Packard Development Company, L.P. | Recovering from compromised system boot code |
JP6136543B2 (ja) | 2013-05-01 | 2017-05-31 | 村田機械株式会社 | 自律移動体 |
US9953166B2 (en) * | 2013-07-04 | 2018-04-24 | Microsemi SoC Corporation | Method for securely booting target processor in target system using a secure root of trust to verify a returned message authentication code recreated by the target processor |
US9992031B2 (en) | 2013-09-27 | 2018-06-05 | Intel Corporation | Dark bits to reduce physically unclonable function error rates |
US9643722B1 (en) | 2014-02-28 | 2017-05-09 | Lucas J. Myslinski | Drone device security system |
US9147075B1 (en) | 2014-03-20 | 2015-09-29 | Juniper Networks, Inc. | Apparatus and method for securely logging boot-tampering actions |
US10332124B2 (en) | 2014-10-31 | 2019-06-25 | Aeris Communications, Inc. | Automatic connected vehicle subsequent owner enrollment process |
US9740863B2 (en) | 2014-11-25 | 2017-08-22 | Intel Corporation | Protecting a secure boot process against side channel attacks |
US9934411B2 (en) | 2015-07-13 | 2018-04-03 | Texas Instruments Incorporated | Apparatus for physically unclonable function (PUF) for a memory array |
US20170126414A1 (en) | 2015-10-28 | 2017-05-04 | Texas Instruments Incorporated | Database-less authentication with physically unclonable functions |
US11183083B2 (en) | 2016-06-01 | 2021-11-23 | Intrinsic Id B.V. | Cryptographic device and memory based PUF |
JP6490323B2 (ja) | 2017-01-06 | 2019-03-27 | 三菱電機株式会社 | ナビゲーション装置及び表示制御方法 |
US10367889B2 (en) * | 2017-02-16 | 2019-07-30 | Ford Global Technologies, Llc | Smart routing for on-vehicle telematics protocol |
US10296421B2 (en) * | 2017-06-26 | 2019-05-21 | Micron Technology, Inc. | Memory devices and systems with security capabilities |
US20190068361A1 (en) * | 2017-08-30 | 2019-02-28 | Ford Global Technologies, Llc | In-vehicle group key distribution |
US11683831B2 (en) | 2017-12-01 | 2023-06-20 | Woven Planet North America, Inc. | Systems and methods for providing resource analysis for autonomous mobility on demand |
US10310505B1 (en) | 2017-12-01 | 2019-06-04 | Uber Technologies, Inc. | Seamless vehicle entry |
US10715321B2 (en) | 2017-12-22 | 2020-07-14 | Micron Technology, Inc. | Physical unclonable function using message authentication code |
US10906506B2 (en) | 2017-12-28 | 2021-02-02 | Micron Technology, Inc. | Security of user data stored in shared vehicles |
US10778661B2 (en) | 2018-04-27 | 2020-09-15 | Micron Technology, Inc. | Secure distribution of secret key using a monotonic counter |
-
2018
- 2018-01-25 US US15/879,787 patent/US10924277B2/en active Active
- 2018-12-31 CN CN201880087333.9A patent/CN111630513B/zh active Active
- 2018-12-31 WO PCT/US2018/068132 patent/WO2019147389A1/en active Application Filing
-
2021
- 2021-02-11 US US17/173,518 patent/US20210167960A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103069384A (zh) * | 2010-08-10 | 2013-04-24 | 桑迪士克以色列有限公司 | 用从储存设备加载的操作***代码安全地引导主机设备的主机设备和方法 |
CN107085675A (zh) * | 2016-02-16 | 2017-08-22 | 爱特梅尔公司 | 受控安全代码验证 |
Also Published As
Publication number | Publication date |
---|---|
US20190229913A1 (en) | 2019-07-25 |
US20210167960A1 (en) | 2021-06-03 |
WO2019147389A1 (en) | 2019-08-01 |
CN111630513A (zh) | 2020-09-04 |
US10924277B2 (en) | 2021-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111630513B (zh) | 认证所存储代码和代码更新的真实性 | |
US11144301B2 (en) | Over-the-air (OTA) update for firmware of a vehicle component | |
US10685122B2 (en) | Portable executable and non-portable executable boot file security | |
US20200272739A1 (en) | Performing an action based on a pre-boot measurement of a firmware image | |
KR102444625B1 (ko) | 참조 플랫폼 매니페스트 및 데이터 씰링에 따른 보안 os 부팅 기법 | |
JP4708414B2 (ja) | ランタイム・セキュリティ保証用の自律型メモリ・チェッカ | |
KR101643072B1 (ko) | 인터넷 이용 가능 컴퓨팅 노드에 대한 불변 안티바이러스 페이로드의 제공 | |
US9270467B1 (en) | Systems and methods for trust propagation of signed files across devices | |
US9164925B2 (en) | Method and apparatus for authorizing host to access portable storage device | |
US11966753B2 (en) | Selective boot sequence controller that cryptographically validating code package for resilient storage memory | |
US10776493B2 (en) | Secure management and execution of computing code including firmware | |
CN112528244A (zh) | 用于由数据处理加速器处理数据的方法及数据处理加速器 | |
TW201602835A (zh) | 允許測試金鑰用於bios安裝之技術 | |
CN112528245A (zh) | 用于由数据处理加速器处理数据的方法及数据处理加速器 | |
CN112528242A (zh) | 使用用于数据处理加速器的水印算法配置水印单元的***和方法 | |
CN112528243A (zh) | 用于通过数据处理加速器处理数据的***和方法 | |
CN107924440B (zh) | 用于管理容器的方法、***和计算机可读介质 | |
CN111177703A (zh) | 操作***数据完整性的确定方法及装置 | |
US11928210B2 (en) | Module and method for monitoring systems of a host device for security exploitations | |
US20240037216A1 (en) | Systems And Methods For Creating Trustworthy Orchestration Instructions Within A Containerized Computing Environment For Validation Within An Alternate Computing Environment | |
US20230274002A1 (en) | Firmware authenticity check | |
CN112650987B (zh) | 使用内核签名人工智能水印的方法和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |