CN109992966B - 存储器子系统、安全客户端装置及其认证方法 - Google Patents

存储器子系统、安全客户端装置及其认证方法 Download PDF

Info

Publication number
CN109992966B
CN109992966B CN201810951808.6A CN201810951808A CN109992966B CN 109992966 B CN109992966 B CN 109992966B CN 201810951808 A CN201810951808 A CN 201810951808A CN 109992966 B CN109992966 B CN 109992966B
Authority
CN
China
Prior art keywords
host
memory
legitimate
signature
boot process
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
CN201810951808.6A
Other languages
English (en)
Other versions
CN109992966A (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.)
Winbond Electronics Corp
Original Assignee
Winbond Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Winbond Electronics Corp filed Critical Winbond Electronics Corp
Publication of CN109992966A publication Critical patent/CN109992966A/zh
Application granted granted Critical
Publication of CN109992966B publication Critical patent/CN109992966B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • 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
    • G06F21/79Protecting 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 in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • 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
    • 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/3239Cryptographic 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 non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Landscapes

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

Abstract

本发明提供一种存储器子系统、安全客户端装置及其认证方法,存储器子系统包括:存储器接口,用于存取非易失性存储器(NVM);主机接口,与主机进行通信;以及处理器。处理器被配置成:通过主机使用并存储在非易失性存储器中的程序代码来计算签名;在检测到由主机执行的启动进程时,验证启动进程是否合法;以及只有当启动进程被验证为合法时,才将签名提供到主机以供远程服务器认证。

Description

