CN112149185A - 安全微处理器的存储器的修改 - Google Patents

安全微处理器的存储器的修改 Download PDF

Info

Publication number
CN112149185A
CN112149185A CN202010589847.3A CN202010589847A CN112149185A CN 112149185 A CN112149185 A CN 112149185A CN 202010589847 A CN202010589847 A CN 202010589847A CN 112149185 A CN112149185 A CN 112149185A
Authority
CN
China
Prior art keywords
memory
data
microprocessor
value
index
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
CN202010589847.3A
Other languages
English (en)
Inventor
W·奥兰多
J·库夫兰德
P·吉耶曼
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.)
STMicroelectronics Rousset SAS
STMicroelectronics Grand Ouest SAS
Original Assignee
STMicroelectronics Rousset SAS
STMicroelectronics Grand Ouest SAS
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 STMicroelectronics Rousset SAS, STMicroelectronics Grand Ouest SAS filed Critical STMicroelectronics Rousset SAS
Publication of CN112149185A publication Critical patent/CN112149185A/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/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • 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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • 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/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting 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 operating in dual or compartmented mode, i.e. at least one secure mode
    • 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
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]

Abstract

本公开涉及安全微处理器的存储器的修改。提供了一种方法,包括由第一微处理器接收第一微处理器的第一存储器的内容的修改请求,该第一存储器仅可由第一微处理器访问。该方法包括由第一微处理器访问与该请求相关联的第一数据以及根据该第一数据利用非对称加密算法生成的签名。第一数据和签名在第二微处理器的第二存储器中可用,并且第一数据代表将被应用到第一存储器的内容的修改。该修改代表由第一微处理器暴露的一组服务的修改。该方法包括:由第一微处理器基于签名来验证第一数据的真实性;以及根据第一数据修改所述第一存储器的内容,该修改以该验证为条件。

Description

