CN116743357B - 密钥存储方法和装置 - Google Patents
密钥存储方法和装置 Download PDFInfo
- Publication number
- CN116743357B CN116743357B CN202211214242.1A CN202211214242A CN116743357B CN 116743357 B CN116743357 B CN 116743357B CN 202211214242 A CN202211214242 A CN 202211214242A CN 116743357 B CN116743357 B CN 116743357B
- Authority
- CN
- China
- Prior art keywords
- key
- terminal device
- data
- environment
- terminal equipment
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 81
- 238000013500 data storage Methods 0.000 claims description 57
- 230000015654 memory Effects 0.000 claims description 41
- 238000004590 computer program Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 abstract description 24
- 238000013175 transesophageal echocardiography Methods 0.000 description 88
- 238000012545 processing Methods 0.000 description 40
- 238000004891 communication Methods 0.000 description 26
- 238000005192 partition Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000007726 management method Methods 0.000 description 8
- 230000005236 sound signal Effects 0.000 description 8
- 230000004044 response Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000010295 mobile communication Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 239000000835 fiber Substances 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0877—Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/127—Trusted platform modules [TPM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例提供一种密钥存储方法和装置,涉及终端技术领域,包括:终端设备获取第一密钥;第一密钥为终端设备在第一环境生成的至少一个密钥;终端设备存储第一密钥;终端设备获取第二密钥;第二密钥为终端设备在第二环境生成的至少一个密钥;第一环境与第二环境不同;终端设备存储第二密钥;其中,第一密钥中的第i个密钥的密钥存储位置与第二密钥中的第i个密钥的密钥存储位置不同,i为正整数。这样,终端设备在存储第一密钥进而存储第二密钥的过程中,可以将第二密钥存储在与第一密钥不同的位置上,减少由于第一密钥以及第二密钥存储在相同的密钥存储位置时出现的密钥冲突,进而减少从磁盘中读取数据时由于密钥冲突带来的数据乱码情况。
Description
技术领域
本申请涉及终端技术领域,尤其涉及一种密钥存储方法和装置。
背景技术
随着终端技术的发展,终端设备在运行过程中会产生不同的数据,终端设备可以对不同的数据进行处理,例如,终端设备可以通过处理器处理数据,其中,处理器处理数据时的运行环境包括富执行环境(rich execution environment,REE)和可信执行环境(trusted execution environment,TEE),客户端应用程序(client application,CA)运行在REE中,可信应用程序(trusted application,TA)运行在TEE中。因此,终端设备获取数据后,可以在REE中处理数据,或者,终端设备可以通过CA调用TA,使得TA在TEE中处理数据。
通常情况下,在终端设备可以将TEE中获取的数据以及REE中的数据分别存储到磁盘的中。例如,终端设备可以在TEE(或REE)中生成第一数据对应的第一密钥,并将第一密钥以及加密后的第一数据存储到磁盘中;进一步的,终端设备也可以在REE(或TEE)中生成第二数据对应的第二密钥,并将第二密钥以及加密后的第二数据存储到磁盘中。
然而,当终端设备从磁盘中读取第二数据时,可能存在数据读取异常的情况。
发明内容
本申请实施例提供一种密钥存储方法和装置,在终端设备将第一环境中生成的第一密钥以及第二环境中生成的第二密钥存储到磁盘的过程中,终端设备可以将第一密钥以及第二密钥存储在磁盘的不同密钥存储位置上,减少由于第一密钥以及第二密钥存储在相同的密钥存储位置时出现的密钥冲突,进而减少从磁盘中读取数据时由于密钥冲突带来的数据乱码情况。
第一方面,本申请实施例提供一种密钥存储方法,方法包括:终端设备获取第一密钥;第一密钥为终端设备在第一环境中生成的至少一个密钥;终端设备存储第一密钥;终端设备获取第二密钥;第二密钥为终端设备在第二环境中生成的至少一个密钥;第一环境与第二环境不同;终端设备存储第二密钥;其中,第一密钥中的第i个密钥的密钥存储位置与第二密钥中的第i个密钥的密钥存储位置不同,i为正整数。这样,终端设备在存储第一密钥进而存储第二密钥的过程中,可以将第二密钥存储在与第一密钥不同的位置上,减少由于第一密钥以及第二密钥存储在相同的密钥存储位置时出现的密钥冲突,进而减少从磁盘中读取数据时由于密钥冲突带来的数据乱码情况。
其中,第一环境可以为本申请实施例中描述的TEE(或REE),第二环境可以为本申请实施例中描述的REE(或TEE)。
在一种可能的实现方式中,终端设备存储第二密钥,包括:终端设备根据第一密钥的密钥存储位置,确定第一空闲位置;其中,第一空闲位置为预设位置中除第一密钥的密钥存储位置以外的位置;终端设备在第一空闲位置中存储第二密钥。这样,终端设备可以通过确定第一空闲位置并将第二密钥存储为第一空闲位置,减少第一密钥与第二密钥存储在相同的密钥存储位置时出现的密钥冲突。
在一种可能的实现方式中,终端设备中还存储有第三密钥,第三密钥为终端设备在第二环境中生成的至少一个密钥;终端设备根据第一密钥的密钥存储位置,确定第一空闲位置,包括:终端设备根据第一密钥的密钥存储位置、以及第三密钥的密钥存储位置,确定第二空闲位置;其中,第二空闲位置为预设位置中除第一密钥的密钥存储位置以及第三密钥的存储位置以外的位置;终端设备在第一空闲位置中存储第二密钥,包括:终端设备在第二空闲位置中存储第二密钥。这样,当终端设备存储有多个密钥时,终端设备也可以优先确定出未存储密钥的第二空闲位置,并在第二空闲位置中存储第二密钥。
在一种可能的实现方式中,终端设备存储第二密钥,包括:终端设备根据第一密钥中的第一起始密钥的密钥存储位置、以及第一密钥中密钥的个数,确定第二密钥中的第二起始密钥的密钥存储位置;终端设备在第二起始密钥的密钥存储位置依次存储第二密钥。这样,终端设备不仅可以实现将密钥存储在不同的位置,还可以实现对于密钥的依次存储,提高读取数据时密钥查询的效率。
在一种可能的实现方式中,终端设备中包括第一状态信息,第一状态信息中包括:第一密钥的密钥存储位置、以及第一密钥中密钥的个数信息,终端设备根据第一密钥中的第一起始密钥的密钥存储位置、以及第一密钥中密钥的个数,确定第二密钥中的第二起始密钥的密钥存储位置之前,方法还包括:终端设备从第一状态信息中获取第一密钥中的第一起始密钥的密钥存储位置、以及第一密钥中密钥的个数。这样,终端设备可以通过缓存的第一状态信息,确定密钥存储位置,保证第二密钥以及第一密钥存储为不同的密钥存储位置。
在一种可能的实现方式中,终端设备存储第二密钥,包括:终端设备在第一预设位置中存储第二密钥;其中,终端设备中设置有预设位置,预设位置包括第一预设位置以及第二预设位置,第一预设位置用于存储从第二环境中生成的密钥,第二预设位置用于存储从第一环境中生成的密钥;第一预设位置与第二预设位置不同。这样,使得终端设备可以通过设置位置不同的第一预设位置以及第二预设位置,使得在不同环境中生成的第一密钥以及第二密钥存储在不同位置上,减少第一密钥与第二密钥在存储过程中的冲突。
在一种可能的实现方式中,当第一环境为可信执行环境时,第一预设位置的个数为2N+1,2N+1+M小于或等于Q,其中M为第二预设位置的个数,N为与第一密钥相关的用户个数,Q为预设位置的个数。这样,使得第一预设位置可以满足第一环境中生成的密钥的存储,减少由于预设位置不够时导致第一密钥与第二密钥发生冲突。
在一种可能的实现方式中,终端设备中包括存储在第二环境中的第二状态信息,第二状态信息中包括下述一种或多种:密钥存储位置信息、密钥的个数信息、密钥的类型信息、生成密钥时对应的用户信息、用户的类型、或密钥的使用情况,方法还包括:终端设备获取第二密钥对应的第三状态信息;终端设备获取第二密钥,包括:当终端设备确定第二状态信息中不存在第三状态信息时,终端设备获取第二密钥。这样,使得终端设备可以根据第二状态信息以及第二密钥对应的第三状态信息,确定是否存在与第二密钥相同的密钥,避免相同密钥的重复存储。
在一种可能的实现方式中,方法还包括:当终端设备确定第二状态信息中存在第三状态信息时,终端设备停止生成第二密钥。
在一种可能的实现方式中,方法还包括:终端设备利用第二密钥对目标数据进行加密,得到加密后的目标数据;终端设备存储加密后的目标数据。这样,使得终端设备可以利用第二密钥对数据进行加密,实现数据的加密存储。
在一种可能的实现方式中,方法还包括:当终端设备接收到用于获取目标数据的指令时,终端设备获取第二密钥以及加密后的目标数据;终端设备利用第二密钥对加密后的目标数据进行解密,得到目标数据。这样,使得终端设备可以利用第二密钥对数据进行解密,减少读取数据时由于密钥存储在相同位置时导致的数据乱码情况。
第二方面,本申请实施例提供一种密钥存储装置,获取单元,用于获取第一密钥;第一密钥为终端设备在第一环境中生成的至少一个密钥;处理单元,用于存储第一密钥;获取单元,用于获取第二密钥;第二密钥为终端设备在第二环境中生成的至少一个密钥;第一环境与第二环境不同;处理单元,用于存储第二密钥;其中,第一密钥中的第i个密钥的密钥存储位置与第二密钥中的第i个密钥的密钥存储位置不同,i为正整数。
在一种可能的实现方式中,处理单元,用于根据第一密钥的密钥存储位置,确定第一空闲位置;其中,第一空闲位置为预设位置中除第一密钥的密钥存储位置以外的位置;处理单元,用于在第一空闲位置中存储第二密钥。
在一种可能的实现方式中,终端设备中还存储有第三密钥,第三密钥为终端设备在第二环境中生成的至少一个密钥;处理单元,用于根据第一密钥的密钥存储位置、以及第三密钥的密钥存储位置,确定第二空闲位置;其中,第二空闲位置为预设位置中除第一密钥的密钥存储位置以及第三密钥的存储位置以外的位置;处理单元,用于在第二空闲位置中存储第二密钥。
在一种可能的实现方式中,处理单元,用于根据第一密钥中的第一起始密钥的密钥存储位置、以及第一密钥中密钥的个数,确定第二密钥中的第二起始密钥的密钥存储位置;处理单元,用于在第二起始密钥的密钥存储位置依次存储第二密钥。
在一种可能的实现方式中,终端设备中包括第一状态信息,第一状态信息中包括:第一密钥的密钥存储位置、以及第一密钥中密钥的个数信息,处理单元,用于从第一状态信息中获取第一密钥中的第一起始密钥的密钥存储位置、以及第一密钥中密钥的个数。
在一种可能的实现方式中,处理单元,用于在第一预设位置中存储第二密钥;其中,终端设备中设置有预设位置,预设位置包括第一预设位置以及第二预设位置,第一预设位置用于存储从第二环境中生成的密钥,第二预设位置用于存储从第一环境中生成的密钥;第一预设位置与第二预设位置不同。
在一种可能的实现方式中,当第一环境为可信执行环境时,第一预设位置的个数为2N+1,2N+1+M小于或等于Q,其中M为第二预设位置的个数,N为生成第一密钥时的用户个数,Q为预设位置的个数。
在一种可能的实现方式中,终端设备中包括存储在第二环境中的第二状态信息,第二状态信息中包括下述一种或多种:密钥存储位置信息、密钥的个数信息、密钥的类型信息、生成密钥时对应的用户信息、用户的类型、或密钥的使用情况,获取单元,用于获取第二密钥对应的第三状态信息;当终端设备确定第二状态信息中不存在第三状态信息时,获取单元,用于获取第二密钥。
在一种可能的实现方式中,当终端设备确定第二状态信息中存在第三状态信息时,处理单元,用于停止生成第二密钥。
在一种可能的实现方式中,处理单元,用于利用第二密钥对目标数据进行加密,得到加密后的目标数据;处理单元,还用于存储加密后的目标数据。
在一种可能的实现方式中,当终端设备接收到用于获取目标数据的指令时,获取单元,用于获取第二密钥以及加密后的目标数据;处理单元,用于利用第二密钥对加密后的目标数据进行解密,得到目标数据。
第三方面,本申请实施例提供一种终端设备,包括处理器和存储器,存储器用于存储代码指令;处理器用于运行代码指令,使得终端设备执行如第一方面或第一方面的任一种实现方式中描述的密钥存储方法。
第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质存储有指令,当指令被执行时,使得计算机执行如第一方面或第一方面的任一种实现方式中描述的密钥存储方法。
第五方面,一种计算机程序产品,包括计算机程序,当计算机程序被运行时,使得计算机执行如第一方面或第一方面的任一种实现方式中描述的密钥存储方法。
应当理解的是,本申请的第二方面至第五方面与本申请的第一方面的技术方案相对应,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
附图说明
图1为本申请实施例提供的一种架构示意图;
图2为本申请实施例提供的一种终端设备的硬件结构示意图;
图3为本申请实施例提供的另一种架构示意图;
图4为本申请实施例提供的一种密钥存储方法的流程示意图;
图5为本申请实施例提供的一种密钥存储的原理示意图;
图6为本申请实施例提供的一种密钥存储的原理示意图;
图7为本申请实施例提供的另一种密钥存储方法的流程示意图;
图8为本申请实施例提供的再一种密钥存储方法的流程示意图;
图9为本申请实施例提供的一种密钥存储装置的结构示意图;
图10为本申请实施例提供的另一种终端设备的硬件结构示意图。
具体实施方式
为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一值和第二值仅仅是为了区分不同的值,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a和b,a和c,b和c,或a、b和c,其中a,b,c可以是单个,也可以是多个。
在终端设备将数据存储到磁盘的场景中,终端设备可以派生用于对数据进行加密的密钥,并将密钥以及基于密钥加密后的数据均存储到磁盘中,保证数据存储的安全性。进一步的,当终端设备需要读取数据时,则可以基于磁盘中存储的密钥,对加密后的数据进行解密,实现数据的正常读取。
示例性的,图1为本申请实施例提供的一种架构示意图。在图1对应的实施例中,以存储数据的磁盘为通用闪存存储器(univeral flash storage,UFS)为例进行示例说明,该示例并不构成对本申请实施例的限定。
如图1所示,该架构中可以涉及:REE、TEE以及UFS控制器中的加密引擎。其中,该加密引擎用于存储密钥,该加密引擎中可以包括:用于存储密钥的多个密钥存储位置(或简称位置),该密钥存储位置也可以称为槽(slot)。通常情况下,该UFS中可以包括32个密钥存储位置,如图1中描述的位置0-位置31。可能的实现方式中,该密钥存储位置的数量也可以为64或其他数值,本申请实施例中对此不做限定。
示例性的,当终端设备接收到用户开机或者重启的操作时,终端设备可以提示用户输入锁屏密码或者个人身份识别码(personal identification number,PIN)等目标密码;在终端设备接收到用户输入目标密码的操作时,终端设备可以在REE中获取该目标密码,并通过CA对该目标密码进行处理并发送至TEE;TEE中的TA生成用于加密该目标密码的密钥,并利用密钥对该目标密码进行加密;进而,TEE可以将该目标密码对应的密钥存储到UFS控制器的加密引擎中、以及将加密后的目标密码缓存到UFS的分区中。
当终端设备内存中的文件数据较多时,终端设备可以通过交换(swap)方式,将内存中的部分目标文件数据存储到UFS的分区中。例如终端设备可以在REE中获取该目标文件数据,并生成目标文件数据对应的密钥;进而,REE可以将该目标文件数据对应的密钥存储到UFS控制器的加密引擎中、以及将加密后的目标文件数据存储到UFS的分区中。
通常情况下,在TEE将该目标密码对应的密钥存储到UFS控制器的加密引擎的过程中,TEE可以将该目标密码对应的密钥从加密引擎的位置0处开始存储。如图1所示,当该目标密码对应的密钥的数量为4时,则终端设备可以将该4个密钥依次存储在位置0-位置3中。
然而,在REE将该目标文件数据对应的密钥存储到UFS控制器的加密引擎的过程中,由于REE只能确定基于REE生成的密钥在加密引擎中的密钥存储位置,而无法确定基于TEE生成的密钥在加密引擎中的密钥存储位置。因此,当REE确定此时加密引擎中不存在基于REE生成的任一密钥时,则可以将目标文件数据对应的密钥从位置0处进行存储,例如该目标文件数据对应的密钥存储在位置0处。此时,加密引擎中可以出现由REE管理的目标文件数据对应的密钥,覆盖了由TEE管理的目标密码对应的密钥的情况。
进一步的,当终端设备从磁盘中读取目标密码(或目标文件数据)时,目标密码(或目标文件数据)对应的密钥存储位置中存储的密钥与存入到密钥存储位置的密钥不同,导致终端设备读取目标密码(或目标文件数据)发生异常,使得设备进入恢复模式(recovery)。例如,终端设备可以读取到的目标密码(或目标文件数据)存在乱码、文件格式损坏等情况。
有鉴于此,本申请实施例提供一种密钥存储方法,在终端设备将第一环境中生成的第一密钥以及第二环境中生成的第二密钥存储到磁盘的过程中,终端设备可以将第一密钥以及第二密钥存储在磁盘的不同密钥存储位置上,减少由于第一密钥以及第二密钥存储在相同的密钥存储位置时出现的密钥冲突,进而减少从磁盘中读取数据时由于密钥冲突带来的数据乱码情况。
其中,当第一环境为REE时,第二环境可以为TEE;或者,当第一环境为TEE时,第二环境可以为REE。
可以理解的是,上述终端设备也可以称为终端,(terminal)、用户设备(userequipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)等。终端设备可以为手机(mobile phone)、智能电视、穿戴式设备、平板电脑(Pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self-driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等等。本申请的实施例对终端设备所采用的具体技术和具体设备形态不做限定。
因此,为了能够更好地理解本申请实施例,下面对本申请实施例的终端设备的结构进行介绍。示例性的,图2为本申请实施例提供的一种终端设备的结构示意图。
终端设备可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,指示器192,摄像头193,以及显示屏194等。
可以理解的是,本申请实施例示意的结构并不构成对终端设备的具体限定。在本申请另一些实施例中,终端设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。处理器110中还可以设置存储器,用于存储指令和数据。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为终端设备充电,也可以用于终端设备与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他终端设备,例如AR设备等。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。电源管理模块141用于连接充电管理模块140与处理器110。
终端设备的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。终端设备中的天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。
移动通信模块150可以提供应用在终端设备上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。
无线通信模块160可以提供应用在终端设备上的包括无线局域网(wirelesslocalarea networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequencymodulation,FM)等无线通信的解决方案。
终端设备通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。在一些实施例中,终端设备可以包括1个或N个显示屏194,N为大于1的正整数。
终端设备可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
摄像头193用于捕获静态图像或视频。在一些实施例中,终端设备可以包括1个或N个摄像头193,N为大于1的正整数。本申请实施例中,摄像头193可以基于芯片平台发送的指令采集N个图像帧。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端设备的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。本申请实施例中,该外部存储器可以包括UFS等,该UFS用于存储本申请实施例中描述的第一密钥以及第二密钥。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。
终端设备可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。终端设备可以通过扬声器170A收听音乐,或收听免提通话。受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当终端设备接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。耳机接口170D用于连接有线耳机。
麦克风(microphone,MIC)170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。本申请实施例中,终端设备可以基于麦克风170C接收声音信号,并将声音信号转换为可以进行后续处理的电信号,该终端设备可以拥有至少两个麦克风170C。
本申请实施例中,麦克风170C可以获取以终端设备为中心的360°范围内的音频信号。
传感器模块180可以包括下述一种或多种传感器,例如:压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器,或骨传导传感器等(图2中未示出)。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。终端设备可以接收按键输入,产生与终端设备的用户设置以及功能控制有关的键信号输入。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
终端设备的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构等,在此不再赘述。
示例性的,图3为本申请实施例提供的另一种架构示意图。如图3所示,该架构中可以涉及:REE、TEE、以及UFS管理模块。
REE中可以包括:分块处理模块、文件加密模块、数据存储模块以及CA。分块处理模块用于将数据处理为多个块(block)进行处理,由于数据是以block形式写入UFS中的,因此可以对REE获取的数据进行分块处理。其中,该block可以理解为最小寻址单元。文件加密模块用于生成密钥以及与该密钥相关的状态信息,并基于密钥对REE获取的数据进行加密处理。REE中的数据存储模块用于存储与密钥相关的状态信息,该REE中的与密钥相关的状态信息可以理解为在REE环境中生成的、且已经存储到UFS中的密钥所对应的状态信息。其中,该状态信息的具体内容可以参见S401所示的步骤中第一状态信息的描述,在此不再赘述。
可以理解的是,在对除文件数据以外的其他类型数据进行存储的场景中,该REE中还可以包括用于对其他类型数据进行处理的其他功能模块,本申请实施例中对此不做限定。
TEE中可以包括:TA以及数据存储模块。TEE中的数据存储模块用于与该密钥相关的状态信息,该TEE中的与密钥相关的状态信息可以理解为在TEE环境中生成的、且已经存储到UFS中的密钥所对应的状态信息。
其中,REE的数据存储模块以及TEE的数据存储模块均可以理解为共享内存,该共享内存使得TEE或REE可以实现数据的随时查询。例如,REE可以查询TEE的数据存储模块中的数据,并且TEE也可以查询REE的数据存储模块中的数据。
UFS管理模块中可以包括:UFS控制器以及UFS数据存储模块,该UFS控制器中可以包括加密引擎。加密引擎中可以设置多个用于存储密钥的位置,且位置的数量可以与UFS的硬件类型相关。UFS数据存储模块中可以设置多个分区(如分区1以及分区2等),该多个分区用于存储不同类型的加密后的数据。
如图3所示,当REE获取到目标密码时,可以通过CA对该目标密码进行处理,并将处理后的目标密码发送至TA;TA可以生成该目标密码对应的密钥、以及与密钥相关的状态信息;TA将该目标密码对应的密钥发送至加密引擎中,且TA将加密后的目标密码发送至UFS数据存储模块的分区2中;进一步的,TA将目标密码对应的状态信息存储到TEE中的数据存储模块。
如图3所示,当REE获取到目标文件数据时,可以通过分块处理模块对目标文件数据进行分块处理,得到多个block;文件加密模块生成目标文件数据对应的密钥,以及与密钥相关的状态信息等数据;REE将该目标文件数据对应的密钥发送至加密引擎中,且将加密后的目标文件数据按照block分块发送至UFS数据存储模块的分区1中。
可能的实现方式中,当REE确定该目标文件数据需要存储到多个分区时,则REE需要生成该目标文件数据对应的多个密钥,并利用任一密钥对,相应的文件数据进行加密,并存储到相应的分区中,本申请实施例中对REE环境下生成密钥的个数不做限定。
可以理解的是,REE、TEE以及UFS管理模块中均可以包括其他模块,本申请实施例中对此不做限定。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以独立实现,也可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
示例性的,图4为本申请实施例提供的一种密钥存储方法的流程示意图。如图4所示,该密钥存储方法可以包括如下步骤:
S401、终端设备获取第一数据,并生成第一数据对应的第一密钥。
本申请实施例中,该第一数据可以为在REE中处理的数据或者该第一数据也可以为在TEE中处理的数据。并且,当该第一数据为在REE中处理的数据时,该第一密钥可以为在REE中生成的密钥,第一环境可以为REE;或者,当该第一数据为在TEE中处理的数据时,第一密钥也可以为在TEE中生成的密钥,第一环境可以为TEE。其中,第一密钥中可以包括至少一个密钥,或也可以理解为第一密钥的数量可以为1,也可以为2或3等数值。
示例性的,以第一数据为在TEE中处理的目标密码、且第一密钥为目标密码对应的密钥为例进行示例说明。例如,终端设备可以在REE中通过CA获取目标密码,利用CA对该目标密码进行处理,并将处理后的目标密码发送至TA;TA利用UFS的在线加密功能(或简称为UFS-inline功能)等,生成该目标密码对应的密钥,获取该目标密码对应的状态信息(或也可以称为第一状态信息),并利用目标密码对应的密钥对TA接收到的处理后的目标密码进行加密处理,得到加密后的目标密码。
其中,该第一状态信息可以包括下述一种或多种:密钥存储位置、密钥类型信息、用户ID信息、用户类型信息、或用于指示密钥使用情况的信息等。
可能的实现方式中,当终端设备根据REE的数据存储模块中存储的状态信息、以及TEE的数据存储模块中存储的状态信息,确定UFS中未存储任一密钥时,终端设备可以基于S401-S402所示的步骤直接对第一密钥进行存储。或者,当终端设备确定UFS中已经存储过其他密钥时,第一设备也可以基于S403-S404所示的步骤中对第二密钥进行存储的密钥存储方法,对第一密钥进行存储,在此不再赘述。
S402、终端设备将第一密钥存储在UFS中。
示例性的,终端设备可以将第一密钥存储在UFS控制器的加密引擎中,例如在加密引擎中没有密钥的情况下,终端设备可以将该第一密钥从位置0处开始进行存储。并且,终端设备可以将加密后的第一数据存储在UFS数据存储模块中。其中,终端设备可以在将第一密钥存储在UFS中之前,从TEE对应的数据存储模块和/或REE对应的数据存储模块中查询UFS中各密钥的密钥存储位置,并在确定未查询到UFS中存在密钥的情况下,将第一密钥从位置0处开始进行存储。
可能的实现方式中,终端设备可以在执行S402之后将生成的第一状态信息存储到TEE的数据存储模块中。
可能的实现方式中,终端设备也可以按照数组的形式存储第一状态信息,且任一数组可以对应于一个密钥存储位置。例如序号为1的数组(或称数组1)可以对应于密钥存储位置1,且数组1=[密钥类型信息,用户ID信息,用户类型信息,用于指示密钥使用情况的信息]。
其中,密钥存储位置用于指示密钥在加密引擎中的存储位置;密钥类型信息可以包括下述一种或多种:系统对应的设备加密(device encrypted,DE)、DE、或凭证加密(credential encrypted,CE)等;用户类型信息可以包括下述一种或多种:主用户、子用户、访客或维修模式下对应的用户等;用于指示密钥使用情况的信息可以包括下述一种或多种:用于指示密钥未被使用的信息(UFS_KEY_NOT_USED)、用于指示密钥已被使用的信息(UFS_KEY_USED)、或用于指示密钥已经删除的信息(UFS_KEY_NOT_USED)。
通常情况下,目标密码对应的密钥中可以包括:1个系统对应的DE,当存在1个用户的情况下,目标密码对应的密钥中可以包括:1个系统对应的DE、1个DE以及1个CE。当存在2个用户的情况下,目标密码对应的密钥中可以包括:1个系统对应的DE、2个DE以及2个CE。可以理解的是,当存在N个用户的情况下,目标密码对应的密钥中可以包括:1个系统对应的DE、N个DE以及N个CE,共2N+1个密钥。
S403、终端设备获取第二数据,并生成第二数据对应的第二密钥。
本申请实施例中,第二密钥中可以包括至少一个密钥。当该第一数据为在REE中处理的数据时,第二数据可以为在TEE中处理的数据;或者,当该第一数据为在TEE中处理的数据时,第二数据可以为在REE中处理的数据。生成第一密钥的环境与生成第二密钥的环境不同,例如当第一密钥为在REE中生成的密钥,则第二密钥可以为在TEE中生成的密钥;或者,当第一密钥为在TEE中生成的密钥,则第二密钥可以为在REE中生成的密钥。
示例性的,以第二数据为在REE中处理的目标文件数据、且第二密钥为目标文件数据对应的密钥为例进行示例说明。例如,终端设备可以在REE中获取目标文件数据,终端设备可以利用REE中的分块处理模块对目标文件数据进行分块处理;文件加密模块基于UFS-inline功能生成目标文件数据对应的密钥,获取该目标文件数据对应的状态信息(或也可以称为第三状态信息),并基于该目标文件数据对应的密钥对目标文件数据进行加密处理,得到加密后的目标文件数据。
S404、终端设备将第二密钥存储在UFS中。
其中,第一密钥中的第i个密钥的密钥存储位置与第二密钥中的第i个密钥的密钥存储位置不同,i为正整数。
可能的实现方式中,终端设备可以在执行S404之后将第三状态信息存储在REE的数据存储模块中,且第三状态信息中包括的内容可以与第一状态信息中包括的内容相同,在此不再赘述。
本申请实施例中,终端设备可以根据第一密钥在UFS中的密钥存储位置,对第二密钥进行存储(参见方法一对应的描述);或者,终端设备可以根据预设的密钥存储位置对第二密钥进行存储(参见方法二对应的描述)。
方法一、终端设备可以根据第一密钥在UFS中的密钥存储位置,对第二密钥进行存储。
示例性的,以第二数据为在REE中处理的目标文件数据、且第二密钥为目标文件数据对应的密钥为例进行示例说明。具体的,终端设备可以在将目标文件数据存储在UFS中之前,生成目标文件数据对应的第三状态信息,并在REE的数据存储模块中查询是否存在与第三状态信息相同的状态信息。当终端设备确定存在与第三状态信息相同的状态信息时,则终端设备不需要再将第二密钥写入到UFS中;或者,当确定不存在与第三状态信息相同的状态信息时,则终端设备可以向TEE中的数据存储模块发送用于查询请求,该查询请求用于查询TEE的数据存储模块中存储的任一密钥的状态信息。例如,当该TEE的数据存储模块中包括第一状态信息时,则终端设备可以根据第一状态信息中指示的密钥存储位置,对第二密钥进行存储。其中,不需要再将第二密钥写入到UFS中可以理解为终端设备可以直接利用已经存储的第二密钥对数据进行加密。
可以理解的是,在将REE中生成的第二密钥存储到UFS之前,终端设备可以优先查询REE(或也可以理解为当前环境)的数据存储模块中任一密钥的状态信息;在确定REE中存在与第三状态信息相同的状态信息时,则可以不用继续查询TEE中任一密钥的状态信息。或者,在确定REE中不存在与第三状态信息相同的状态信息时,可以继续查询TEE的数据存储模块中任一密钥的状态信息。
其中,本申请实施例示出了查询任一密钥的状态信息的代码,该代码的内容可以包括:
Struct ufs_key_status{
Uint32 keyclass_file;
Uint32 userid;
Uint32 status;
Uint8 key_value[KEY_LEN];
}
Struct ufs_key_status g_ufs_iv_store[slot];
在上述代码中,keyclass_file用于指示密钥类型信息;userid用于指示用户ID信息;status用于指示用户类型信息;key_value[KEY_LEN]用于指示密钥使用情况的信息;
ufs_key_status g_ufs_iv_store[slot]用于指示密钥在UFS存储的位置。可能的实现方式中,终端设备也可利用代码中指示的一种或多种信息进行查询,本申请实施例中对此不做限定。
示例性的,图5为本申请实施例提供的一种密钥存储的原理示意图。
如图5中的a所示,当TEE的数据存储模块中存储的第一状态信息,指示TEE中生成的第一密钥位于位置0-位置2时,则REE可以将该第二密钥从位置3处开始存储。
例如,REE可以根据第一密钥中的起始密钥(或称为第一起始密钥)的密钥存储位置,以及第一密钥的个数,确定第二密钥中的起始密钥(或称为第二起始密钥)的密钥存储位置,例如当确定第一密钥中的起始密钥位于位置0、且第一密钥的个数为3个时,REE可以将第二密钥中的起始密钥从位置3处依次开始存储。或者,REE也可以将第二密钥存储到位置6-位置31中的任一位置。
或者,REE也可以根据第一密钥的密钥存储位置确定空闲位置(或称为第一空闲位置),并在将第二密钥存储到空闲位置。如图5中的a所示,当REE确定空闲位置为位置3-位置31时,REE可以将第二密钥存储到位置3或者位置3-位置31中的任一位置。
可能的实现方式中,如图5中的b所示,当终端设备基于REE的数据存储模块,确定存在与第三状态信息不同的A密钥的状态信息,A密钥位于位置0-位置3,且基于TEE的数据存储模块,确定第一密钥位于位置4-位置5时,则REE可以将第二密钥从位置6处开始存储。其中,该A密钥的状态信息也可以理解为第二状态信息,该B密钥可以理解为第三密钥。
可能的实现方式中,如图5中的c所示,当终端设备基于REE的数据存储模块,确定存在与第三状态信息不同的B密钥的状态信息,B密钥位于位置0-位置1,且基于TEE的数据存储模块,确定第一密钥位于位置4-位置5时,则REE可以确定空闲位置,并将第二密钥存储到空闲位置(或称第二空闲位置)。例如,该空闲位置可以为位置2、位置3以及位置6到位置31。则REE可以将第二密钥存储到位置2、位置3以及位置6到位置31中的任一位置,如将第二密钥存储到位置2。其中,该B密钥的状态信息也可以理解为第二状态信息,该B密钥可以理解为第三密钥。
可以理解的是,在对第二密钥进行存储时,可以通过REE中存储的任一密钥的状态信息以及TEE中存储的任一密钥的状态的信息的查询,减少将不同的密钥存储在同一个UFS的密钥存储位置的概率,进而减少从磁盘中读取数据时由于密钥冲突所带来的数据乱码。
方法二、终端设备可以根据预设的密钥存储位置对第二密钥进行存储。
本申请实施例中,该预设的密钥存储位置(或称为预设位置)中可以包括:M个REE密钥存储位置(或理解为第二预设位置)、以及2N+1个TEE密钥存储位置(或理解为第一预设位置)。其中,N可以为用户数量,M可以为REE可以占用的最多位置的数量。当UFS中包括32个密钥存储位置时,终端设备可以保证2N+M+1≤32。
示例性的,以第二数据(或理解为目标数据)为在REE中处理的目标文件数据、且第二密钥为目标文件数据对应的密钥为例进行示例说明。具体的,终端设备可以在将目标文件数据存储在UFS之前,生成目标文件数据对应的第三状态信息,并在REE的数据存储模块中查询是否存在与第三状态信息相同的状态信息。例如,当确定存在于第三状态信息相同的状态信息时,则不需要再将第二密钥写入到UFS中;或者,当确定不存在与第三状态信息相同的状态信息时,则可以根据M个REE密钥存储位置对第二密钥进行存储。
其中,终端设备在REE的数据存储模块中查询任一密钥的状态信息的过程中,终端设备可以按照密钥存储位置的从位置0到位置31的顺序,依次对每个位置处可能存储的状态信息进行查询。
示例性的,图6为本申请实施例提供的另一种密钥存储的原理示意图。如图6所示,终端设备可以将UFS中的位置0-位置M-1共M个位置设置为REE密钥存储位置,并将位置M-位置31中的2N+1个位置设置为TEE密钥存储位置。
当终端设备基于REE的数据存储模块中任一密钥的状态信息,确定REE密钥存储位置中不存在密钥时,则可以将第二密钥从位置0处开始存储;或者,当终端设备基于REE的数据存储模块中任一密钥的状态信息,确定REE密钥存储位置中存在密钥,且密钥存储于位置0-位置1时,则可以将第二密钥从REE密钥存储位置中的位置2处开始存储。可以理解的是,在此场景中,数据存储模块中的任一密钥的状态信息中还可以包括:用于指示当前环境中预设的密钥存储位置的信息。
可以理解的是,终端设备可以通过预设的密钥存储位置的设定,减少不同环境中生成的不同的密钥存储在同一个UFS的密钥存储位置的概率,进而减少从磁盘中读取数据时由于密钥冲突所带来的数据乱码。并且,相比于方法一,终端设备可以减少从两个环境中查询密钥的状态信息的步骤,提高密钥存储方法的运行效率。
可能的实现方式中,终端设备在将第二密钥存储在UFS加密引擎中的同时,也可以将加密后的第二数据存储在UFS数据存储模块中。
进一步的,当终端设备读取第二数据时,则可以从加密引擎中获取第二密钥以及从UFS数据存储模块中获取加密后的第二数据,并利用第二密钥对加密后的第二数据进行解密,使得终端设备可以实现磁盘数据的正常读取。
可能的实现方式中,终端设备也可以基于除第二密钥外的其他数据,对该第二数据进行加密,并在读取第二数据时,基于该第二密钥以及除第二密钥外的其他数据对加密后的第二数据进行解密,本申请实施例中对此不做限定。
基于此,在终端设备将第一环境中生成的第一密钥以及第二环境中生成的第二密钥存储到磁盘的过程中,终端设备可以将第一密钥以及第二密钥存储在磁盘的不同密钥存储位置上,减少由于第一密钥以及第二密钥存储在相同的密钥存储位置时出现的密钥冲突,进而减少从磁盘中读取数据时由于密钥冲突带来的数据乱码情况。
在图4对应的实施例的基础上,以终端设备中的模块交互为例,详细介绍本申请实施例提供的密钥存储方法的一种具体实现过程。示例性的,图7为本申请实施例提供的另一种密钥存储方法的流程示意图。在图7对应的实施例中,以第一密钥在为TEE中生成的密钥为例进行示例说明,该示例并不构成对本申请实施例的限定。
如图7所示,密钥存储方法可以包括如下步骤:
S701、TEE与REE之间建立数据通道。
示例性的,TEE与REE之间可以在终端设备开机等时建立数据通道,使得TEE(或REE)可以实现对于另一环境REE(或TEE)中数据的随时查询。
S702、TA获取第一数据,生成第一数据对应的第一密钥、以及第一密钥对应的状态信息。
S703、TA向TEE的数据存储模块以及REE的数据存储模块分别发送查询请求。
该查询请求用于获取TEE的数据存储模块中存储的状态信息、以及REE的数据存储模块中存储的状态信息。
S704、TEE的数据存储模块以及REE的数据存储模块分别向TA返回查询结果。
其中,该查询结果中包括:TEE的数据存储模块中存储的状态信息、以及REE的数据存储模块中存储的状态信息。
S705、TA根据查询结果,确定第一密钥的密钥存储位置。
其中,TA根据查询结果确定第一密钥的密钥存储位置的具体实现可以参见图4对应的实施例S404中终端设备存储第二密钥的过程,在此不再赘述。
S706、TA利用第一密钥对第一数据进行加密。
可能的实现方式中,TA也可以利用除第一密钥以外的其他数据对该第一数据进行加密,本申请实施例中对此不做限定。
S707、TA向加密引擎发送第一密钥以及密钥存储位置。
适应的,加密引擎在接收到该第一密钥时,可以按照密钥存储位置存储该第一密钥。
S708、加密引擎向TA返回第一响应消息。
其中,该第一响应消息用于指示加密引擎完成对于第一密钥的存储。
S709、TA向UFS数据存储模块发送加密后的第一数据以及分区位置。
适应的,UFS数据存储模块根据分区位置存储该加密后的第一数据。
S710、UFS数据存储模块向TA返回第二响应消息。
其中,该第二响应消息用于指示UFS数据存储模块完成对于加密后的第一数据的存储。
S711、在TA接收到第一响应消息以及第二响应消息时,TA将第一密钥对应的状态信息发送至TEE的数据存储模块。
适应的,TEE的数据存储模块可以在接收到该第一密钥对应的状态信息时,存储该第一密钥对应的状态信息,实现TEE的数据存储模块中数据的更新。
可以理解的是,终端设备对REE环境中生成的第二密钥进行存储时,模块之间的数据交互流程可以与图7对应的实施例中描述的类似,在此不再赘述。
在图4对应的实施例的基础上,为了更好的理解本申请各实施例,下面详细介绍本申请实施例提供的密钥存储方法的一种具体实现过程。
示例性的,图8为本申请实施例提供的再一种密钥存储方法的流程示意图。在图8对应的实施例中,以第二密钥为在REE中生成的密钥且第一密钥在为TEE中生成的密钥为例进行示例说明,该示例并不构成对本申请实施例的限定。
如图8所示,存储第一密钥的过程可以参见S8011-S8017所示的步骤;存储第二密钥的过程可以参见S8021-S8027所示的步骤。
S8011、终端设备初始化TEE环境中存储的状态信息。
其中,初始化TEE环境中存储的状态信息用于对状态信息进行清空,避免之前存储的状态信息对后续密钥存储造成影响。
S8012、终端设备初始化TEE与REE之间的数据通道。
示例性的,初始化TEE与REE之间的数据通道,用于建立TEE与REE之间的通信连接,使得TEE可以在S8015所示的步骤中实现查询REE中的数据的步骤。
S8013、终端设备获取第一密钥,并在TEE的数据存储模块中查询密钥的状态信息,确定UFS中是否写入第一密钥。
其中,第一密钥是基于第一数据生成的,且终端设备利用第一数据生成第一密钥以及第一密钥的状态信息的过程可以参见S401所示的步骤,在此不再赘述。
本申请实施例中,当终端设备确定UFS中写入第一密钥时,终端设备可以执行S8014所示的步骤;或者,当终端设备确定UFS中未写入第一密钥时,终端设备可以执行S8015所示的步骤。
示例性的,当第一密钥中包含多个密钥时,终端设备可以在确定第一密钥中的多个密钥均没有写入到UFS中时执行S8015所示的步骤。
S8014、终端设备停止将第一密钥存储到UFS中。
S8015、终端设备通过共享内存方式,和REE通讯查询第一密钥对应的存储位置是否在REE环境中使用。
其中,当终端设备确定第一密钥对应的存储位置已经在REE环境中使用时,终端设备可以执行S8016所示的步骤;或者,当终端设备确定第一密钥对应的存储位置未在REE环境中使用时,终端设备可以执行S8017所示的步骤。
S8016、终端设备检测下一个密钥存储位置。
可以理解的是,终端设备可以按照状态信息中指示的密钥存储位置,依次对各位置处的状态信息进行查询。
S8017、终端设备将第一密钥存储到UFS。
S8021、终端设备初始化REE环境中存储的状态信息。
其中,初始化REE环境中存储的状态信息用于对状态信息进行清空,避免之前存储的状态信息对后续密钥存储造成影响。
S8022、终端设备初始化REE与TEE之间的数据通道。
示例性的,初始化REE与TEE之间的数据通道,用于建立REE与TEE之间的通信连接,使得REE可以在S8025所示的步骤中实现查询TEE中的数据的步骤。
S8023、终端设备获取第二密钥,并在REE的数据存储模块中查询密钥的状态信息,确定UFS中是否写入第二密钥。
其中,第二密钥是基于第二数据生成的,且终端设备利用第二数据生成第二密钥以及第二密钥的状态信息的过程可以参见S403所示的步骤,在此不再赘述。
本申请实施例中,当终端设备确定UFS中写入第二密钥时,终端设备可以执行S8024所示的步骤;或者,当终端设备确定UFS中未写入第二密钥时,终端设备可以执行S8025所示的步骤。
S8024、终端设备停止将第二密钥存储到UFS中。
S8025、终端设备通过共享内存方式,和TEE通讯查询第二密钥对应的存储位置是否在TEE环境中使用。
其中,当终端设备确定第二密钥对应的存储位置已经在TEE环境中使用时,终端设备可以执行S8026所示的步骤;或者,当终端设备确定第二密钥对应的存储位置未在TEE环境中使用时,终端设备可以执行S8027所示的步骤。
S8026、终端设备检测下一个密钥存储位置。
S8027、终端设备将第二密钥存储到UFS。
可以理解的是,终端设备可以在执行S8015或S8025时,可以实现TEE与REE的相互通信,使得TEE或REE中的任一环境均可以查询到对方环境中的密钥存储位置的使用状态,如图8中的虚线所示。
基于此,使得终端设备可以实现TEE与REE的相互通信,使得TEE或REE中的任一环境均可以查询到对方环境中的密钥存储位置的使用状态,减少由于第一密钥以及第二密钥存储在相同的密钥存储位置时出现的密钥冲突,进而减少从磁盘中读取数据时由于密钥冲突带来的数据乱码情况。
上面结合图4-图9,对本申请实施例提供的方法进行了说明,下面对本申请实施例提供的执行上述方法的装置进行描述。如图9所示,图9为本申请实施例提供的一种密钥存储装置的结构示意图,该密钥存储装置可以是本申请实施例中的终端设备,也可以是终端设备内的芯片或芯片系统。
如图9所示,密钥存储装置900可以用于通信设备、电路、硬件组件或者芯片中,该密钥存储装置900包括:获取单元901以及处理单元902。其中,获取单元901用于支持密钥存储装置900执行的数据获取的步骤;处理单元902用于支持密钥存储装置900执行信息处理的步骤。
本申请实施例提供一种密钥存储装置900,获取单元901,用于获取第一密钥;第一密钥为终端设备在第一环境中生成的至少一个密钥;处理单元902,用于存储第一密钥;获取单元901,用于获取第二密钥;第二密钥为终端设备在第二环境中生成的至少一个密钥;第一环境与第二环境不同;处理单元902,用于存储第二密钥;其中,第一密钥中的第i个密钥的密钥存储位置与第二密钥中的第i个密钥的密钥存储位置不同,i为正整数。
可能的实现方式中,密钥存储装置900还可以包括:通信单元903,通信单元903用于指示密钥存储装置900执行数据的发送和接收等步骤。其中,该通信单元903可以是输入或者输出接口、管脚或者电路等。
可能的实施例中,密钥存储装置900还可以包括:存储单元904。处理单元902、存储单元904通过线路相连。存储单元904可以包括一个或者多个存储器,存储器可以是一个或者多个设备、电路中用于存储程序或者数据的器件。存储单元904可以独立存在,通过通信线路与密钥存储装置900具有的处理单元902相连。存储单元904也可以和处理单元902集成在一起。
存储单元904可以存储终端设备中的方法的计算机执行指令,以使处理单元902执行上述实施例中的方法。存储单元904可以是寄存器、缓存或者RAM等,存储单元904可以和处理单元902集成在一起。存储单元904可以是只读存储器(read-only memory,ROM)或者可存储静态信息和指令的其他类型的静态存储设备,存储单元904可以与处理单元902相独立。
图10为本申请实施例提供的另一种终端设备的硬件结构示意图,如图10所示,该终端设备包括处理器1001,通信线路1004以及至少一个通信接口(图10中示例性的以通信接口1003为例进行说明)。
本申请实施例提供一种终端设备,包括存储器、处理器以及存储在处理器中并在处理器上运行的计算机程序。
处理器1001可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。
通信线路1004可包括在上述组件之间传送信息的电路。
通信接口1003,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线局域网(wireless local area networks,WLAN)等。
可能的,该终端设备还可以包括存储器1002。
存储器1002可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路1004与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器1002用于存储执行本申请方案的计算机执行指令,并由处理器1001来控制执行。处理器1001用于执行存储器1002中存储的计算机执行指令,从而实现本申请实施例所提供的方法。
可能的,本申请实施例中的计算机执行指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。
在具体实现中,作为一种实施例,处理器1001可以包括一个或多个CPU,例如图10中的CPU0和CPU1。
在具体实现中,作为一种实施例,终端设备可以包括多个处理器,例如图10中的处理器1001和处理器1005。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。例如,可用介质可以包括磁性介质(例如,软盘、硬盘或磁带)、光介质(例如,数字通用光盘(digital versatile disc,DVD))、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
本申请实施例还提供了一种计算机可读存储介质。上述实施例中描述的方法可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。计算机可读介质可以包括计算机存储介质和通信介质,还可以包括任何可以将计算机程序从一个地方传送到另一个地方的介质。存储介质可以是可由计算机访问的任何目标介质。
作为一种可能的设计,计算机可读介质可以包括紧凑型光盘只读储存器(compactdisc read-only memory,CD-ROM)、RAM、ROM、EEPROM或其它光盘存储器;计算机可读介质可以包括磁盘存储器或其它磁盘存储设备。而且,任何连接线也可以被适当地称为计算机可读介质。例如,如果使用同轴电缆,光纤电缆,双绞线,DSL或无线技术(如红外,无线电和微波)从网站,服务器或其它远程源传输软件,则同轴电缆,光纤电缆,双绞线,DSL或诸如红外,无线电和微波之类的无线技术包括在介质的定义中。如本文所使用的磁盘和光盘包括光盘(CD),激光盘,光盘,数字通用光盘(digital versatile disc,DVD),软盘和蓝光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光光学地再现数据。
上述的组合也应包括在计算机可读介质的范围内。以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (11)
1.一种密钥存储方法,其特征在于,应用于终端设备,所述终端设备中包括:通用闪存存储器UFS,所述方法包括:
终端设备获取第一密钥;所述第一密钥为所述终端设备在第一环境中生成的至少一个密钥;
所述终端设备将所述第一密钥存储在所述UFS中的第一位置处;
所述终端设备将第一状态信息存储到第一环境的数据存储模块中,所述第一状态信息中包括:所述第一位置的信息;
所述终端设备获取第二密钥;所述第二密钥为所述终端设备在第二环境中生成的至少一个密钥;所述第一环境与所述第二环境不同;
当所述终端设备基于所述第一环境的数据存储模块中的所述第一状态信息,确定所述第一位置处存储有密钥时,所述终端设备确定与所述第一位置不同的第二位置;
所述终端设备将所述第二密钥存储在所述UFS中的第二位置处;其中,所述第一密钥中的第i个密钥的密钥存储位置与所述第二密钥中的第i个密钥的密钥存储位置不同,i为正整数;
其中,当所述第一环境为可信执行环境时,所述第二环境为富执行环境;或者,当所述第一环境为所述富执行环境时,所述第二环境为所述可信执行环境。
2.根据权利要求1所述的方法,其特征在于,所述终端设备将所述第二密钥存储在所述UFS中的第二位置处,包括:
所述终端设备根据所述第一密钥的第一位置,确定第二位置;其中,所述第二位置为预设位置中除所述第一密钥的第一位置以外的位置;
所述终端设备在所述第二位置中存储所述第二密钥。
3.根据权利要求2所述的方法,其特征在于,所述终端设备中还存储有第三密钥,所述第三密钥为所述终端设备在所述第二环境中生成的至少一个密钥;
所述终端设备根据所述第一密钥的第一位置,确定第二位置,包括:所述终端设备根据所述第一密钥的第一位置、以及所述第三密钥的密钥存储位置,确定第二空闲位置;其中,所述第二空闲位置为预设位置中除所述第一密钥的第一位置以及所述第三密钥的存储位置以外的位置;
所述终端设备在所述第二位置中存储所述第二密钥,包括:所述终端设备在所述第二空闲位置中存储所述第二密钥。
4.根据权利要求1所述的方法,其特征在于,所述终端设备将所述第二密钥存储在所述UFS中的第二位置处,包括:
所述终端设备根据所述第一密钥中的第一起始密钥的密钥存储位置、以及所述第一密钥中密钥的个数,确定所述第二密钥中的第二起始密钥的密钥存储位置;
所述终端设备在所述第二起始密钥的密钥存储位置依次存储所述第二密钥。
5.根据权利要求4所述的方法,其特征在于,所述第一状态信息中还包括:所述第一密钥中密钥的个数信息,所述终端设备根据所述第一密钥中的第一起始密钥的密钥存储位置、以及所述第一密钥中密钥的个数,确定所述第二密钥中的第二起始密钥的密钥存储位置之前,所述方法还包括:
所述终端设备从所述第一状态信息中获取第一密钥中的第一起始密钥的密钥存储位置、以及所述第一密钥中密钥的个数。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述终端设备中包括存储在所述第二环境中的第二状态信息,所述第二状态信息中包括下述一种或多种:密钥存储位置信息、所述密钥的个数信息、所述密钥的类型信息、生成所述密钥时对应的用户信息、用户的类型、或所述密钥的使用情况,所述方法还包括:
所述终端设备获取所述第二密钥对应的第三状态信息;
所述终端设备获取第二密钥,包括:当所述终端设备确定所述第二状态信息中不存在所述第三状态信息时,所述终端设备获取所述第二密钥。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当所述终端设备确定所述第二状态信息中存在所述第三状态信息时,所述终端设备停止生成所述第二密钥。
8.根据权利要求1-5、7任一项所述的方法,其特征在于,所述方法还包括:
所述终端设备利用所述第二密钥对目标数据进行加密,得到加密后的目标数据;
所述终端设备存储所述加密后的目标数据。
9.根据权利要求1-5、7任一项所述的方法,其特征在于,所述方法还包括:
当所述终端设备接收到用于获取目标数据的指令时,所述终端设备获取所述第二密钥以及加密后的目标数据;
所述终端设备利用所述第二密钥对所述加密后的目标数据进行解密,得到所述目标数据。
10.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,使得所述终端设备执行如权利要求1至9任一项所述的方法。
11.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,使得计算机执行如权利要求1至9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211214242.1A CN116743357B (zh) | 2022-09-30 | 2022-09-30 | 密钥存储方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211214242.1A CN116743357B (zh) | 2022-09-30 | 2022-09-30 | 密钥存储方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116743357A CN116743357A (zh) | 2023-09-12 |
CN116743357B true CN116743357B (zh) | 2024-03-12 |
Family
ID=87903194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211214242.1A Active CN116743357B (zh) | 2022-09-30 | 2022-09-30 | 密钥存储方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116743357B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109921995A (zh) * | 2017-12-13 | 2019-06-21 | 华为技术有限公司 | 一种配置地址表的方法、fpga和应用该fpga的网络设备 |
CN111459869A (zh) * | 2020-04-14 | 2020-07-28 | 中国长城科技集团股份有限公司 | 一种数据访问的方法、装置、设备及存储介质 |
CN111566989A (zh) * | 2018-06-14 | 2020-08-21 | 华为技术有限公司 | 一种密钥处理方法及装置 |
CN111638943A (zh) * | 2017-02-28 | 2020-09-08 | 英特尔公司 | 具有受保护的访客机验证主机控制的安全公共云 |
CN113449347A (zh) * | 2021-09-01 | 2021-09-28 | 飞腾信息技术有限公司 | 微处理器、数据处理方法、电子设备和存储介质 |
CN114756887A (zh) * | 2021-01-08 | 2022-07-15 | 普天信息技术有限公司 | 一种敏感信息块在文件中的加密存储方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040073512A1 (en) * | 2001-02-23 | 2004-04-15 | David Maung | Unique session storage design |
US20100125730A1 (en) * | 2008-11-17 | 2010-05-20 | David Dodgson | Block-level data storage security system |
-
2022
- 2022-09-30 CN CN202211214242.1A patent/CN116743357B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111638943A (zh) * | 2017-02-28 | 2020-09-08 | 英特尔公司 | 具有受保护的访客机验证主机控制的安全公共云 |
CN109921995A (zh) * | 2017-12-13 | 2019-06-21 | 华为技术有限公司 | 一种配置地址表的方法、fpga和应用该fpga的网络设备 |
CN111566989A (zh) * | 2018-06-14 | 2020-08-21 | 华为技术有限公司 | 一种密钥处理方法及装置 |
CN111459869A (zh) * | 2020-04-14 | 2020-07-28 | 中国长城科技集团股份有限公司 | 一种数据访问的方法、装置、设备及存储介质 |
CN114756887A (zh) * | 2021-01-08 | 2022-07-15 | 普天信息技术有限公司 | 一种敏感信息块在文件中的加密存储方法及装置 |
CN113449347A (zh) * | 2021-09-01 | 2021-09-28 | 飞腾信息技术有限公司 | 微处理器、数据处理方法、电子设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
面向多应用程序的闪存固态盘性能优化研究;刘人萍;《中国优秀硕士学位论文全文数据库》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116743357A (zh) | 2023-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108833607B (zh) | 物理地址获取方法、装置及可读介质 | |
CN111466099A (zh) | 一种登录方法、令牌发送方法及设备 | |
CN111010693B (zh) | 一种提供无线保真网络接入服务的方法及电子设备 | |
EP3989113A1 (en) | Facial image transmission method, numerical value transfer method and apparatus, and electronic device | |
US11647564B2 (en) | Apparatus and method for performing data communication in NAN protocol-based network environment | |
US11240664B2 (en) | Method and electronic device for controlling data communication | |
CN113114944B (zh) | 拍摄中的隐私保护方法和装置 | |
CN113220385A (zh) | 一种移动终端横竖屏自动设置方法 | |
WO2021036869A1 (zh) | 一种位置信息获取方法及电子设备 | |
CN113852459A (zh) | 密钥协商方法、设备及计算机可读存储介质 | |
WO2021184264A1 (zh) | 数据保存方法、数据访问方法及相关装置、设备 | |
CN116743357B (zh) | 密钥存储方法和装置 | |
US11825235B2 (en) | Electronic device for processing image and image processing method thereof | |
KR20190115361A (ko) | 외부 전자 장치의 키와 관련된 어플리케이션을 관리하는 전자 장치 및 전자 장치의 동작 방법 | |
CN115238259A (zh) | 一种设备认证方法以及相关装置 | |
WO2023207758A1 (zh) | 数据处理方法及装置 | |
CN116707850B (zh) | 一种数据处理方法、数据访问方法及设备 | |
CN112905986B (zh) | 权限认证方法、装置、系统及计算机可读存储介质 | |
CN116055032B (zh) | 一种密钥生成方法及电子设备 | |
CN116049839B (zh) | 一种数据传输方法和电子设备 | |
US20240015007A1 (en) | Systems and techniques for authentication and security | |
CN115001667B (zh) | 密钥协商方法、系统、电子设备和计算机可读存储介质 | |
CN115551117B (zh) | 一种pdn连接方法和通信系统 | |
US20240178990A1 (en) | Electronic device for storing secure data and method for operating the same | |
WO2019245270A1 (en) | Improvements in and relating to sms in a telecommunication network |
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 |