存储器子系统、安全客户端装置及其认证方法
技术领域
本发明大体来说涉及安全通信及数据存储,尤其涉及存储器子系统、安全客户端装置及其认证方法。
背景技术
与服务器进行通信的安全客户端有时需要向服务器进行认证且安全客户端需要证明其尚未被恶意的第三方入侵。针对此种认证过程已提出了各种解决方案。一些解决方案涉及创建并向服务器报告客户端的安全身份。举例来说,可信计算组织(TrustedComputing Group,TCG)在“装置识别码合成引擎的可信平台架构硬件要求(TrustedPlatform Architecture Hardware Requirements for a Device IdentifierComposition Engine)”(2.0家族,00级别,69版本,2016年12月16日)中规定了一种称为“装置识别码合成引擎(Device Identifier Composition Engine,DICE)”的解决方案,并入本文以供参考。
发明内容
本发明的实施例提供一种存储器子系统,存储器子系统包括:存储器接口,用于存取非易失性存储器;主机接口,与主机进行通信;以及处理器。处理器被配置成:计算由主机使用并存储在非易失性存储器中的程序代码上的签名;在检测到由主机执行的启动进程时,验证启动进程是否合法;以及只有当启动进程被验证为合法时,才将签名提供到主机以供远程服务器认证。
在一些实施例中,处理器被配置成将签名存储在易失性寄存器中,并且当检测到启动进程不合法时清除所述易失性寄存器。在一些实施例中,处理器被配置成通过验证主机对非易失性存储器的一个或多个第一存取是否被定址到被预先定义为合法的存储器地址范围来验证启动进程是否合法。在实施例中,当启动进程被验证为合法时,处理器被配置成对被预先定义为合法的存储器地址范围进行修改。
根据本发明的实施例,另外提供一种安全客户端装置,安全客户端装置包括:非易失性存储器;主机;以及存储器子系统。存储器子系统被配置成:代表主机存取非易失性存储器;计算由主机使用并存储在非易失性存储器中的程序代码上的签名;在检测到由主机执行的启动进程时,验证启动进程是否合法;以及只有当启动进程被验证为合法时,才将签名提供到主机以供远程服务器认证。
根据本发明的实施例,还提供一种认证方法,认证方法包括:计算由主机使用并存储在非易失性存储器中的程序代码上的签名。在检测到由主机执行的启动进程时,验证启动进程是否合法。只有当启动进程被验证为合法时,才将签名提供到主机以供远程服务器认证。
为使本发明能更明显易懂,特举实施例并配合附图详细说明如下。
附图说明
包含附图以便进一步理解本发明,且附图并入本说明书中并构成本说明书的一部分。附图说明本发明的实施例,并与描述一起用于解释本发明的原理。
图1是根据本发明一实施例的与远程服务器进行通信的安全客户端装置的方块图。
图2是根据本发明一实施例的条件式供应代码签名的方法的流程图。
附图标号说明
20:系统;
24:客户端;
28:服务器;
32:网络;
36:主机;
40:非易失性存储器;
44:存储器子系统;
48:主机接口;
52:存储器接口;
56:处理器;
60:寄存器;
70~102:本发明一实施例所述的处理器进行条件式供应代码签名的各步骤。
具体实施方式
概述
本发明的实施例提供安全客户端装置对于远程服务器的认证改善方法及系统。在所公开实施例中,安全客户端装置包括非易失性存储器(Non-Volatile Memory,NVM)、主机、及代表主机存取非易失性存储器的存储器子系统。作为安全客户端装置与服务器之间认证过程的一部分,主机需要将通过主机存储在非易失性存储器中的一些或全部程序代码(软件代码)计算出来的签名提供给服务器。
此种过程的一个可能的安全漏洞是,恶意的第三方可能会获取正确的签名。第三方可能在使用正确签名的服务器中进行认证,但会接着使用恶意程序代码来与服务器进行通信。在一些实施例中,安全客户端装置的存储器子系统通过只有当验证出安全客户端装置的启动进程为合法时,才将签名提供到主机来消除此漏洞以及其他漏洞。
在示例性实施例中,存储器子系统通过程序代码来计算签名,并将签名存储在易失性寄存器中。此准备步骤可在安全客户端装置进行启动之前的任意合适时间处执行。在稍后的时间点,存储器子系统检测到安全客户端装置开始启动进程。举例来说,存储器子系统可检测从主机向非易失性存储器发出的(一个或多个)第一读取命令。存储器子系统例如通过检验第一读取命令是否被定址到已知含有合法启动代码的存储器地址来验证启动进程是否合法。如果启动进程显示为非法,则存储器子系统抹除持有签名的易失性寄存器的内容。
当存储器子系统以上述方式运行时,只有执行合法启动进程的主机才将能够将正确签名提供到服务器。具非法启动进程特征的恶意主机将不会从存储器子系统接收到正确签名且将不能够在服务器中进行认证。
在一些实施例中,一旦合法代码从预先定义为合法的地址范围进行启动,则代码会被允许来修改(例如,扩展)此地址范围。此特征使得合法代码能够从更大的地址范围继续执行而不导致抹除签名。
本文中描述的技术易于实现,但同时提供高度的安全性。所公开的技术可嵌入各种认证框架中,例如嵌入可信计算组织装置识别符合成发动机框架中。
系统说明
图1是根据本发明实施例示意性地示出系统20的方块图,其中安全客户端装置(客户端24)通过通信网络(网络32)与远程服务器(服务器28)进行通信。
在一实施例中,客户端24是物联网(Internet-of-Things,IoT)终端的一部分且服务器28包括物联网应用服务器。在另一实施例中,客户端24是车辆中的汽车子系统的一部分,且服务器28包括车辆的中央计算机。此外,可选地,客户端24及服务器28可包括用于任何其他合适应用的任何其他合适计算平台。网络32可包括任何合适的通信网络,例如局域网络(Local-Area Network)、例如互联网等广域网络(Wide-Area Network)、蜂窝网络(cellular network)、或者两种或更多种网络的组合。
在图1所示实施例中,客户端24包括主机处理器(主机36)、非易失性存储器(NVM)40及存储器子系统44。主机36可包括任何合适的处理器。在本实施例中,非易失性存储器40包括闪速存储器,但在可选实施例中可使用任何其他合适类型的非易失性存储器。非易失性存储器40用于存储各种数据,包括主机36所运行的程序代码(软件代码)。存储器子系统44代表主机36存取非易失性存储器40。举例来说,存储器子系统44接收由主机36发出的读取及写入命令,并在非易失性存储器40中执行命令。
在图1所示实施例中,存储器子系统44包括用于与主机36进行通信的主机接口48、用于与非易失性存储器40进行通信的存储器接口52、及被配置成执行存储器子系统的各种任务的处理器56。在其他任务中,处理器56通过存储在非易失性存储器40中的程序代码来计算签名并将签名存储在易失性寄存器(寄存器60)中。每当主机36从非易失性存储器40开始主机36的启动进程时,处理器56也会进行识别,验证启动进程是否合法,且如果不合法,则删除寄存器60的内容。以下详细阐述此种安全机制。
图1中所示系统20及客户端24的配置是纯粹为概念清晰而描绘的示例性配置。在可选实施例中,可使用任何其他合适的配置。在一个实施例中,存储器子系统44及非易失性存储器40被制作在单个系统芯片(System-on-Chip,SoC)中,例如在同一封装中各自的半导体裸片。在另一实施例中,存储器子系统44及非易失性存储器40被制作成单独的装置。为清晰起见,已从图中省略对于理解所公开技术来说并非强制性的组件。
在各种实施例中,图1中所示客户端24的不同组件可利用例如专用集成电路(Application-Specific Integrated Circuit,ASIC)或现场可编程逻辑门阵列(Field-Programmable Gate Array,FPGA)中的任何合适的硬件来实施。可选地,客户端24的功能中的一些功能(例如,主机36的功能和/或处理器56的功能)可通过软件来实施或利用软件与硬件元件的组合来实施。
通常,主机36及处理器56包括通用处理器,其通过软件而被编程为施行本文中所述的功能。例如,软件可通过网络而以电子形式下载到任何处理器,或者可选地或附加地将软件提供和/或存储在例如磁存储器、光存储器或电子存储器等非暂时性有形介质上。
通过存储器子系统进行的条件式供应程序代码签名
在一些实施例中,客户端24需要在服务器28中进行认证并证明客户端24的安全性尚未受到入侵。在示例性认证过程中,客户端24通过存储在非易失性存储器40中的主机36的至少一部分程序代码来计算签名。客户端24使用签名值在服务器28中进行认证。服务器28通常会将由客户端24提供的签名与签名的期望值进行比较。客户端24可计算签名,例如通过对程序代码施加单向加密操作。单向加密操作的典型实例例如是安全散列算法(Secure Hashing Algorithm,SHA)等散列函数。
在一些实施例中,存储器子系统44施行额外的安全机制,其确保将签名仅被提供给原始代码而不提供给任何恶意代码。在这些实施例中,存储器子系统44的处理器56将签名保存在易失性寄存器(寄存器60)中。当检测到主机36开始其启动进程时,处理器56验证启动进程是否合法。如果处理器56怀疑启动进程非法(意指主机36可能已被入侵),则处理器56清除寄存器60的内容,从而抹除签名。因此,只有执行合法启动进程的程序代码才能够获得真签名值(并在服务器28中进行认证)。
图2是根据本发明一个实施例示出的由存储器子系统44的处理器56进行条件式供应代码签名的方法的流程图。在该方法的第一阶段(步骤70到86)中,处理器56计算并保存代码签名。此阶段可在客户端24被启动之前的任意合适时间处执行,例如在每一启动之前和/或在软件更新之后。在该方法的第二阶段(步骤90到102)中,处理器56使签名仅可用于合法程序代码。
该方法开始于:在密钥加载步骤(加载初始化向量70),处理器56加载用于计算代码签名的初始化向量(密钥)。在数据读出步骤(从闪速存储器中的代码区读取数据74),处理器56从非易失性存储器40用于存储主机36程序代码的区域读取下一个数据块(例如,字或页)。
在散列步骤(对数据进行散列78),处理器56对数据块进行散列操作。散列操作是递增的,即步骤78的每一个迭代提供最近加载的数据块及所有先前数据块的累积签名。
在终端检验步骤(代码是否结束?82),处理器56检验是否已对所有所需程序代码(使签名得以定义的代码)进行散列。如果不是,则该方法返回到上面的步骤74以从非易失性存储器40读取下一个程序代码块。在整个程序代码进行被散列之后,在签名存储步骤(将代码签名存储在易失性寄存器中86),处理器56将所得的签名保存在易失性寄存器(寄存器60)中。
稍后,在启动检测步骤(检测安全客户端装置的启动90),处理器56检测到主机36开始执行启动进程。举例来说,处理器56可在上电之后检测到由主机36向非易失性存储器40发出的(一个或多个)第一读取命令。
在启动验证步骤(是否从所期望的地址进行启动?94),处理器56确认所检测到的启动进程是否合法。在一个实施例中,处理器56知晓存储有主机36的真的启动代码的存储器地址。在上电之后检测到由主机36发出的第一读取命令时,处理器56假定这些读取命令应被定址到这些地址。
如果第一读取命令确实被定址到所期待的存储器地址,则处理器56推断启动进程合法,并在正常执行步骤(继续执行98)处继续执行。具体来说,如果主机36随后从存储器子系统44处请求代码签名,则处理器56将会回传存储在寄存器60中的真签名值。
另一方面,如果第一读取命令未被定址到所期望的存储器地址,则处理器56推断启动进程已被一些恶意方入侵。因此,在回到正常执行步骤(继续执行98)之前,处理器56在签名抹除步骤(清除易失性寄存器102)清除寄存器60的内容。在此种情形中,主机36无法检索到代码签名。因此,非法代码将不能与服务器28完成认证过程。
图2所示方法流程是纯粹为概念清晰而描绘的示例性流程。在可选实施例中可使用任何其他合适的流程来实施所公开的技术。举例来说,处理器56可使用其他准则来验证主机36的启动进程是否合法,其未必涉及被读取的存储器地址。
在另一个实施例,如上所述,一旦处理器56完成合法启动进程,则处理器可修改对于代码读出来说合法的地址范围。通过此种方式,处理器56可继续从更大的地址范围执行合法代码而不会导致抹除寄存器60中的签名。
在一些实施例中,至少处理器56的验证启动进程及清除寄存器60功能是利用存储器子系统中专用硬件逻辑来实现,从而使该功能难以被规避。
应理解,以上所述实施例是作为例子而引用,且本发明并非仅限于已在上文中具体示出及阐述的实施例。确切来说,本发明的范围包括在上文中阐述的各种特征的组合及子组合,以及所属领域中的技术人员将通过阅读前述说明后将会想到的,且在现有技术中未公开的所述各种特征的变化及修改。在本专利申请中通过引用并入的文件被认为是本申请的组成部分,除了在这些并入的文件中任何与本说明书明确或隐含地定义冲突的术语,仅应考虑本说明书中的定义。

