CN108108631A - 一种根密钥处理方法及相关装置 - Google Patents
一种根密钥处理方法及相关装置 Download PDFInfo
- Publication number
- CN108108631A CN108108631A CN201711233015.2A CN201711233015A CN108108631A CN 108108631 A CN108108631 A CN 108108631A CN 201711233015 A CN201711233015 A CN 201711233015A CN 108108631 A CN108108631 A CN 108108631A
- Authority
- CN
- China
- Prior art keywords
- memory
- processor
- rpmb
- subregions
- root key
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting 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/79—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4403—Processor initialisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2149—Restricted operating environment
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种根密钥处理方法及相关装置。其中,所述方法由与设有RPMB分区的存储器连接的处理器执行,包括:所述处理器在上电后,检测所述RPMB分区的根密钥是否已写入所述存储器中;若否,则在所述处理器的安全启动过程中,将所述RPMB分区的根密钥写入所述存储器;其中,所述安全启动过程为所述处理器未启动非安全操作系统。上述方案,能够防止存储器中的根密钥泄露。
Description
技术领域
本申请涉及存储技术领域,特别是涉及存储器的根密钥处理方法及相关装置。
背景技术
嵌入式多媒体卡(Embedded Multi Media Card,EMMC)等存储器一般设置有一具有防回滚保护特性的分区,叫做回滚保护存储块(Replay Protected Memory Block,RPMB)分区,通常用于存放一些核心敏感数据,例如手机上指纹支付相关的公钥、序列号等有防止非法篡改需求的数据。
为了防止RPMB分区的写入数据或读出数据被非法篡改,存储器需预先写入RPMB分区的根密钥。该写入数据或读出数据会与利用RPMB分区的根密钥和数据生成的值一并传输,由此存储器或处理器在接收到该数据时,利用其本地存储的根密钥和接收到的数据重新生成新值,并与接收到的值比较,以判断该数据在传输过程中是否发生篡改。
因此,RPMB分区的根密钥是RPMB分区实现防回滚保护的一个关键部分。目前,如何将该RPMB分区的根密钥安全写入到存储器中,以防止RPMB分区的根密钥泄露,是实现RPMB分区防回滚保护的重要课题。
发明内容
本申请主要解决的技术问题是提供根密钥处理方法及相关装置,能够防止存储器中的根密钥泄露。
为了解决上述问题,本申请第一方面提供了一种根密钥处理方法,所述方法由与设有回滚保护存储块RPMB分区的存储器连接的处理器执行,包括:
所述处理器在上电后,检测所述RPMB分区的根密钥是否已写入所述存储器中;其中,所述根密钥用于校验所述RPMB分区的写入数据或读取数据是否被篡改;
若否,则在所述处理器的安全启动过程中,将所述RPMB分区的根密钥写入所述存储器;其中,所述安全启动过程为所述处理器未启动非安全操作系统。
为了解决上述问题,本申请第二方面提供了一种对RPMB分区的根密钥进行处理的处理电路,用于执行上的方法。
为了解决上述问题,本申请第三方面提供了一种对RPMB分区的根密钥进行处理的处理系统,包括上述的处理电路以及与所述处理电路连接的存储器,其中,所述存储器设有回滚保护存储块RPMB分区,所述处理电路用于对所述RPMB分区的根密钥进行处理。
为了解决上述问题,本申请第四方面提供了一种非易失性存储介质,存储有计算机程序,所述计算机程序被处理器运行,用于上述的方法。
上述方案中,处理器在安全启动过程中写入存储器中RPMB分区的根密钥,由于在安全启动过程中,处理器尚未启动非安全操作系统,故在写入PRMB分区的根密钥过程中不会经过该非安全操作系统,从而避免在非安全操作系统中将存储器中RPMB分区的根密钥泄露的状况,进一步保证了RPMB分区的防回滚保护。
附图说明
图1是本申请处理系统一实施例的结构示意图;
图2是本申请根密钥处理方法一实施例的流程示意图;
图3是图1所示S220步骤中写入根密钥的流程示意图;
图4是本申请处理器安全启动过程一实施例的流程示意图;
图5是本申请根密钥处理方法另一实施例的流程示意图;
图6是本申请根密钥处理方法再一实施例的部分流程示意图;
图7是本申请根密钥处理方法又再一实施例的部分流程示意图;
图8是本申请非易失性存储介质一实施例的结构示意图。
具体实施方式
下面结合说明书附图,对本申请实施例的方案进行详细说明。
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
为便于理解本申请方案,先对存储器中RPMB分区的具体功能及结构进行举例说明。
RPMB分区是如嵌入式多媒体卡(Embedded Multi Media Card,EMMC)等存储器设置的具有防回滚保护特性的分区,用于是存放一些核心敏感数据。用户在需要存储重要数据时候可以使用该分区,该分区可采用授权加密的机制保护数据。
在一实施例中,RPMB分区具有以下结构寄存器和存储单元:
第一寄存器:具体可为一个32Byte大小的寄存器。此寄存器是用来存储RPMB分区的根密钥(该根密钥可称为Authentication Key),例如该寄存器值为该根密钥。该寄存器只能写一次,而且是只能写入不能被该存储器以外器件读出;
第二寄存器:具体可为一个4Byte大小的寄存器,用于记录所有对RPMB分区成功执行的写操作次数(Write Counter)。该写操作次数用于处理器在每次对RPMB分区进行写操作时,将处理器向存储器读取的写操作次数值包含在写操作指令中,以使存储器的内部控制电路比较写操作指令包含的写操作次数值是否等于该第二寄存器记录的写操作次数,并在结果不匹配时拒绝本次写操作。此为RPMB分区防回滚攻击的重要机制,该写操作次数可实现防回滚,防止非授权装置将从前写入的数据重写到RPMB分区中;
数据存储单元:为RPMB分区真正的数据存储单元区。
请参阅图1,图1是本申请存储器与处理器组成的处理系统一实施例的结构示意图。本实施例中,处理系统10包括处理器110和存储器120。处理器110与存储器120通过物理总线(Physical Bus)等方式连接。
存储器120设置有如上述的RPMB分区,例如可为EMMC等内嵌式存储器。
处理器110具体可为安全芯片等系统级芯片(SOC),用于运行安全操作系统111和非安全操作系统112,其中,该安全操作系统111可以为在可信执行环境(TrustedExecution Environment,TEE)运行的操作系统,非安全操作系统112例如为Linux、Android等操作系统。具体地,该处理器110可以包括两个独立的电路以分别执行安全操作系统111和非安全操作系统112,或者采用同一电路执行上述两种操作系统。
本实施例中,基于安全性的考量及存储器120的硬件资源使用互斥管理的需求,存储器120的驱动程序会放在非安全操作系统112中执行。其结果就是安全操作系统111对于存储器120的RPMB分区的读写指令必须交由非安全操作系统112来调用存储器120的驱动程序执行。故安全操作系统111通过非安全操作系统112对存储器120进行读写操作,即安全操作系统111对存储器120的RPMB分区的写入数据需经由非安全操作系统112输入至存储器120中,从存储器120的RPMB分区读取的数据也需要经由非安全操作系统112反馈至安全操作系统111。
由于RPMB分区的根密钥是在处理器的安全操作系统111中生成再写入是存储器的设定区域中,如保存在上述的第一寄存器中。故,若在处理器110正常启动并运行两种操作系统后,其安全操作系统111生成的根密钥则需要通过非安全操作系统112写入至存储器120中。如此,该根密钥经过非安全操作系统112时容易被拦截,导致RPMB分区的根密钥泄漏。由此,本申请提出在处理器110尚未运行非安全操作系统112时,亦即在安全启动过程中,将RPMB分区的根密钥写入到存储器120中,如此,根密钥无需经过非安全操作系统112而直接从安全操作系统111写入至存储器120,避免了非安全操作系统112将RPMB分区的根密钥泄漏。另外,该安全操作系统也限定不可执行向非安全操作系统发送向存储器写入根密钥的指令,以杜绝出现非安全操作系统盗取根密钥这类攻击。
具体地,处理器110将根密钥写入以及后续读写操作的处理方式请参阅后面方法及装置实施例。
请参阅图2,图2是本申请存储器的RPMB分区的密钥处理方法一实施例的流程示意图。本实施例中,该方法由上述处理器110执行,包括以下步骤:
S210:处理器在上电后,检测RPMB分区的根密钥是否已写入所述存储器中。若已经写入,则结束流程,并可在后续需要对RPMB分区进行读写操作时执行图6/7所示的读写操作的相关步骤;若未写入,则执行S220。
其中,RPMB分区的根密钥用于校验RPMB分区的写入数据或读取数据是否被篡改,具体可如上面实施例所述。本S210所述的上电可以为处理器在出厂之前或者之后发生的。具体地,处理器在上电后即进行安全启动,并且,处理器在该安全启动过程中检测存储器中是否已经写入RPMB分区的根密钥。
S220:在处理器的安全启动过程中,将所述RPMB分区的根密钥写入所述存储器。其中,所述安全启动过程为所述处理器未启动非安全操作系统。
例如,处理器在上电进行安全启动时,利用存储器的标识如作为该存储器芯片独有的设备标识(CID)的序列号,生成根密钥,并将生成的根密钥写入至存储器的设定区域中。其中,所述设定区域只可写入一次,例如为上述RPMB分区的第一寄存器。由于该设定区域只可写入一次,故该处理器可在第一次上电时执行上述S210-S220,或者在执行完成S220之后发生的上电则不再执行上述S210-S220。
本实施例中,处理器在安全启动过程中写入RPMB分区的根密钥,由于在安全启动过程中,处理器尚未启动非安全操作系统,故在写入PRMB分区的根密钥过程中不会经过该非安全操作系统,从而避免在非安全操作系统中将存储器中RPMB分区的根密钥泄露的状况,进一步保证了RPMB分区的防回滚保护。
进一步地,若存储器从与一处理器连接使用一段时间之后,再更换到与另一处理器连接使用,则存在两个处理器均与同一存储器连接使用过的情况,此时,若直接由存储器的标识生成根密钥,则该两个处理器采用相同算法生成的根密钥是相同的,故其中一个处理器则可能在另一处理器运行的非安全操作系统中,信道拦截得到另一处理器的RPMB分区数据包。因此,若要保证每个处理器对应的RPMB分区的根密钥是唯一的,则可进一步提高RPMB分区的防回滚攻击。鉴于此,在另一实施例中,处理器可结合利用处理器的标识生成根密钥,以保证该根密钥的唯一性。具体请结合参阅图3,上述将所述RPMB分区的根密钥写入所述存储器之步骤S220包括以下子步骤:
S221:从所述存储器中读取所述存储器的标识,并将所述存储器的标识填充至设定长度,以及从所述处理器中读取所述处理器的标识。
该存储器的标识具体如作为该存储器芯片独有的CID的序列号,为便于后续运算,处理器使用该存储器的驱动从存储器中读取到之后,将该存储器的标识填充到设定长度,例如256bit。当然,在其他实施例中,处理器也可不执行上述填充,在此不作限定。
该处理器的标识可以但不限为在处理器出厂时写入到处理器的内部存储区的私有密钥,且在所述处理器出厂后不可改。例如,该处理器为安全芯片时,该处理器标识为硬件唯一密钥(HW unique key),这是安全芯片特有的特性,其长度一般为128bit。该硬件唯一密钥在安全芯片出厂时烧录到芯片内部的一次性可编程(One Time Programmable,OTP)存储区或者EFUSE存储器区域中,出厂后不可修改。其中,每颗安全芯片烧录的硬件唯一密钥各不相同,且烧录的密钥值严格保密或者不作记录,以保证出厂后非法者难以盗取该密钥。
该处理器的标识配置为只有该处理器在安全操作系统中可读取,以保证非安全操作系统无法访问得到该处理器的标识,从而避免非安全操作系统采用相同方式生成得到RPMB分区的根密钥。
S222:利用所述处理器的标识对所述存储器的标识进行加密或解密运算得到所述RPMB分区的根密钥。
例如,采用高级加密标准(Advanced Encryption Standard,AES)算法,具体如SHA256算法,将处理器的标识对填充后的存储器的标识进行加密或解密运算,得到一哈希值以作为RPMB分区的根密钥。
S223:将生成的根密钥写入至存储器的设定区域中。其中,所述设定区域只可写入一次。
本实施例利用处理器标识和存储器标识生成独一无二的根密钥,该根密钥只适用于该处理器和存储器的组合,故防止存储器或处理器更换后被盗取存储器的RPMB分区数据的情况发生。
可以理解的是,处理器也可以仅利用处理器标识生成RPMB分区的根密钥,当处理器仅利用存储器标识或者处理器标识生成RPMB分区的根密钥时,可以直接将该标识作为该根密钥或者对其进行设定运算得到根密钥。另外,上述生成根密钥的步骤也可不由处理器执行,而是由专门的硬件加密单元执行,但同理地,该处理器的标识配置为硬件加密单元只有在安全状态下才可访问处理器的标识,且非安全操作系统不可操作该安全状态下的硬件加密单元。
请参阅图4,图4是本申请处理器的安全启动过程一实施例的流程示意图。该安全启动过程包括:
S410:处理器初始化。
例如,从处理器芯片内部的只读存储器(ROM)加载安全启动代码,以开始进行安全启动,并且,处理器进行初始化。然后,处理器检测当前进行NAND闪存还是上述设有RPMB分区的存储器的启动,并对相应启动NAND闪存或存储器进行初始化。
S420:将设定安全密钥加载到SRAM中。
接上例,在完成上述初始化之后,从ROM中加载设定安全密钥到静态随机存储器(SRAM)中,并采用校验安全密钥对该设定安全密钥进行校验,若检验通过,则将该设定安全密钥保存在SRAM中。
S430:加载第一启动装载代码(First BootLoader)到所述SRAM中,并在利用所述设定安全密钥对所述第一启动装载代码验证通过后,执行所述SRAM中的所述第一启动装载代码。
为了保证SRAM中的代码未被篡改,利用该芯片内部的安全密钥对其验证,也即进行公钥签名,然后在执行SRAM中的代码。
S440:将动态随机存储器(DRAM)初始化。
S450:加载第二启动装载代码(Second BootLoader)到所述DRAM中,并在利用所述设定安全密钥对所述第二启动装载代码验证通过后,执行所述DRAM中的所述第二启动装载代码。
为了保证DRAM中的代码未被篡改,利用该芯片内部的安全密钥对其验证,也即进行公钥签名,然后在执行DRAM中的代码。由于处理器从上电至S450执行完成均被签名保护,故此过程都是安全的。
S460:加载并初始化安全操作系统的代码,以启动所述安全操作系统。
此时,该安全操作系统已被电路安全保护。在执行本S460之后,处理器再加载并执行非安全启动代码,以切换至运行非安全操作系统。
故在图2所示的S210、S220中,处理器可在启动非安全操作系统之前的S410-S460任意时刻执行上述根密钥是否写入的检测以及上述根密钥的写入。由于DRAM较大,故其初始化过程所需的处理资源较大,因此,处理器可在执行上述S440初始化DRAM之后(例如在S450执行第二启动装载代码过程中或之后),再执行根密钥的写入或者再执行根密钥是否写入的检测及根密钥的写入,以避免资源的抢占。
请参阅图5,图5本申请根密钥处理方法另一实施例的流程示意图。本实施例对写入密钥进行具体举例说明,该方法步骤可在如图4所示的S440-S450任意步骤中或之后执行,包括:
S510:检测当前进行NAND闪存还是上述存储器的启动。若为NAND的启动,则结束本次根密钥写入流程,若为上述设有RPMB分区的存储器,则执行S520。
S520:读取存储器的RPMB分区的根密钥的状态。
S530:判断RPMB分区的根密钥是否已被写入。
根据读取的根密钥状态判断RPMB分区的根密钥是否已被写入,若已经写入,则结束本次根密钥写入流程,若未写入,则执行S540。
S540:利用所述处理器的标识和所述存储器的标识生成所述RPMB分区的根密钥。
具体生成方式可参阅上述实施例的相关描述。
S550:将所述RPMB分区的根密钥写入所述存储器的上述第一寄存器中。
上述方法实施例具体描述了RPMB分区的根密钥的生成以及写入至存储器中的方式。而写入该RPMB分区的根密钥的作用就是为了校验RPMB分区的写入数据或读取数据是否被非法篡改。因此,为了实现上述校验,上述方法实施例生成RPMB分区的根密钥之后,处理器还将该根密钥保存在处理器的安全内存中。其中,该安全内存为非安全操作系统或不可访问的内存区域。该安全内存例如为用于存储在处理器进行安全启动阶段的代码的内存,又例如为用于存储安全操作系统内核的内存中。可以理解的是,该安全内存可设置在处理器内部,或者独立于处理器并与处理器连接。
请参阅图6,图6是本申请根密钥处理方法再一实施例的部分流程示意图。本实施例中,处理器完成写入RPMB分区的根密钥之后,还用于对RPMB分区进行写操作,其中,该写操作是由处理器运行的安全操作系统进行,且安全操作系统通过所述非安全操作系统进行该写操作。即,该处理方法除执行上述方法实施例步骤之外,还包括以下利用根密钥实现写操作的步骤:
S610:当所述处理器运行的安全操作系统确定进行写操作时,读取所述RPMB分区的写操作次数。
例如,处理器可从RPMB分区的上述第二寄存器中读取得到累计成功执行的对RPMB分区的写操作次数。
S620:利用保存在所述处理器的安全内存中的根密钥,对所述待写入数据、所述写操作次数进行加密计算得到第一哈希值。
如上述,RPMB的根密钥既写入到存储器,还保存在安全内存中。故在需要写操作时,处理器运行的安全操作系统从安全内存中读取其保存的根密钥,并利用该根密钥生成用于校验的第一哈希值。例如,使用读取的根密钥对待写入数据和读取到的写操作次数以及其他信息进行SHA256运算,生成256bit的第一哈希值。
S630:通过非安全操作系统将包含待写入数据、所述写操作次数和所述第一哈希值的写入指令发送至所述存储器。
其中,该写入指令可在安全操作系统生成并发送至非安全操作系统,或者该写入指令可由非安全操作系统根据安全操作系统发送的第一哈希值、待写入数据和写操作次数生成,非安全操作系统在接收到或生成该写入指令后,调用存储器的驱动以将该写入指令通过物理总线传输至存储器。
存储器的内部控制器采用如S620类似的运算方式,利用上述S220写入的根密钥对所述写入指令中的待写入数据、所述写操作次数进行加密计算得到第二哈希值,并在比较所述写入指令中的写操作次数与RPMB分区的当前写操作次数一致且所述写入指令中的第一哈希值和所述第二哈希值一致时,将所述待写入数据写入至所述RPMB分区中,并将RPMB分区的写操作次数加1记录。若写入指令中的写操作次数与RPMB分区的当前写操作次数不一致,或者写入指令中的第一哈希值与第二哈希值不一致,则拒绝此次写操作。
本实施例中,处理器与存储器之间实现了对RPMB分区的写操作校验,避免在待写入数据传输过程中被非法篡改。
请参阅图7,图7是本申请RPMB分区的根密钥处理方法又再一实施例的部分流程示意图。本实施例中,处理器完成写入RPMB分区的根密钥之后,还用于对RPMB分区进行读操作,其中,该读操作是由处理器运行的安全操作系统进行,且安全操作系统通过所述非安全操作系统进行该读操作。即,该处理方法除执行上述方法实施例步骤之外,还包括以下利用根密钥实现读操作的步骤:
S710:当所述处理器运行的安全操作系统确定进行读操作时,通过所述非安全操作系统向存储器发送读取指令。
例如,安全操作系统生成包含RPMB分区的地址的读取指令并发送至非安全操作系统。非安全操作系统调用存储器的驱动以向存储器存储该读取指令。
S720:通过所述非安全操作系统接收所述存储器响应所述读取指令而发送的读取信息。
例如,存储器的内部控制器从读取指令中解析得到器包含的地址,并从RPMB分区中读取该地址指向的数据,存储器利用上述S220写入的根密钥对读取的数据进行运算(如SHA256运算)得到第四哈希值利,由该读取的数据、第四哈希值以及包头等组成该读取信息。存储器将该读取信息通过其物理总线传输至非安全操作系统,并由非安全操作系统将该读取信息发送至安全操作系统中。
S730:利用保存在处理器的安全内存中的根密钥,对所述读取信息中的RPMB分区数据进行加密或解密运算得到第三哈希值。
如上述,RPMB的根密钥既写入到存储器,还保存在安全内存中。故在需要接收到RPMB分区的读取数据时,处理器运行的安全操作系统从安全内存中读取该根密钥,并采用如上S720类似的运算方式,使用该读取的根密钥和读取数据运算得到第三哈希值。
S740:在比较所述读取信息中的第四哈希值与所述第三哈希值一致时,对所述RPMB分区数据进行相应处理。
处理器运行的安全操作系统从读取信息中解析得到第四哈希值,并将该第四哈希值与S730计算得到的第三哈希值比较,若一致,则对该读取数据进行相应处理,否则丢弃该读取数据。
本实施例中,处理器与存储器之间实现了对RPMB分区的读操作校验,避免在待读取数据传输过程中被非法篡改。
本申请还提供一种处理电路的实施例,该处理电路如图1所示的处理器120,用于执行上述方法实施例。具体地,该处理电路可为一安全芯片。
请参阅图8,图8是本申请非易失性存储介质一实施例的结构示意图。该存储介质80存储有计算机程序81,计算机程序81被如上述处理器运行,用于执行上述方法实施例。在一具体实施例中,该非易失性存储介质可以为上述存储器,例如为EMMC,其中,该计算机程序81存储在该存储器出RPMB分区以外的其他存储区域。
上述方案中,处理器在安全启动过程中写入存储器中RPMB分区的根密钥,由于在安全启动过程中,处理器尚未启动非安全操作系统,故在写入PRMB分区的根密钥过程中不会经过该非安全操作系统,从而避免在非安全操作系统中将存储器中RPMB分区的根密钥泄露的状况,进一步保证了RPMB分区的防回滚保护。
以上描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施方式中也可以实现本申请。在其它情况中,省略对众所周知的装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
Claims (11)
1.一种根密钥处理方法,其特征在于,所述方法由与设有回滚保护存储块(ReplayProtected Memory Block,RPMB)分区的存储器连接的处理器执行,包括:
所述处理器在上电后,检测所述RPMB分区的根密钥是否已写入所述存储器中;其中,所述根密钥用于校验所述RPMB分区的写入数据或读取数据是否被篡改;
若否,则在所述处理器的安全启动过程中,将所述RPMB分区的根密钥写入所述存储器;其中,所述安全启动过程为所述处理器未启动非安全操作系统。
2.根据权利要求1所述的方法,其特征在于,所述将所述RPMB分区的根密钥写入所述存储器包括:
根据所述存储器的标识和所述处理器的标识中的至少一种生成所述RPMB分区的根密钥;
将所述RPMB分区的根密钥写入所述存储器的设定区域中,其中,所述设定区域只可写入一次。
3.根据权利要求2所述的方法,其特征在于,所述处理器的标识为在所述处理器出厂时写入到所述处理器的内部存储区的私有密钥,且在所述处理器出厂后不可改,以及限定非安全操作系统不可访问。
4.根据权利要求2所述的方法,其特征在于,所述根据所述存储器的标识和所述处理器的标识中的至少一种生成所述RPMB分区的根密钥,包括:
从所述存储器中读取所述存储器的标识,并将所述存储器的标识填充至设定长度,以及从所述处理器中读取所述处理器的标识;
利用所述处理器的标识对所述存储器的标识进行加密或解密运算得到所述RPMB分区的根密钥。
5.根据权利要求1所述的方法,其特征在于,所述在所述处理器的安全启动过程中,将所述RPMB分区的根密钥写入所述存储器,包括:
在完成所述处理器的安全启动过程的对DRAM初始化后,且在启动非安全操作系统之前,将所述RPMB分区的根密钥写入所述存储器。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述安全启动过程包括:
所述处理器初始化;
将设定安全密钥加载到SRAM中;
加载第一启动装载代码到所述SRAM中,并在利用所述设定安全密钥对所述第一启动装载代码验证通过后,执行所述SRAM中的所述第一启动装载代码;
将DRAM初始化;
加载第二启动装载代码到所述DRAM中,并在利用所述设定安全密钥对所述第二启动装载代码验证通过后,执行所述DRAM中的所述第二启动装载代码;
加载并初始化安全操作系统的代码,以启动所述安全操作系统。
7.根据权利要求1所述的方法,其特征在于,所述处理器在第一次上电时执行所述方法;
所述处理器为安全芯片,所述存储器为嵌入式多媒体卡EMMC。
8.根据权利要求1所述的方法,其特征在于,所述处理器用于运行安全操作系统和非安全操作系统,且所述安全操作系统通过所述非安全操作系统对所述存储器进行读写操作,所述方法还包括:
将所述RPMB分区的根密钥保存在所述处理器的安全内存中;
当所述处理器运行的安全操作系统确定进行写操作时,读取RPMB分区的写操作次数,并利用保存在所述安全内存中的根密钥,对所述待写入数据、所述写操作次数进行加密计算得到第一哈希值;并通过所述非安全操作系统将包含所述待写入数据、所述写操作次数和所述第一哈希值的写入指令发送至所述存储器,使得所述存储器在利用其写入的所述RPMB分区的根密钥对所述写入指令中的数据、所述写操作次数进行加密计算得到第二哈希值,并在比较所述写入指令中的写操作次数与RPMB分区的当前写操作次数一致且所述写入指令中的第一哈希值和所述第二哈希值一致时,将所述待写入数据写入至所述RPMB分区中;
当所述处理器运行的安全操作系统确定进行读操作时,通过所述非安全操作系统向存储器发送读取指令,以及通过所述非安全操作系统接收所述存储器响应所述读取指令而发送的读取信息,利用保存在所述安全内存中的根密钥,对所述读取信息中的RPMB分区数据进行加密或解密运算得到第三哈希值,并比较所述读取信息中的第四哈希值与所述第三哈希值一致时,对所述RPMB分区数据进行相应处理,其中,所述第四哈希值为所述存储器利用所述写入的根密钥对所述RPMB分区数据进行运算得到的。
9.一种对根密钥进行处理的处理电路,其特征在于,用于执行权利要求1至8任一项所述的方法。
10.一种对根密钥进行处理的处理系统,其特征在于,包括如权利要求9所述的处理电路以及与所述处理电路连接的存储器,其中,所述存储器设有回滚保护存储块RPMB分区,所述处理电路用于对所述RPMB分区的根密钥进行处理。
11.一种非易失性存储介质,其特征在于,存储有计算机程序,所述计算机程序被处理器运行,用于执行权利要求1至8任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711233015.2A CN108108631A (zh) | 2017-11-29 | 2017-11-29 | 一种根密钥处理方法及相关装置 |
TW107115648A TW201926110A (zh) | 2017-11-29 | 2018-05-09 | 根密鑰處理方法及相關裝置 |
US16/180,311 US11003781B2 (en) | 2017-11-29 | 2018-11-05 | Root key processing method and associated device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711233015.2A CN108108631A (zh) | 2017-11-29 | 2017-11-29 | 一种根密钥处理方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108108631A true CN108108631A (zh) | 2018-06-01 |
Family
ID=62207982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711233015.2A Pending CN108108631A (zh) | 2017-11-29 | 2017-11-29 | 一种根密钥处理方法及相关装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11003781B2 (zh) |
CN (1) | CN108108631A (zh) |
TW (1) | TW201926110A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111241005A (zh) * | 2020-01-09 | 2020-06-05 | 杭州涂鸦信息技术有限公司 | 一种基于键值对的安全分区存储方法及系统 |
CN112133356A (zh) * | 2020-09-11 | 2020-12-25 | 深圳市宏旺微电子有限公司 | eMMC中RPMB的功能测试方法、装置和计算机设备 |
CN112328265A (zh) * | 2020-09-29 | 2021-02-05 | 福建联迪商用设备有限公司 | 一种eMMC验证方法及智能POS |
CN112560121A (zh) * | 2020-12-08 | 2021-03-26 | 武汉新芯集成电路制造有限公司 | 单调计数器及其根密钥处理方法 |
CN114692124A (zh) * | 2022-04-18 | 2022-07-01 | 镁佳(北京)科技有限公司 | 一种数据读取、写入方法、装置和电子设备 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112154408A (zh) * | 2018-04-12 | 2020-12-29 | 美光科技公司 | 重放受保护存储器块命令队列 |
US11777712B2 (en) * | 2019-03-22 | 2023-10-03 | International Business Machines Corporation | Information management in a database |
CN110659036B (zh) * | 2019-08-26 | 2023-05-23 | 深圳市亿道数码技术有限公司 | 一种Windows系统中自动烧录谷歌key的方法及系统 |
CN110677242B (zh) * | 2019-08-28 | 2022-08-09 | RealMe重庆移动通信有限公司 | 秘钥处理方法、秘钥处理装置及终端设备 |
CN111444553A (zh) * | 2020-04-01 | 2020-07-24 | 中国人民解放军国防科技大学 | 支持tee扩展的安全存储实现方法及系统 |
US11444771B2 (en) * | 2020-09-08 | 2022-09-13 | Micron Technology, Inc. | Leveraging a trusted party third-party HSM and database to securely share a key |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160350550A1 (en) * | 2014-03-04 | 2016-12-01 | Antaios (Beijing) Information Technology Co., Ltd. | Data blackhole processing method |
CN106406939A (zh) * | 2016-09-05 | 2017-02-15 | 惠州Tcl移动通信有限公司 | 一种基于emmc芯片的移动终端防回滚方法及系统 |
CN106453196A (zh) * | 2015-08-04 | 2017-02-22 | 中国移动通信集团公司 | 一种针对可信执行环境的密钥写入装置、系统及方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US9117083B2 (en) | 2011-02-14 | 2015-08-25 | Blackberry Limited | Managing booting of secure devices with untrusted software |
US10061718B2 (en) | 2012-06-28 | 2018-08-28 | Microsoft Technology Licensing, Llc | Protecting secret state from memory attacks |
US20140250290A1 (en) | 2013-03-01 | 2014-09-04 | St-Ericsson Sa | Method for Software Anti-Rollback Recovery |
US9329992B2 (en) | 2013-12-04 | 2016-05-03 | Silicon Motion, Inc. | Data storage device and flash memory control method |
US9842212B2 (en) * | 2014-11-03 | 2017-12-12 | Rubicon Labs, Inc. | System and method for a renewable secure boot |
US10129035B2 (en) | 2015-08-10 | 2018-11-13 | Data I/O Corporation | Device birth certificate |
-
2017
- 2017-11-29 CN CN201711233015.2A patent/CN108108631A/zh active Pending
-
2018
- 2018-05-09 TW TW107115648A patent/TW201926110A/zh unknown
- 2018-11-05 US US16/180,311 patent/US11003781B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160350550A1 (en) * | 2014-03-04 | 2016-12-01 | Antaios (Beijing) Information Technology Co., Ltd. | Data blackhole processing method |
CN106453196A (zh) * | 2015-08-04 | 2017-02-22 | 中国移动通信集团公司 | 一种针对可信执行环境的密钥写入装置、系统及方法 |
CN106406939A (zh) * | 2016-09-05 | 2017-02-15 | 惠州Tcl移动通信有限公司 | 一种基于emmc芯片的移动终端防回滚方法及系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111241005A (zh) * | 2020-01-09 | 2020-06-05 | 杭州涂鸦信息技术有限公司 | 一种基于键值对的安全分区存储方法及系统 |
CN112133356A (zh) * | 2020-09-11 | 2020-12-25 | 深圳市宏旺微电子有限公司 | eMMC中RPMB的功能测试方法、装置和计算机设备 |
CN112328265A (zh) * | 2020-09-29 | 2021-02-05 | 福建联迪商用设备有限公司 | 一种eMMC验证方法及智能POS |
CN112560121A (zh) * | 2020-12-08 | 2021-03-26 | 武汉新芯集成电路制造有限公司 | 单调计数器及其根密钥处理方法 |
CN112560121B (zh) * | 2020-12-08 | 2024-01-19 | 武汉新芯集成电路制造有限公司 | 单调计数器及其根密钥处理方法 |
CN114692124A (zh) * | 2022-04-18 | 2022-07-01 | 镁佳(北京)科技有限公司 | 一种数据读取、写入方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US11003781B2 (en) | 2021-05-11 |
US20190163913A1 (en) | 2019-05-30 |
TW201926110A (zh) | 2019-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108108631A (zh) | 一种根密钥处理方法及相关装置 | |
US20170046281A1 (en) | Address dependent data encryption | |
TWI245182B (en) | Method, chipset, system and recording medium for responding to a sleep attack | |
US8572410B1 (en) | Virtualized protected storage | |
CN104156642B (zh) | 一种基于安全触控屏控制芯片的安全密码输入系统和方法 | |
CN101379537B (zh) | 安全处理装置、方法和程序 | |
US7461268B2 (en) | E-fuses for storing security version data | |
US8108691B2 (en) | Methods used in a secure memory card with life cycle phases | |
US8321686B2 (en) | Secure memory card with life cycle phases | |
US10536274B2 (en) | Cryptographic protection for trusted operating systems | |
US20060177064A1 (en) | Secure memory card with life cycle phases | |
TW200832427A (en) | Virtual secure on-chip one time programming | |
TW201633207A (zh) | 裝置金鑰保護 | |
KR100972540B1 (ko) | 라이프 사이클 단계들을 가진 보안 메모리 카드 | |
CN114785503B (zh) | 密码卡及其根密钥保护方法、计算机可读存储介质 | |
US11481523B2 (en) | Secure element | |
CN110659506A (zh) | 基于密钥刷新对存储器进行重放保护 | |
CN108475316B (zh) | 使数据安全 | |
CN101403985A (zh) | 一种对软件保护装置中的软件许可进行备份的方法 | |
US9218484B2 (en) | Control method and information processing apparatus | |
JP2021190081A (ja) | 機密データを保護することが可能な電子機器 | |
JP2004288179A (ja) | マイクロプロセッサシステム及びシステムにおけるモジュールの交換検出方法 | |
CN113343265B (zh) | 一种密钥配置方法、装置和相关设备 | |
CN111357003A (zh) | 预操作系统环境中的数据保护 | |
CN114816549B (zh) | 一种保护bootloader及其环境变量的方法及系统 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180601 |