CN112400294B - 来自非易失性存储器装置内的安全通信 - Google Patents

来自非易失性存储器装置内的安全通信 Download PDF

Info

Publication number
CN112400294B
CN112400294B CN201980040703.8A CN201980040703A CN112400294B CN 112400294 B CN112400294 B CN 112400294B CN 201980040703 A CN201980040703 A CN 201980040703A CN 112400294 B CN112400294 B CN 112400294B
Authority
CN
China
Prior art keywords
computing system
security protocol
packet
host computing
nvm
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
CN201980040703.8A
Other languages
English (en)
Other versions
CN112400294A (zh
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 CN112400294A publication Critical patent/CN112400294A/zh
Application granted granted Critical
Publication of CN112400294B publication Critical patent/CN112400294B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • G06F13/4269Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using a handshaking protocol, e.g. Centronics connection
    • 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/606Protecting data by securing the transmission between two devices or processes
    • 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

一种设备包括耦接至主机的非易失性存储器(NVM)装置,该NVM装置包括处理装置,该处理装置用于:经由主机计算***从服务器接收通信包,该主机计算***耦接至NVM装置并可通信地耦接至服务器,该通信包包括请求发起安全通信的明文数据;使用安全协议经由通过主机计算***的通信来执行与服务器的安全握手,以生成会话密钥;经由主机计算***从服务器接收安全协议包内的数据,其中,该数据对于主机计算***不可访问;使用该安全协议包的安全协议元数据对该数据进行认证;可选地使用会话密钥对该数据进行解密以生成明文数据;以及将该明文数据存储在NVM装置的NVM存储单元中。

Description

来自非易失性存储器装置内的安全通信
相关申请
本申请是于2019年6月4日提交的美国非临时专利申请第16/431,548号的国际申请,其要求于2018年6月19日提交的美国临时专利申请第62/687,146号的优先权的权益,其全部内容通过这些引用并入本文中。
技术领域
本公开内容涉及存储器装置领域,并且具体地,涉及来自非易失性存储器装置内的安全通信。
背景技术
物联网(IoT)装置包括主机计算***或装置,主机计算***或装置耦接至外部非易失性存储器(NVM)装置例如闪存装置,尽管也可以使用其他装置例如铁电RAM(FRAM)、磁阻RAM(MRAM)等。在主机计算***上运行的应用将应用或启动代码下载到NVM装置中,而没有对代码的源进行认证或确保代码在被写入NVM的传输中不被修改的能力,从而产生了安全风险。
在一些实施方式中,确保代码的认证和安全来源是经由与主机计算***的安全协议事务来执行的。然而,许多较小尺寸的IoT装置的存储器控制器单元不能保护密钥,并且因此危及安全协议事务。此外,从主机计算***写入到外部NVM装置的明文数据未受保护,使得所述明文数据能够被攻击者读出和/或修改。即使加密数据替代地被写入到NMV装置的NVM,数据也必须在主机计算***中解密,因此打开IoT装置以重放攻击并增加例如在主机计算***和NVM装置两者上的攻击表面。
附图说明
在附图的各个图中以示例而非限制的方式示出本公开内容。
图1A是根据各种实施方式的包括外部非易失性存储器(NVM)装置的物联网(IoT)节点的***的框图。
图1B是根据实施方式的图1A的***的框图,该框图示出了附加子部件。
图2A是根据实施方式的图1A的***的框图,该框图示出了IoT节点内的远程连接和串行***接口(SPI)总线。
图2B是根据实施方式的与图2A中所示的硬件相对应的简化数据流图。
图3是根据实施方式的用于在服务器与安全NVM装置之间发起安全通信会话并交换加密数据的方法的流程图。
图4A是根据实施方式的图1A至图1B的***的主要部件的软件和固件的框图。
图4B是根据实施方式的图1A至图1B的那些主要***部件的硬件的框图,该框图示出了用于服务器与NVM装置之间的安全协议通信的方法。
图5是示出根据实施方式的由IoT装置的主机计算***和NVM装置采取以在NVM装置上执行由服务器发起的安全写入命令的步骤的框图。
图6是根据实施方式的为了在服务器与安全NVM装置之间建立安全通信而建立安全协议通信会话的方法的流程图。
图6A是根据实施方式的服务器与NVM装置之间的例如用于固件空中更新(FOTA)的安全协议握手的流程图。
图6B是根据实施方式的服务器与NVM装置之间的例如用于FOTA的安全数据传送的流程图。
图7示出了计算***的示例形式的机器的图示,在该计算***内可以执行用于使机器执行本文所讨论的方法中的任何一个或更多个方法的指令集。
具体实施方式
为了解决保护服务器与IoT装置的NVM装置之间的数据通信(并因此关闭NMV装置和耦接的主机计算***的攻击表面)的上述缺陷,可以在服务器与NVM装置之间直接建立安全协议通信会话。安全协议可以是例如安全套接字层(SSL)协议或传输层安全(TLS)协议之一。这使得NVM装置能够直接认证服务器,例如,仅接受来自受信任的服务器的更新。该解决方案还使得NVM装置能够向服务器认证自身,因为安全协议促进了相互认证。这意味着服务器可以验证从NVM装置接收到的数据在传输中尚未被篡改。该解决方案还将主机计算***作为安全协议通信会话的一体部分移除。
替代地,如将在各种实施方式中详细解释的,主机计算***将来自服务器的传输控制协议(TCP)包重新封装为NVM装置可识别的串行***接口(SPI)包,但是SPI包仍然包括最初被封装在TCP包内的安全协议包。主机计算***可以与NVM装置交换SPI包以促进安全协议握手和数据传送。在实施方式中,NVM装置的固件和应用编程接口(API)可以被更新以在执行安全握手和使用安全协议与服务器建立安全数据传送的方面时与(静态随机存取存储器(SRAM)的)加密缓冲器和加密加速器(两者都位于NVM装置上)进行接口。
在各种实施方式中,主机计算***同样从NVM装置接收SPI包,并且将SPI包封装到单独的TCP包中,以被发送至服务器。在处理安全协议包时,主机计算***不能对来自NVM装置或服务器的加密数据进行解密,因为它不能访问解密密钥(例如,会话密钥之一)。此外,主机计算***不以有意义的方式(除了作为通信中介之外)对现在直接在服务器与NVM装置之间发生的安全协议认证起作用。
在一个实施方式中,设备包括非易失性存储器(NVM)装置,该非易失性存储器装置本身包括耦接至主机计算***的处理装置。NVM装置经由主机计算***从服务器接收通信包,主机计算***耦接至NVM装置并且可通信地耦接至服务器。通信包包括具有发起安全通信的请求的明文数据。NVM装置还使用安全协议经由通过主机计算***的通信来执行与服务器的安全握手,以生成会话密钥(例如,一对会话密钥中的解密密钥)。NVM装置还经由主机计算***从服务器接收安全协议包内的数据。NVM装置还可以至少使用从安全协议包取得的安全协议元数据对数据进行认证。NVM装置还可以使用会话密钥对数据(如果被加密)进行解密以生成明文数据,并且将明文数据存储在NVM装置的NVM存储元件中。
在实施方式中,主机计算***不能够对数据(如果被加密)进行解密,例如,因为当安全协议会话在服务器与NVM装置之间被直接发起时,主机计算***不具有适当的会话密钥(例如,解密密钥)。主机计算***也不能够对数据进行认证,因为其不能访问安全协议包的安全协议元数据并且不知道用于NVM装置与服务器之间的认证的密码套件。
在另一实施方式中,***包括NVM装置和主机计算***,该NVM装置尝试经由主机计算***连接至服务器,并且该主机计算***与服务器和NVM装置联网通信。在实施方式中,主机计算***将来自服务器的通信包发送至NVM装置,该通信包包括具有发起与NVM装置的安全通信的请求的明文数据。主机计算***还可以促进NVM装置与服务器之间的安全握手的执行,安全握手使用安全协议来发起安全通信,在安全通信中,NVM装置生成主机计算***不可访问的第一会话密钥。主机计算***还可以从服务器接收包括安全协议包的传输控制协议(TCP)包。安全协议包包括服务器利用第二会话密钥(例如,由服务器生成的一对会话密钥中的加密密钥)加密的加密数据。主机计算***还可以移除TCP包的TCP报头以暴露安全协议包。主机计算***还可以经由将串行***接口(SPI)加密写入命令和安全协议操作标识符附加至安全协议包来生成SPI包。然后,主机计算***可以将SPI包发送至NVM装置。
以这样的方式,在源(如服务器)与NVM装置之间建立和使用安全通信会话可以提供优于非安全主机计算***的多个优点。这些优点包括如下能力:认证下载或上传的源、确保下载或上传的数据的机密性以及确保下载和上传的数据的完整性和真实性。
在实施方式中,在源(如服务器)与NVM装置之间建立和使用安全通信会话可以提供优于甚至使用安全主机计算***的多个优点。这些优点包括,在移除作为可能的攻击层的主机计算***时,安全连接具有较小的攻击表面。更具体地,如将更详细地说明的,作为密文数据被传送至NVM装置的明文数据在沿着通信路径的任何点处未被解密,而是仅在到达并被缓冲到NVM装置的安全加密缓冲器中时被解密。此外,实现与主机计算***的非安全用户应用共存的安全解决方案是重要的。直接在服务器与NVM存储器之间的安全协议连接简化了(并且可能消除)实现用于这样的非安全用户应用的安全解决方案的需要。
图1A是根据各种实施方式的包括外部非易失性存储器(NVM)装置的物联网(IoT)节点101的***100的框图。在一些情境中,IoT节点101也被称为边缘装置。***100连接至网络115(或通过网络115连接),网络115也被称为云并且通常可以被理解为通过互联网的一个或更多个主干连接。***100还可以包括服务器105,IoT节点101要通过网络115连接至该服务器105,以便接收固件更新、提供传感器数据或其他智能等。服务器105被理解为通常经由传输控制协议(TCP)互连网协议(IP)例如经由TCP/IP来通信。
在各种实施方式中,IoT节点101可以被例示为多芯片模块或半导体封装,并且包括耦接至非易失性存储器(NVM)装置110的主机计算***102。NVM装置110可以是闪速装置、固态存储装置、铁电RAM(FRAM)、磁阻RAM(MRAM)或其他非易失性存储装置。
在实施方式中,主机计算***102包括处理器104、存储器控制器单元106(例如,主MCU)和桥驱动器108以及其他部件。如将更详细地说明的,例如,主机计算***102可以经由总线117诸如串行***接口(SPI)总线、集成电路间(I2C)总线、或其他类型的总线传送协议耦接至NVM装置110。如将更详细地说明的,桥驱动器108可以适于将传输控制包(TCP)转换成SPI包,并且将SPI包转换成TCP包,以促进服务器105与NVM装置110之间的通信。
在实施方式中,NVM装置110包括通信接口130、微控制器118(例如,NVM装置110的处理装置)、NVM存储元件120(其可以被组织为NVM存储单元的存储阵列)、从存储器控制器(SMC)122、静态随机存取存储器(SRAM)126以及加密(cryptographic)(“加密(crypto)”)加速器140。通信接口130可以包括读取/写入端口136。SMC 122可以包括SMC缓冲器124和例如对基于SPI的命令进行解码的SPI命令解码器125。此外,SRAM 126可以包括用于缓冲包括加密操作的SPI包的加密缓冲器128。在实施方式中,SMC 122从主机计算***102的MCU 106接收读取和写入操作,并且引导关于SRAM 126和NVM 120的读取和写入命令的完成。
图1B是根据实施方式的图1A的***100的框图,该框图示出了附加子部件。在另外的实施方式中,主机计算***102包括例如可以是MCU106的一部分的SPI主机152。此外,NVM装置110的SMC 122还包括SPI从机154,以使用SPI包通过总线117与SPI主机152进行交换来通信。表1示出了SPI主机152可用于与SPI从机154通信的一组示例性应用编程接口(API),其中,“SPI”代表串行***接口,“TCP”代表传输控制协议,例如参考TCP/IP的TCP。
API 功能
spi_write() 写入到SMC缓冲器124
spi_read() 从SMC缓冲器124读取
tcp_to_spi() 将单个TCP包拆分成N个SPI包
spi_to_tcp() 将N个SPI包合并成单个TCP包
表1
在实施方式中,微控制器118通过片上***(SoC)总线架构例如高级高性能总线(AHB)-Lite进行通信。因此,在一个实施方式中,微控制器118包括AHB-Lite主机148。AHB-Lite协议是高级微控制器总线架构(AMBA)开放标准,其提供用于SoC设计中的功能块的连接和管理的片上互连规范。尽管本文参考AHB-Lite,但是也可以设想其他的微控制器总线架构。
在对应的实施方式中,SMC 122和加密加速器140均分别包括AHB-Lite主机148可以与其进行通信的AHB-Lite从机156A和156B。如将更详细讨论的,微控制器118可以与加密加速器140协同工作以执行加密操作,该加密操作使得可以发起与服务器105的安全通信会话,并且在数据传送期间与服务器105交换加密数据。在一个实施方式中,加密加速器140是通过mxcrypt编程的现场可编程门阵列(FPGA)装置,mxcrypt是包括用于加密、认证、密钥交换、安全套接字操作、传输层安全操作和其他类型的加密操作的Python扩展的扩展工具包。也可以设想其他类型的加密工具包。
在一个实施方式中,表2示出了由微控制器118的AHB主机148用于与SMC 122的AHB-Lite从机156A通信的示例性API。在一个实施方式中,表3示出由微控制器118的AHB主机148用于与加密加速器140的AHB-Lite从机156B通信的示例性API。
API 功能
smc_to_sram() 将数据从SMC缓冲器传送至SRAM
sram_to_smc() 将数据从SRAM传送至SMC缓冲器
表2
API 功能
mxcrypto_verify_signature() 使用mxcrypto能力来验证签名
mxcrypto_sign() 使用mxcrypto能力来对数据签名
mxcrypto_calculate_ec_point() 使用mxcrypto计算椭圆曲线点
mxcrypto_sha256() 计算SHA256摘要
decrypto_and_verify_hmac() 解密数据,然后检查其HMAC值
表3
图2A是根据实施方式的图1A的***100的框图,其示出了IoT节点101内的远程连接和SPI总线117。在实施方式中,服务器105通过至云例如网络115的一对远程连接可通信地耦接至IoT节点101。IoT节点101可以包括通过SPI总线117耦接的主机计算***102和NVM装置110。
图2B是根据实施方式的与图2A中所示的硬件相对应的简化数据流图200。在实施方式中,数据流图200示出了以存储在服务器105处的明文数据开始的数据流。服务器105可以利用TLS(或其他安全互联网协议或相关加密算法)对明文数据进行加密以生成密文数据(210)。服务器105还可以将密文数据封装在TLS包内,并且发送在TCP/IP包内的TLS包(220)。
在实施方式中,IoT节点101(例如,主机计算***102)接收TCP/IP包(225)。然后,主机计算***102的桥驱动器108可以将密文数据划分成加密数据的部分,以根据加密数据的每个部分生成SPI包(230)。在实施方式中,SPI总线117将SPI包传递至NVM装置110(240)。每个SPI包可以包括具有加密的部分的TLS包(240)。然后,NVM装置110可以例如经由使用加密加速器140来对加密部分进行解密以再次生成明文数据(250)。在解密的同时或与解密相结合,NVM装置110还可以在数据被解密时并且在被编程到NVM 120之前每次一列(或一行)地对数据进行认证。参照图4通过示例性实现更详细地说明了该简化数据流图200的步骤。
图3是根据实施方式的用于在服务器与安全NVM装置之间发起安全通信会话和交换加密数据的方法300的流程图。方法300可以由处理逻辑执行,该处理逻辑可以包括硬件(例如,电路***、专用逻辑、可编程逻辑、微代码等)、软件(例如在处理装置上运行的指令)、固件或其组合。在一个实施方式中,方法300通过NVM装置110的各种部件来执行。
参照图3,方法300可以开始于处理逻辑发起经由主机计算***102至服务器105的连接(310)。响应于该尝试,方法300可以继续于处理逻辑经由可通信地耦接至服务器的主机计算***102从服务器105接收通信包(320)。通信包可以包括发起安全通信的请求。方法300可以继续于处理逻辑使用安全协议经由通过主机计算***102的通信来执行与服务器105的安全握手,以生成会话密钥(例如,一对会话密钥的解密密钥)(330)。在实施方式中,经由在(SMC 122的)SPI从机154与(主机计算***102的)SPI主机152之间的SPI包内的数据的传输来执行安全握手。
继续参照图3,方法300可以继续于处理逻辑经由主机计算***102从服务器105接收安全协议包内的加密数据(340)。主机计算***102不能对加密数据进行解密。方法300可以继续于处理逻辑使用会话密钥对加密数据进行解密以生成明文数据(350)。方法300可以继续于处理逻辑将明文数据存储在NVM装置的NVM存储元件中(360)。方法300可以继续于处理逻辑向主机计算***102提供对存储在NVM存储元件中的明文数据的访问(370)。
图4A是根据实施方式的图1A至图1B的***100的主要部件的软件和固件(SW/FW)400的框图。SW/FW 400例如可以包括应用405(诸如固件更新生产者)、SSL或TLS栈410、以及TCP/IP栈415,所有这些都可以在服务器105上运行。SW/FW 400还可以包括在主机计算***102上运行的TCP/IP栈420和SPI驱动器425。SPI驱动器425可以与主机计算***102的桥驱动器108相同或集成在桥驱动器108内。SW/FW 400还可以包括在NVM装置110上运行的SMC固件430、SSL/TLS栈435和应用440(例如,固件更新消费者)。
图4B是根据实施方式的图1A至图1B的那些主要***部件的硬件的框图,并且示出了使用主机计算***102作为中介的用于服务器105与NVM装置110之间的安全协议通信的方法450。在一个实施方式中,主机计算***是Zynq-7000 FPGA,并且NVM装置是Kintex-7FPGA。
方法450可以开始于服务器105,例如在SSL/TLS会话内,使用加密算法453(例如,利用同样对数据进行认证的以伽罗瓦/计数器模式(GCM)的高级加密标准(AES))将写入初始化向量(IV)和加密密钥作为输入将明文数据451加密成密文数据454(也称为加密数据)。加密密钥可以是在与NVM装置110的握手处理期间生成的会话密钥之一,如将更详细地说明的。方法450可以继续于服务器105将密文数据454封装到具有TCP报头的TCP包455中。密文数据454的封装包括TLS(或其他安全协议)报头,其可以一起被称为安全协议包456。TLS报头可以包括某些特定的基于TLS(或其他安全协议)的元数据,基于TLS的元数据用于传输并且特定于基于TLS的通信会话。
方法450可以继续于服务器105向主机计算***102发送457该TCP包455。主机计算***102因此可以从服务器105接收包括安全协议包456的TCP包455。如所讨论的,安全协议包456可以包括密文数据454(例如,加密数据)和TLS报头。主机计算***102还可以移除TCP包455的TCP报头以暴露安全协议包456。方法450可以继续于主机计算***102经由将SPI加密写入命令(CMD ID)和安全协议操作标识符(例如,TLS OP)附加到安全协议包来生成串行***接口(SPI)包461并且将SPI包461发送465至NVM装置110。尽管加密读取命令可以被类似地发送,但是加密读取命令将不会伴随有密文数据。
方法450可以继续于NVM装置110从主机计算***102接收SPI包461。方法450可以继续于如将参考图5详细讨论的除了其他方面,NVM装置使用解密算法(例如,前面讨论的AES GCM算法)使用写入初始化向量和解密密钥作为输入对密文数据454进行解密469。解密密钥可以是在服务器105与NVM装置110之间的安全握手期间生成的会话密钥。解密可以生成最初由服务器105加密的明文数据451。
以这样的方式,主机计算***102经由交换和/或移除它们的报头的特定部分将TCP包455转换成SPI包461,其中,SPI包461然后可以通过SPI总线117被发送至NVM装置110并且可通过NVM装置110读取。在这样做时,主机计算***102不读取密文数据454,而是将其传递至NVM装置110。如果攻击者甚至尝试在主机计算***102处访问密文数据454,则在没有解密密钥的情况下,数据将是无意义的。然而,解密密钥不存储在主机计算***102处,并且在被存储在NVM装置110的SRAM 126的加密缓冲器128中时主机计算***102不可访问。这消除了主机计算***处的攻击表面,并且极大地增强了服务器105与NVM装置110之间的安全直接通信。
图5是示出根据实施方式的由(IoT装置101的)主机计算***102和NVM装置110采取以在NVM装置110上执行由服务器105发起的安全写入命令的步骤的框图。如参照图4B所讨论的,主机计算***102可以通过向安全协议包456(图4B)附加由命令标识符(CMD ID)和安全协议操作标识符(例如TLD OP)标识的加密写入命令来生成SPI包461。
在各种实施方式中,NVM装置110的SMC 122中的SPI命令解码器125可以检测SPI包内的加密写入命令(CMD ID)。响应于检测到由CMD ID(在其他情况下其也可以是加密读取命令)标识的加密存储器操作,SMC 122可以将SPI包(减去CMD ID)缓存到加密缓冲器128中。微控制器118然后可以解析SPI包以取得加密数据(例如,密文数据),并且从TLS报头取得安全协议操作标识符(TLS OP)和安全协议(或SPI)元数据。微控制器118可以将SPI包的部分从加密缓冲器传送至SRAM。此时,微控制器118可以引导安全协议(例如,在该示例中为TLS)的执行以完成安全写入操作。安全协议的执行可以包括根据安全协议处理SRAM中的SPI包的部分,以包括对安全协议元数据的验证。
更具体地,微控制器118可以引导加密加速器140对服务器105最初加密的安全协议包内的密文数据进行解密以生成明文数据451(图4B)。安全协议包内的数据可以包括程序擦除(P/E)命令(例如,用于写入固态存储装置)或其他特定类型的写入命令、目标地址(例如,在NVM 120的用户阵列中)、目标数据的长度以及目标数据本身(全部被示出)。程序擦除或P/E命令可以引导NVM存储元件的整个用户阵列的擦除(例如,其中NVM 120是EEPROM)或选择NVM存储元件的框(例如,其中NVM 120是闪存)。在一些实施方式中,没有接收到P/E命令,并且因此,暗示了擦除命令,并且擦除了NVM 120的足够部分,以便容纳要写入NVM 120的数据。然后,微控制器118可以使用来自解密的SPI包的目标地址和长度信息,利用目标数据对用户阵列或用户阵列的一部分(例如,目标地址处的NVM存储元件)进行编程。如果这是安全读取命令,则将不存在目标数据,并且微控制器将在特定长度的数据的目标地址处执行安全读取。
图6是根据实施方式的为了在服务器与安全NVM装置之间建立安全通信而建立安全协议通信会话的方法600的流程图。方法600可以由处理逻辑执行,该处理逻辑可以包括硬件(例如,电路***、专用逻辑、可编程逻辑、微代码等)、软件(例如在处理装置上运行的指令)、固件或其组合。在一个实施方式中,方法600由与服务器105通信的NVM装置110的各种部件执行。
参照图6,方法600可以开始于处理逻辑在NVM装置110与服务器105之间建立TCP连接(610)。方法600可以继续于处理逻辑检查来自服务器105的固件更新,尽管可能存在NVM装置110与服务器通信的其他原因(620)。方法600可以继续于处理逻辑执行安全协议握手,诸如使用HTML代码发起SSL或TLS会话所发生的安全协议握手(630)。安全握手可以包括导致一系列加密操作的一系列排序操作,其生成一个或更多个会话密钥(例如,针对NVM装置的至少一个会话密钥和针对服务器的相同会话密钥)。方法600可以继续于处理逻辑执行与服务器105的安全数据传送(或交换)(670)。方法600可以继续于处理逻辑终止TCP连接(695)。
图6A是根据实施方式的服务器与NVM装置(也被称为客户端装置)之间的例如用于固件空中更新(FOTA)的安全协议握手630的流程图。安全协议握手630可以在多个阶段中执行,并且包括不同的加密和/或安全协议事务以执行安全协议通信会话的发起。这些事务可以取决于协议和正在使用的协议的版本而进行改变。因此,讨论了一般框架并说明了通信机制。在说明时,返回参考表1至表3中列出的API,并且建议其他可能的API,且参考参照图1B描述的一般通信流。
在各种实施方式中,阶段1响应于来自服务器105的需要更新的回复而向前移动,并且包括向服务器105发送“问候”消息(632)。该客户端问候消息用于通知服务器NVM装置可以支持什么功能,例如,密码套件的列表。密码套件是可用于认证和加密/解密的密码原语的组合。阶段1可以涉及微控制器118生成tls_create_packet(“客户端问候”),该tls_create_packet(“客户端问候”)被发送至SMC 122。然后,SMC 122可以生成spi_read(“客户端问候”)消息,该spi_read(“客户端问候”)消息被发送至主机计算***102。主机计算***102然后可以将spi_read(“客户端问候”)消息转换成tcp_write(“客户端问候”)消息,该tcp_write(“客户端问候”)消息被发送至服务器105。
在各种实施方式中,阶段2继续于服务器105向NVM装置110回复“问候”,可以执行服务器密钥交换和证书签名验证(634)。该服务器问候可以包括从NVM装置110接收到的可能的密码套件的列表中的选择,该选择被传送至客户端。此外,针对证书签名验证,服务器105可以在tcp_write(“证书”)消息中将其证书发送至主机计算***102。主机计算***102可以执行tcp_to_spi()转换以生成spi_write(“证书”),该spi_write(“证书”)被发送至SMC 122。SMC 122可以生成smc_to_sram(“证书”),该smc_to_sram(“证书”)被发送至微控制器118,例如处理装置。微控制器118可以将smc_to_sram(“证书”)转换为tls_process(“证书”)消息,该tls_process(“证书”)消息将mxcrypto_verify_signature(“证书”)触发至加密加速器140。
在实施方式中,可以执行类似的一系列步骤(如刚刚描述的)以执行由服务器发起的服务器密钥交换,在交换结束时加密加速器140访问或不访问。服务器密钥交换可以实现交换会话密钥,使得NVM装置和服务器使用一组共同的会话密钥,例如,至少用于服务器的加密密钥和解密密钥以及用于NVM装置110的另一组加密密钥和解密密钥。写入证书请求可以以类似的一系列步骤来执行,其中,服务器在“证书请求”消息中从NVM装置请求客户端证书。为了完成阶段2,服务器105可以发送tcp_write(“服务器问候完成”)消息,该tcp_write(“服务器问候完成”)消息被发送和转换直到报告给微控制器118。服务器问候完成消息可以指示服务器需要更多信息来继续进行。
在各种实施方式中,阶段3继续于服务器与NVM装置之间共享证书包创建、客户端密钥交换、椭圆曲线点,加密签名(例如,mxcrypto_sign)被应用于握手消息,并且加密算法(例如,mxcrypto_sha256)被应用于握手消息(638)。在实施方式中,客户端密钥交换由微控制器118发起,并且在服务器处完成,例如,在主机计算***102处将客户端证书从spi_read(“证书”)转换为tcp_write(“证书”)。微控制器118然后可以利用加密加速器140发起mxcrypto_sign(“握手消息”),以将安全协议签名应用于握手消息。
微控制器118然后可以发起证书验证处理,该证书验证处理移动通过SRAM到SMC、到主机计算***以及到服务器。证书验证可以包括经由“证书验证”消息的先前消息的签名。微控制器118还可以发起改变密码规范(“spec”)处理,该改变密码规范处理经由相同系列的部件并且利用SPI包与TCP包之间的相同转换被发送至服务器105。该客户端“改变密码规范”消息要告诉服务器NVM装置准备好使用服务器已经选择的密码套件。微控制器118还可以利用加密加速器140发起加密算法(例如,mxcrypto_sha256(“握手消息”)的应用,以利用会话密钥中的加密密钥来对TLS消息进行加密。
在各种实施方式中,阶段4继续于服务器105向主机计算***102发送tcp_write(“改变密码规范”),该tcp_write(“改变密码规范“)经由tcp_to_spi()API被转换成spi_write(“改变密码规范”)并被发送至SMC122。该服务器“改变密码规范”消息使得服务器能够向NVM客户端装置确认服务器准备好使用所选择的密码套件。在NVM装置处,SMC可以经由微控制器118向SRAM发送改变密码规范的命令。服务器105然后可以发起“完成”消息,该“完成”消息被发送通过主机计算***102、SMC并且至NVM装置的微控制器118。该“完成”消息或命令可以向NVM装置通知正在进行的通信现在将由服务器从NVM装置处可用的那些密码套件中选择的密码套件来进行保护。这完成了安全协议握手。这些是这样的安全协议握手的一些可能步骤;如安全协议握手领域的技术人员所清楚的,可以执行附加的或更少的步骤。
图6B是根据实施方式的在服务器105与NVM装置110之间的例如用于FOTA的安全数据传送670的流程图。安全数据传送670可以开始于服务器105向主机计算***102发送tcp_write(“开始固件更新”)消息(672)。主机计算***102可以使用tcp_to_spi()API将命令转换成spi_write(“开始固件更新”)消息,该spi_write消息被发送至SMC 122。SMC 122可以将该消息发送至微控制器118。微控制器118然后可以确定该消息的TLS元数据(例如在TLS报头中)是否有效(674)。如果为否,则微控制器118可以中止任何安全数据传送,并返回以监听存储器读取或写入命令。如果TLS元数据有效,则服务器105从NVM装置110接收确认,并且可以开始逐行写入到NVM 120。
更具体地,主机计算装置102将tcp_write(“行1”)命令转换成SPI命令,该SPI命令由SMC 122发送至微控制器118(676)。微控制器118然后可以触发加密加速器140对行1的密文数据(例如,解析的数据的密文数据)进行解密(678)并且验证从解密的数据生成的基于哈希的消息认证码(HMAC)(680)。HMAC的验证是验证的一种实现方式,并且其他实现方式被设想为由其他密码套件代码所采用。如果HMAC(或其他密码套件代码)未被验证,则微控制器118可以中止数据传送处理(如之前响应于TLS元数据未被验证)。一旦微控制器118从加密加速器140接收到验证的确认,微控制器118就可以将固件更新的数据的行(例如,行1)写入到解析的SPI包中的目标地址(682)。微控制器118还可以经由SMC 122和主机计算***102向服务器105报告数据的该行(例如行1)已经被成功写入(684)。服务器105然后可以确定固件更新中是否存在数据的附加行(688)。如果是,则服务器105可以生成下一安全写入命令,该下一安全写入命令被再次转换(如本文所讨论的)为SPI包,该SPI包被发送至SMC122并最终被发送至微控制器118,以针对每个附加行重复框676至框684。以这样的方式,服务器105保持对固件更新到NVM装置110的继续写入的控制,并且在写入另一行之前对数据的每一行进行解密和验证。
一旦不存在更多的行,服务器105可以采取完成固件更新的步骤(690)。例如,服务器105可以发送tcp_write(“完成固件更新”)命令,一旦该tcp_write(“完成固件更新”)命令到达微控制器118,就使微控制器118触发加密加速器140以生成新图像的摘要散列,例如,mxcrypto_sha256(“新图像”)。该散列结果可以被发送回微控制器118并通过SMC 122和主机计算装置102继续发送至服务器。服务器105可以将散列结果与固件更新的图像的预存储的散列进行比较,从而确认固件更新被成功安装。然后,可以终止促进NVM装置110的固件更新的与主机计算装置102的TCP连接(图6中的框695)。
虽然本文讨论的方法主要参考在NVM装置110处执行固件更新来说明,但是服务器105(或其他远程计算装置)也可以出于可能涉及附加功能的其他原因与NVM装置110安全地通信。例如,在已经执行安全握手之后,服务器105可能能够发送访问控制命令,针对该访问控制命令,服务器105被授权就像服务器105是主机计算***102一样。这些访问控制命令可以包括例如以下能力:锁定或解锁NVM 120的部分,设置对NVM 120的部分或存储在NVM 120中的特定程序或固件的不同形式的读取、执行和/或写入控制的能力。
此外,服务器105可以远程地发起NVM装置110处的诊断程序,或者至少远程地且安全地取得由NVM装置110生成的诊断信息。对这样的诊断数据的访问可以使得服务器105能够快速确定硬件和/或软件功能的一些方面是否指示NVM装置110已经被损坏,并且因此,保证在服务器105与NVM装置110之间建立的安全网络会话的断开。一旦安全网络会话断开,图6、图6A和图6B的方法重新开始,以建立新的安全会话。这些方法可以被更新以检查在安全数据传送中交换机密数据之前,已经解决了创建断开安全网络会话的需要的任何硬件或软件问题(图6B)。
图7示出了计算***700的示例形式的机器的示意图,在该计算***内可以执行用于使机器执行本文所讨论的方法中的任何一个或更多个方法的指令集。在替选实现方式中,机器可以连接(例如,联网)至LAN、内联网、外联网或因特网中的其他机器。机器可以在客户端-服务器网络环境中以服务器或客户端装置的能力操作,或者在对等(或分布式)网络环境中作为对等机器操作。机器可以是主机计算***或计算机、汽车计算装置、服务器、用于汽车网络的网络装置例如控制器局域网(CAN)或本地互连网络(LIN)、或能够执行指定将由该机器采取的动作的指令集(顺序的或其他方式)的任何机器。此外,尽管仅示出了单个机器,但是术语“机器”也应被理解为包括单独地或联合地执行一组(或多组)指令以执行本文所讨论的方法中的任何一个或更多个方法的机器的任何集合。转换页面和部分的实现方式可以在计算***700中实现。
计算***700包括经由总线730彼此通信的处理装置702、主存储器704(例如,只读存储器(ROM)、闪存、动态随机存取存储器(DRAM)(诸如同步DRAM(SDRAM)或DRAM(RDRAM)等)、静态存储器706(例如,闪存、静态随机存取存储器(SRAM)等)和数据存储装置718。
处理装置702表示一个或更多个通用处理装置例如微处理器装置、中央处理单元等。更具体地,处理装置可以是复杂指令集计算(CISC)微处理器装置、精简指令集计算机(RISC)微处理器装置、超长指令字(VLIW)微处理器装置、或实现其他指令集的处理装置、或实现指令集的组合的处理装置。处理装置702还可以是一个或更多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理装置(DSP)、网络处理装置等。在一个实现方式中,处理装置702可以包括一个或更多个处理装置核。处理装置702被配置成执行用于执行本文所讨论的操作的指令726。在一个实现方式中,处理装置702可以是服务器105、主机计算***102或NVM装置110的一部分。
可替选地,计算***700可以包括如本文所描述的其他部件。计算***700还可以包括可通信地耦接至网络720的网络接口装置708。计算***700还可以包括视频显示单元710(例如,液晶显示器(LCD))、字母数字输入装置712(例如,键盘)、光标控制装置714(例如,鼠标)、信号生成装置716(例如,扬声器)、或其他***装置。此外,计算***700可以包括图形处理单元722、视频处理单元728和音频处理单元732。在另一实现方式中,计算***700可以包括芯片组(未示出),芯片组是指被设计成与处理装置702一起工作并控制处理装置702与外部装置之间的通信的一组集成电路或芯片。例如,芯片组可以是母板上的芯片的集合,其将处理装置702链接至非常高速的装置例如主存储器704和图形控制器,并且将处理装置702链接至***装置的较低速的***总线例如USB、PCI或ISA总线。
数据存储装置718可以包括计算机可读存储介质724,在该计算机可读存储介质724上存储有实现本文所描述的功能的方法中的任何一个或更多个方法的指令726。指令726还可以在其由计算***700执行期间作为指令726完全地或至少部分地驻留在主存储器704内和/或作为处理逻辑完全地或至少部分地驻留在处理装置702内;主存储器704和处理装置702也构成计算机可读存储介质。
计算机可读存储介质724还可以用于存储利用处理装置702的指令726,例如参照图1A至图1B所描述的,和/或存储包含调用上述应用的方法的软件库。虽然计算机可读存储介质724在示例实现方式中示出为单个介质,但是术语“计算机可读存储介质”应当被理解为包括存储一组或更多组指令的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的缓存和服务器)。术语“计算机可读存储介质”还应当被理解为包括能够存储、编码或执行用于由机器执行的一组指令并且使机器执行实现方式的方法中的任何一个或更多个方法的任何介质。术语“计算机可读存储介质”因此应当被理解为包括但不限于固态存储器以及光介质和磁介质。
在以上描述中,阐述了许多细节。然而,对于受益于本公开内容的本领域普通技术人员明显的是,可以在没有这些具体细节的情况下实践本公开内容的实施方式。在一些情况下,为了避免使描述模糊,以框图的形式而不是详细地示出公知的结构和装置。
本文使用的模块指的是硬件、软件和/或固件的任何组合。作为示例,模块包括与非暂态介质相关联的硬件例如微控制器,以存储适于由微控制器执行的代码。因此,在一个实现方式中,对模块的引用指的是被具体地配置成识别和/或执行要保存在非暂态介质上的代码的硬件。此外,在另一实现方式中,模块的使用指的是包括具体地适于由微控制器执行以执行预定操作的代码的非暂态介质。并且如可以推断出的,在又一实现方式中,术语模块(在该示例中)可以指的是微控制器和非暂态介质的组合。通常,被示为分开的模块边界通常有所不同并且可能会有交叠。例如,第一模块和第二模块可以共享硬件、软件、固件或其组合,同时潜在地保留一些独立的硬件、软件或固件。在一个实现方式中,术语逻辑的使用包括硬件,例如晶体管、寄存器或诸如可编程逻辑装置的其他硬件。
在一个实现方式中,短语“被配置成”的使用是指布置、放在一起、制造、提供销售、导入和/或设计设备、硬件、逻辑或元件以执行指定或确定的任务。在该示例中,如果未操作的设备或其元件被设计、耦接和/或互连以执行指定任务,则该设备或其元件仍然“被配置成”执行所述指定任务。作为纯粹说明性的示例,逻辑门可以在操作期间提供0或1。但是“被配置成”向时钟提供使能信号的逻辑门不包括可以提供1或0的每个潜在逻辑门。替代地,逻辑门是以在操作期间1或0输出来启用时钟的某种方式耦接的逻辑门。再次注意,术语“被配置成”的使用不需要操作,而是集中于设备、硬件和/或元件的潜在状态,其中,在潜在状态中,设备、硬件和/或元件被设计成在设备、硬件和/或元件操作时来执行特定任务。
此外,在一个实现方式中,短语“以”、“能够/能够以”和/或“可操作以”的使用指的是以使得能够以指定方式使用设备、逻辑、硬件和/或元件的方式设计的一些设备、逻辑、硬件和/或元件。注意,如上所述,在一个实现方式中,以、能够以或者可操作以的使用指的是设备、逻辑、硬件和/或元件的潜在状态,其中,设备、逻辑、硬件和/或元件未进行操作,而是以使得能够以指定方式使用设备的方式来设计。
如本文所使用的值包括数字、状态、逻辑状态或二进制逻辑状态的任何已知表示。通常,逻辑电平、逻辑值或逻辑的值的使用也被称为1和0,其简单地表示二进制逻辑状态。例如,1指高逻辑电平,0指低逻辑电平。在一个实现方式中,存储单元例如晶体管或快闪单元可以能够保存单个逻辑值或多个逻辑值。然而,已经使用了计算机***中的值的其他表示。例如,十进制数十也可以表示为二进制值1010和十六进制字母A。因此,值包括能够保存在计算机***中的信息的任何表示。
详细描述的某些部分按照对计算机存储器内的数据位的操作的算法和符号表示而呈现。这些算法描述和表示是数据处理领域的技术人员用于将技术人员的工作实质最有效地传达给本领域的其他技术人员的手段。算法在此处并通常被认为是导致期望结果的步骤的自洽排序。这些步骤是要求对物理量进行物理操作的步骤。通常,尽管不是必须的,但是这些量采用能够被存储、传送、组合、比较以及以其他方式操纵的电信号或磁信号的形式。已经证明有时主要出于通用原因而将这些信号称为比特、值、元素、符号、字符、术语、数字等是便利的。
然而,应当牢记,所有这些术语和类似的术语均应与适当的物理量相关联,并且仅仅是应用于这些量的方便标签。除非特别声明,否则如根据以上讨论明显的是,可以理解,在整个描述中,利用术语例如“接收”、“调整”等的讨论指的是计算***或类似电子计算装置的动作和处理,其操纵计算***的寄存器和存储器内表示为物理(例如,电子)量的数据并将所述数据转换为在计算***存储器或寄存器或其他这样的信息存储、传输或显示装置内类似地表示为物理量的其他数据。
本文所使用的词语“示例”或“示例性”用于意指用作示例、实例或说明。在本文中被描述为“示例”或“示例性”的任何方面或设计不必然被解释为比其他方面或设计优选或有利。而是,词语“示例”或“示例性”的使用旨在以具体的方式来呈现概念。如本申请中使用的,术语“或”旨在意指包含性的“或”而非排他性的“或”。也就是说,除非另有指定或根据上下文是清楚的,否则“X包括A或B”旨在意指任何自然的包含性排列。也就是说,如果X包括A、X包括B或者X包括A和B二者,则在任何前述情况下都满足“X包括A或B”。此外,本申请中以及所附权利要求中使用的冠词“一”和“一个”一般应被解释为是指“一个或更多个”,除非另有指明或根据上下文明确针对单数形式。此外,除非如此描述,否则贯穿全文术语“实施方式”或“一个实施方式”或者“实施方式”或“一种实施方式”的使用不旨在意指同一实施方式或实施方式。
本文描述的实施方式还可以涉及用于执行本文的操作的设备。该设备可以是针对所需目的而专门构造,或者该设备可以包括通过该设备中存储的固件选择性激活或重新配置的通用硬件。这样的固件可以存储在非暂态计算机可读存储介质中,例如但不限于NVM、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、闪存或适于存储电子指令的任何类型的介质。术语“计算机可读存储介质”应当被理解为包括存储一组或更多组指令的单个介质或多个介质。术语“计算机可读介质”还应当被理解为包括能够存储、编码或执行用于由硬件执行的指令集并且使硬件执行本实施方式的方法中的任何一个或更多个方法的任何介质。因此,术语“计算机可读存储介质”应当被理解为包括但不限于固态存储器、光学介质、电磁介质、能够存储用于由硬件执行的指令集并且使硬件执行本实施方式的方法中的任何一个或更多个方法的任何介质。
以上描述阐述了许多具体细节,例如具体***、部件、方法等的示例,以便提供对本公开内容的若干实施方式的良好理解。然而,对于本领域技术人员将明显的是,可以在没有这些具体细节的情况下实践本公开内容的至少一些实施方式。在其他实例中,没有详细描述公知的部件或方法,或者以简单的框图格式呈现了公知的部件或方法,以便避免使本公开内容不必要地模糊。因此,以上阐述的具体细节仅是示例性的。特定实施方式可以不同于这些示例性细节,并且仍然被认为在本公开内容的范围内。
应当理解,以上描述旨在是说明性的而非限制性的。在阅读并理解以上描述之后,许多其他实施方式对本领域技术人员将是明显的。因此,本公开内容的范围应该参考所附权利要求以及与这样的权利要求所赋予的等同物的全部范围一起来确定。
在以上描述中,出于说明的目的,陈述了许多具体细节以便提供对本公开内容的透彻理解。然而,对于本领域技术人员而言将明显的是,可以在没有这些具体细节的情况下实践本公开内容。在其他实例中,没有详细示出而是以框图示出公知的电路、结构和技术,以便避免不必要地模糊对本描述的理解。
在说明书中所指的“一个实施方式”或“实施方式”意指结合该实施方式描述的特定特征、结构或特性包括在公开内容的至少一个实施方式中。位于本说明书中的各个位置的短语“在一个实施方式中”不一定是指同一实施方式。

Claims (18)

1.一种设备,包括:
非易失性存储器NVM装置,所述NVM装置耦接至主机计算***,所述NVM装置包括存储器控制器、静态随机存取存储器SRAM和处理装置,所述SRAM耦接至所述存储器控制器,所述SRAM不能被所述主机计算***访问,所述主机计算***可通信地耦接至服务器,所述处理装置用于:
经由所述主机计算***从所述服务器接收通信包,所述通信包包括发起安全通信的请求;
使用安全协议经由通过所述主机计算***的通信来执行与所述服务器的安全握手;
经由所述主机计算***从所述服务器接收安全协议包内的数据;
响应于检测所述安全协议包中的加密写入命令,将所述安全协议包存储到所述SRAM的加密缓冲器中;
解析存储在所述加密缓冲器中的所述安全协议包以取得所述数据;
从所述安全协议包的报头取得安全协议操作标识符和安全协议元数据;
将所述安全协议包的部分从所述加密缓冲器传送至所述SRAM;以及
根据所述安全协议处理所述SRAM中的所述安全协议包的所述部分,以包括对从所述安全协议包取得的所述安全协议元数据的验证。
2.根据权利要求1所述的设备,其中,所述安全协议包括安全套接字层(SSL)协议或传输层安全(TLS)协议之一,并且其中,所述安全握手包括导致一系列加密操作的一系列排序操作。
3.根据权利要求1所述的设备,其中,所述NVM装置是闪存装置,并且其中:
所述存储器控制器包括耦接至所述主机计算***的串行***接口(SPI)主机的SPI从机,其中,所述安全握手经由在所述SPI从机与所述SPI主机之间交换的SPI包内的数据的传输来执行;以及
所述NVM装置中的加密加速器被配置成用于经由执行被编程到所述加密加速器中的加密工具包来执行加密操作。
4.根据权利要求1所述的设备,其中,所述处理装置还用于:
至少使用从所述安全协议包取得的所述安全协议元数据对所述数据进行认证;以及
将所述数据存储在所述NVM装置的NVM存储元件中。
5.根据权利要求4所述的设备,其中,所述处理装置用于向所述主机计算***提供对存储在所述NVM存储元件中的所述数据的访问。
6.根据权利要求3所述的设备,其中,为了根据所述安全协议处理所述安全协议包的所述部分,所述处理装置还与所述加密加速器进行交互以用于:
根据密码套件代码对所述数据的行进行认证;
如果所述数据的所述行被加密,则经由使用会话密钥对所述数据的所述行进行解密,所述解密生成明文数据的行;
将所述明文数据的行存储在所述NVM装置的NVM存储元件中;以及
经由所述存储器控制器和所述主机计算***向所述服务器报告回所述数据的所述行已经被成功写入到所述NVM存储元件。
7.一种方法,包括:
通过非易失性存储器NVM装置的处理装置经由主机计算***从服务器接收通信包,所述主机计算***耦接至所述NVM装置并且可通信地耦接至所述服务器,所述通信包包括发起安全通信的请求;
通过所述处理装置使用安全协议经由通过所述主机计算***的通信来执行与所述服务器的安全握手;
利用所述处理装置经由所述主机计算***从所述服务器接收安全协议包内的加密数据;
通过所述处理装置响应于检测所述安全协议包中的加密写入命令,将所述安全协议包存储到所述NVM装置的静态随机存取存储器SRAM的加密缓冲器中,所述SRAM不能被所述主机计算***访问;
通过所述处理装置解析存储在所述加密缓冲器中的所述安全协议包以取得所述加密数据;
通过所述处理装置从所述安全协议包的报头取得安全协议操作标识符和安全协议元数据;
通过所述处理装置将所述安全协议包的部分从所述加密缓冲器传送至所述SRAM;以及
通过所述处理装置根据所述安全协议处理所述SRAM中的所述安全协议包的所述部分,以包括对所述安全协议元数据的验证。
8.根据权利要求7所述的方法,其中,执行所述安全握手包括与所述主机计算***交换串行***接口(SPI)包内的安全协议数据。
9.根据权利要求7所述的方法,其中,所述安全协议包括安全套接字层(SSL)协议或传输层安全(TLS)协议之一,并且其中,所述安全握手包括导致一系列加密操作的一系列排序操作。
10.根据权利要求7所述的方法,其中执行与所述服务器的所述安全握手包括生成一对会话密钥中的会话密钥,所述会话密钥不能被所述主机计算***访问,所述方法还包括:
通过所述处理装置使用所述会话密钥对所述加密数据进行解密以生成明文数据;以及
通过所述处理装置将所述明文数据存储在所述NVM装置的NVM存储元件中。
11.根据权利要求10所述的方法,还包括通过所述主机计算***提供对存储在所述NVM存储元件中的所述明文数据的访问。
12.根据权利要求7所述的方法,还包括至少使用从所述安全协议包取得的所述安全协议元数据对所述加密数据进行认证。
13.根据权利要求10所述的方法,其中,所述处理还包括:
通过所述NVM装置的加密加速器根据密码套件代码对所述安全协议包的所述加密数据的行进行认证;
通过所述加密加速器使用所述会话密钥对所述加密数据的所述行进行解密,生成明文数据的行;
将所述明文数据的行存储在所述NVM存储元件中;以及
经由所述主机计算***向所述服务器报告回所述加密数据的所述行已经被成功地写入到所述NVM存储元件。
14.一种***,包括:
非易失性存储器NVM装置,其用于尝试经由主机计算***连接至服务器;以及
所述主机计算***,其与所述服务器并与所述NVM装置联网通信,所述主机计算***用于:
将来自所述服务器的通信包发送至所述NVM装置,所述通信包包括发起与所述NVM装置的安全通信的请求;
促进所述NVM装置与所述服务器之间的安全握手的执行,所述安全握手使用安全协议来发起所述安全通信,在所述安全通信中,所述NVM装置生成所述主机计算***不能访问的第一会话密钥;
从所述服务器接收包括安全协议包的传输控制协议TCP包,其中,所述安全协议包包括所述服务器利用第二会话密钥加密的加密数据;
移除所述TCP包的TCP报头以暴露所述安全协议包;
经由将串行***接口(SPI)加密写入命令和安全协议操作标识符附加至所述安全协议包来生成SPI包;以及
将所述SPI包发送至所述NVM装置,其中,所述NVM装置将所述SPI包存储到所述NVM装置的静态随机存取存储器SRAM的加密缓冲器中,所述SRAM不能被所述主机计算***访问。
15.根据权利要求14所述的***,其中,所述安全协议包括安全套接字层(SSL)协议或传输层安全(TLS)协议之一,并且其中,所述安全握手包括导致一系列加密操作的一系列排序操作。
16.根据权利要求14所述的***,其中,所述主机计算***包括桥驱动器,其中,为了促进所述安全握手的执行,所述桥驱动器用于:
将来自所述服务器的TCP包转换成被发送至所述NVM装置的SPI包;以及
将来自所述NVM装置的SPI包转换成被发送至所述服务器的TCP包。
17.根据权利要求14所述的***,其中,所述主机计算***包括桥驱动器,其中,为了生成所述SPI包,所述桥驱动器用于:
将所述加密数据进行划分以生成所述加密数据的部分;以及
通过将所述SPI加密写入命令和所述安全协议操作标识符附加至所述加密数据的各个部分来生成SPI包。
18.根据权利要求14所述的***,其中:
所述NVM装置用于:
使用所述第一会话密钥对所述加密数据进行解密以生成明文数据;以及
将所述明文数据存储在所述NVM装置的NVM存储元件中;以及
所述主机计算***还用于执行存储在所述NVM存储元件中的所述明文数据中包含的代码的指令。
CN201980040703.8A 2018-06-19 2019-06-07 来自非易失性存储器装置内的安全通信 Active CN112400294B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862687146P 2018-06-19 2018-06-19
US62/687,146 2018-06-19
US16/431,548 US11258772B2 (en) 2018-06-19 2019-06-04 Secured communication from within non-volatile memory device
US16/431,548 2019-06-04
PCT/US2019/036100 WO2019245760A1 (en) 2018-06-19 2019-06-07 Secured communication from within non-volatile memory device

Publications (2)

Publication Number Publication Date
CN112400294A CN112400294A (zh) 2021-02-23
CN112400294B true CN112400294B (zh) 2024-04-19

Family

ID=68840770

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980040703.8A Active CN112400294B (zh) 2018-06-19 2019-06-07 来自非易失性存储器装置内的安全通信

Country Status (5)

Country Link
US (2) US11258772B2 (zh)
JP (2) JP7121148B2 (zh)
CN (1) CN112400294B (zh)
DE (1) DE112019003096B4 (zh)
WO (1) WO2019245760A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11281810B1 (en) * 2018-12-11 2022-03-22 Xilinx, Inc. Memory access protection in programmable logic device
US11016755B2 (en) * 2019-07-31 2021-05-25 Dell Products L.P. System and method to secure embedded controller flashing process
US12008416B2 (en) * 2021-06-29 2024-06-11 Capital One Services, Llc Systems and methods for choosing an appropriate scaling technique for allocating computational resources to distributed applications

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007116277A1 (en) * 2006-03-31 2007-10-18 Axalto S.A. A method and system of providing sceurity services using a secure device
CN102655445A (zh) * 2011-03-04 2012-09-05 英飞凌科技奥地利有限公司 位错误率减少的可靠数据传输
US8726298B1 (en) * 2012-03-29 2014-05-13 The Mathworks, Inc. Cloud-based instrument driver system
CN104170312A (zh) * 2011-12-15 2014-11-26 英特尔公司 用于使用硬件安全引擎通过网络进行安全通信的方法和设备
CN104702611A (zh) * 2015-03-15 2015-06-10 西安电子科技大学 一种保护安全套接层会话密钥的设备及方法
CN105279439A (zh) * 2014-06-20 2016-01-27 赛普拉斯半导体公司 用于就地执行的存储器的加密方法

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MXPA02002984A (es) 1999-09-21 2002-10-23 Discovery Communicat Inc Libro electronico con sistema de seguridad y proteccion de derechos de autor.
US20020162009A1 (en) * 2000-10-27 2002-10-31 Shimon Shmueli Privacy assurance for portable computing
US7908472B2 (en) * 2001-07-06 2011-03-15 Juniper Networks, Inc. Secure sockets layer cut through architecture
US20030072451A1 (en) 2001-10-16 2003-04-17 Pimentel Roberto J. Method and apparatus for securely transferring wireless data
US7392534B2 (en) 2003-09-29 2008-06-24 Gemalto, Inc System and method for preventing identity theft using a secure computing device
US7509487B2 (en) * 2003-09-29 2009-03-24 Gemalto Inc. Secure networking using a resource-constrained device
US8112787B2 (en) 2005-12-31 2012-02-07 Broadcom Corporation System and method for securing a credential via user and server verification
US20080189554A1 (en) * 2007-02-05 2008-08-07 Asad Ali Method and system for securing communication between a host computer and a secure portable device
US8788805B2 (en) * 2008-02-29 2014-07-22 Cisco Technology, Inc. Application-level service access to encrypted data streams
CH701203B1 (de) 2008-05-14 2013-05-15 Crealogix Holding Ag Tragbares Gerät und Verfahren zum sicheren Austauschen von Daten mit einem fernen Computer.
US8418168B2 (en) 2008-05-29 2013-04-09 Research In Motion Limited Method and system for performing a software upgrade on an electronic device connected to a computer
KR101645758B1 (ko) 2009-01-09 2016-08-12 인터디지탈 패튼 홀딩스, 인크 무선 송수신 유닛 및 무선 송수신 유닛에서의 사용을 위한 방법
US8411867B2 (en) * 2009-04-06 2013-04-02 Broadcom Corporation Scalable and secure key management for cryptographic data processing
US8479011B2 (en) * 2009-10-07 2013-07-02 Gemalto Sa Method and apparatus for using cryptographic mechanisms to provide access to a portable device using integrated authentication using another portable device
US8327052B2 (en) * 2009-12-23 2012-12-04 Spansion Llc Variable read latency on a serial memory bus
US8972723B2 (en) * 2010-07-14 2015-03-03 Sandisk Technologies Inc. Storage device and method for providing a partially-encrypted content file to a host device
US9152815B2 (en) 2010-10-29 2015-10-06 International Business Machines Corporation Method, secure device, system and computer program product for securely managing user access to a file system
WO2013016496A1 (en) * 2011-07-27 2013-01-31 Lsi Corporation Techniques for secure storage hijacking protection
US20150127930A1 (en) 2013-11-06 2015-05-07 Seagate Technology Llc Authenticated device initialization
US9304941B2 (en) 2014-02-27 2016-04-05 Mangstor, Inc. Self-encrypting flash drive
GB201413836D0 (en) * 2014-08-05 2014-09-17 Arm Ip Ltd Device security apparatus and methods
US9838201B2 (en) 2015-10-13 2017-12-05 Sony Interactive Entertainment America Llc Secure key store derivation and management from a single secure root key
US10034171B2 (en) 2015-10-14 2018-07-24 Sony Interactive Entertainment America Llc Secure device pairing
US9705859B2 (en) * 2015-12-11 2017-07-11 Amazon Technologies, Inc. Key exchange through partially trusted third party
US10339317B2 (en) * 2015-12-18 2019-07-02 Intel Corporation Computing devices
CN105933106B (zh) 2016-04-08 2019-03-05 广东工业大学 基于aes的网络信息加密ip核的设计与实现方法
US10171478B2 (en) * 2016-06-30 2019-01-01 Faraday & Future Inc. Efficient and secure method and apparatus for firmware update
ES2616116B1 (es) 2016-07-13 2018-04-02 Álvaro DÍAZ BAÑO Dispositivo portátil de cifrado de audio mediante protocolo tls
US10754988B2 (en) * 2016-08-30 2020-08-25 Winbond Electronics Corporation Anti-rollback version upgrade in secured memory chip
EP3291087A1 (en) * 2016-09-01 2018-03-07 Nxp B.V. Apparatus and associated method for authenticating firmware
US10482036B2 (en) * 2016-09-18 2019-11-19 Winbond Electronics Corporation Securely binding between memory chip and host
US10242197B2 (en) * 2016-09-23 2019-03-26 Intel Corporation Methods and apparatus to use a security coprocessor for firmware protection
KR102617354B1 (ko) * 2017-01-05 2023-12-26 삼성전자주식회사 보안 부트 시퀀서 및 보안 부트 장치
US10621127B2 (en) 2017-03-31 2020-04-14 International Business Machines Corporation Communication channel for reconfigurable devices
US20180302228A1 (en) * 2017-04-04 2018-10-18 Calamp Corp. Systems and methods for secure communications in vehicle telematics systems
WO2019006640A1 (zh) 2017-07-04 2019-01-10 深圳齐心集团股份有限公司 一种大数据管理***
US10757087B2 (en) * 2018-01-02 2020-08-25 Winbond Electronics Corporation Secure client authentication based on conditional provisioning of code signature
CN110087236B (zh) * 2018-01-25 2022-10-18 苹果公司 用于通过无线网络与匿名主机建立安全通信会话的协议
EP3746879B1 (en) * 2018-01-29 2023-06-21 Shi, Alexander Secure blockchain integrated circuit
US11880436B2 (en) * 2018-03-23 2024-01-23 Nanolock Security Inc. Remote access control for digital hardware
US10924282B2 (en) * 2018-05-24 2021-02-16 Cyber Pack Ventures, Inc. System and method for measuring and reporting IoT boot integrity
US10951403B2 (en) * 2018-12-03 2021-03-16 Winbond Electronics Corporation Updating cryptographic keys stored in non-volatile memory
US10809944B1 (en) * 2020-01-22 2020-10-20 Cypress Semiconductor Corporation Memory device resilient to cyber-attacks and malfunction

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007116277A1 (en) * 2006-03-31 2007-10-18 Axalto S.A. A method and system of providing sceurity services using a secure device
CN102655445A (zh) * 2011-03-04 2012-09-05 英飞凌科技奥地利有限公司 位错误率减少的可靠数据传输
CN104170312A (zh) * 2011-12-15 2014-11-26 英特尔公司 用于使用硬件安全引擎通过网络进行安全通信的方法和设备
US8726298B1 (en) * 2012-03-29 2014-05-13 The Mathworks, Inc. Cloud-based instrument driver system
CN105279439A (zh) * 2014-06-20 2016-01-27 赛普拉斯半导体公司 用于就地执行的存储器的加密方法
CN104702611A (zh) * 2015-03-15 2015-06-10 西安电子科技大学 一种保护安全套接层会话密钥的设备及方法

Also Published As

Publication number Publication date
US11258772B2 (en) 2022-02-22
JP7121148B2 (ja) 2022-08-17
JP2022153639A (ja) 2022-10-12
JP2021527894A (ja) 2021-10-14
DE112019003096B4 (de) 2023-08-17
DE112019003096T5 (de) 2021-06-02
CN112400294A (zh) 2021-02-23
US20220231995A1 (en) 2022-07-21
US11722467B2 (en) 2023-08-08
WO2019245760A1 (en) 2019-12-26
US20190386966A1 (en) 2019-12-19
JP7443433B2 (ja) 2024-03-05

Similar Documents

Publication Publication Date Title
KR102168984B1 (ko) 보안 디바이스 페어링
TWI715619B (zh) 用於硬體強制單向密碼學的處理器、方法及系統
US11722467B2 (en) Secured communication from within non-volatile memory device
JP4616345B2 (ja) 配布cdを用いて直接証明秘密鍵を装置に配布する方法
US8281132B2 (en) Method and apparatus for security over multiple interfaces
TWI644557B (zh) Method and device for setting terminal master key
EP1643675A1 (en) Stateless hardware security module
US20060072748A1 (en) CMOS-based stateless hardware security module
US11947681B2 (en) Cryptographic secret generation and provisioning
JP2011522469A (ja) 保護されたソフトウエアイメージを有する集積回路及びそのための方法
CN105122203A (zh) 存储设备辅助式内联加密和解密
US10691619B1 (en) Combined integrity protection, encryption and authentication
CN113079001B (zh) 密钥更新方法、信息处理设备及密钥更新装置
US20230274035A1 (en) Securing data stored in a memory of an iot device during a low power mode
US11126567B1 (en) Combined integrity protection, encryption and authentication
WO2019120231A1 (zh) 确定tpm可信状态的方法、装置及存储介质
US11824977B2 (en) Data processing system and method
US20210126776A1 (en) Technologies for establishing device locality
US10057054B2 (en) Method and system for remotely keyed encrypting/decrypting data with prior checking a token
US11005651B2 (en) Method and terminal for establishing security infrastructure and device
US20220050605A1 (en) Remote enforcement of device memory
US20190052610A1 (en) Apparatus and method for encapsulation of profile certificate private keys or other data
CN112688953B (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
US11469890B2 (en) Derived keys for connectionless network protocols
CN117728976A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220615

Address after: California, USA

Applicant after: Infineon Technology Co.,Ltd.

Address before: California, USA

Applicant before: CYPRESS SEMICONDUCTOR Corp.

GR01 Patent grant
GR01 Patent grant