Claims (9)

1.一种存储器子系统,其特征在于,包括:
存储器接口,用于存取非易失性存储器;
主机接口,用于与主机进行通信;以及
处理器,被配置成:
计算由所述主机使用并存储在所述非易失性存储器中的程序代码上的签名;
在检测到由所述主机执行的启动进程时,验证在所述主机的上电之后由所述主机发出的第一读取命令是否被定址到真的启动代码的存储器地址,以验证所述启动进程是否合法;以及
当所述第一读取命令被验证为定址到所述真的启动代码的存储器地址时,确认所述启动进程是合法的,且将所述签名提供到所述主机以供远程服务器认证。
2.根据权利要求1所述的存储器子系统,其特征在于,所述处理器被配置成将所述签名存储在易失性寄存器中,并且当检测到所述启动进程不合法时清除所述易失性寄存器。
3.根据权利要求1所述的存储器子系统,其特征在于,当所述启动进程被验证为合法时,所述处理器被配置成对被预先定义为合法的所述存储器地址范围进行修改。
4.一种安全客户端装置,其特征在于,包括:
非易失性存储器;
主机;以及
存储器子系统,被配置成:
代表所述主机存取所述非易失性存储器;
计算由所述主机使用并存储在所述非易失性存储器中的程序代码上的签名;
在检测到由所述主机执行的启动进程时,验证在所述主机的上电之后由所述主机发出的第一读取命令是否被定址到真的启动代码的存储器地址,以验证所述启动进程是否合法;以及
当所述第一读取命令被验证为定址到所述真的启动代码的存储器地址时,确认所述启动进程是合法的,且将所述签名提供到所述主机以供远程服务器认证。
5.根据权利要求4所述的安全客户端装置,其特征在于,所述存储器子系统被配置成将所述签名存储在易失性寄存器中,并且当检测到所述启动进程不合法时清除所述易失性寄存器。
6.根据权利要求4所述的安全客户端装置,其特征在于,当所述启动进程被验证为合法时,所述存储器子系统被配置成对被预先定义为合法的所述存储器地址范围进行修改。
7.一种认证方法,其特征在于,包括:
计算由主机使用并存储在非易失性存储器中的程序代码上的签名;
在检测到由所述主机执行的启动进程时,验证在所述主机的上电之后由所述主机发出的第一读取命令是否被定址到真的启动代码的存储器地址,以验证所述启动进程是否合法;以及
当所述第一读取命令被验证为定址到所述真的启动代码的存储器地址时,确认所述启动进程是合法的,且将所述签名提供到所述主机以供远程服务器认证。
8.根据权利要求7所述的认证方法,其特征在于,还包括:将所述签名存储在易失性寄存器中,并且当检测到所述启动进程不合法时清除所述易失性寄存器。
9.根据权利要求7所述的认证方法,其特征在于,所述验证所述启动进程是否合法还包括:当所述启动进程被验证为合法时,对被预先定义为合法的所述存储器地址范围进行修改。
CN201810951808.6A 2018-01-02 2018-08-21 存储器子系统、安全客户端装置及其认证方法 Active CN109992966B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/859,780 US10757087B2 (en) 2018-01-02 2018-01-02 Secure client authentication based on conditional provisioning of code signature
US15/859,780 2018-01-02