安全微处理器的存储器的修改
相关申请的交叉引用
本申请要求于2019年6月28日提交的申请号为19/07125法国申请的优先权,该申请通过引用并入本文。
技术领域
本公开总体涉及电子系统,并且更特别地涉及包括多个微处理器的电子系统。
背景技术
包括多个微处理器的电子系统是已知的。在这样的系统之中,本文更特别地考虑了包括至少一个针对系统的其他微处理器表现为黑匣子的微处理器的系统的情况。这样的微处理器实现通常针对系统安全性至关重要的一组功能或服务,例如,加密/解密服务(也称为编码服务)。这组服务可用于系统的其他微处理器,或者换言之,被暴露于系统的其他微处理器。
由表现为黑匣子的微处理器所暴露的服务的软件代码被存储在非易失性存储器中,亦即,在不再被供电时不会被删除的存储器,该存储器具有的内容在制造时或在存储器的第一编程时被设置。换言之,存储服务的软件代码的存储器的内容不能够被修改。
因此,为了修改由这样的微处理器所暴露的一组服务,尤其是在发现所暴露的服务的一个服务的故障之后,或根据使用该微处理器的用户的请求,存储经修改的一组服务的软件代码的、新的非易失性存储器应该被提供。由于微处理器通常以单个集成电路的形式被提供,因此实际上这等同于提供包括新的非易失性存储器的、新的微处理器。用于设计和制造这样的新的微处理器所需的时间、人力和/或硬件资源以及的成本可能是显著的,这带来了问题。
发明内容
在一个实施例中,一种方法包括:由第一微处理器接收第一微处理器的第一存储器的内容的修改请求,该第一存储器仅可由第一微处理器访问。该方法包括由第一微处理器,访问与该请求相关联的第一数据,以及根据该第一数据、使用非对称加密算法生成的签名。第一数据和签名在第二微处理器的第二存储器中可用,并且第一数据代表将被应用到第一存储器的内容的修改。该修改代表由第一微处理器暴露的一组服务的修改。该方法包括:由第一微处理器基于签名来验证第一数据的真实性;以及根据第一数据修改第一存储器的内容,该修改由该验证为条件。
在一个实施例中,第一微处理器包括处理器和具有被设置的内容的非易失性存储器。非易失性存储器包括具有指令的程序,当该指令由处理器读取时,该指令导致处理器接收第一微处理器的第一存储器的内容的修改请求,该第一存储器仅可由第一微处理器访问。指令还导致处理器访问与请求相关联的第一数据,以及根据第一数据、使用非对称加密算法生成的签名。第一数据和签名在第二微处理器的第二存储器中可用,并且第一数据代表将被应用到第一存储器的内容的修改。该修改代表由第一微处理器暴露的一组服务的修改。该指令还导致处理器基于签名来验证第一数据的真实性;并且根据第一数据修改第一存储器的内容,该修改由该验证为条件。
附图说明
将在以下结合附图的具体实施例的非限制性描述中,详细讨论前述及其他特征和优点,其中:
图1以框图的形式非常示意性地示出了电子系统的实施例的示例,所描述的存储器修改实施例应用到该类型的电子系统;
图2示意性地示出了在图1的系统中使用的数据的实施例,该数据用于请求由图1的系统的微处理器暴露的服务的实现;
图3示意性地示出了在图1的系统中使用的数据的实施例,该数据用于实现对系统的微处理器的存储器的修改;
图4以框图的形式示意性地示出了更新图1的系统的微处理器的存储器的方法的实施例;
图5以更详细的方式和框图的形式示出了图4的方法;
图6示意性地示出了图3的数据的备选实施例;
图7以框图的形式示出了图5的方法的备选实施例;
图8以框图的形式示出了图5和图7的方法的又一备选实施例;以及
图9示出了三个简化视图A、B和C,其图示了在图5、图7或图8的方法的实现期间,管理在图1的系统的微处理器的存储器中的存储空间的方法的实施例。
具体实施方式
需要克服包括多个微处理器的系统的缺点中的全部或部分缺点,特别是包括暴露了存储在微处理器的非易失性存储器上的一组服务的微处理器的系统,该非易失性存储器具有被设置的内容。
实施例克服了包括多个微处理器的已知系统的缺点中的全部或部分缺点,特别是包括暴露了存储在微处理器的非易失性存储器中的一组服务的微处理器的系统,该非易失性存储器具有被设置的内容。
实施例提供了一种方法,包括以下步骤:a)由第一微处理器接收第一微处理器的第一存储器的内容的修改请求,该请求仅可由第一微处理器访问;b)借助于第一微处理器,访问与请求相关联的第一数据以及访问根据第一数据、并且根据非对称加密算法生成的签名,第一数据和签名在第二微处理器的第二存储器中可用,并且第一数据代表将被应用到第一存储器的内容的修改,所述修改代表由第一微处理器暴露的一组服务的修改;c)由第一微处理器基于所述签名验证第一数据的真实性;以及d)根据第一数据修改第一存储器的内容,步骤d)的实现方式由步骤c)为条件。
根据实施例:第一间接表被存储在第一存储器中,第一表包括一个或多个第一索引,第一索引中的每个第一索引指向不同的所暴露的服务或不支持的服务;第一数据包括至少代表目标索引和参数的第二数据,该参数具有至少选自第一值和第二值之中的值;并且步骤d)包括:当所述参数处于第一值时,修改第一表,以使等于目标索引的第一索引指向不支持的服务的步骤;或者,当所述参数处于第二值时,修改第一表以使等于目标索引的第一索引指向尚未暴露的另一服务的步骤。
根据实施例,参数的值至少选自第一值、第二值和第三值之中,步骤d)包括:当参数处于第三值时,将新服务的软件代码记录到第一存储器中的步骤,以及修改第一表以使等于目标索引的第一索引指向新服务的步骤。
根据实施例:第二间接表被存储在第一存储器中,第二表包括一个或多个第二索引,第二索引中的每个第二索引指向第一存储器的一区域,该区域包含或不包含所暴露的服务的一个服务的更新;并且参数的值至少选自第一值、第二值和第四值之中,步骤d)包括:当参数处于第四值时,抑制由等于目标索引的、第二索引指向的、第一存储器的区域所包含的更新的步骤。
根据实施例,参数的值至少选自第一值、第二值、第四值和第五值之中,步骤d)包括以下步骤:当参数处于第五值时,在由等于目标索引的、第二索引指向的、第一存储器的区域中,记录所暴露的服务的一个服务的更新的软件代码。
根据实施例,第一数据包括第三数据,第三数据代表在步骤d)处被记录到第一存储器中的软件代码。
根据实施例,第二数据是由对称加密算法加密的数据,步骤d)包括由第一微处理器解密第二数据的步骤d1)。
根据实施例,第三数据是由另一对称加密算法加密的数据,步骤d)包括在步骤d1)之后的由第一微处理器解密第三数据的步骤d2)。
根据实施例,第二数据还代表在对第三数据进行加密时生成的第一完整性代码,步骤d2)还包括将第一完整性代码与在对第三数据进行解密时生成的第二完整性代码进行比较,根据第一数据对第一存储器的内容的修改由所述比较为条件。
根据实施例,由第一微处理器最初暴露的服务组由第一微处理器的第三非易失性存储器(优选地,ROM)的内容确定,第三存储器的内容被设置并且仅可由第一微处理器访问。
根据实施例,尚未暴露的所述另一服务由第三存储器的内容确定。
根据实施例,更新数据还包括第四非加密数据,第四非加密数据指示:所使用的非对称加密算法;和/或对称加密的初始化的向量;和/或第一数据的尺寸;和/或第三存储器及其内容的版本。
根据实施例,第一存储器是易失性存储器(优选地,RAM)。
另一实施例提供了一种微处理器,该微处理器包括处理器和具有被设置的内容的非易失性存储器,该非易失性存储器包括指令,当由处理器读取指令时,该指令导致上述限定的方法的实现。
在不同的附图中,相同的元件用相同的附图标记指定。尤其是,不同实施例共有的结构和/或功能元件可以用相同的附图标记指定,并且可以具有相同的结构、尺寸和材料性质。
为了清楚起见,仅示出和详细描述了对于理解所描述的实施例有用的那些步骤和元件。尤其是,尚未详细描述包括具有多个微处理器的系统的设备,该多个微处理器的一个微处理器表现为黑匣子,并且其暴露一组服务,所描述的实施例与这样的通常设备兼容。此外,尚未详细描述能够由这样的表现为黑匣子的微处理器暴露给其他微处理器的服务,所描述的实施例与由这样的微处理器所暴露的通常服务兼容。
在整个本公开中,术语“连接”被用于指定在除导体之外没有中间元件的情况下的、在电路元件之间的直接电连接,而术语“耦合”用于指定在电路元件之间的电连接,该电连接可以是直接的连接,或者可以是经由一个或多个中间元件的连接。
在以下描述中,当提及诸如术语“前”、“后”、“顶部”、“底部”、“左”、“右”等修饰绝对位置的术语,或诸如术语“在……上方”、“在……之下”、“上部”、“下部”等修饰相对位置的术语,或诸如术语“水平”,“竖直”等修饰方向的术语时,除非另外说明,否则参考附图的取向。
术语“约”、“基本上”和“大约”在本文中用于指定所讨论的值的正负10%(优选正负5%)的容限。
图1以框图的形式非常示意性地示出了电子系统1的实施例,系统的微处理器的存储器的修改的所描述的实施例应用于该类型的类型的电子系统1。
电子系统1包括多个微处理器,在本示例中,包括两个微处理器2和3。微处理器3表现为黑匣子。换言之,微处理器3使一组服务或功能对系统的其他微处理器可用,而无需系统的其他微处理器能够访问微处理器3的内容。更特别地,系统1的其他微处理器不能够访问实现由微处理器3暴露的服务的软件代码或硬件,其他微处理器也不能够访问针对服务的实现而在微处理器3内部使用和/或生成的数据。
在该实施例中,微处理器3是安全微处理器,或者换言之,微处理器3是硬件安全模块(HSM)。
此处的术语微处理器意味着一种电子设备,该电子设备在相同的集成电路中包括中央处理单元和至少一个非易失性存储器,该非易失性存储器存储指令,当由中央单元读取该指令时,这些指令导致功能的实现。
更特别地,在该示例中,微处理器2包括:处理单元21(PU)(例如状态机,可编程逻辑电路等);一个或多个易失性存储区域,例如RAM型存储器22,例如,以在处理期间临时存储信息(指令、地址、数据);一个或多个非易失性存储区域,例如闪存型存储器23(FLASH),以持久地存储信息(尤其是在微处理器2不再被供电时);在微处理器2内部的不同元件之间的数据、地址和/或控制总线(未示出)的一个或多个数据、地址和/或控制总线(未示出);以及(例如串行总线类型的)例如与微处理器的外侧通信的输入/输出接口24(I/O),以便在微处理器2中编程功能和/或记录数据。
此外,根据应用,微处理器2可以集成由框25(FCT)符号化的其他功能,例如协处理器、其他接口、其他存储器等。
在本示例中,微处理器3包括:处理单元31(PU)(例如状态机,可编程逻辑电路等);一个或多个易失性存储区域32,例如RAM型存储器32,例如,以在处理期间临时存储信息(指令、地址、数据);一个或多个非易失性存储区域33,例如ROM型存储器33,以持久地存储信息(尤其是是在微处理器3不再被供电时);在微处理器3内部的不同元件之间的数据、地址和/或控制总线(未示出)的一个或多个数据、地址和/或控制总线(未示出)。
此外,根据本申请,微处理器3通常集成由框34(FCT)符号化的其他功能,(例如,密码处理器、其他接口、其他存储器等)。优选地,微处理器3集成至少一个编码电路或加密处理器,以例如根据AES GCM算法、AES CBC算法或RSA算法对数据进行加密/解密。
所以微处理器3可以向微处理器2暴露服务,并且使得微处理器2可以要求访问服务的一个服务,微处理器2和3共享安全接口4。
接口4例如包括形成微处理器2的一部分的存储器或存储空间42(REG),以及形成微处理器3的一部分的存储器或存储空间43(REG)。存储空间42和43优选地为寄存器。
当微处理器2期望访问由微处理器3暴露的服务时,它通过修改寄存器43的一个比特或多个比特来通过请求通知微处理器3。
微处理器3检测该请求,并且从例如预定的、微处理器2的存储器空间的特定的存储器区域读取,该存储器空间例如是存储器22,并且其中记录有请求描述符。实际上,请求描述符与指示微处理器2期望访问微处理器3的何种服务的数据相对应,并且可能与指示确定应如何实现被调用的服务的参数相对应。
然后,微处理器3根据间接表验证被调用的服务是否是它所暴露的服务组的服务的一个服务。作为示例,间接表包括多个服务索引或服务标识符,服务索引或服务标识符中的每个服务索引或服务标识符指向在所暴露的服务组中的服务或不支持的服务。作为示例,不支持的服务与指示所需服务不可用的功能相对应。更特别地,间接表的服务索引各自指向微处理器3的存储器的地址,在该地址中存储有所请求的服务的软件代码,亦即,当服务索引被单元31读取时导致由微处理器3实现服务的指令,该服务可能是不支持的服务。
当请求是有效的、并且在微处理器3中存储的间接表包括指向所请求的服务的服务索引时,该服务由微处理器3实现。作为示例,所请求的服务的实现方式包括以下步骤:由微处理器3从微处理器2的存储器空间读取在实现该服务时将被处理的数据,例如,当被调用的服务是数据加密服务时将被加密的数据。作为示例,具有将被处理的数据的地址以及其中所记录的该数据的尺寸由微处理器3先前读取的请求描述符的参数来代表。
然后,微处理器3向微处理器2提供实现被调用的服务的结果。作为示例,微处理器3将通过实行服务得到的数据(例如,当该服务是密码服务时被加密的数据)记录到微处理器2的存储器区域(例如存储器22)中。记录数据的地址例如由先前通过微处理器3读取的请求描述符的参数指示。
优选地,微处理器3还例如通过修改微处理器2的寄存器42的一个或多个比特来指示处理的结束,亦即,被调用的服务的实现的结束。
因此,微处理器2不访问微处理器3的内容,亦即微处理器3的存储器32和33的内容(指令和数据)。
尽管本文已经描述了包括单个安全微处理器3和能够调用由微处理器3暴露的服务的单个非安全微处理器2的系统1,但是该系统可以包括其他安全微处理器和/或其他非安全微处理器。在这样的系统中,每当安全微处理器向系统的另一微处理器暴露一组服务时,接口4的类型的接口被提供在两个微处理器之间,并且上文关于图1所述的操作被实现。这使得安全微处理器的内容能够不被系统的微处理器访问。此外,尽管本文没有详细描述,但是系统的相同安全微处理器可以将其服务组暴露给系统的多个其他微处理器。
图2示意性地示出了在图1的系统中使用的数据200的实施例,并且更特别地,示出了请求描述符200的实施例。
数据200代表被调用的服务的标识符201(CMD),例如标识被调用的服务的二进制代码。
数据200还代表参数202,在本示例中,五个参数P1、P2、P3、P4和P5代表被调用的服务应该在何种方式中被实现。根据被调用的服务,这些参数中的一些参数可以为零,亦即,未使用的。作为示例,当被调用的服务是通过AES ECB算法进行数据加密的服务时:参数P1代表将要用于加密的密钥,例如,存储在微处理器3中的密钥的标识符;参数P2代表存储将要被加密的数据的、微处理器2的存储器空间的区域的起始地址,例如存储器22的地址;参数P3代表将被记录以写入由微处理器3加密的数据的、微处理器2的存储器空间的区域的起始地址,例如存储器22的地址;参数P4代表将要被加密的数据的尺寸;并且参数P5未被使用。
由于微处理器2经由接口4传输访问由微处理器3暴露的服务的请求,因此,由微处理器3从微处理器2的存储器空间的预定存储器地址(例如,从存储器22的预定地址)读取数据200。预定地址优选地与被调用的服务无关,亦即,针对经由接口4从微处理器2传输至微处理器3的每个请求,该预定地址均相同。优选地,在设计系统1时、更特别地在设计微处理器3时限定该地址。然后,微处理器2被设计或编程为例如每当其传输访问由微处理器3暴露的服务的请求时,在微处理器2的存储器空间的该预定地址处记录相对应的请求描述符。
尽管本文已经描述了包括五个参数P1至P5的请求描述符200,但是在备选实施例中,请求描述符200包括任何非零数目的参数,优选地包括至少两个参数,亦即存储数据的存储器地址以及所存储的数据的尺寸。
在以下描述中,考虑了由微处理器3暴露的服务的软件代码被记录到具有被设置的内容的、微处理器3的存储器33中的情况。还考虑了基于非易失性存储器33的内容,初始化在服务索引与对应于这样的服务索引的相应(被支持的或不支持的)服务之间的间接表,并且该间接表记录到易失性存储器32中。
在系统1中,通过修改微处理器3的存储器33的内容,可以设计以修改由微处理器3暴露的服务组。然而,由于存储器33的内容是被设置的事实,这是不可能的,亦即,内容不再能够被修改。
作为示例,当存储器33是具有能够被重新编程的内容的存储器(例如闪存型存储器)时,微处理器3不包括允许对其内容进行这样的重新编程的接口。实际上,通过对存储器33的部分内容进行重新编程,有恶意的个人可以访问存储在存储器33中的机密数据,特别是与由微处理器3暴露的服务的操作有关的信息。
仍然作为示例,当存储器33是ROM时,例如,由于用于制造存储器的掩模,所以存储器33的内容不能够被修改,并且存储器33的内容在存储器33被制造被确定。
为了修改或改变由微处理器3暴露的服务组,可以提供具有与经修改的服务组相对应的、新的一组内容的新存储器33,这实际上暗示提供了新的微处理器3。这导致了各种缺点,特别是在设计时间、资源以及与提供新微处理器3相关联的成本方面的缺点。
发明人在此提供了通过安全地修改微处理器3的存储器32来安全地改变由微处理器3暴露的服务组的方法。更特别地,发明人提供了在存储器32中修改在服务索引与由索引指向的相应(被支持的或不支持的)服务之间的间接表的方法。
更特别地,为了避免将微处理器3的内容暴露给有恶意的个人,发明人提供了对微处理器3的存储器32的修改,该修改将被执行作为对通过微处理器2经由安全接口4访问修改存储器32的服务的请求的响应。优选地,与修改存储器32的这种服务相对应的软件代码被记录到微处理器3的非易失性存储器33中。例如,将被应用于存储器32的修改由经授权人员(例如由微处理器3的制造商或由制造商授权的人员)编程在微处理器2中,优选地编程在微处理器2的非易失性存储器中。由于存储器32是易失性存储器的事实,优选地针对系统1的每次供电或启动实现存储器32的这种修改。
在此,发明人利用了微处理器3的操作,并且更通常地利用了系统1的操作,使得微处理器2能够经由接口4安全地调用由微处理器3暴露的服务。
图3示意性地示出了在图1的系统中用于实现安全微处理器的存储器的修改(在本示例中,图1的微处理器3的存储器32的修改)的数据300的实施例。
在本实施例中,微处理器3的存储器33包括由微处理器3向系统1的其他微处理器暴露的服务的软件代码,所暴露的服务中的每个服务由间接表的对应服务索引指向。还认为微处理器3的存储器33包括与不由微处理器3暴露的一种或多种相应服务相对应的一个或多个软件代码。换言之,在设计微处理器3时,并且更特别地是,在设计其存储器33时提供了,如果需要则可能变成由微处理器3暴露的服务的附加服务。
数据300被存储在微处理器2中。
根据实施例,其中记录有数据300的存储器地址或存储器位置优选地由请求描述符的参数(图2)指示,该参数例如是由于经由接口4接收到访问由微处理器3暴露的服务的请求,微处理器3从微处理器2读取的参数P1。
根据一个实施例,请求描述符的另一参数,例如参数P2,指示数据300的尺寸。
作为示例,数据300被记录到存储器22中。数据300到存储器22中的记录,例如是由于将记录在微处理器2的存储器23中的数据复制到存储器22中而导致的。例如,被记录到存储器23中的数据已经由授权人员生成,并且然后被编程在微处理器2的存储器23中。
数据300包括数据302,数据302代表将在微处理器3的存储器32中执行的修改。数据300还包括签名304(“签名”)。
签名304已经由被授权请求修改微处理器3的存储器32的人生成。
借助于非对称加密算法(优选地RSA加密算法),签名304已经基于数据302的全部或部分数据,优选地基于所有的数据302被生成。尤其是,授权人员持有私钥,并且对应的公钥由微处理器3已知(例如存储在微处理器3中)。
数据302代表具有对其应用的、存储器302的修改的目标索引3020(“目标索引”)。在该实施例中,目标索引3020对应于在服务索引与和这些服务索引的相应软件代码之间的间接表的服务索引。
数据302还代表参数3022(“改变类型”),参数3022具有的值确定将要在存储器32中实现的修改的类型。
在该实施例中,参数3022的值选自第一值RS和第二值IR。当参数3020处于值RS时,这意味着通过使服务索引指向不支持的服务(即,例如指示所要求的服务不可用的功能),应该从所暴露的服务组中抑制由等于目标索引3020的服务索引指向的、所暴露的服务。当参数3020处于值IR时,这意味着应当利用记录在存储器33中的预先存在的服务,优选地是尚未被暴露的、预先存在的服务替换由等于目标索引3020的服务索引指向的、所暴露的服务。实际上,以上修改中的一个或另一修改与间接表的修改相对应,间接表在服务索引与具有指向相应服务(被支持的或不支持)的服务索引之间。因此,这与其中存储有间接表的存储器32的修改相对应。
数据302还代表可变数据3024(“可变数据”)。可变数据3024的内容特别地取决于参数3022的值,或者换言之,可变数据3024根据参数3022的值代表不同的信息。
根据一个实施例,当参数3022处于值IR时,可变数据3024包括在存储器33中尚未暴露的服务的地址3025(“地址”),在存储器32的修改之后,该地址将具有指向该服务的、等于目标索引3020的服务索引。优选地,可变数据3024具有固定的尺寸,并且可能包括填充数据3026(“随机值”)。当参数3022处于值RS时,可变数据3024仅包括填充数据3026。优选地,填充数据3026被随机地生成,这使得由恶意个人进行的攻击更加困难,特别是当已经至少基于可变数据3024生成了签名304时。
数据302可以代表许多其他信息。
优选地,数据302特别代表用于生成签名304的算法的类型3027(“签名类型”)。
优选地,数据302特别代表数据302的总尺寸3028(“数据尺寸”),亦即,不具有密钥304的数据300的尺寸。
优选地,数据302特别代表微处理器3的非易失性存储器33的版本3029(“rom版本”)。实际上,从存储器33的一个版本到另一版本,存储器33的被设置的内容可以不同。特别地,这可以使得在参数3022处于值IR时,能够标识该地址3025不与记录在存储器33中的服务的地址相对应。
根据优选实施例,如在图3中图示的,数据302包括非加密数据302-1和加密数据302-2。优选地,已经通过例如AES类型(优选地AES CBC类型)的对称加密算法对数据302-2进行了加密。优选地,AES类型算法使用随机生成的初始化向量3030(“IV”)。然后非加密数据302-1代表初始化向量3030。根据一个实施例,AES类型算法使用整个非加密数据302-1作为初始化向量。
由于要应用于存储器32的修改的关键数据或参数,亦即,将要实现的修改的类型3022、由修改涉及的目标索引3020以及(如果需要的话)记录在存储器33中的先前存在的服务的地址3025被加密的事实,这使得有恶意的个人的攻击更加困难。
优选地,无论存储器32的所请求的修改如何,数据302-1和302-2的尺寸都被设置并且相同。
图4以框图的形式示意性地示出了微处理器的存储器的修改的实施例,在本示例中,该修改的实施例是微处理器3的存储器32的修改。
在步骤401处(框“读取数据”),作为对经由接口4(图1)接收访问安全服务的请求的响应,微处理器3将从由请求描述符指示的地址,(例如由图2的请求描述符200的参数P1指示的地址)读取代表将要在存储器32中实现的修改的数据(例如,关于图3所述的数据302)。此外,在步骤401处,微处理器3读取与代表将要在存储器32中实现的修改的数据相关联的签名,(例如,与数据302相关联的签名304)。与代表将要在存储器32中实现的修改的数据相关联的签名已经由被授权的人员根据以下项生成:非对称加密算法、数据的全部或部分数据以及由授权人员持有的私钥请求。
在下一步骤402处(框“签名合格?”),微处理器3根据数据302和签名304验证其存储器32的修改请求是否是真实的,亦即,验证数据302是否已由经授权人员有效地生成。
为此,微处理器3根据数据302生成中间数据,目前称为哈希。微处理器3例如借助于微处理器3的经适配的解密电路(图1的框34),利用微处理器3的公钥解密签名304。然后,微处理器3验证经解密的签名与所生成的哈希相同。
如果不相同(框402输出“否”),则该方法进行到标记该方法结束的下一步骤404(框“返回错误”),并且不修改存储器32。优选地,在步骤404处,微处理器3例如经由接口4通知微处理器2尚未通过例如,修改微处理器2的寄存器42的一个或多个比特来执行对存储器32的所请求的修改。
如果相同(框402输出“是”),则数据302是真实的。此外,数据302是未更改的,亦即,由于签名已经由授权人员生成,因此数据302尚未被修改。然后该方法进行到下一步骤403处(框“修改存储器”),其中微处理器3根据数据302实现对存储器32的修改。例如,微处理器3通过修改具有由指向该服务的修改所涉及的服务索引的服务,来修改在服务索引与具有指向该服务的这些索引的相应(被支持的或不支持的)服务之间的间接表。优选地,一旦存储器32已经被修改,则微处理器3例如经由接口4,例如通过修改微处理器2的寄存器42的一个或多个比特来通知微处理器2。
根据实施例,其中数据302包括经加密数据302-2,步骤403包括例如借助于微处理器3的适配的解密电路(图1的框34)解密数据302-2的步骤。
根据实施例,其中数据特别地代表微处理器3的非易失性存储器33的版本3029(“rom版本”),步骤401包括验证由数据302指示的版本3029与微处理器的非易失性存储器33的版本相对应的步骤。如果不是这种情况,则该方法可以被中断。
根据一个实施例,步骤401可以包括对签名具有预期尺寸的验证。如果不是这种情况,则该方法可以被中断。
上述方法使得能够修改由微处理器3暴露的服务组,而无需修改存储器33的内容(这由于该内容被设置的事实而不可能)。
此外,由于只有持有私钥的授权人员才能生成与代表将要在存储器32中实现的修改的数据相关联的签名的事实,因此,这样的修改被安全地实现。然后,签名和与其相关联的数据被记录到微处理器2中,并且微处理器2被编程以传输存储器32的修改的对应数据。
此外,代表对由微处理器3暴露的服务组的修改的、存储器32的这样的修改使用调用存储器32的修改的服务的安全方法,亦即,安全调用由微处理器3暴露的服务中的任何服务的方法。
图5以框图的形式更详细地示出了图4的方法。更特别地,图5基于关于图3所描述的数据300,以更详细的方式示出了图4的方法的实现方式。在该实施例中,认为数据300包括加密数据302-2和非加密数据302-1。
在步骤401处,如关于图4所述的,微处理器3从微处理器2读取数据300。
在步骤401,根据一个实施例,其中数据302-1代表数据300的尺寸3028(图3),优选地,微处理器3验证数据300的尺寸。例如,微处理器将数据尺寸3028与在请求描述符(例如图2的请求描述符200)中所指示的数据300的尺寸(例如由描述符200的参数P2指示的尺寸)进行比较。如果数据尺寸彼此不相等,则类似于关于图4所描述的步骤404所描述的,微处理器3中断修改其存储器32的方法。
在步骤401处,根据一个实施例,其中数据302-1代表数据300的尺寸3028(图3),优选地,微处理器3验证其在存储器32中具有足够的可用存储空间来操纵数据300,亦即,例如在其中记录数据302。如果为否,则类似于关于图4所描述的步骤404已经描述的,微处理器3中断修改其存储器32的方法。
在步骤401处,除了读取数据302之外,根据一个实施例,其中数据302-1代表存储器33的版本3029,优选地,微处理器3验证数据302-1包括存储器33的正确版本3029。如果为否,则类似于关于图4所描述的步骤404已经描述的,微处理器3中断修改其存储器32的方法。
在步骤401处,优选地,微处理器验证签名304具有期望的尺寸。如果为否,则类似于关于图4所描述的步骤404已经描述的,微处理器3中断修改其存储器32的方法。
在步骤401处,微处理器3可以实现包括将数据300,特别是数据302-1和302-2导入其存储器32的步骤。导入数据302-1和302-2的步骤由诸如上述的验证数据300的尺寸和/或签名的尺寸的步骤为条件。
然后,微处理器实现关于图4描述的步骤402。优选地,实现步骤402的方式由用于生成签名304的非对称加密算法的类型来确定,然后非加密数据302-1代表算法的类型3027。
在此,步骤403开始于解密经加密的数据302-2的步骤500(框“解密数据”),该步骤例如借助于微处理器3的经适配的解密电路(框34,图1)。
根据实施例,其中数据302-2已经使用初始化向量、通过对称加密算法加密,微处理器3通过使用相同的初始化向量对数据302-2进行解密,未加密的数据302-1代表初始化向量3030。优选地,微处理器3使用整个数据302-1作为初始化向量来解密数据302-2。
步骤403还包括下一步骤501(框“改变类型=?”),其中,基于在步骤500处解密的数据302-2,微处理器3确定应该实现存储器32的何种类型的修改。为此,微处理器3检查参数3022等于何值(在本实施例中,参数3022等于IR或RS)。
如果参数3022处于值RS(框501的输出RS),则该方法进行到步骤403的下一步骤502(框“去除服务”)。在步骤502处,微处理器3修改在服务索引与由索引指向的相应(被支持的或不支持的)服务之间的间接表,亦即,它修改了其中存储有间接表的存储器32的内容。更精确地,微处理器3从间接表中搜索等于目标索引3020的服务索引,并且修改具有指向该地址的服务索引的地址,以使得该服务索引指向不支持的服务的地址,亦即,例如,指示所要求的服务不可用的功能的地址。换言之,微处理器3使得等于目标索引3020的服务索引指向不支持的服务。这等同于抑制来自由微处理器3暴露的服务组中的服务。
如果参数3022处于值IR(框501的输出IR),则该方法进行到步骤403的下一步骤503(框“内部替换”)。在步骤503处,微处理器3修改在服务索引与由索引指向的相应(被支持的或不支持的)服务之间的间接表,亦即,它修改了其中存储有间接表的存储器32的内容。更精确地,微处理器3从间接表搜索等于目标索引3020的服务索引,并且修改具有指向该地址的服务索引的地址,以使得服务索引的地址指向记录在存储器33中、但是尚未由微处理器3暴露的服务的软件代码的地址3025。换言之,微处理器3使得等于目标索引3020的服务索引指向在存储器33中预先存在的、但是尚未由微处理器3暴露的服务。如果在修改间接表之前,该服务索引指向不支持的服务,这等同于将服务添加到由微处理器3暴露的服务组中。如果在修改间接表之前,服务索引指向由微处理器3暴露的在服务组中的服务,这等同于利用另一服务替换该服务。
步骤502和503标记存储器修改方法的结束,该步骤如关于图4的步骤403所描述的那样结束。
根据备选实施例,所提供的是,能够将在微处理器3的存储器33中未预先存在的服务添加到由微处理器3暴露的服务组中。
为此,发明人提供数据300,以包括(除了关于图3已经描述的之外)与新服务相对应的软件代码,并且还提供了将要被导入到存储器32中的软件代码。然后在服务索引与对应的服务的软件代码之间的间接表被修改,以使得索引的一个索引指向所导入的软件代码,亦即,指向在其中存储有软件代码的存储器32的地址。
特别地,在该变型中,指示应该实现存储器32的何种类型的修改的参数3022被提供为能够采用值RS、值IR以及值IS。当参数处于值IS时,这意味着将要在存储器32中被实现的修改包括在其中记录新服务的软件代码,以及相应地修改在服务索引与对应服务的软件代码之间的间接表,以使得新服务由微处理器3暴露。
现在将关于图6和图7更详细地描述该变型。
图6示出了在参数3022处于值IS的情况下,关于图3描述的数据300。此处仅突出显示了在图3的数据300与图6的数据300之间的差异。
在图6中,除了非加密数据302-1和加密数据302-2之外,数据300(并且更特别地数据302)还包括代表新服务的软件代码的数据302-3。
根据优选实施例,例如通过(例如AES类型的)对称加密算法,优选地通过使用初始化向量3030或在数据302-1中的所有数据(包括初始化向量3030)作为初始化向量,数据302-3已经被加密。
提供新服务的软件代码的加密,使得能够避免由有恶意的个人读出该软件代码,例如,从而从中推断出与微处理器3的内部操作和/或新服务的操作有关的信息。
根据甚至更优选的实施例,在数据302-2之前,数据302-3已经被加密,并且在数据302-3被加密时,例如,借助于AES GCM类型的算法,完整性代码3032(“标签”)已被生成。然后,可变数据3024代表完整性代码3032,并且可能代表填充数据3026。
提供这样的完整性代码3032,使得能够确保新服务的软件代码尚未由有恶意的个人修改(例如,恶意的个人期望将恶意软件的代码导入微处理器3中,以在执行恶意软件时获取与微处理器3内部操作有关的信息)。
根据一个实施例,当数据302包括数据302-3时,签名304已经根据数据302-1、302-2和302-3生成。然后可以认为,在提供由非对称加密获得的签名304的情况下,提供完整性代码3032(特别是新服务的软件代码)的完整性是冗余的。然而,完整性代码3032使得能够即使在有恶意的个人已经成功伪造签名304的情况下,避免将恶意软件代码导入微处理器3中。
在图6中图示的备选实施例中,在参数3022具有值IR或RS的情况下,数据300不包括数据302-3,并且类似于关于图3所描述的数据300。
图7以框图的形式图示了图5的方法的备选实施例。在此仅突出显示了在图5的方法与图7的方法之间的差异。
步骤401、402、404与关于图5描述的步骤类似或相同。
如图5所示,步骤403从步骤500开始,在此期间,微处理器3对数据302-2进行解密。
步骤403包括下一步骤501,在该步骤中,微处理器3确定应该实现存储器32的何种类型的修改。为此,微处理器3检查参数3022等于何值(在该备选实施例中为IR、RS或IS)。
如果参数3022处于值RS(框501的输出RS),则如关于图5所描述的,步骤403进行到步骤502(未示出)。在该备选实施例中,在步骤502处,如果由等于目标索引3020的服务索引指向的服务的软件代码被记录在存储器32中,优选地,微处理器3命令抑制来自存储器32的软件代码,以释放在存储器32中的存储空间。
如果参数3022处于值IR(框501的输出IR),则如关于图5所描述的,步骤403进行到步骤503(未示出)。
如果参数3022处于值IS(框501的输出IS),则步骤403进行到步骤700(框“解密代码”)。在步骤700处,微处理器3将代表将要植入的软件代码的数据302-3导入到存储器32中,并且优选地,在它导入数据302-3的同时,例如借助于微处理器3的适配的解密电路(图1的框34)解密数据302-3。然后,经解密数据302-3,亦即新服务的软件代码,被记录在存储器32中。
根据实施例,其中数据302-3已经通过对称加密算法、使用初始化向量而被加密,微处理器3通过使用相同的初始化向量来对数据302-2进行解密,未加密的数据302-1代表初始化向量。
根据一个实施例,其中在对新服务的软件代码进行加密以生成数据302-3时,生成了完整性代码3032,在由微处理器3对数据302-3进行解密时,生成了另一完整性代码。在该实施例中,在步骤700之后,步骤403然后进行到步骤701(框“标签合格?”),在该步骤中,微处理器验证通过解密数据302-3而恢复的完整性代码3032与在对数据302-3解密时生成的完整性代码相同。如果为是(框701输出“是”),则步骤403进行到步骤702(框“植入服务”)。如果为否(框701输出“否”),则类似于步骤404,步骤403进行到步骤703(框“返回标签错误”)。
优选地,在步骤703处,微处理器3(例如经由接口4)通知微处理器2存储器32的、所要求的修改尚未被(例如,通过修改微处理器2的寄存器42的一个或多个比特)执行。
此外,在步骤703处,优选地,微处理器3删除在步骤700已经被记录到存储器32中的软件代码。
根据一个实施例,其中在对新服务的软件代码进行加密以获得数据302-3时,尚未生成完整性代码3032,在由微处理器3对数据302-3进行解密时,没有生成其他完整性代码。在这个实施例中,在步骤700之后,步骤403然后直接进行到步骤702。
在步骤702处,微处理器3在其暴露的服务组中,添加在步骤700已经将其软件代码记录到存储器32中的服务。为此,微处理器3修改了在服务索引与由服务索引指向的(被支持的或不支持的)服务的软件代码之间的间接表。更特别地,微处理器3使得等于目标索引3020的服务索引指向已经记录了新服务的软件代码的存储器32的地址。换言之,微处理器3使得等于目标索引3020的服务索引指向新服务。这等同于将新服务添加到由微处理器3暴露的服务组中。
步骤702标记存储器32的修改的方法的结束,并且如关于图4的步骤403所描述的那样结束。
除了前文已经描述的之外,还可以认为具有其软件代码被记录在微处理器3的存储器33中(或者可能记录在微处理器3的存储器32中)的服务可以包括间接点。因此,在由微处理器3执行软件代码时,在间接点处中断执行。在间接点处,服务包括测试以验证与服务的更新相对应的软件代码(亦即,软件补丁)在存储器32中是否可用,并且是否应该从间接点执行。
在该变型中,微处理器3包括间接表,该间接表包括更新索引,更新索引中的每个更新索引都指向或不指向更新,亦即,指向与更新相对应的软件代码。注意,更新可以与存储在微处理器3的非易失性存储器32中的软件代码相对应,这样的更新然后与存储在存储器32中的服务的代码的初始部分相对应,并且允许该服务的实现。当更新索引指向不更新时,该索引例如指向一个功能(亦即,软件代码),其指示针对该索引没有可用的更新。在更新索引与对应的更新之间的间接表基于非易失性存储器33的内容被初始化。该间接表被记录到易失性存储器32中。
因此,在执行包括间接点的服务时,当微处理器3到达该间接点时,它在更新索引与更新之间的间接表中验证与该间接点相对应的更新索引是否指向更新。如果更新索引指向更新(亦即,该更新的软件代码),则微处理器3将实行该更新。在执行更新的结束处,可以在间接点之后恢复服务的执行。如果更新索引指向不更新,则该服务的执行继续。
由于在微处理器到达间接点时,将被实行的代码的更新,因此在服务的软件代码中提供一个或多个间接点,使得能够仅修改服务的执行的一部分。这特别地使得能够预期对服务的修改,例如,以纠正服务的可能故障、或满足来自微处理器3的用户的请求。
在该备选实施例中,发明人提供了能够通过使对应的更新索引指向不更新来抑制服务的更新。在该变型中,发明人还提供了能够通过记录新更新的软件代码、并且通过使对应的更新索引指向软件代码并因此指向新更新,来将新更新导入存储器32中。
因此,在该变型中,参数3022(图3和图6)可以采用两个附加值,亦即,值RP和IP。
当参数3022处于值RP时,这意味着更新索引指向对应更新的间接表应被修改,使得等于目标索引3020的更新索引指向不更新。在这种情况下,数据300是关于图3所描述的那些数据的类型,其差异在于,目标索引3020与更新索引而不是服务索引相对应。数据302不包括数据302-3。此外,在这种情况下,可变数据3024仅包括填充数据3026。
当参数3022处于值IS时,这意味着要在存储器32中实现的修改包括将新服务的软件代码记录到其中,以及相应地修改在服务索引与对应的服务的软件代码之间的间接表,使得新的服务由微处理器3暴露。
当参数3022处于值IP时,这意味着将在存储器32中实现的修改包括在其中记录新更新的软件代码,以及相应地修改在更新索引与由该索引指向的更新之间的间接表。更特别地,间接表被修改,使得等于目标索引3020的更新索引指向新更新(亦即,新更新的软件代码),更精确地,指向记录软件代码的存储器32的地址。在这种情况下,数据300是关于图6所描述的那些数据的类型,其差异在于目标索引3020与更新索引而不是服务索引相对应。然后,数据302-3代表新更新的软件代码。
在数据302-3代表新服务的软件代码的情况下,关于图6已经描述的、涉及数据302的、特别是数据302的优点,在数据302-3代表新更新的软件代码时同样适用。
图8以框图的形式示出了在参数3022可以采用值IP和RP的情况下,图5和图7的方法的备选实施例。更特别地,在该变型中,参数3022可以采用值RS、值IR、值IS、值IP或值RP。
在此仅突出显示了在图7的方法与图8的方法之间的差异。
步骤401、402、404与关于图7所描述的步骤相同。
如在图7中所示的,步骤403从步骤500开始,在该步骤期间,微处理器3对数据302-2进行解密。
步骤403包括下一步骤501,在该步骤中,微处理器3确定应该实现存储器32的何种类型的修改。为此,微处理器3检查参数3022等于何值(在该备选实施例中为IR、RS、IS、IP或RP)。
如果参数3022处于值RS(框501的输出RS),则如关于图5所描述的,步骤403进行到步骤502(未示出)。
如果参数3022处于值IR(框501的输出IR),则如关于图5所描述的,步骤403进行到步骤503(未示出)。
如果参数3022处于值IS(框501的输出IS),则如关于图7所描述的,步骤403进行到步骤700(未示出)。
如果参数处于值RP(框501的输出RP),则步骤403进行到步骤800(框“去除补丁”)处。在步骤800处,微处理器3修改在更新索引与对应更新之间的间接表,亦即,修改存储间接表的微处理器3的存储器32的内容。更精确地,微处理器3使得等于目标索引3020的更新索引指向不与任何更新相对应的地址,例如指向指示针对该索引没有可用更新的功能的地址。这等同于更新索引指向不更新,并且因此抑制了它先前指向的更新。优选地,在步骤800处,在间接表的修改之前,微处理器3删除等于目标索引3020的、更新索引曾指向的、更新的软件代码。然后,步骤800,以及更通常地,修改存储器32的方法如关于图4的步骤403所描述地结束。
如果参数处于值IP(框501的输出IP),则步骤403进行到步骤802(框“解密代码”)处。步骤802与关于图7描述的步骤700类似或甚至相同。
根据实施例,其中数据302-3已经通过对称加密算法、使用初始化向量3030加密,微处理器3通过使用相同的初始化向量来解密数据302-2,未加密的数据302-1代表初始化向量3030。
根据实施例,其中,在对新更新的软件代码进行加密以获得数据302-3时,完整性代码3032已经被生成,在由微处理器3对数据302-3进行解密时,另一完整性代码被生成。在该实施例中,在步骤802之后,步骤403然后进行到步骤804(步骤“标签合格?”)处,该步骤与关于图7描述的步骤701类似或相同。更特别地,在步骤804处,微处理器验证由解密数据302-2包含的完整性代码3032与解密数据302-3时生成的完整性代码相同。如果相同(框804输出“是”),则步骤403进行到步骤808(框“植入补丁”)处。如果不相同(框804输出“否”),则步骤403进行到步骤806(框“返回标签错误”)处,类似于步骤703(图7)。
优选地,在步骤806处,微处理器3删除在步骤802处已经被记录在存储器32中的软件代码。
根据实施例,其中,在对新更新的软件代码进行加密以获得数据302-3时,尚未生成完整性代码3032,在由微处理器3对数据302-3进行解密时,尚未生成其他完整性代码。在这个实施例中,在步骤802之后,步骤403然后直接进行到步骤808。
在步骤808,微处理器3修改在更新索引与由索引中的至少一些索引指向的更新之间的间接表。更特别地,在步骤802处,微处理器3使得等于目标索引3020的更新索引指向新的更新,亦即,指向在步骤802在其中记录新更新的软件代码的存储器32的地址。如果在间接表的修改之前,更新索引指向不更新,这等同于向相关服务添加了更新。如果在间接表的修改之前,更新索引指向更新,则等同于利用新更新替换了此更新。
步骤808,以及更通常地,修改存储器32的方法,如关于图4的步骤403所描述地结束。
在图8的方法的未图示的备选实施例中,在步骤501之后,如果参数3022处于值IS或IP,则步骤403进行到图7的步骤700。
在此变型中(未图示),如果已经在对数据302-3进行加密时生成了完整性代码3032,则步骤700包括在对数据302-3进行解密时生成另一完整性代码,并且该步骤进行到图7的步骤701。如果在步骤701,完整性代码相同,则步骤701进行测试参数3022的值的新步骤。如果参数3022处于值IP,则该新测试步骤之后是图8的步骤808,并且如果参数处于值IS,则新的测试步骤之后是图7的步骤702。
在此变型中(未图示),如果在对数据302-3进行加密时尚未生成完整性代码,则步骤700直接进行到测试参数3022的值的新步骤,并且然后该方法如先前段落中所描述的继续。
已经关于图8描述了一种方法,其中参数3022可以采用值RS、RP、IS、IP和IR之中的任何值。将该方法适配于参数3022可以仅在值RS、RP、IS、IP和IR中的某些值之中(例如,仅在值RS、RP、IP和IR之中)采用任意值的情况,将在本领域技术人员的能力内。
此外,发明人可选地提供了一种管理在存储器32中的预留存储空间的方法的实施例,使得在每次步骤702或步骤808被实现时将软件代码记录在该存储空间中。预留空间与存储器32的一系列连续存储器地址相对应。在实现步骤800和步骤502时,如果该实现与将其软件代码记录在预留存储空间中的服务的抑制相对应,则也可以在实现步骤800和步骤502时修改预留空间。
现在将关于图9描述该方法。图9包括三个视图A、B和C,分别图示了在初始状态中、在实现步骤808之后以及在实现步骤702之后的预留存储空间。在此认为,与预留存储空间相对应的存储器32的一系列连续地址开始于地址X,并且结束于地址X+Y,每个地址均与存储器32的存储字相对应。换言之,预留存储空间包括数目为Y+1的存储字,每个存储字由地址标识。
在这种方法中,如在图9的视图A中图示的,最初,预留存储空间不包含软件代码。此外,预留存储空间包括存储字900,该存储字900包括四个字段C1、C2、C3和C4,这四个字段分别代表:存储器32的修改的类型,修改涉及的服务或更新索引,与由涉及的索引指向的服务或更新相对应的软件代码的尺寸,以及具有在其中存储软件代码的预留存储空间的存储器地址。更特别地,在存储字900中,字段C1为指示存储器32的修改的无效类型的默认值,字段C2为指示无效索引的默认值,字段C3为例如指示软件代码尺寸为零的值的默认值,并且字段C4为指示在预留存储空间中第一空闲存储字的地址的默认值,该地址从预留空间的末尾开始(在此即地址X+Y)。
在初始状态中,存储字900在预留存储空间的起始地址X处。
在图9的视图B中,在实现步骤808时,在此示例中与更新相对应的软件代码Code1已经被记录到在视图A中图示的预留存储空间中。
为此,代码Code1已经被记录在预留存储空间中,使得代码Code1的一系列连续地址的范围从视图A的字900的字段C4中指示的地址(在此即地址X+Y)扩展。
此外,字900的字段C4已经被设置为,指示预留存储空间的第一空闲存储字的地址的值,该地址从预留空间的末尾开始,在此示例中为地址@Code1-1。
然后,字900已经朝向预留存储空间的末尾(在此为地址X+1)被移位了一个地址。
然后,包括四个字段C1、C2、C3和C4的字901已经被记录在预留存储空间的起始地址(在此处为地址X)处。字901的字段C1是指示涉及添加更新的软件代码的、存储器修改的类型。字901的字段C2是指示指向代码Code1的更新索引的值。字段C3是指示代码Code1的尺寸的值。字段C4是指示代码Code1的地址范围的起始地址的值,在该示例中起始地址为地址@Code1。
在图9的视图C中,作为步骤702的实现的结果,与新服务相对应的软件代码Code2已经被记录到由视图B图示的预留存储空间中。
为此,代码Code2已经被记录到预留存储空间中,使得代码Code2的一系列连续地址的范围从视图B的字900的字段C4中指示的地址(在此示例中为地址@Code1-1)扩展。更特别地,代码Code2的一系列连续地址的范围在地址@Code1-1处结束。
此外,字900的字段C4被设置为指示预留存储空间的、第一空闲存储字的地址的值,该地址从预留空间的末尾开始,在此为地址@Code2-1。
字900和901,亦即,各自包含字段C1、C2、C3和C4的字,已经朝着预留存储空间的末尾被移位了一个地址。因此,在该示例中,字900被移位到地址X+2,并且字901被移位到地址X+1。
然后,包括四个字段C1、C2、C3和C4的字902已经被记录在预留存储空间的起始地址(此处为地址X)处。字902的字段C1是指示涉及添加新服务的软件代码的、存储器修改的类型。字902的字段C2是指示指向代码Code2的服务索引的值。字902的字段C3是指示代码Code2的尺寸的值。字902的字段C4是指示代码Code2的地址范围的起始地址的值,在该示例中为地址@Code2。
更通常地,每次将软件代码添加到预留存储空间中包括:朝向预留存储空间的末尾移位一个地址,将代表软件代码的存储字记录在预留存储空间中,并且初始存储字900代表第一空闲存储字的地址,该地址从预留存储空间的末尾开始,或者换言之,包括字段C1至C4的字移位;在一系列连续的地址的范围中记录将要被添加的软件代码,该一系列连续地址的最后一个地址与由初始字900的字段C4指示的地址相对应;在预留存储空间的起始地址处,记录代表新软件代码的存储字,或者换言之,记录包括字段C1至C4的存储字;以及,更新初始存储字900,使得由其字段C4指示的地址与第一空闲存储字的地址相对应,该地址从预留存储空间的末尾开始。
此外,尽管未被图示,但是优选地,当抑制来自预留存储空间的软件代码时,关于图9所描述的方法还包括以下步骤:
-抑制软件代码;在被抑制的软件代码被记录在预留储存空间中之前,将在该预留储存空间中被记录的、可能的软件代码,朝向预留存储空间的末尾移位(亦即,相对于被抑制的软件代码,在预留存储空间的开始的一侧)与被抑制的软件代码的尺寸相对应的地址,;抑制代表被抑制的软件代码的存储字;以及更新代表存储在预留存储空间中的软件代码的存储字,特别是它们的字段C4;以及朝向预留存储器空间的开始移位一个地址,该存储字代表存储在预留存储空间中的软件代码。
上述方法使得能够保持连续的空闲存储空间以在其中记录新的软件代码,考虑到预留存储空间的尺寸和已经记录在其中的软件代码的尺寸,该连续的空闲存储空间尽可能地大。
在以上描述中,已经认为地址X和X+Y分别是预留的存储空间的开始和结束地址。然而,这仅是约定,并且将上述方法适配于根据约定认为地址X和X+Y分别是预留存储空间的结束和开始地址的情况,在本领域技术人员的能力内。
尽管本文没有详细描述,但是将关于图9描述的方法适配于参数3022(图3和图6)只能采用值IR、RS、RP、IP和IS中的一些值的情况在本领域技术人员的能力内。
已经描述了各种实施例和变型。本领域技术人员将理解的是,可以组合这些各种实施例和变型的某些特征,并且本领域技术人员将想到其他变型。特别地,以上已经描述了ROM型存储器33的情况,亦即,具有其内容在制造存储器时被设置的只读存储器。在备选实施例中,存储器33与例如闪存类型的存储器相对应,其内容在制造时未被设置,而是例如通过破坏存储器33的配置的保险丝,一旦存储器33已经被编程就明确禁止对存储器33的任何写访问来设置的。
以上已经描述了通过修改微处理器3的存储器32来修改由微处理器3暴露的服务组的实施例和变型,其中由微处理器3初始暴露的服务组在微处理器3被供电时由微处理器的另一存储器33的被设置的内容确定,并且存储器32的初始内容也由存储器33的被设置的内容确定。这样的实施例和变型不限于微处理器3是安全微处理器(硬件安全性模块)的情况。
最后基于以上给出的功能性的指示,所描述的实施例和变型的实际实现在本领域技术人员的能力内。特别地,涉及由授权人员对在微处理器2中的数据300进行编程,以下各项在本领域技术人员的能力内:生成数据300、将其记录到微处理器2的非易失性存储器中以及对微处理器进行编程,以使得微处理器将数据300记录到给定的存储器位置中,并且生成修改微处理器3的存储器32的内容的请求,该请求特别地指示其中由微处理器3可以访问数据300的存储器位。

