CN116324992A - 用于从非易失性存储器设备快速安全引导的方法以及对应的系统和设备 - Google Patents

用于从非易失性存储器设备快速安全引导的方法以及对应的系统和设备 Download PDF

Info

Publication number
CN116324992A
CN116324992A CN202180067208.3A CN202180067208A CN116324992A CN 116324992 A CN116324992 A CN 116324992A CN 202180067208 A CN202180067208 A CN 202180067208A CN 116324992 A CN116324992 A CN 116324992A
Authority
CN
China
Prior art keywords
nvm
code
host
value
authentication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180067208.3A
Other languages
English (en)
Inventor
中田大辅
冈田伸介
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technology Co ltd
Original Assignee
Infineon Technology Co ltd
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 Infineon Technology Co ltd filed Critical Infineon Technology Co ltd
Publication of CN116324992A publication Critical patent/CN116324992A/zh
Pending legal-status Critical Current

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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • 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/32Cryptographic 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/3236Cryptographic 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/3242Cryptographic 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
    • 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/32Cryptographic 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/3247Cryptographic 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
    • 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/32Cryptographic 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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/32Cryptographic 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • 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/26Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm
    • 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/84Vehicles

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Power Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

一种方法可以包括在非易失性存储器(NVM)设备中存储可由主机设备执行的主机代码和可由NVM设备执行的NVM代码。NVM设备可以响应于预定条件来验证NVM代码的完整性,并生成用于验证NVM代码的代码完整性值。代码完整性值具有与主机代码的大小无关的大小。可以向主机设备发送认证码,该认证码使用至少代码完整性值来被生成。响应于来自主机设备的读取请求,返回主机代码的至少部分以由主机设备执行。还公开了对应的设备和系统。

Description