Publications (2)

Publication Number Publication Date
CN109992966A CN109992966A (zh) 2019-07-09
CN109992966B true CN109992966B (zh) 2023-06-27

Family

ID=67058631

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810951808.6A Active CN109992966B (zh) 2018-01-02 2018-08-21 存储器子系统、安全客户端装置及其认证方法

Country Status (5)

Country Link
US (1) US10757087B2 (zh)
JP (1) JP6639620B2 (zh)
KR (1) KR102132534B1 (zh)
CN (1) CN109992966B (zh)
TW (1) TWI687840B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019025384A1 (en) * 2017-08-02 2019-02-07 British Telecommunications Public Limited Company MALICIOUS HOST DETECTION
US11258772B2 (en) * 2018-06-19 2022-02-22 Cypress Semiconductor Corporation Secured communication from within non-volatile memory device
CN109492352B (zh) * 2018-10-09 2021-01-29 华为技术有限公司 一种设备标识组合引擎的实现方法及装置
US11734458B2 (en) * 2019-02-26 2023-08-22 Intel Corporation Extensible layered trusted computing base for computing devices
US11601268B2 (en) * 2020-08-03 2023-03-07 Nuvoton Technology Corporation Device attestation including attestation-key modification following boot event

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104021011A (zh) * 2014-05-09 2014-09-03 苏州汇川技术有限公司 嵌入式设备程序升级系统及方法
CN106940769A (zh) * 2017-03-01 2017-07-11 广州大学 操作系统安全远程加载方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6651171B1 (en) * 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
US6986052B1 (en) * 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
US6715085B2 (en) * 2002-04-18 2004-03-30 International Business Machines Corporation Initializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function
CN1277219C (zh) 2003-01-15 2006-09-27 泽浦科技股份有限公司 储存单元数据保护方法以及系统
US20080005797A1 (en) * 2006-06-30 2008-01-03 Microsoft Corporation Identifying malware in a boot environment
JP4993122B2 (ja) 2008-01-23 2012-08-08 大日本印刷株式会社 プラットフォーム完全性検証システムおよび方法
DE102008011925B4 (de) 2008-02-29 2018-03-15 Globalfoundries Inc. Sicheres Initialisieren von Computersystemen
WO2010039788A2 (en) * 2008-09-30 2010-04-08 Bigfoot Networks, Inc. Processor boot security device and methods thereof
US8775618B2 (en) * 2010-08-02 2014-07-08 Ebay Inc. Application platform with flexible permissioning
CN102164138A (zh) * 2011-04-18 2011-08-24 奇智软件(北京)有限公司 一种保证用户网络安全性的方法及客户端
CN102521101B (zh) 2011-12-08 2015-05-13 曙光信息产业(北京)有限公司 一种基于进程扫描的非法作业监控方法
US9361244B2 (en) * 2011-12-29 2016-06-07 Intel Corporation Apparatus for hardware accelerated runtime integrity measurement
BR112014026833A2 (pt) * 2012-04-25 2018-11-27 Rowem Inc equipamento de código de acesso, método de geração de supercódigo de acesso, sistema operacional de código de acesso e método para a recuperação de dados de código de acesso específicos do usuário
TWI531202B (zh) 2012-11-02 2016-04-21 Keypasco Ab 藉由使用者位置檢驗身份的網路安全驗證方法
JP5986897B2 (ja) * 2012-11-13 2016-09-06 Kddi株式会社 端末装置、完全性検証システム、およびプログラム
EP2973168A1 (en) * 2013-03-15 2016-01-20 Ologn Technologies AG Systems, methods and apparatuses for remote attestation
US9680872B1 (en) * 2014-03-25 2017-06-13 Amazon Technologies, Inc. Trusted-code generated requests
US11269984B2 (en) * 2014-12-09 2022-03-08 Janus Technologies, Inc. Method and apparatus for securing user operation of and access to a computer system
JP6659220B2 (ja) * 2015-01-27 2020-03-04 ルネサスエレクトロニクス株式会社 通信装置、半導体装置、プログラムおよび通信システム
CN104636256B (zh) 2015-02-17 2017-10-24 中国农业银行股份有限公司 一种内存访问异常的检测方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104021011A (zh) * 2014-05-09 2014-09-03 苏州汇川技术有限公司 嵌入式设备程序升级系统及方法
CN106940769A (zh) * 2017-03-01 2017-07-11 广州大学 操作系统安全远程加载方法