Claims (20)

1.一种方法,包括:
由第一微处理器接收所述第一微处理器的第一存储器的内容的修改请求,所述第一存储器仅能由所述第一微处理器访问;
由所述第一微处理器访问与所述请求相关联的第一数据以及根据所述第一数据、使用非对称加密算法生成的签名,所述第一数据和所述签名在第二微处理器的第二存储器中可用,并且所述第一数据代表被应用到所述第一存储器的所述内容的修改,所述修改代表由所述第一微处理器暴露的一组服务的修改;
由所述第一微处理器基于所述签名验证所述第一数据的真实性;以及
根据所述第一数据,修改所述第一存储器的所述内容,所述修改以所述验证为条件。
2.根据权利要求1所述的方法,其中:
第一间接表被存储在所述第一存储器中,所述第一表包括一个或多个第一索引,所述第一索引中的每个第一索引指向不同的暴露的服务或不支持的服务;
所述第一数据包括至少代表目标索引和参数的第二数据,所述参数具有至少选自第一值和第二值之中的值;并且其中修改所述第一存储器的所述内容包括:
当所述参数处于所述第一值时,修改所述第一表以使来自所述第一索引的、等于所述目标索引的索引指向不支持的服务,或者
当所述参数处于所述第二值时,修改所述第一表以使来自所述第一索引的、等于所述目标索引的索引指向尚未被暴露的另一服务。
3.根据权利要求1所述的方法,其中:
第一间接表被存储在所述第一存储器中,所述第一表包括一个或多个第一索引,所述第一索引中的每个第一索引指向不同的暴露的服务或不支持的服务;
所述第一数据包括至少代表目标索引和参数的第二数据,所述参数具有至少选自第一值和第二值之中的值;并且其中修改所述第一存储器的所述内容包括:
当所述参数处于所述第一值时,修改所述第一表以使来自所述第一索引的、等于所述目标索引的索引指向不支持的服务,并且
当所述参数处于所述第二值时,修改所述第一表以使来自所述第一索引的、等于所述目标索引的索引指向尚未被暴露的另一服务。
4.根据权利要求3所述的方法,其中所述参数的所述值至少选自所述第一值、所述第二值和第三值之中,并且其中修改所述第一存储器的所述内容包括:
当所述参数处于所述第三值时,将新服务的软件代码记录到所述第一存储器中,并且修改所述第一表以使来自所述第一索引的、等于所述目标索引的索引指向所述新服务。
5.根据权利要求4所述的方法,其中:
第二间接表被存储在所述第一存储器中,所述第二表包括一个或多个第二索引,所述第二索引中的每个第二索引指向所述第一存储器的区域,所述区域包含或不包含所述暴露的服务中的一个服务的更新;并且
所述参数的所述值至少选自所述第一值、所述第二值和第四值之中,并且其中修改所述第一存储器的所述内容包括:当所述参数处于所述第四值时,抑制由来自所述第二索引的等于所述目标索引的第二索引指向的、所述第一存储器的所述区域所包含的所述更新。
6.根据权利要求5所述的方法,其中所述参数的所述值至少选自所述第一值、所述第二值、所述第四值和第五值之中,并且其中,修改所述第一存储器的所述内容包括:当所述参数处于所述第五值时,在由等于所述目标索引的所述第二索引指向的所述第一存储器的所述区域中,记录所述暴露的服务中的一个服务的更新的软件代码。
7.根据权利要求6所述的方法,其中所述第一数据包括第三数据,所述第三数据代表在修改所述第一存储器的所述内容时所记录的所述软件代码。
8.根据权利要求7所述的方法,其中所述第二数据是由对称加密算法加密的数据,并且其中修改所述第一存储器的所述内容包括由所述第一微处理器解密所述第二数据。
9.根据权利要求8所述的方法,其中所述第三数据是由另一对称加密算法加密的数据,并且其中修改所述第一存储器的所述内容包括:在所述解密所述第二数据之后,由所述第一微处理器解密所述第三数据。
10.根据权利要求9所述的方法,其中所述第二数据还代表在加密所述第三数据时生成的第一完整性代码,其中所述解密所述第三数据还包括将所述第一完整性代码与在所述解密所述第三数据时生成的第二完整性代码进行比较,根据所述第一数据的所述第一存储器的所述内容的所述修改以所述比较为条件。
11.根据权利要求3所述的方法,其中由所述第一微处理器初始暴露的所述服务组由所述第一微处理器的第三非易失性存储器的内容确定,所述第三存储器的所述内容被设置并且仅能由所述第一微处理器访问。
12.根据权利要求11所述的方法,其中所述第三非易失性存储器是只读存储器。
13.根据权利要求11所述的方法,其中未被暴露的所述另一服务由所述第三存储器的所述内容确定。
14.根据权利要求11所述的方法,其中所述更新数据还包括第四非加密数据,所述第四非加密数据指示:
所使用的所述非对称加密算法;
所述对称加密的初始化的向量;
所述第一数据的尺寸;以及
所述第三存储器及其内容的版本。
15.根据权利要求11所述的方法,其中所述更新数据还包括第四非加密数据,所述第四非加密数据指示:
所使用的所述非对称加密算法;
所述对称加密的初始化的向量;
所述第一数据的尺寸;或者
所述第三存储器及其内容的版本。
16.根据权利要求1所述的方法,其中所述第一存储器是易失性存储器。
17.一种第一微处理器,包括:
处理器和具有所设置的内容的非易失性存储器,所述非易失性存储器包括具有指令的程序,在所述指令由所述处理器读取时导致所述处理器
接收所述第一微处理器的第一存储器的内容的修改请求,所述第一存储器仅能由所述第一微处理器访问,
访问与所述请求相关联的第一数据以及利用非对称加密算法根据所述第一数据生成的签名,所述第一数据和所述签名在第二微处理器的第二存储器中可用,并且所述第一数据代表将被应用到所述第一存储器的所述内容的修改,所述修改代表由所述第一微处理器暴露的一组服务的修改,
由所述第一微处理器基于所述签名验证所述第一数据的真实性,以及
根据所述第一数据修改所述第一存储器的所述内容,所述修改以所述验证为条件。
18.根据权利要求17所述的第一微处理器,其中第一间接表被存储在所述第一存储器中,所述第一表包括一个或多个第一索引,所述第一索引中的每个第一索引指向不同的暴露的服务或不支持的服务;
所述第一数据包括至少代表目标索引和参数的第二数据,所述参数具有至少选自第一值和第二值之中的值;并且
其中用于修改所述第一存储器的所述内容的所述指令包括:
当所述参数处于所述第一值时,修改所述第一表以使来自所述第一索引的、等于所述目标索引的索引指向不支持的服务,并且
当所述参数处于所述第二值时,修改所述第一表以使来自所述第一索引的、等于所述目标索引的索引指向未被暴露的另一服务。
19.根据权利要求18所述的第一微处理器,其中所述参数的所述值至少选自所述第一值、所述第二值和第三值,并且其中所述用于修改所述第一存储器的所述内容的所述指令包括:
当所述参数处于所述第三值时,将新服务的软件代码记录到所述第一存储器中,并且修改所述第一表以使来自所述第一索引的、等于所述目标索引的索引指向所述新服务。
20.根据权利要求19所述的第一微处理器,其中:
第二间接表被存储在所述第一存储器中,所述第二表包括一个或多个第二索引,所述第二索引中的每个第二索引指向所述第一存储器的区域,所述区域包含或不包含所述暴露的服务的一个服务的更新;并且
所述参数的所述值至少选自所述第一值、所述第二值和第四值之中,并且其中用于修改所述第一存储器的所述内容的所述指令包括:当所述参数处于所述第四值时,抑制由来自所述第二索引的第二索引所指向的、所述第一存储器的所述区域所包含的所述更新,所述第二索引等于所述目标索引。
CN202010589847.3A 2019-06-28 2020-06-24 安全微处理器的存储器的修改 Pending CN112149185A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1907125 2019-06-28
FR1907125A FR3097994B1 (fr) 2019-06-28 2019-06-28 Modification d'une mémoire d'un microprocesseur sécurisé