用于从非易失性存储器设备快速安全引导的方法以及对应的 系统和设备
相关申请
本申请是2020年12月15日提交的美国申请第17/122,927号的国际申请,该美国申请要求2020年10月2日提交的美国临时专利申请第63/086,750号的优先权和权益,其全部内容通过引用整体并入本文。
技术领域
本发明大体上涉及具有执行存储在非易失性存储器设备上的代码的主机设备的系统,并且更明确地说,涉及主机设备认证存储在非易失性存储器设备上的代码的系统。
背景技术
包括处理器的系统可以具有引导操作,其中可以从存储器设备加载用于由处理器执行的代码(例如,软件(SW)或固件(FW))。例如,引导操作可以响应于加电和/或复位事件而发生。用于引导操作的代码通常存储在非易失性存储器(NVM)设备中。
具有“安全”引导的能力对于许多系统是关键的。安全引导依赖于在由处理器执行之前建立代码的完整性。通常,代码的完整性可以通过主机设备在系统启动时测量代码内容来建立。测量代码内容取决于非易失性设备所存储的代码(例如,SW映像)的大小。总启动时间(时间)可以由下式给出:
time=tbl+tapp tapp=BWmeasure*Sizeapp
其中tbl是引导加载器加载时间,tapp是应用测量(完整性检验)时间,BWmeasure是传输速率(例如,每字节的时间),并且Sizeapp是SW映像的大小(例如,字节)。因此,启动时间可以取决于SW映像的大小。
图17是示出系统1701的常规启动序列的框图。系统1701可以包括NVM设备1703和主机设备1705。在启动序列中,NVM设备1703中的加电复位电路1707-0可以检测加电或复位条件,并且对NVM设备1703通电以使其可操作。
在主机设备1705内,主机POR电路1707-1可以检测加电或复位条件。作为响应,主机设备1705可以执行只读存储器(ROM)引导操作1709,其可以从ROM加载引导数据。主机设备1705然后可以执行引导加载操作1715,其包括从NVM设备1703读取引导加载数据1711。引导加载数据1711的完整性可以经过测量操作1717-0。这可以包括根据具有散列功能1717的引导加载数据1711和/或具有解密功能1719的解密引导加载器数据生成散列值。ROM引导操作1709和引导加载操作1715可以在引导加载时间tbl 1721期间发生。
主机设备1705然后可以执行应用软件(AppSW)完整性操作1723。这可以包括存储在NVM设备1703上的AppSW 1725的测量操作1717-1。如上所述,AppSW完整性操作1723可以占用时间tapp 1727,其可以根据AppSW的大小而变化。
类似于图17的常规引导序列的缺点是引导时间将随着SW大小增加而增加。仅作为一个示例,这在一些系统中可能是有问题的,诸如在控制器区域网络(CAN)上操作的那些系统,其中引导时间可以超过较大SW大小的总线响应时间限制。
附图说明
图1A至图1C是示出根据实施方式的用于具有主机设备和非易失性存储器(NVM)设备的系统的认证方法的框图序列。
图2是示出根据实施方式的认证存储在NVM设备中的软件的方法的框图。
图3是根据实施方式的使用对称加密来认证NVM设备状态的系统和对应方法的框图。
图4是根据实施方式的使用非对称加密来认证NVM设备状态的系统和对应方法的框图。
图5是根据另一实施方式的使用非对称加密来认证NVM设备状态的系统和对应方法的框图。
图6是示出与各种实施方式的引导时间相比的常规引导时间的图。
图7是根据实施方式的NVM设备的框图。
图8是可以包括在实施方式中的NVM阵列的框图。
图9是根据实施方式的集成电路NVM设备的框图。
图10是根据实施方式的主机设备的框图。
图11是根据实施方式的汽车系统的框图。
图12是根据另一实施方式的汽车系统的框图。
图13是根据实施方式的NVM设备认证方法的流程图。
图14是根据实施方式的主机设备认证方法的流程图。
图15是根据实施方式的认证方法的流程图。
图16是根据实施方式的代码(例如,固件)更新操作的流程图。
图17是常规安全引导操作的框图。
具体实施方式
根据实施方式,非易失性存储器(NVM)设备可以存储用于由主机设备执行的主机代码和用于由NVM设备本身执行的NVM代码。响应于预定条件(例如,加电或复位),NVM设备可以检验NVM代码的完整性。NVM设备可以存储代码完整性值,其在认证码中被传输至主机设备。主机设备可以基于认证码而不是通过测量所存储的主机代码来认证NVM所存储的代码。
在一些实施方式中,代码完整性值可以是NVM代码的已知良好版本的散列值。
在一些实施方式中,NVM设备可以使用私钥加密认证码,并且主机设备可以使用公钥解密认证码。
在一些实施方式中,NVM设备可以生成由主机设备读取的NVM代码的散列值。主机设备可以将从NVM设备读取的散列值与已知的有效散列值进行比较以认证NVM设备,从而认证NVM设备所存储的主机代码。
在以下各种实施方式中,相似的项由相同的附图标记表示,但前导数字对应于附图编号。
图1A至图1C是根据实施方式的系统100的框图。系统100可以包括NVM设备102和主机设备104。NVM设备102可以包括NVM用户空间106、主机固件(FW)108、NVM固件109、代码完整性值110和代码完整性检验器112。NVM用户空间106可以包括用于存储数据的NVM单元的一个或更多个阵列,包括主机FW(例如,代码)108和NVM FW 109。NVM阵列可以采用任何合适的形式,包括但不限于NOR配置。主机FW 108可以是主机设备104可执行的固件映像。NVM FW109可以是NVM设备102可执行的固件映像。在一些实施方式中,NVM FW 109被存储在NVM设备102的安全存储器区域中,并且不可在NVM设备外部访问,或仅可通过安全访问程序访问。
代码完整性值110可以是表示NVM设备102的完整性并且因此可以认证主机FW 108的完整性的值。代码完整性值110可以被主机设备104用来认证NVM设备102,并且因此不需要主机设备102像在常规方法中那样用测量操作来评估主机FW 108。代码完整性值110可以具有不根据主机FW 108的大小而变化的比特大小。在一些实施方式中,代码完整性值110可以是由在NVM FW 109的已知有效版本上执行的散列功能生成的散列值。在一些实施方式中,代码完整性值110可以存储在NVM设备102的安全位置(未示出)。安全位置可以是仅可通过安全程序(诸如认证,仅作为一个示例)访问的存储区域。在一些实施方式中,代码完整性值110可以存储在未加密状态中(例如,在安全区域中)。然而,在其他实施方式中,这样的值可以以加密状态存储在NVM设备102上。
代码完整性检验器112可以进行NVM FW 109的测量,以用于NVM设备102(并且因此由NVM设备102存储的主机FW 108)的完整性评估。这样的操作可以采取任何适当的形式,包括测量NVM FW 109的全部或部分。在一些实施方式中,代码完整性检验器112可以从NVM FW109生成单个散列值。在一些实施方式中,可以将这样的所生成的散列值与已知的有效散列值(例如,代码完整性值110)进行比较。代码完整性检验器112可以采取任何合适的形式,包括但不限于:执行所存储的指令的NVM处理器和/或为该功能设计的逻辑电路。在一些实施方式中,如果代码完整性检验器112确定所存储的NVM FW 109无效,则NVM 102可以防止对主机FW 108的任何访问(其不能被保证是有效的)。
主机设备104可以通过任何适当的方式与NVM 102通信,包括有线或无线连接。在一些实施方式中,主机设备104可以通过串行总线与NVM设备102通信。主机设备104可以包括认证功能114和主机FW执行功能116。认证功能114可以使用从NVM 102提供的代码完整性值110来认证FW 108。主机FW执行功能116可以执行存储在NVM设备102上的主机FW 108以提供各种系统应用。在一些实施方式中,主机FW执行功能116可以是直接从NVM 102执行代码的就地执行(XIP)功能。然而,在其他实施方式中,主机FW执行功能116可以将主机FW 108加载至主机设备104上的主机存储器(例如,未示出的DRAM)中。主机设备104然后可以从主机存储器执行主机FW。
现在将描述系统100的操作。
参照图1A,响应于某些条件,NVM设备102可以检验NVM FW 109的完整性①。在一些实施方式中,这样的条件可以包括加电或复位。然而,完整性检验操作可以响应于任何其他合适的条件而触发,包括由主机设备104发出的预定命令。FW完整性检验操作①可以采取本文所述的任何形式或等效形式。
参照图1B,NVM设备102可以向主机设备104发送加密的代码完整性值110’。主机设备104可以基于加密的代码完整性值110’来认证NVM FW 109。在一些实施方式中,主机设备104可以访问NVM设备102以在认证操作中读取附加数据(例如,检索当前存储的FW 108的散列值)。加密的代码完整性值110’可以具有与主机FW 108的大小无关的大小,并且因此可以在预定时间量(例如,一个读取操作)内被访问。结果,引导操作的时间可以比常规方法更快和/或更确定。认证NVM FW 109可以认证NVM设备102的状态,并且因此认证由NVM设备102存储的主机FW 108的状态。
参照图1C,一旦主机设备104认证了主机FW 108,主机设备104就可以访问主机FW108以由FW执行功能116执行。在一些实施方式中,主机FW 108可以在适当的位置执行。在其他实施方式中,FW 108可以被加载至主机存储器(未示出)中。
根据实施方式,代替主机设备通过测量操作来证明NVM设备中存储的代码(例如,SW、FW)的完整性,主机设备可以证明NVM设备的密码状态的完整性。证明NVM设备的硬件(HW)和NVM FW处于有效密码状态可以证明NVM设备没有发生篡改。也就是说,编程至NVM设备中的内容(例如,代码)可以在有效密码状态中被验证为正确的。因此,如果NVM设备未被篡改,则存储在NVM设备中的内容(例如,主机代码)不能被泄露。
与NVM设备所存储的图像(例如,SW)的密码状态相反,提供NVM设备的密码状态可以是固定时间操作,并且与图像大小无关。这与如图17所示的传统方法形成对比。
图2是示出根据实施方式的引导序列的系统200的框图。系统200可以包括安全NVM设备202和主机设备204。NVM设备202可以存储应用软件(AppSW)208以用于主机设备204执行。NVM设备202可以包括加电复位(POR)电路218-0、散列功能220-0以及引导加载器代码222和密码功能224-0。主机设备204可以包括POR电路218-1、主机散列功能220-1和测量功能228。
在启动序列中,响应于加电或复位条件,POR电路218-0可以对NVM设备202通电。在一些实施方式中,散列功能220-0可以用于根据NVM设备202所存储的NVM代码生成代码完整性值。
在主机设备204内,POR电路218-1可以启动主机设备204,其可以进入只读存储器(ROM)引导操作226。这可以包括访问只读存储器(ROM)引导代码以启用初始功能的处理电路(未示出)。
一旦主机设备204通电并且起作用,它就可以从NVM设备202读取引导加载器代码234-0。通过操作ROM引导代码,主机设备204可以对引导加载器代码222执行测量操作228,并且如果引导加载器代码222有效,则加载引导加载器代码222。在引导加载功能222中,通过所安装的引导加载器代码222的操作,主机设备204可以认证NVM设备202(并且因此认证其存储的AppsSW 208)。在一些实施方式中,主机设备204可以使用读取命令等来访问认证数据。由主机设备204从NVM设备202读取的认证数据234-1可以具有有限的大小,并且与NVM设备202所存储的固件的大小无关。认证数据234-1可以包括本文所述的代码完整性值或等效物。
一旦NVM设备202的状态被认证,主机设备204可以执行应用执行操作232,其可以访问和执行存储在NVM设备202上的软件(例如,AppsSW 208)。在一些实施方式中,这可以包括从NVM设备202读取软件234-2用于在适当位置执行,或者用于存储在主机设备204上的主机存储器中用于执行。
主机设备204启动和解锁(例如,认证)NVM设备204所需的时间(示出为tb1_unlock236)可以包括ROM引导操作226和引导加载器操作230。应当理解,与图17的常规引导序列相比,时间tb1_unlock 236可以是与NVM设备202所存储的固件的大小无关的设置值,因为不存在对这样的固件的测量,仅有对引导加载器代码222的测量。
虽然NVM设备与主机设备之间的认证操作可以采取任何合适的形式,但在一些实施方式中,认证可以基于对称密码。图3示出了一个这样的实施方式。
图3示出了包括NMV设备302和主机设备304的系统300。在系统300中,假设NVM设备302可以在引导时检验其自身的FW完整性。此外,NVM设备302和主机设备304共享秘密密钥。
根据实施方式,在引导(例如,加电或复位)时,主机设备304可以向NVM设备302发送询问。响应于询问,NVM设备302可以生成响应。主机设备304可以验证响应。如果NVM设备302响应是有效的,则NVM设备302(及其存储的FW)可以被认证,并且FW可以被主机设备304访问以执行。
仍然参照图3,NVM设备302可以通过一个或更多个连接与主机设备304通信。这样的连接可以包括有线或无线连接,并且在特定实施方式中可以包括串行总线。
NVM设备302可以是具有在缺少某些认证或其他安全程序的情况下不能从NVM设备302外部访问的存储位置的安全设备。NVM设备302可以包括用户空间306、存储秘密密钥338、生成认证码310以及可以存储可被检验以生成代码检验值312的NVM代码。用户空间306可以包括可由其他设备(例如,主机设备304)访问的存储位置,包括由主机设备304执行的主机FW。用户空间306可以由一个或更多个NVM阵列形成。秘密密钥338可以存储在NVM设备302上的安全位置中。在一些实施方式中,这样的安全位置可以是设计用于安全访问的NVM阵列或NVM阵列的部分。认证码生成器310可以按照任何适当的方式生成认证码,并且在所示的实施方式中,可以生成基于散列的消息认证码(HMAC)。可以使用加密的代码完整性值(FW Hash)生成认证码(R)。代码完整性值(FW Hash)可以用于验证由NVM设备302存储的NVMFW。在所示的实施方式中,FW Hash可以是根据已知的良好NVM FW图像生成的散列值。代码完整性值生成器312可以为当前由NVM设备302存储(但不一定已知为有效)的NVM FW生成代码校验值(FW Hash_r)。
主机设备304可以存储与NVM设备302相同的秘密密钥338,生成主机现时值(Nonce_host)340,以与NVM设备302相同的方式生成校验认证值310’,并且可以比较认证值344。
已经描述了系统300的部件,现在将描述系统300的认证操作。
在①处,NVM设备302和主机设备304可以存储相同的秘密密钥(用于对称认证)。
在②处,NVM设备302可以为NVM FW生成代码检验值(FW Hash_r)。代码检验值(FWHash_r)可以表示当前存储在NVM设备302上的NVM FW的测量。在所示的实施方式中,FWHash_r可以是使用与用于生成由NVM设备302存储的有效代码完整性值(FW Hash)的散列功能相同的散列功能生成的NVM FW的散列值。
在③处,主机设备304可以读取来自NVM设备302的代码检验值(FW Hash_r)342。这与主机设备304可以从NVM用户空间306读取所有主机FW用于测量操作的传统方法形成对比。
在④处,主机设备304可以向NVM设备302发送主机现时值(nonce_host)。主机现时值可以是通过任何合适的方式生成的一次性值,包括但不限于:检索所存储的现时值或使用位于主机设备304上的现时生成器(例如,随机或伪随机数生成器)。Nonce_host可以以任何合适的方式被发送至NVM设备302,包括但不限于:发送包括现时值的预定命令或写入至NVM设备302的预定位置(例如,寄存器)。
在⑤处,NVM设备302可以生成认证码(R)310并将其发送至主机设备304。在所示的实施方式中,认证码(R)310可以通过使用秘密密钥338加密以下各项来生成:代码完整性值FW Hash、nonce_host值以及由NVM生成的现时值(nonce_nvm)。所得到的加密值可以经过HMAC功能以生成散列值来生成R。认证值R然后可以与nonce_nvm值一起被发送至主机设备304。值R和nonce_nvm可以以任何合适的方式被发送至主机设备304,包括但不限于:作为响应于来自主机设备304的读取请求(例如,寄存器读取)的数据。
在⑥处,主机设备304可以生成比较认证码(R’)。在所示的实施方式中,比较认证码(R’)310可以通过使用秘密密钥338加密以下各项来生成:从NVM设备302读取的代码完整性值FW Hash_r、nonce_host值和从NVM设备接收的nonce_nvm值。所得到的加密值可以经过与NVM设备相同的HMAC功能以生成R。
在⑦处,主机设备304可以将从NVM设备302接收的认证码(R)310与其生成的比较认证码(R’)310’进行比较。如果两个认证码匹配(R’=R),则NVM设备302可以被认证,并且主机设备302可以访问和使用存储在用户空间306中的FW。
虽然图3示出了一个特定认证码(HMAC)的使用,但是本文的实施方式可以包括任何合适的认证码和认证码处理,包括但不限于:基于认证码的密码,诸如AES-CMAC或其他密码功能。其他实施方式可以包括唯一设备标识符,包括诸如由设备标识符合成引擎(DICE)生成的复合设备标识符。
虽然NVM设备与主机设备之间的认证操作可以包括对称密码,但其他实施方式可以利用非对称密码。图4示出了一个这样的实施方式。
图4示出了包括NMV设备402和主机设备404的系统400。在系统400中,假设NVM设备402可以在引导时检验其自己的NVM FW完整性,并且数字证书410由NVM设备402存储。数字证书410可以由与主机设备404相关联的实体(例如,原始设备制造商、OEM)使用私钥来生成和签名。数字证书410可以包括对应于私钥的公钥。数字签名可以包括加密的代码完整性值(例如,FW Hash)。还假设主机设备404存储其自己的公钥版本。
根据实施方式,在引导时,主机设备404可以验证由NVM设备提供的公钥和数字签名。主机设备404然后可以将代码完整性值与由NVM设备402测量其存储的NVM FW而生成的代码校验值进行比较。
仍然参照图4,NVM设备402可以通过一个或更多个连接与主机设备404通信。NVM设备402可以包括用户空间406、存储数字证书410,并且可以存储可以被检验以生成代码完整性值412的NVM代码。数字证书410可以包括公钥446和代码完整性值。在一些实施方式中,数字证书410可以与X.509标准兼容。数字证书410可以包括使用私钥生成的数字签名452。如下所述,数字证书410可以由主机设备404加载至NVM设备402中。
主机设备404可以存储与NVM设备402相同的公钥446’。在一些实施方式中,公钥446’可以使用位于主机设备404上的非易失性电路(诸如,一次性可编程(OTP)存储器单元或“eFuse”型电路)存储。主机设备404还可以执行如下所述的其他功能。
现在将描述系统400的认证操作。
在①处,主机设备404可以在NVM设备404中安装数字证书410。在所示的实施方式中,数字证书410可以具有公钥,有效代码完整性值(FW Hash)450和使用对应于公钥的私钥签名的数字签名。
在②处,NVM设备402可以生成所存储的NVM FW的代码校验值(FW Hash_r)。FWHash_r值可以是使用与用于生成包括在数字证书410中的代码完整性值(FW Hash)的散列功能相同的散列功能生成的所存储的NVM FW的散列值。
在③处,主机设备404可以接收由NVM设备402存储的公钥446,并执行与其自己存储的公钥446’的比较操作448。如果公钥匹配,则认证操作可以继续。如果公钥不匹配,则NVM设备402可能认证失败。在一些实施方式中,这样的比较操作448可以包括从NVM设备402的可寻址位置(例如,存储器地址和/或寄存器地址)进行读取。
在④处,主机设备404可以执行签名验证操作456以验证从NVM设备402提供的数字签名452。NVM设备402可以向主机设备404提供对应于数字证书410的数字签名452。数字签名452可以是预先使用对应于公钥446/446’的私钥加密的值。在一些实施方式中,NVM设备402可以使用散列功能454根据数字证书的全部或部分(例如,公钥446、FW Hash450)生成散列值。可以将所得到的散列值提供至主机设备404,以在认证处理中使用。在这种情况下,数字签名452可以对应于散列值(例如,包括使用私钥加密的散列值)。然而,在其他实施方式中,签名验证456操作可以包括NVM设备402发送具有对应数字签名452的数字证书410。使用公钥446’,主机设备404可以解密数字签名452。如果所解密的签名匹配其对应的消息(例如,散列值、数字证书),则可以验证包括在数字证书中的代码完整性值(FW Hash)。在一些实施方式中,签名验证值可以响应于主机设备命令(例如,来自存储器或寄存器地址的读取命令)而从NVM设备402发送至主机设备404。
在⑤处,主机设备404可以将代码完整性值(FW Hash)与由NVM设备402生成的代码校验值(FW Hash_r)进行比较。如果两个值匹配(FW Hash=FW Hash_r),则NVM设备402可以被认证,并且主机设备404可以访问并使用存储在用户空间406中的主机FW。在一些实施方式中,代码完整性值(FW Hash)可以与数字证书410一起被接收。然而,在散列值用于签名验证的实施方式中,主机设备404可以从NVM设备402读取有效代码完整性值(FW Hash)。
虽然实施方式可以包括利用源自主机设备的私钥(例如,OEM私钥)的具有非对称加密的认证,但是其他实施方式可以利用源自NVM设备的私钥。图5是这样的实施方式的框图。
图5示出了包括NVM设备502和主机设备504的系统500。在系统500中,假设NVM设备502可以在引导时检验其自己的NVM FW完整性,并且可以安全地存储主机设备504不可访问的私有加密密钥(NVM私钥)。还假设主机设备504存储对应于NVM私钥的公钥。
根据实施方式,在引导时,主机设备504可以向NVM设备502发送现时值。NVM设备502可以返回具有即时生成的数字签名的证书。主机设备504可以验证签名以认证NVM设备502。
仍然参照图5,NVM设备502通过一个或更多个连接与主机设备504通信。NVM设备502可以包括私钥(NVM私钥)558和对应的公钥(NVM公钥)560。NVM设备502还可以使用NVM私钥即时生成代码校验值和数字签名。
主机设备504可以存储与NVM设备502相同的公钥560’。在一些实施方式中,公钥560’可以使用位于主机设备上的非易失性电路存储。主机设备504还可以执行如下所述的其他功能。
现在将描述系统500的认证操作。
在①处,NVM设备502可以检验其自己的NVM FW 512的完整性。在一些实施方式中,这样的动作可以包括从NVM FW生成散列值,并将其与例如可以存储在NVM设备502上的安全位置中的有效散列值进行比较。在一些实施方式中,NVM设备502可以生成FW状态值(FW_state),其可以指示NVM FW的完整性(或其缺乏)。在一些实施方式中,如果NVM FW未通过完整性检验512,则NVM设备可以锁定对其存储的FW(包括主机FW)的任何访问。
在②处,主机设备504可以向NVM设备502发送现时值(nonce_host)。在一些实施方式中,这样的动作可以包括但不限于:主机设备发送具有nonce_host值的命令和/或将nonce_host值写入NVM设备502内的预定位置(例如,寄存器或存储器地址)。
在③处,NVM设备502可以使用NVM私钥558生成数字签名562。数字签名562可以“即时(on-the-fly)”生成(例如,响应于主机设备504发起认证操作)。数字签名562可以根据包括NVM公钥560(由NVM设备502存储)、所接收的nonce_host值540以及可选地FW_Status值的数字证书生成。数字签名562可以根据数字证书的实际值生成,或根据数字证书生成的散列值生成,或根据两者的组合生成。在一些实施方式中,NVM设备502可以将数字证书的全部或部分发送至主机设备504。
在④处,主机设备504可以将其存储的公钥(560’)与从NVM设备502接收的公钥(560)进行比较。在一些实施方式中,主机设备504可以从NVM设备502接收公钥(560)作为签名的数字证书的部分。如果公钥不匹配,则NVM设备502可能认证失败。
在⑤处,主机设备504可以执行签名验证操作556以验证从NVM设备502提供的数字签名562。NVM设备502可以向主机设备504提供对应于数字证书的数字签名562。如上所述,在一些实施方式中,NVM设备502可以使用散列功能554来根据数字证书的全部或部分生成散列值。在实施方式中,FW_state值561可以作为消息数据与散列值一起被包括。可以将所得到的散列值(以及任何对应的消息数据)提供至主机设备504,以在认证处理中使用。在其他实施方式中,签名验证操作556可以包括NVM设备502发送具有对应数字签名562的数字证书(例如,NVM公钥560、nonce_host 540以及可选地,FW_state)。
使用公钥560’,主机设备504可以解密数字签名562。如果认证处理使用散列功能554,则主机设备504可以使用相同的散列功能来生成匹配的散列值(例如,根据公钥560’和nonce_host 540)。如果解密值与预期值匹配,则可以认证NVM设备502。在包括FW_state值561的实施方式中,如果FW_state值561指示所存储的FW未通过完整性检验(即,512),则NVM设备502可以未通过认证(并且因此NVM用户空间506中的任何内容(诸如可由主机设备504执行的主机代码)也可以未通过认证)。
根据实施方式,系统可以具有与应用(例如,FW、SW)代码大小无关的快速、安全引导时间。图6是比较本文所公开的各种方法的引导时间与代码大小的曲线图。在Y轴上以对数尺度示出的引导时间可以对应于加电或复位之间的时间,以及主机代码(例如,主机FW、应用SW)被认证并可供使用的时间。图6示出了四个响应:响应664可以是传统方法,如图17所示;响应666-0可以是类似于图3所示的实施方式的方法;响应666-1可以是类似于图4所示的实施方式的方法;并且响应666-2可以是类似于图5所示的实施方式的方法。如图所示,实施方式(666-0、666-1、666-2)可以与主机代码大小无关而提供恒定的引导时间。相反,常规方法664可以具有随着主机代码大小增加而变得越来越长的引导时间。
图7是根据实施方式的NVM设备702的框图。NVM设备702可以包括NVM阵列757、设备存储区域768-0、安全存储区域768-1、阵列访问电路772、控制部分774、POR电路786和输入/输出(I/O)电路784。NVM阵列757可以包括由任何合适类型的NVM单元形成的一个或更多个阵列,并且可以包括解码器电路和写入电路(例如,编程、擦除、验证)。NVM阵列757可以包括用户区域706,其可以存储由主机设备执行的主机代码708。
设备存储区域768-0可以存储由NVM设备702使用的值。这样的值可以包括以下各项中的任一个:数字签名752(加载至NVM设备上或由NVM设备生成)、数字证书710和/或公钥760(例如,用于非对称加密操作)。设备存储区域768-0还可以包括配置寄存器770-0,并且可以存储NVM设备702的参数和/或标识信息770-1。设备存储区域768-0可以是安全区域也可以不是安全区域。设备存储区域768-0的部分可以是NVM阵列757的部分或可以不是NVM阵列757的部分。
安全存储区域768-1可以存储要保密维护的数据值。安全存储区域768-1可以存储NVM代码709,一个或更多个私钥758(例如,用于非对称加密操作)和/或一个或更多个秘密密钥738(例如,用于对称加密操作)。设备安全存储区768-1的部分可以是NVM阵列757的部分或不是NVM阵列757的部分。NVM代码709可以是由NVM设备702执行以提供各种功能的代码。
阵列访问电路772能够响应于从控制部分744接收的信号和数据而访问NVM阵列757。在一些实施方式中,阵列访问电路772可以包括用于处理命令的命令解码逻辑。对于包括安全区域768-1的NVM设备702,阵列访问电路772可以包括仅响应于预定安全协议(例如,基于加密的认证)而启用从外部实体对安全区域768-1的访问的安全访问电路772-0。
控制部分774可以控制NVM设备702的功能,包括根据实施方式的认证操作。控制部分774可以包括控制器776、输入缓冲器778和输出缓冲器780。控制器776可以包括可以执行指令776-1的处理器电路776-0。指令776-1可以包括各种认证功能,包括但不限于:散列功能754、密码功能762、现时值生成器782、代码完整性检验器712。散列功能754可以生成NVM设备702所存储或接收的数据的散列值。在一些实施方式中,散列功能754可以匹配,或被配置成匹配由对应的主机设备使用的散列功能。密码功能762可以执行各种密码操作,包括但不限于:对NVM设备702所存储的值进行加密和/或解密,以及使用密钥值来创建认证码。现时生成器782可以生成用于认证操作的现时值(例如,nonce_nvm)。代码完整性检验器712可以检验存储在NVM用户阵列中的代码的完整性,包括NVM代码709。在一些实施方式中,代码完整性检验器712可以是散列功能(例如754)。
输入缓冲器778可以接收由NVM设备702接收的输入命令和/或数据。这样的命令可以由阵列访问电路772处理以访问NVM阵列757、设备存储区域768-0和设备安全存储区域768-1。输出缓冲器780可以传输从NVM设备702输出的数据,包括来自NVM阵列757、设备存储区域768-0和安全存储区域768-1的数据。安全存储区域768-1可以不通过I/O电路784暴露。
POR电路786可以检测加电和复位条件,并且向NVM设备702的各个部分供电。在一些实施方式中,POR电路786可以包括用于加载由处理器电路776-0执行的基本功能指令(例如,ROM数据)的电路。
I/O电路784可以通过一个或更多个总线788连接至其他设备(例如,主机设备)。在一些实施方式中,总线788可以是串行总线,包括但不限于与以下各项中的任一项兼容的串行:控制器局域网(CAN)、串行外围接口(SPI)和I2C。I/O电路784可以包括NVM设备702的输入和输出,以及其他信令电路,包括但不限于:物理接口(PHY)、串行化和解串行化电路。
虽然实施方式可以包括任何合适的NVM阵列结构和NVM单元类型,但一些实施方式可以包括1-晶体管(1T)NOR型阵列。图8是可以包括在实施方式中的1T NOR阵列857的示意图。阵列857可以包括布置成行和列的多个存储器单元(一个存储器单元示出为857-0),其中,相同行的存储器单元连接至相同的字线(一个字线示出为857-2)并且相同列的存储器单元连接至相同位线857-3。在一些实施方式中,存储器单元(857-0)可以形成有单个晶体管结构,其在控制栅极与沟道之间具有电荷存储结构857-1。电荷存储结构857-1可以存储一个或更多个数据的位作为电荷。
虽然实施方式可以包括具有结合主机设备操作的存储器设备的系统,但实施方式还可以包括能够认证存储器设备的状态并且因此认证设备所存储的代码的状态的独立存储器设备。这样的认证可以在短的时间量内,并且不根据代码的大小而变化,如本文所描述的和等效的。虽然这样的存储器设备可以包括形成于相同封装中的多个集成电路,但在一些实施方式中,存储器设备可有利地为紧凑的单个集成电路(即,芯片)。图9示出了封装的单个芯片NVM设备902。然而,应当理解,根据实施方式的存储器设备可以包括任何其他合适的封装类型,包括将存储器设备芯片直接接合至电路板衬底上。
图10是根据实施方式的主机设备1004的框图。主机设备1004可以包括一个或更多个主机处理器1092、主机存储装置1094和I/O电路1096。主机存储装置1094可以包括引导功能1094-0和非易失性存储装置1094-1。非易失性存储装置1094-1可以以非易失性方式(例如,OTP电路、eFuse)存储由主机设备1004使用的值。所存储的值可以包括公钥1046和秘密密钥1038。在一些实施方式中,非易失性存储装置1094-1的全部或部分可以是安全存储装置1098。
引导功能1094-0可以包括但不限于:读取代码完整性功能1042、现时值生成器1044、密码功能1024-1、密钥比较功能1048以及散列功能1049。读取代码完整性功能1042可以从在认证操作中使用的NVM设备读取校验值(例如,FW Hash_r)。在一些实施方式中,这样的动作可以包括对预定寄存器或存储器地址的读取。现时值生成器1044可以生成用于认证操作的现时值(例如,nonce_host)。这样的现时值可以被传输至NVM设备。密码功能1024-1可以执行密码功能,包括但不限于:加密和/或解密存储在主机设备1004上或由主机设备1004接收的值,以及使用加密密钥值(例如,1046、1038)创建认证码。密钥比较功能1048可以将主机设备1004存储的密钥(例如,1046)与从另一设备(例如,NVM设备)接收的密钥进行比较。散列功能1049可以生成主机设备1004所存储或接收的数据的散列值。在一些实施方式中,散列功能1049可以匹配,或被配置成匹配由对应的NVM设备使用的散列功能。
非易失性存储装置1094-1可以存储由主机设备1004在认证操作中使用的值。这样的值可以包括但不限于公钥1046和/或秘密密钥1038。秘密密钥1038可以存储在安全存储装置1098中,如本文所描述的,安全存储器1098可以要求预定程序来访问。
I/O电路1096可以通过一个或更多个总线1088连接至其他设备(例如,主机设备)。I/O电路1096可以采取本文所描述的任何形式。
实施方式可以包括具有需要快速认证存储在另一设备中的数据的设备的任何合适的系统。然而,在将引导数据存储在高可靠性存储器设备中的系统(诸如机动车辆系统)的实施方式可以是有利的。图11示出了根据实施方式的机动车辆系统1100。系统1100可以包括第一NVM设备1102-0、第二NVM设备1102-1、片上系统(SoC)1104-0、汽车微控制器(MCU)1104-1、动态随机访问存储器(DRAM)设备1197、传感器1193、自动控制器1195-0、自动通信系统1195-1和自动电力系统1195-2。
SoC 1104-0和第一NVM设备1102-0可以是根据本文所示的任何实施方式的主机设备和对应的NVM设备。在加电或复位条件下,SoC 1104-0可以根据本文所示的任何实施方式或等效物来认证存储在第一NVM设备1102-0中的代码。类似地,MCU 1104-1和第二NVM1102-1可以是根据本文所示的任何实施方式或等效物的主机设备和对应的NVM设备。
参照图12,在图中示出了根据实施方式的机动车辆1291。机动车辆1291可以具有多个子系统(两个子系统示为1200-0和1200-1),这些子系统与从NVM设备引导的固件一起操作。这样的子系统(1200-0、1200-1)可以包括电子控制单元(ECU)和/或高级驾驶员辅助系统(ADAS)。然而,在其他实施方式中,这样的子系统可以包括仪表板显示/控制子系统和/或信息娱乐子系统,仅作为众多可能示例中的两个。每个子系统(1200-0、1200-1)可以包括主机设备和一个或更多个NVM设备,并且采用如本文所述的固件认证操作或等效物。
虽然以上实施方式已经示出了各种系统、设备和对应的方法,但是将参照流程图来描述附加的方法。
图13是根据实施方式的NVM设备的认证方法1391的流程图。方法1391可以包括NVM设备经历引导触发事件,诸如加电或复位事件1391-0。NVM设备可以从主机设备接收认证请求1391-1。这样的动作可以包括NVM设备通过通信链路从主机设备接收预定命令,诸如作为许多可能示例中的一个的串行总线。
响应于认证请求,NVM设备可以返回具有与其验证的主机代码无关的大小的加密FW完整性值1391-3。FW完整性值可以用于验证存储在NVM设备上的代码(例如,SW或FW)。在一些实施方式中,FW完整性值可以根据已知良好NVM代码集(例如,已知良好NVM代码的散列)生成。这样的动作可以包括NVM设备通过通信链路返回FW完整性值。主机设备可以使用FW完整性代码来验证由NVM设备存储的代码。因为FW完整性值可以具有与所存储的代码的大小无关的大小,所以认证所需的时间可以是快速和确定性的。
如果主机设备使用加密的有效FW完整性值认证NVM代码,则NVM设备可以接收读取请求以访问由NVM设备存储的主机FW 1391-5。响应于这样的读取请求,NVM设备可以发送FW数据。在一些实施方式中,这可以包括发送由主机设备执行的代码。
图14是根据实施方式的用于主机设备的认证方法1491的流程图。方法1491可以包括主机设备经历引导触发事件(例如,POR)1491-0。
主机设备可以检测总线上的NVM设备1491-1。这样的动作可以包括根据通信标准执行发现协议。如果检测到NVM设备,则方法1491可以启动所检测的NVM设备的认证1491-3。这样的动作可以包括主机设备在总线或其他合适的通信链路上向NVM设备发出认证询问(例如,预定命令)。
响应于认证请求,主机设备可以接收具有与其验证的主机代码无关的大小的加密的FW完整性值1491-5。FW完整性值可以用于验证存储在NVM设备上的主机代码(例如,SW或FW)。在一些实施方式中,有效FW完整性值可以根据已知的良好NVM代码集(例如,由NVM设备安全存储的已知良好NVM代码的散列)生成。这样的动作可以包括NVM设备通过通信链路返回有效FW完整性值。主机设备可以使用FW完整性代码来验证由NVM设备存储的代码1491-7。因为有效FW完整性值可以具有与所存储的主机代码的大小无关的大小,所以认证所需的时间可以是快速和确定性的。
如果主机设备使用加密的FW完整性值(来自1491-7的“是”)认证NVM代码,则主机设备可以访问由NVM设备存储的主机FW 1491-11。这样的动作可以包括发布用于XiP代码操作的读取指令。如果主机设备没有认证NVM代码(来自1491-7的“否”),则主机设备可以生成无效代码指示1491-9。响应于这种指示,可以阻止主机设备访问主机FW。在一些实施方式中,主机设备可以生成指示主机FW被认为无效的引导错误代码。
图15是主机设备1502与NMV设备1504之间的认证方法1591的流程图。NVM设备1502或主机设备1504可以经历引导事件(例如,POR)(1591-0H/0N)。响应于NVM设备的启动,NVM设备可以生成存储(FW Hash_r)的NVM FW的散列值1591-1。NVM FW可以是可由NVM设备执行以启用NVM设备功能的FW。NVM FW可以存储在安全位置中,并且可以不可由NVM设备外部的实体访问,或者仅可通过安全访问功能访问。主机设备可以向NVM设备发送读取命令以访问FW Hash_r 1591-2。响应于这样的读取请求,NVM设备可以将FW Hash_r值返回至主机设备1591-3。
方法1591包括主机设备从NVM设备请求认证值1591-4。在一些实施方式中,响应于这样的请求,NVM设备可以使用有效散列值FW Hash来生成认证值1591-5。有效散列值(FWHash)可以是使用NVM FW的已知良好版本生成的值。在一些实施方式中,NVM设备可以通过即时加密数据来生成认证值。这样的加密可以是对称的(即,具有也由主机设备存储的秘密密钥)或非对称的(即,具有由主机设备存储的具有对应公钥的私钥)。然而,在其他实施方式中,NVM设备可以预先加载有认证值(例如,具有数字签名的数字证书)。无论认证值是由NVM设备生成还是预加载至NVM设备中,NVM设备都可以将认证码返回至主机设备1591-6。
主机设备可以解密从NVM设备接收的认证码的全部或部分以导出有效FW散列值1591-7。可以将有效FW散列值与从NVM设备读取的值(FW Hash_r)进行比较1591-8,以验证NVM设备(以及其存储的任何主机FW)。也就是说,如果值匹配,则可以认证NVM设备所存储的主机FW以由主机设备使用。如果值不匹配,则可以确定NVM设备所存储的主机FW未被认证。
图16是根据实施方式的用于主机设备1604更新NVM设备1602中的NVM FW的方法1691的流程图。方法1691可以包括主机设备接收用于更新操作的新NVM FW 1691-0。这样的动作可以包括任何适当的方法,包括主机设备与新NVM FW的源之间的认证操作。主机设备1602可以认证NVM设备和旧FW(当前由NVM设备存储的FW)(1691-1/2)。这样的操作可以包括任何合适的方法,包括本文所述的那些方法或等效物。主机设备1604可以将新的NVM FW写入NVM设备1691-3。在一些实施方式中,这样的动作可以包括写入可由NVM设备执行的NVMFW映像。
NVM设备1691-4可以安全地存储新的NVM FW 1691-4。这样的动作可以包括将NVMFW写入至由NVM设备配置或由主机设备确定的预定位置。NVM设备可以为新NVM FW生成新散列值(FW Hash)1691-5。这样的值可以被安全地存储在NVM中1691-6,以用于将来的认证操作,诸如本文所描述的那些操作或等效物。一旦存储了新的NVM FW,并且生成了有效的FW散列值,NVM设备就可以向主机设备发送NVM FW更新操作完成的确认1691-7。
根据实施方式,主机设备可以认证NVM设备状态,从而认证由NVM设备存储的代码。这样的方法可以消除主机设备在认证操作中访问由NVM设备存储的主机代码的需要,如在常规方法中所进行的。结果,系统可以具有快速并且与NVM设备所存储的代码的大小无关的安全引导时间。
实施方式可以与传统方法的不同之处在于,主机设备的认证机制可以认证NVM设备的状态,而不是由NVM设备存储的主机代码的状态。此外,NVM设备可以包括证明其当前存储的NVM代码的完整性的机制。在一些实施方式中,这可以包括具有安全存储位置的NVM设备,用于存储用来证明由NVM设备存储的NVM代码的完整性的代码完整性值。
应当理解,在整个说明书中对“一个实施方式”或“实施方式”的引用意指结合该实施方式描述的特定特征、结构或特性被包括在本发明的至少一个实施方式中。因此,要强调并且应当理解的是,在本说明书的各个部分中对“实施方式”或“一个实施方式”或“替选实施方式”的两个或更多个引用不一定都是指同一个实施方式。此外,在本发明的一个或更多个实施方式中,特定的特征、结构或特性可以适当地组合。
类似地,应当理解的是,在本发明的示例性实施方式的前述描述中,出于简化本公开内容、帮助理解各种发明方面中的一个或更多个方面的目的,本发明的各种特征有时在单个实施方式、图或其描述中被组合在一起。然而,本公开内容的方法不应被解释为反映权利要求需要比每个权利要求中明确列举的特征更多的特征的意图。而是,发明方面在于少于单个前述公开实施方式的所有特征。因此,符合具体实施方式的权利要求由此明确地并入该具体实施方式,其中,每个权利要求独立地作为本发明的单独实施方式。