Also Published As

Publication number Publication date
KR20190082658A (ko) 2019-07-10
CN109992966A (zh) 2019-07-09
TW201931191A (zh) 2019-08-01
TWI687840B (zh) 2020-03-11
US10757087B2 (en) 2020-08-25
JP6639620B2 (ja) 2020-02-05
KR102132534B1 (ko) 2020-07-10
US20190207917A1 (en) 2019-07-04
JP2019122030A (ja) 2019-07-22

Similar Documents

Publication Publication Date Title
CN109992966B (zh) 存储器子系统、安全客户端装置及其认证方法
US7467304B2 (en) System, device, and method of selectively allowing a host processor to access host-executable code
US9087188B2 (en) Providing authenticated anti-virus agents a direct access to scan memory
US8291226B2 (en) Method and apparatus for securely booting from an external storage device
US8914627B2 (en) Method for generating a secured boot image including an update boot loader for a secured update of the version information
EP2854066B1 (en) System and method for firmware integrity verification using multiple keys and OTP memory
US8478973B2 (en) System and method for providing a secure application fragmentation environment
US20170090909A1 (en) Secure patch updates for programmable memories
CN111630513B (zh) 认证所存储代码和代码更新的真实性
US11334502B2 (en) Memory protection based on system state
JP2014513348A (ja) 統合拡張ファームウェアインタフェース準拠計算装置内のシステムセキュリティデータベースおよびファームウェア格納部を変更する要求を処理するシステムおよび方法
US11893118B2 (en) Transfer of ownership of a computing device via a security processor
US10936722B2 (en) Binding of TPM and root device
US10019577B2 (en) Hardware hardened advanced threat protection
CN107924440B (zh) 用于管理容器的方法、系统和计算机可读介质
US20080082819A1 (en) Authenticating data returned from non-volatile memory commands
US11269986B2 (en) Method for authenticating a program and corresponding integrated circuit
CN110569205A (zh) 安全系统单芯片及其操作方法
KR20110048014A (ko) 컴퓨터 플랫폼에서의 방법 및 장치

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