Publications (1)

Publication Number Publication Date
CN112149185A true CN112149185A (zh) 2020-12-29

Family

ID=68987771

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010589847.3A Pending CN112149185A (zh) 2019-06-28 2020-06-24 安全微处理器的存储器的修改

Country Status (4)

Country Link
US (1) US11340798B2 (zh)
EP (1) EP3757842A1 (zh)
CN (1) CN112149185A (zh)
FR (1) FR3097994B1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1430680A2 (en) * 2001-09-03 2004-06-23 Intercede Limited Server with file verification
US20170090909A1 (en) * 2015-09-25 2017-03-30 Qualcomm Incorporated Secure patch updates for programmable memories
CN106650456A (zh) * 2015-11-03 2017-05-10 质子世界国际公司 电子电路的安全启动
US20190034196A1 (en) * 2017-07-31 2019-01-31 Qualcomm Incorporated Patch Infrastructure For ROM Firmware
CN109656839A (zh) * 2017-10-12 2019-04-19 意法半导体股份有限公司 用于访问经加密的数据的电子设备和对应的方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010047473A1 (en) * 2000-02-03 2001-11-29 Realtime Data, Llc Systems and methods for computer initialization
FR2820576B1 (fr) * 2001-02-08 2003-06-20 St Microelectronics Sa Procede de cryptage protege contre les analyses de consommation energetique, et composant utilisant un tel procede de cryptage
US6910075B2 (en) * 2001-11-14 2005-06-21 Emc Corporation Dynamic RDF groups
EP2131287A1 (fr) * 2008-06-02 2009-12-09 Gemalto SA Dispositif électronique de mise à disposition de services autoadaptatifs en fonction de la plateforme de l'équipement hôte avec lequel il est en liaison
US10353774B2 (en) * 2015-10-30 2019-07-16 International Business Machines Corporation Utilizing storage unit latency data in a dispersed storage network
FR3029324B1 (fr) * 2014-11-28 2017-12-15 Proton World Int Nv Acces a des donnees dans un dispositif mobile nfc
US20190034195A1 (en) * 2017-07-26 2019-01-31 Qualcomm Incorporated Systems and methods for providing patchable rom firmware
KR102434444B1 (ko) * 2017-11-29 2022-08-19 한국전자통신연구원 가상 트러스트 컴퓨팅 베이스를 이용한 기기 보안성 검증 방법 및 장치
US10725941B2 (en) * 2018-06-30 2020-07-28 Western Digital Technologies, Inc. Multi-device storage system with hosted services on peer storage devices

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1430680A2 (en) * 2001-09-03 2004-06-23 Intercede Limited Server with file verification
US20170090909A1 (en) * 2015-09-25 2017-03-30 Qualcomm Incorporated Secure patch updates for programmable memories
CN106650456A (zh) * 2015-11-03 2017-05-10 质子世界国际公司 电子电路的安全启动
US20190034196A1 (en) * 2017-07-31 2019-01-31 Qualcomm Incorporated Patch Infrastructure For ROM Firmware
CN109656839A (zh) * 2017-10-12 2019-04-19 意法半导体股份有限公司 用于访问经加密的数据的电子设备和对应的方法