Claims (23)

1.一种方法,包括:
在非易失性存储器(NVM)设备中存储可由主机设备执行的主机代码和可由所述NVM设备执行的NVM代码;
通过所述NVM设备的操作:
响应于预定条件验证所述NVM代码的完整性;
生成用于验证所述NVM代码的代码完整性值,所述代码完整性值具有与所述主机代码的大小无关的大小;
向所述主机设备发送认证码,所述认证码使用至少所述代码完整性值而被生成;以及
响应于来自所述主机设备的读取请求,返回所述主机代码的至少部分以由所述主机设备执行。
2.根据权利要求1所述的方法,其中,所述代码完整性值包括所述NVM代码的至少部分的散列。
3.根据权利要求1所述的方法,其中,所述代码完整性值是从包括以下的组中选出的:消息认证码(MAC)和唯一设备标识符。
4.根据权利要求1所述的方法,还包括:
通过所述NVM设备的操作,生成所述NVM代码的散列值;以及
响应于来自主机设备的请求,将使用所述散列值而被生成的认证码发送至所述主机设备。
5.根据权利要求1所述的方法,还包括:
通过所述NVM设备的操作,生成具有特定于所述NVM设备的值和所述NVM代码的至少部分的认证码;以及
通过所述主机设备的操作,使用由所述主机设备存储的安全值来认证所述认证码。
6.根据权利要求1所述的方法,还包括:
在所述NVM设备处接收主机现时值;以及
对至少所述主机现时值和所述代码完整性值执行密码功能,以生成所述认证码。
7.根据权利要求6所述的方法,还包括:
对至少所述主机现时值、所述代码完整性值和NVM设备现时值进行加密以生成所述认证码。
8.根据权利要求1所述的方法,还包括:
在所述NVM设备中存储数字证书,所述数字证书包括公钥、所述代码完整性值和使用私钥生成的数字签名;以及
响应于来自主机设备的证书请求,将所述数字证书发送至所述主机设备。
9.一种非易失性存储器(NVM)设备,包括:
至少一个NVM阵列,其包括多个NVM单元,所述多个NVM单元被配置成存储用于由主机设备执行的主机代码和用于由所述NVM执行的NVM代码;
输入/输出(I/O)电路,其被配置成通过至少一个通信链路与主机设备通信;
存储区域,其被配置成存储用于验证所述NVM代码的代码完整性值,所述代码完整性值具有与所述主机代码的大小无关的大小;以及
NVM控制器部分,其被配置成:
在所述NVM设备启动时,验证所述NVM代码的完整性,以及
响应于来自所述主机设备的请求,通过所述I/O电路输出认证码,所述认证值使用至少所述代码完整性值而被生成;其中,
所述至少一个NVM阵列、I/O电路、存储区域和控制器部分利用相同的集成电路衬底而被形成。
10.根据权利要求9所述的NVM设备,其中:
所述NVM控制器部分包括被配置成执行NVM设备处理器指令的至少一个处理器。
11.根据权利要求9所述的NVM设备,其中:
所述NVM控制器部分包括被配置成根据所述NVM代码而生成散列值的散列生成器。
12.根据权利要求9所述的NVM设备,其中:
所述NVM控制器部分包括被配置成使用预定加密密钥生成至少所述代码完整性值的密码电路。
13.根据权利要求12所述的NVM设备,其中:
所述密码电路包括非对称密码电路,并且所述预定加密密钥包括与公钥对应的私钥。
14.根据权利要求9所述的NVM设备,其中:
所述NVM控制器部分包括现时值生成器。
15.根据权利要求9所述的NVM设备,其中:
所述NVM控制器部分包括被配置成生成包括至少所述代码完整性值的消息认证码(MAC)的认证电路,并且所述NVM控制器部分被配置成向所述主机设备发送所述MAC。
16.根据权利要求9所述的NVM设备,还包括:
所述至少一个NVM阵列包括安全存储区域,被配置成仅响应于至少一个安全访问程序来允许访问存储在其中的NVM代码。
17.一种系统,包括:
非易失性存储器(NVM)设备,包括:
至少一个NVM单元阵列,其被配置成存储可由主机设备执行的代码和可由所述NVM设备执行的NVM代码,
NVM控制器电路,其被配置成:
在所述NVM设备启动时,验证所述NVM代码的完整性,以及
输出通过对代码完整性值执行NVM密码功能而生成的认证码,所述代码完整性值具有与所述主机代码的大小无关的大小;以及
所述主机设备包括至少一个主机处理器,其被配置成
响应于所述认证码而执行主机密码功能,以认证所述NVM设备和由所述NVM设备存储的主机代码,以及
执行由所述NVM设备存储的所述主机代码。
18.根据权利要求17所述的系统,其中:
所述至少一个NVM单元阵列包括NOR闪存阵列。
19.根据权利要求17所述的系统,其中:
所述至少一个主机处理器还被配置成生成用于传输至所述NVM设备的主机现时值。
20.根据权利要求17所述的系统,其中:
所述至少一个主机处理器还被配置成响应于接收所述认证而访问主机密钥并使用所述主机密钥执行密码功能。
21.根据权利要求17所述的系统,其中:
所述主机处理器通过总线耦接至所述NVM存储设备。
22.根据权利要求17所述的系统,其中:
所述主机设备被配置成直接从所述NVM设备执行所述主机代码。
23.根据权利要求17所述的系统,其中,所述主机设备和所述NVM设备是机动车辆中的子系统的部分。
CN202180067208.3A 2020-10-02 2021-10-01 用于从非易失性存储器设备快速安全引导的方法以及对应的系统和设备 Pending CN116324992A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063086750P 2020-10-02 2020-10-02
US63/086,750 2020-10-02
US17/122,927 2020-12-15
US17/122,927 US11809566B2 (en) 2020-10-02 2020-12-15 Methods for fast, secure boot from nonvolatile memory device and corresponding systems and devices for the same
PCT/US2021/053138 WO2022072810A1 (en) 2020-10-02 2021-10-01 Methods for fast, secure boot from nonvolatile memory device and corresponding systems and devices for the same

Publications (1)

Publication Number Publication Date
CN116324992A true CN116324992A (zh) 2023-06-23

Family

ID=80931406

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180067208.3A Pending CN116324992A (zh) 2020-10-02 2021-10-01 用于从非易失性存储器设备快速安全引导的方法以及对应的系统和设备

Country Status (5)

Country Link
US (1) US11809566B2 (zh)
JP (1) JP2023544050A (zh)
CN (1) CN116324992A (zh)
DE (1) DE112021005155T5 (zh)
WO (1) WO2022072810A1 (zh)

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8104085B2 (en) 2003-06-27 2012-01-24 Oracle America, Inc. Hybrid system implementing distinct and co-existing application execution environments and methods for implementing the same
US20080082819A1 (en) * 2006-09-28 2008-04-03 Jack Brizek Authenticating data returned from non-volatile memory commands
IL187044A0 (en) * 2007-10-30 2008-02-09 Sandisk Il Ltd Fast secure boot implementation
KR101642819B1 (ko) 2009-08-31 2016-07-26 삼성전자주식회사 비휘발성 메모리 장치, 그것의 구동 방법, 그것을 포함하는 메모리 시스템
US9612979B2 (en) * 2010-10-22 2017-04-04 Intel Corporation Scalable memory protection mechanism
US8866213B2 (en) 2013-01-30 2014-10-21 Spansion Llc Non-Volatile memory with silicided bit line contacts
US9613214B2 (en) 2013-07-09 2017-04-04 Micron Technology, Inc. Self-measuring nonvolatile memory devices with remediation capabilities and associated systems and methods
US20170063853A1 (en) 2015-07-10 2017-03-02 Infineon Technologies Ag Data cipher and decipher based on device and data authentication
KR101887974B1 (ko) * 2016-12-01 2018-08-13 현대오트론 주식회사 엔진제어기의 안전부팅을 위한 시스템 및 방법
TWI647610B (zh) * 2017-11-14 2019-01-11 慧榮科技股份有限公司 認證韌體資料之資料儲存裝置與資料儲存方法
US11347861B2 (en) * 2018-04-10 2022-05-31 Raytheon Company Controlling security state of commercial off the shelf (COTS) system
US10956576B2 (en) * 2018-09-06 2021-03-23 Micron Technology, Inc. Secure boot via system and power management microcontroller
US11106796B2 (en) * 2018-11-07 2021-08-31 Dell Products L.P. Staging memory for accessory firmware update
US20220021544A1 (en) * 2020-07-15 2022-01-20 Micron Technology, Inc. Secure Serial Peripheral Interface (SPI) Flash