Also Published As

Publication number Publication date
FR3097994B1 (fr) 2022-03-11
FR3097994A1 (fr) 2021-01-01
US11340798B2 (en) 2022-05-24
US20200409572A1 (en) 2020-12-31
EP3757842A1 (fr) 2020-12-30

Similar Documents

Publication Publication Date Title
JP5175856B2 (ja) セキュアデバイス・システムにおけるフラッシュメモリ・ブロックの保護と方法
US7725740B2 (en) Generating a root key for decryption of a transmission key allowing secure communications
US7299363B2 (en) Method for using shared library in tamper resistant microprocessor
CN102057618A (zh) 信息处理装置、加密密钥的管理方法、计算机程序及集成电路
US8392724B2 (en) Information terminal, security device, data protection method, and data protection program
CN102105883A (zh) 电子装置以及电子装置的软件或固件更新的方法
CN103220264A (zh) 提供数字签名以确保闪存编程功能的方法
US20110083020A1 (en) Securing a smart card
US11238137B2 (en) Enabling program code on target data processing devices
US11270003B2 (en) Semiconductor device including secure patchable ROM and patch method thereof
JP2010500656A (ja) 仮想マシンのアクティブ化を伴う携帯可能な大容量記憶装置
CN112384922B (zh) 加密密钥分布
CN100596058C (zh) 可信计算平台密钥授权数据管理系统及方法
CN111512593B (zh) 半导体设备、提供更新数据的方法、接收更新数据的方法以及介质
CN111931190B (zh) 一种基于xip处理器系统的启动方法
CN113094720A (zh) 安全地管理密钥的设备和方法
CN112149185A (zh) 安全微处理器的存储器的修改
US20220209947A1 (en) Electronic system comprising a plurality of microprocessors
US11775275B2 (en) Secure code image distribution
JP2004348526A (ja) Icカード、icカードプログラム及びコード部の入れ替え方法
EP4254855A1 (en) A device and a method for controlling use of a cryptographic key
CN112437924A (zh) 用于可编程逻辑器件的安全引导系统和方法
US20220318434A1 (en) Method and device for secured deciphering of ciphering data
TWI840506B (zh) 安全資料處理裝置(二)
CN112703703B (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