Also Published As

Publication number Publication date
JP2023544050A (ja) 2023-10-19
DE112021005155T5 (de) 2023-08-10
US20220108016A1 (en) 2022-04-07
WO2022072810A1 (en) 2022-04-07
US11809566B2 (en) 2023-11-07

Similar Documents

Publication Publication Date Title
US6539480B1 (en) Secure transfer of trust in a computing system
CN114450918B (zh) 具有带有可单独编程的安全访问特征的区域的存储器装置
US20160344705A1 (en) Method and update gateway for updating an embedded control unit
US20090285390A1 (en) Integrated circuit with secured software image and method therefor
US20160344704A1 (en) Method and decision gateway for authorizing a function of an embedded control unit
US10984107B2 (en) Secure boot
US11960632B2 (en) Data attestation in memory
US11683155B2 (en) Validating data stored in memory using cryptographic hashes
US20220272090A1 (en) Validating an electronic control unit of a vehicle
CN114816811A (zh) 存储设备和用于引导的系统及方法
CN112384922A (zh) 加密密钥分布
WO2023212178A1 (en) Sram physically unclonable function (puf) memory for generating keys based on device owner
WO2010130171A1 (zh) 一种移动终端及保护其系统数据的方法
US11669643B2 (en) Block chain based validation of memory commands
JP2022527904A (ja) 無線更新の有効性確認
US20220317184A1 (en) Secured debug
US11809566B2 (en) Methods for fast, secure boot from nonvolatile memory device and corresponding systems and devices for the same
US20240193275A1 (en) Electronic device and secure booting method thereof
GB2605168A (en) An integrated circuit having a secure area
WO2023164227A1 (en) Managing ownership of an electronic device
CN116776333A (zh) 用于执行计算单元的安全启动序列的方法
WO2024097428A1 (en) Owner revocation emulation container
CN116776397A (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