CN115544586B - 用户数据的安全存储方法、电子设备及存储介质 - Google Patents
用户数据的安全存储方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115544586B CN115544586B CN202211507204.5A CN202211507204A CN115544586B CN 115544586 B CN115544586 B CN 115544586B CN 202211507204 A CN202211507204 A CN 202211507204A CN 115544586 B CN115544586 B CN 115544586B
- Authority
- CN
- China
- Prior art keywords
- user
- data
- rpmb
- partition
- password
- 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 132
- 238000003860 storage Methods 0.000 title claims abstract description 93
- 238000005192 partition Methods 0.000 claims abstract description 273
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 51
- 238000012795 verification Methods 0.000 claims abstract description 40
- 230000005012 migration Effects 0.000 claims abstract description 35
- 238000013508 migration Methods 0.000 claims abstract description 35
- 230000004048 modification Effects 0.000 claims abstract description 12
- 238000012986 modification Methods 0.000 claims abstract description 12
- 238000012217 deletion Methods 0.000 claims abstract description 11
- 230000037430 deletion Effects 0.000 claims abstract description 11
- 230000006870 function Effects 0.000 claims description 54
- 238000012545 processing Methods 0.000 claims description 52
- 230000008569 process Effects 0.000 claims description 41
- 230000004044 response Effects 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 13
- 239000000178 monomer Substances 0.000 claims description 9
- 230000000717 retained effect Effects 0.000 claims description 4
- 238000004891 communication Methods 0.000 abstract description 9
- 238000013175 transesophageal echocardiography Methods 0.000 description 64
- 239000010410 layer Substances 0.000 description 38
- 238000010586 diagram Methods 0.000 description 20
- 238000007726 management method Methods 0.000 description 14
- 239000008186 active pharmaceutical agent Substances 0.000 description 13
- 238000013500 data storage Methods 0.000 description 9
- 239000000243 solution Substances 0.000 description 8
- 230000001960 triggered effect Effects 0.000 description 8
- 230000003993 interaction Effects 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- GVVPGTZRZFNKDS-JXMROGBWSA-N geranyl diphosphate Chemical compound CC(C)=CCC\C(C)=C\CO[P@](O)(=O)OP(O)(O)=O GVVPGTZRZFNKDS-JXMROGBWSA-N 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 230000002427 irreversible effect Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- GRRMZXFOOGQMFA-UHFFFAOYSA-J YoYo-1 Chemical compound [I-].[I-].[I-].[I-].C12=CC=CC=C2C(C=C2N(C3=CC=CC=C3O2)C)=CC=[N+]1CCC[N+](C)(C)CCC[N+](C)(C)CCC[N+](C1=CC=CC=C11)=CC=C1C=C1N(C)C2=CC=CC=C2O1 GRRMZXFOOGQMFA-UHFFFAOYSA-J 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
Images
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/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
-
- 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
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- 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
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供了一种用户数据的安全存储方法、电子设备及存储介质,涉及通信技术领域。本方案在硬件和软件上进行改进,在eMMC存储器的RPMB分区中划分出个人加密分区,并允许用户将一些用户数据迁移到该个人加密分区中进行加密存储。对RPMB个人加密分区中已存储数据的任何操作(例如删除、复制、修改或者迁移),均需要密码验证。通过将用户输入的密码进行有预设算法处理并与预设密钥进行比对,并根据比对结果确定是否验证成功,只有在验证成功的情况下才能对个人加密分区中存储的数据进行删除、修改、复制或迁移,否则不作处理,因此本申请方案能够防止用户数据被泄露,有效保障个人数据的安全性。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种用户数据的安全存储方法、电子设备及存储介质。
背景技术
在用户使用电子设备(例如手机或电脑等)的过程中,电子设备会不断存储大量的用户数据。对于一些重要的个人数据(例如文件或照片等),用户具有将这些重要的数据进行加密存储,不被他人发现及获取的需求。例如:当用户将手机送到维修网点进行维修时,用户不希望手机内部的照片、通信记录等个人隐私信息被人获取或删除。
然而,目前电子设备通常会将这些数据自动默认保存在未加密的用户数据区,电子设备无法对用户个人数据执行有效的单体保护,存在用户个人数据被恶意篡改、获取或清除的风险。
发明内容
本申请提供一种用户数据的安全存储方法及电子设备,解决了电子设备无法对用户个人数据执行有效的单体保护,存在用户个人数据被恶意篡改、获取或清除等风险的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请提供一种用户数据的安全存储方法,应用于电子设备,该电子设备包括eMMC,该eMMC中包括用户数据分区和重放保护内存块RPMB分区,该RPMB分区中包括允许用户使用的RPMB个人加密分区,该方法包括:
响应于用户对第一文件进行第一处理的操作,电子设备提示用户输入密码;其中,该第一文件为存储于RPMB个人加密分区的数据,第一处理为修改、复制、删除或者迁移;响应于用户输入密码的操作,电子设备接收用户输入的第一密码;电子设备采用预设算法对第一密码和电子设备的预设信息进行处理,得到第一数据;电子设备根据第一数据与RPMB个人加密分区的预设密钥之间的比对结果,对第一密码进行验证;在第一密码验证成功的情况下,电子设备对第一文件进行第一处理;在第一密码验证失败的情况下,电子设备不执行第一处理。
本申请实施例提供的用户数据的安全存储方法,在硬件和软件上进行改进,在eMMC存储器的RPMB分区中划分出个人加密分区,并允许用户将一些用户数据迁移到该个人加密分区中进行加密存储。对RPMB个人加密分区中已存储数据的任何操作(例如删除、复制、修改或者迁移),均需要密码验证,通过将用户输入的密码进行有预设算法处理并与预设密钥进行比对,并根据比对结果确定是否验证成功,只有在验证成功的情况下才能对个人加密分区中存储的数据进行删除、修改、复制或迁移,否则不作处理,因此本申请方案能够防止用户数据被泄露,有效保障个人数据的安全性。
其中,所述RPMB个人加密分区为在所述电子设备出厂前在所述RPMB分区中预先划分的一个存储区域。
可以看出,与相关技术中eMMC存储器的RPMB分区仅用于加密存储特定的安全信息相比而言,本申请方案在此基础上对硬件进行了改进:电子设备在出厂时将eMMC存储器的RPMB分区划分为两个或多个RPMB分区,将其中一个RPMB分区预留给用户使用,其他RPMB分区用于存储安全信息。通过本申请方案,能够从硬件机理层面来保护用户隐私数据。
在一些可能实现方式中,当所述电子设备恢复出厂设置时,所述用户数据分区中的数据被删除,所述RPMB个人加密分区中的数据被保留。
在一些可能实现方式中,预设信息可以为能够唯一标识电子设备的信息。例如,预设信息可以为电子设备中的CPU芯片的序列编号(也称为物理串号)。或者,预设信息可以为电子设备中的其他芯片的序列编号。需要说明的是,预设信息还可以是其他能够唯一标识电子设备的信息,具体可以根据实际使用需求设置,本申请实施例不作限定。
在一些可能实现方式中,预设算法包括将用户输入的密码和所述预设信息进行合并,然后采用安全哈希算法对合并后得到的数据进行处理。
在一些可能实现方式中,所述预设密钥是所述电子设备的预设信息和用户预先设置的密码在经过所述预设算法处理后得到的密钥。
通过本申请方案,由于RPMB个人加密分区的密钥是经过加密算法处理后得到的,不容易被破解,因此RPMB个人加密分区中的用户数据不会被轻易删除、复制、修改或者迁移,可以避免用户个人信息被泄露,提升了数据存储的安全性。
在一些可能实现方式中,所述RPMB分区还包括公用加密分区,所述公用加密分区中用于加密存储所述电子设备中的预设类型数据,所述预设类型数据包括安全证书类数据、指纹类数据和电子钱包类数据;其中,所述公用加密分区的预设密钥与所述RPMB个人加密分区的预设密钥不同。
在一些可能实现方式中,所述方法还包括:在所述电子设备开机后,所述电子设备默认开启个人数据安全存储业务,在所述个人数据安全存储业务开启的情况下,所述RPMB个人加密分区允许被使用;在所述RPMB个人加密分区未设置密码的情况下,所述电子设备提示用户为所述RPMB个人加密分区设置密码;电子设备接收用户输入的第二密码;电子设备根据用户输入的第二密码,生成第一密钥;电子设备将第一密钥,设置为RPMB个人加密分区的预设密钥。
在一些可能实现方式中,所述电子设备根据用户输入的密码,生成第一密钥,包括:电子设备采用预设算法将所述第二密码和预设信息进行处理,得到所述第一密钥。
其中,RPMB个人加密分区的预设密钥为一次设置的永久性密钥。
通过本申请方案,电子设备将用户设置的密码与电子设备的预设信息进行合并,然后采用安全哈希算法对合并后得到的数据进行处理,得到RPMB个人加密分区的预设密钥。RPMB个人加密分区的预设密钥可以有效保障RPMB个人加密分区中的个人数据的安全性。当RPMB个人加密分区中存储的数据被触发删除、修改、复制或迁移时,电子设备会要求用户输入密码,并且将用户输入的密码进行有预设算法处理并与预设密钥进行比对,并根据比对结果确定是否验证成功,只有输入密码验证成功的情况下才能对RPMB个人加密分区中存储的数据进行删除、修改、复制或迁移,否则不作处理,因此本申请方案能够防止用户数据被恶意篡改。
在一些可能实现方式中,第二密码为以下任一项:数字密码、图形密码、生物特征密码。
在一些可能实现方式中,所述电子设备根据所述第一数据与所述RPMB个人加密分区的预设密钥之间的比对结果,对所述第一密码进行验证,包括:所述电子设备将所述第一数据与所述预设密钥进行比对;当所述第一数据与所述预设密钥相同时,所述电子设备确认所述第一密码验证成功;或者,当所述第一数据与所述预设密钥不同时,所述电子设备确认所述第一密码验证失败。
在一些可能实现方式中,在响应于用户对所述电子设备的操作,所述电子设备显示所述第一文件之前,所述方法还包括:响应于用户的操作,所述电子设备将所述第一文件从所述用户数据分区迁移到所述RPMB个人加密分区。
在一些可能实现方式中,所述响应于用户的操作,所述电子设备将所述第一文件从所述用户数据分区迁移到所述RPMB个人加密分区,包括:响应于用户对所述电子设备的操作,所述电子设备显示所述第一文件,该第一文件存储于所述用户数据分区;响应于用户对所述第一文件的文件迁移操作,电子设备提示用户输入密码;电子设备接收用户输入的第三密码;电子设备采用所述预设算法对所述第三密码和所述预设信息进行处理,得到第二数据;在第二数据与RPMB个人加密分区的预设密钥相同的情况下,电子设备对第三密码验证成功;电子设备将第一文件存储到RPMB个人加密分区,并删除用户数据分区中存储的第一文件。
其中,文件迁移操作为将用户所选文件移入RPMB个人加密分区的操作。例如文件迁移操作包括两个子操作:用户在第一文件的标识上的按压操作(第一子操作),当显示移入“个人保险箱”功能项时,用户点击移入“个人保险箱”功能项(第二子操作)。
在一些可能实现方式中,所述方法还包括:
在所述电子设备的设置界面中显示第一功能选项,所述第一功能选项包括个人数据安全存储业务的功能开关;
响应于用户对功能开关的操作,所述电子设备开启或关闭所述个人数据安全存储业务;
其中,在所述个人数据安全存储业务开启的情况下,所述电子设备允许将存储于所述用户数据分区的数据迁移到所述RPMB个人加密分区。
在一些可能实现方式中,所述响应于用户对所述第一文件进行第一处理的操作,所述电子设备提示用户输入密码,包括:响应于用户在所述第一文件对应的标识上的操作,所述电子设备在所述第一文件的图标上显示多个功能选项,所述多个功能选项包括以下至少一项:删除、修改、复制、迁移;响应于用户对所述多个功能选项中任一项的操作,所述电子设备提示用户输入密码。
其中,所述第一文件为以下任一种形式的文件:图片、视频、文本。
其中,所述第一文件对应的标识为以下任一种形式的标识:缩略图、图标、标签、地址索引、文件夹。
与相关技术方案相比,本申请方案具有如下有益效果:RPMB用户加密分区的密钥由用户输入密码和芯片标识共同作用完成,保证了RPMB对应分区的最大限度的独立性和安全性。
与相关技术方案相比,本申请方案还具有如下有益效果:在将用户数据存储到RPMB用户加密分区的情况下,由于RPMB用户加密分区的密钥中混入了用户设置的密码信息,因此即使电子设备恢复出厂设置,也不会擦除RPMB用户加密分区中的用户数据。
第二方面,本申请提供一种用户数据存储装置,该装置包括用于执行上述第一方面中的方法的单元。该装置可对应于执行上述第一方面中描述的方法,该装置中的单元的相关描述请参照上述第一方面的描述,为了简洁,在此不再赘述。
其中,上述第一方面描述的方法可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。例如,处理模块或单元、显示模块或单元等。
第三方面,本申请提供一种电子设备,电子设备包括处理器和存储器,该处理器与存储器耦合,处理器用于执行存储器存储的计算机程序或指令,使得第一方面中的方法被执行。
其中,该存储器为eMMC,该eMMC中包括用户数据分区和RPMB分区,所述RPMB分区中包括公用加密分区以及允许用户使用的RPMB个人加密分区,所述RPMB个人加密分区的密钥与所述公用加密分区的密钥不同。
在一些可能实现方式中,所述RPMB个人加密分区的密钥是所述电子设备的预设信息和用户预先设置的密码在经过所述预设算法处理后得到的密钥;其中,所述预设信息为所述电子设备的CPU芯片的序列编号;所述预设算法包括将用户输入的密码和所述预设信息进行合并,然后采用安全哈希算法对合并后得到的数据进行处理。
第四方面,本申请提供一种计算机可读存储介质,其上存储有用于实现第一方面中的方法的计算机程序(也可称为指令或代码)。例如,该计算机程序被计算机执行时,使得该计算机可以执行第一方面中的方法。
第五方面,本申请提供一种芯片,包括处理器。处理器用于读取并执行存储器中存储的计算机程序,以执行第一方面及其任意可能的实现方式中的方法。可选地,所述芯片还包括存储器,存储器与处理器通过电路或电线连接。
第六方面,本申请提供一种芯片系统,包括处理器。处理器用于读取并执行存储器中存储的计算机程序,以执行第一方面及其任意可能的实现方式中的方法。可选地,所述芯片系统还包括存储器,存储器与处理器通过电路或电线连接。
第七方面,本申请提供一种计算机程序产品,所述计算机程序产品包括计算机程序(也可称为指令或代码),所述计算机程序被计算机执行时使得所述计算机实现第一方面中的方法。
可以理解的是,上述第二方面至第七方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
图1为相关技术提供的eMMC存储器的结构示意图;
图2为本申请实施例提供的eMMC存储器与主机交互的示意图;
图3为本申请实施例提供的eMMC存储器与主机交互的示意图;
图4为本申请实施例提供的一种电子设备的结构示意图;
图5为本申请实施例公开的电子设备的软件架构示意图;
图6为本申请实施例公开的电子设备的软件架构示意图;
图7为本申请实施例公开的软件架构中模块交互的示意图;
图8为本申请实施例公开的用户数据的安全存储方法的界面示意图;
图9为本申请实施例公开的用户数据的安全存储方法的流程示意图;
图10为本申请实施例公开的用户数据的安全存储方法基于软件架构实现的流程示意图;
图11为本申请实施例公开的用户数据的安全存储方法的界面示意图;
图12为本申请实施例公开的用户数据的安全存储方法的界面示意图;
图13为本申请实施例公开的用户数据的安全存储方法的流程示意图;
图14A为本申请实施例公开的用户数据的安全存储方法基于软件架构实现的流程示意图一;
图14B为本申请实施例公开的用户数据的安全存储方法基于软件架构实现的流程示意图二;
图15为本申请实施例公开的用户数据的安全存储方法的界面示意图;
图16为本申请实施例公开的用户数据的安全存储方法的界面示意图;
图17为本申请实施例公开的用户数据的安全存储方法的流程示意图;
图18为本申请实施例公开的用户数据的安全存储方法的界面示意图;
图19为本申请实施例公开的一种用户数据的安全存储装置的流程图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本文中术语“和/或”,是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本文中符号“/”表示关联对象是或者的关系,例如A/B表示A或者B。
本文中的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或者两个以上,例如,多个处理单元是指两个或者两个以上的处理单元等;多个元件是指两个或者两个以上的元件等。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
为便于理解本申请实施例,在描述本申请方案前,首先针对本申请方案涉及的内嵌式多媒体存储卡的存储分区进行初步介绍,以便于本领域技术人员理解。
如图1所示,在内嵌式多媒体存储卡(embedded multi-media card,eMMC)应用的标准中,将eMMC内部的闪存(flash memory)划分为4类区域,且最多可以支持8个硬件分区。
其中,用户数据区(user data area,UDA)通常是eMMC中最大的一个分区,是实际产品中最主要的存储区域。UDA主要保存用户日常使用过程中产生的数据,例如:照片、录音、日志和/或文本文件等。
其中,重放保护内存块(replay protected memory block,RPMB)分区是eMMC中的一个具有安全特性的分区。eMMC在写入数据到RPMB时,会校验数据的合法性,只有指定的主机(Host)才能够写入;以及在读取RPMB中的数据时,由于应用了签名机制,因此可以保证主机读取到的数据是RPMB内部数据,而不是攻击者伪造的数据。在实际应用中,RPMB通常用于存储一些有防止非法篡改需求的数据,例如手机上指纹支付相关的公钥、序列号等。其中,这些数据通常会先进行加密然后再存储到RPMB。需要说明的是,RPMB可以对写入操作进行鉴权,而读取并不需要鉴权,任何人都可以进行读取的操作。
其中,启动区分区(boot area partition)包含两个启动区分区,主要用于存储启动程序(Bootloader)。Bootloader是在操作系统内核运行之前运行的一段小程序。通过这段小程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。
其中,通用分区(general purpose partitions,GPP)主要用于存储系统和应用数据。在很多使用eMMC的产品中,GPP没有被启用,因为它在功能上与UDA类似,产品上直接使用UDA就可以满足需求。
需要说明的是,eMMC可以应用于各种产品(称为主机,host)中,主机可以指示eMMC,将主机中的一些数据分别存储于eMMC的不同分区中。以上介绍了eMMC的各个分区,下面介绍主机与eMMC之间的交互关系。
如图2所示,主机包括eMMC控制器,eMMC包括eMMC协议接口、闪存控制器以及闪存。主机的eMMC控制器可以调用eMMC协议接口,向eMMC中的闪存控制器发送控制指令,然后eMMC中的闪存控制器根据控制指令,将主机发送的数据存储到闪存中的指定分区。
下面对RPMB的安全密钥进行描述。对于使用eMMC的产品而言,当产品在产线生产时,厂商会为每个产品分配一个唯一的序列编码(例如256比特(bits)),作为RPMB的安全密钥(secure key),并将该安全密钥烧写到eMMC的一次性可编程(one time programmable,OTP)寄存器,并且将该安全密钥存储主机的安全区域中(例如信任执行环境TEE)。其中,OTP寄存器是单片机中只能烧写一次的区域,即程序烧入单片机后,将不可再次更改和清除。
如图3所示,主机中存储有RPMB的安全密钥,eMMC中同样存储有RPMB的安全密钥,eMMC内部除了包括RPMB分区之外,还包括RPMB写计数器。RPMB每进行一次合法的写入操作时,RPMB写计数器就会自动加1。通过应用RPMB的安全密钥和写计数器,RMPB 可以实现数据读取和写入的重放保护。例如,在主机访问RMPB分区的场景中,主机向eMMC发送读地址,eMMC根据读地址从RMPB中获取待读取的数据,并将该数据发送给主机。主机在可信执行环境(trusted execution environment,TEE)中,根据安全密钥生成消息验证码(messageauthentication code,MAC),对该数据进行鉴权。
在一些实现方式中,eMMC器件中仅设置有一个RPMB分区。在另一些实现方式中,EMMC器件中设置有多个(4或5个)RPMB分区。
下面介绍本申请所面临的技术问题。
目前,电子设备(即上述主机,下面以手机为例)可以利用eMMC器件中的用户数据区和RPMB分区存储用户的使用数据。如上所述,用户数据区(也称为常规数据区)主要保存诸如照片、录音、日志和/或文本文件等用户日常使用过程中产生的数据。RPMB分区(也称为RPMB安全区)主要保存用户使用过程中的指纹等个人关键数据。
当前用户使用手机时,使用过程中可能出现如下场景及问题。
场景一:用户希望对某些数据进行加密存储。
在用户使用手机的过程中,手机会生成或接收一些重要的个人数据(例如文件或照片等),用户希望将某些数据进行加密存储。但是,通常手机会将这些数据自动保存在用户数据区,而由于该用户数据区不具有硬件安全保护能力,因此存在数据泄露风险。
例如:当手机需要维修,用户将手机送到维修网点进行维修时,用户希望手机内部的照片、通信记录等信息不被人获取。当前相关技术执行的保护策略为使用独立的账户系统来存储需要保护的数据,该保护策略是从“软件”层面来隔离保护用户数据的,但是无法从“硬件”层面杜绝,还是会有泄露用户数据的风险。本申请发明人发现,在该场景中,用户具有如下需求:希望电子设备中有一个用于存储个人重要数据的硬件存储区域,不仅用户能够根据需求使用这一硬件存储区域存储个人数据,而且还能够有效避免用户数据泄露。
场景二:用户希望个人数据不被恶意篡改、获取或清除。
例如,在用户丢失手机的情况下,常规保护机制是基于云端服务来执行用户设备的锁定及数据找回。但是,在手机不连接外部网络的情况下,即手机处于单机形态下,手机中的数据仍然能够被清除。原因在于,当前的数据保护及清除动作都是厂家提供的基础平台能力,用户无法自己定制保护措施,因此会导致在更换了使用者时,手机无法识别谁是真正的使用者。也就是说,在手机不连接网络的情况下,手机无法通过云端服务进行数据保护,存在数据被恶意篡改、获取或清除的风险。
由此可见,当前的使用场景主要存在如下问题:电子设备无法对用户个人数据执行有效的单体保护,存在用户个人数据被恶意篡改、获取或清除的风险。
基于上述描述,为了提高用户数据安全存储的能力,本申请实施例提出一种用户数据的安全存储方法以及电子设备,能够从硬件机理层面来保护个人用户隐私数据。
为了更好地理解本申请实施例,以下先对本申请实施例进行简要说明:
通过硬件和软件上的改进,使得在RPMB存储分区中划分一个RPMB个人加密分区,并允许用户参与自定义设置,例如允许用户设置该RPMB个人加密分区的密码,以及允许用户将一些用户数据迁移到该RPMB个人加密分区中进行存储。该RPMB个人加密分区为在电子设备出厂前在RPMB分区中预先划分的存储区域,提供给用户进行个人数据安全存储,用户可以根据需求将一些认为重要的个人数据迁移到该RPMB个人加密分区。RPMB个人加密分区由用户设置使用密码。
在本申请实施例中,在硬件和软件上进行改进,在eMMC存储器的RPMB分区中划分出个人加密分区,并允许用户将一些用户数据迁移到该个人加密分区中进行加密存储。当个人加密分区中存储的数据被触发删除、修改、复制或迁移时,电子设备会要求用户输入密码,然后将用户输入的密码进行有预设算法处理并与预设密钥进行比对,并根据比对结果确定是否验证成功,只有在验证成功的情况下才能对个人加密分区中存储的数据进行删除、修改、复制或迁移,否则不作处理,因此本申请方案能够防止用户数据被恶意篡改,有效保障个人数据的安全性。
本申请实施例提供的是一种用户数据的安全存储方法,可以应用在具备数据存储功能的电子设备中。电子设备包括终端设备,终端设备也可以称为终端(terminal)、用户设备(user equipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)等。终端设备可以是手机(mobile phone)、智能电视、穿戴式设备、平板电脑(Pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端设备、增强现实(augmentedreality,AR)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self-driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等等。本申请的实施例对终端设备所采用的具体技术和具体设备形态不做限定。
参见图4,为本申请实施例提供的一种电子设备的结构示意图。电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serialbus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,触摸传感器180K,环境光传感器180L等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。例如,处理器110用于执行本申请实施例中的环境光的检测方法。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
外部存储器120一般指外存储器,在本申请实施例中,外部存储器是指除电子设备的内存及处理器的高速缓存以外的储存器,该储存器一般为非易失性存储器。
内部存储器121,也可以称为“内存”,可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,以及至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。
例如,在本申请实施例中,内部存储器121可以是eMMC存储器,eMMC存储器中包括常规的用户数据分区和RPMB分区,用户数据区可以用于存储未加密数据,RPMB分区可以用于存储加密数据,并且RPMB分区中包括RPMB个人加密分区和RPMB公用加密分区。需要说明的是,eMMC存储器还可以包括其他分区,图中未示出。
其中,用户数据区为用于存储用户数据的常规存储区,例如可以存储用户通过相机拍摄的照片及视频,以及从网络下载的文件等。
其中,该RPMB个人加密分区为在电子设备出厂前在RPMB分区中预先划分的一个存储区域,提供给用户进行个人数据安全存储,用户可以根据需求将一些认为重要的个人数据迁移到该RPMB个人加密分区。RPMB个人加密分区由用户设置使用密码。电子设备将用户设置的密码与电子设备的预设信息进行合并,然后采用安全哈希算法对合并后得到的数据进行处理,得到RPMB个人加密分区的预设密钥。该RPMB个人加密分区的预设密钥可以有效保障RPMB个人加密分区中的个人数据的安全性。当RPMB个人加密分区中存储的数据被触发删除、修改、复制或迁移时,电子设备会要求用户输入密码,并且将用户输入的密码进行有预设算法处理并与预设密钥进行比对,并根据比对结果确定是否验证成功,只有输入密码验证成功的情况下才能对RPMB个人加密分区中存储的数据进行删除、修改、复制或迁移,否则不作处理,这样能够防止用户数据被恶意篡改,因此本申请方案可以有效保障RPMB个人加密分区中的个人数据的安全性。
其中,该RPMB公用加密分区中用于加密存储电子设备中的预设数据,例如预设数据包括指纹相关信息、电子钱包相关信息、安全证书等。该RPMB公用加密分区用户不支持用户自定义设置。
可以看出,与相关技术中eMMC存储器的RPMB分区仅用于加密存储特定的安全信息相比而言,本申请方案在此基础上对硬件进行了改进:电子设备在出厂时将eMMC存储器的RPMB分区划分为两个或多个RPMB分区,将其中一个RPMB分区预留给用户使用,其他RPMB分区用于存储安全信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用有机发光二极管(organic light-emitting diode,OLED)。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100还包括各类传感器,可以将各种不同的物理信号转换为电信号。示例性的,压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。陀螺仪传感器180B可以用于确定电子设备100的运动姿态。气压传感器180C用于测量气压。磁传感器180D包括霍尔传感器。加速度传感器180E可检测电子设备100在各个方向上(一般为三轴)加速度的大小。距离传感器180F,用于测量距离。电子设备100可以通过红外或激光测量距离。接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。环境光传感器180L用于感知环境光亮度。电子设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。指纹传感器180H用于采集指纹。电子设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。温度传感器180J用于检测温度。在一些实施例中,电子设备100利用温度传感器180J检测的温度,执行温度处理策略。骨传导传感器180M可以获取振动信号。
触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
示例性的,在本申请实施例中,触摸传感器180K可以检测用户对应用程序的图标的点击操作,并将检测到的点击操作传递给应用处理器,确定该点击操作用于启动或运行该应用程序,进而执行该应用程序的运行操作。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
以上是以电子设备100为例对本申请实施例作出的具体说明。应该理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。电子设备100可以具有比图中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
本申请实施例提供的电子设备可以是用户设备(user equipment,UE),例如可以为移动终端(例如用户手机)、平板电脑、桌面型、膝上型笔记本电脑、手持计算机、上网本、个人数字助理(personal digital assistant,PDA)等设备。
另外,在上述部件之上,运行有操作系统。例如苹果公司所开发的iOS操作系统,谷歌公司所开发的Android开源操作系统,微软公司所开发的Windows操作系统等。在该操作系统上可以安装运行应用程序。
电子设备100的操作系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
图5是本申请实施例的电子设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层(applications),应用程序框架层(application framework),系统运行库层,以及内核层(kernel)。
其中,应用程序层可以包括一系列应用程序包。例如,应用程序层可以包括个人保险箱、相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息、运动健康、智慧生活等应用程序(应用程序可以简称为应用),本申请实施例对此不做任何限制。
应用程序层中的应用可以分为系统应用和非系统应用,其中,系统应用具体可以包括桌面,系统用户界面(System UI)、个人保险箱、短信息等,非系统应用可以包括游戏,地图,短视频,社交应用,购物应用、运动健康、智慧生活等。
本申请实施例中,上述软件应用“个人保险箱”可以提供个人数据安全存储业务,在用户使用“个人保险箱”的场景中,电子设备可以通过硬件的eMMC存储器中RPMB分区中的一个分区(下文称之为RPMB个人加密分区)来实现个人数据的安全存储。电子设备可以在桌面中,或者在系统用户界面(例如设置界面)中显示“个人保险箱”应用,例如以文字或图标形式呈现给用户,供用户使用。
本申请实施例中,应用程序层还可以包括情景感知模块、业务逻辑处理模块和业务呈现模块等。情景感知模块、业务逻辑处理模块和业务呈现模块可以是独立的APP,或者可以分别集成在不同的APP中,或者可以集成在同一个APP中,本申请不做限定。
其中,情境感知模块,常驻运行或以低功耗形式运行,具有感知外部事实或者环境的能力。情境感知模块可以通过应用程序接口(application programming interface,API)从应用程序层的其他应用程序或应用程序框架层或系统层或内核层来检测相关事件和获取事件的状态,比如检测蓝牙连接、网络连接、监测用户短信、定制定时器等。在本申请实施例中,情境感知模块主要作用是监听个人保险箱是否被触发启用(在个人保险箱开启后,RPMB个人加密分区可用)的事件(简称为个人保险箱启用事件),以及监听某些文件是否被触发迁移到个人保险箱的事件(简称为文件迁移事件),以及监听个人保险箱中的文件是否被触发删除或复制或修改或迁移等事件(简称为文件处理事件);当情境感知模块监听到上述事件时,情境感知模块将上述事件通知给业务逻辑处理模块。
业务逻辑处理模块(如:计算引擎)具有业务逻辑处理能力,用于判断是否有权限将用户数据迁移到个人保险箱的逻辑,还用于判断是否有权限对个人保险箱中的个人数据进行删除或复制或修改的逻辑。例如,业务逻辑处理模块接收到用户触发的文件迁移事件及情境感知模块发送的用户输入密码,然后根据用户输入密码判断是否具有使用个人保险箱的权限,从而判断是否将文件迁移到个人保险箱。再例如,业务逻辑处理模块接收到用户触发的文件处理事件及情境感知模块发送的用户输入密码,然后根据用户输入密码判断是否具有使用个人保险箱的权限,从而判断是否对个人保险箱中存储的文件进行相应处理(如删除或复制或修改或迁移)。
业务呈现模块(如:YOYO建议),用于在手机的屏幕上显示个人保险箱图标或者展示个人保险箱中存储的文件。例如,业务呈现模块接收到业务逻辑处理模块发送的显示个人保险箱图标的命令,通知窗口管理器将该个人保险箱图标显示在电子设备上。再例如,业务呈现模块接收到业务逻辑处理模块发送的显示个人保险箱中存储的文件的命令,然后通知文件存储管理器调用该个人保险箱中存储的文件,将文件显示在电子设备的屏幕上。
应用程序框架层为应用程序层的应用程序提供应用编程接口API和编程框架。应用程序框架层包括一些预先定义的函数。示例性地,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,资源管理器,通知管理器等,活动管理器,文件存储管理器等,本申请实施例对此不做任何限制。
文件存储管理器用于管理电子设备中用户数据的存储及调用。例如,文件存储管理器将用户数据通常存储于eMMC器件中的用户数据区,此时写入或读取无需用户输入密码;对于用户认为重要的数据,文件存储管理器可以根据用户需求,将一些数据迁移到eMMC器件中RPMB分区中的RPMB个人加密分区,此时写入需要用户输入密码且在密码验证成功后才会执行。并且,文件存储管理器可以根据用户需求,对RPMB分区中的RPMB个人加密分区中已存储的个人数据进行删除或复制或修改或迁移等处理,此时需要用户输入密码且在密码验证成功后才会执行。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,在本申请实施例中,视图系统可用于在桌面和设置界面中,显示个人保险箱的图标。
窗口管理器用于管理窗口程序,窗口管理器可以获取显示屏尺寸,判断是否有状态栏,锁定屏幕,截取屏幕等。
活动管理器用于管理各个应用程序的生命周期以及导航回退功能,负责Android的主线程创建,各个应用程序的生命周期的维护。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如,在本申请实施例中,可以在状态栏以文本信息提示用户设置密码,或者以发出提示音,电子设备振动或者指示灯闪烁等方式进行通知提示。
系统运行库层可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(media libraries),三维图形处理库(例如:openGL ES),二维图形引擎(例如:SGL)等。表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了二维图层和三维图层的融合。
其中,系统运行库层也称为原生(Native)层,Native层属于本地框架,提供本地服务和链接库。下文中讨论的非安全运行环境REE和安全运行环境TEE均位于Native层。
系统运行库层还包括安卓运行时(Android Runtime),该安卓运行时包括核心库和虚拟机。Android Runtime负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
需要说明的是,本申请实施例虽然以Android系统为例进行说明,但是其基本原理同样适用于基于iOS或Windows等操作系统的电子设备。
下面进一步介绍电子设备的软件系统的运行环境。
如图6所示,电子设备上部署了非安全运行环境REE和安全运行环境TEE。其中,非安全运行环境为电子设备上的复杂执行环境(rich executable environment,REE),运行安卓(Android)操作系统或者iOS等操作系统,REE泛指不具备特定安全功能的运行环境。安全运行环境为可信执行环境(trust executable environment,TEE),运行一个安全操作系统。其中,TEE访问的软硬件资源与REE是隔离的,电子设备上的软硬件资源可以分别标识为两种执行环境状态,标识为安全执行状态的软硬件资源只能由TEE执行环境所访问,标识为非安全执行状态的软硬件资源则可以被两种执行环境所访问。
TEE 是一种具有运算和储存功能,能提供安全性和完整性保护的独立处理环境。其基本思想是:在硬件中为敏感数据单独分配一块隔离的内存,所有敏感数据的计算均在这块内存中进行,并且除了经过授权的接口外,硬件中的其他部分不能访问这块隔离的内存中的信息,以此来实现敏感数据的隐私计算。TEE构造了一个与REE隔离的安全运行环境,可以为授权的可信软件提供安全的执行环境。
也就是说,在REE中运行的操作系统(例如安卓操作系统)可提供比TEE中的可信的操作系统更丰富的特性,能接受各种类型的应用程序,但其安全性也低于可信的操作系统。
参考图6所示,运行于TEE中的应用程序称为可信应用程序(trustedapplication,TA),TA的数量可以有一个或多个。TA的界面可称为可信用户界面(trusteduser interface,TUI)。运行于REE中的应用程序称为客户应用程序(client application,CA),CA的数量可以有一个或多个。CA的界面可称为用户界面(User Interface,UI)。举例来说,CA具体可以是各种支付应用、银行客户端、手机盾应用、电子身份证、手机POS或其他等涉及账号、密码等敏感信息输入的应用软件;TA是与CA对应的安全应用,TA能够为CA提供安全服务,如输入密码,生成交易签名,人脸识别等,用于完成CA中涉及的敏感信息的输入操作。
关于本申请所有实施例涉及的REE、TEE、CA、TA等术语的定义,还可以参见全球平台组织GP提出的TEE相关标准。
本申请方案中采用REE+TEE架构,通过TEE与REE结合共同为应用提供服务。TEE与REE共同存在于电子设备中。通过硬件的支撑,实现TEE与REE的隔离,具有安全能力并且能够抵御常规REE侧易遭受的软件攻击。TEE有自身的运行空间,定义了严格的保护措施,因此,比REE的安全级别更高,能够保护TEE中的数据和软件等免受软件攻击,抵抗特定类型的安全威胁。
具体到本申请方案,eMMC代理、RPMB的接口及驱动位于TEE环境中,eMMC驱动和RPMB代理位于REE环境中,“个人保险箱”软件在REE环境中有对应的CA(假设为CA2),并在TEE环境中有对应的TA(假设为TA2)。由于TEE能够保证敏感数据在隔离和可信的环境内被处理,因此可以免受来自REE中的软件攻击。
参考图6所示,一方面,运行于TEE中的TA可以为REE中的CA提供安全相关的功能或服务。在TEE中运行的可信的操作系统可向TA提供TEE内部接口(TEE Internal API),TA通过TEE内部接口来获取安全资源和服务的访问权限,这些安全资源和服务包括但不限于:密钥注入和管理、加密、安全存储、安全时钟、可信用户界面(TUI)和可信键盘等。
另一方面,运行在REE中的CA可以利用TEE提供的外部接口(也称为TEE客户端接口,TEE Client API)来请求TEE中的TA所提供的安全服务。CA可以通过TEE客户端API(TEEClient API)对TA进行调用并指示TA执行相应的安全操作。例如,在移动支付、网上银行转账等场景下,如果涉及用户敏感信息的输入和显示,REE 中的CA可以通过TEE提供的外部接口来调用TEE侧的TUI和可信键盘服务,以防止REE侧的应用对用户敏感信息的恶意程序监听和窃取。
基于Linux系统(例如操作系统)的体系架构还可分为用户态(user mode)和内核态(kernel mode)。内核从本质上看是一种软件——控制计算机的硬件资源,并提供上层应用程序运行的环境。用户态即上层应用程序的活动空间,应用程序的执行必须依托于内核提供的资源,包括CPU资源、存储资源、I/O资源等。为了使上层应用能够访问到这些资源,内核必须为上层应用提供访问的接口,即系统调用。
应理解,CA运行于REE的用户态,TA运行于REE的用户态。在REE的内核态中部署有驱动模块,例如驱动模块包括供REE访问TEE的驱动接口:信任域驱动(TzDriver),以及eMMC驱动。在TEE的内核态中也部署有驱动模块:RPMB驱动。REE和TEE中的驱动模块都可以访问对应的硬件设备。例如,TA可通过调用GPU实现在显示屏中显示CA的UI。REE的驱动模块还可包括RPMB代理功能模块。此外,REE中还可部署REE控制模块,TEE中还可部署TEE控制模块,CA可以通过REE控制模块和TEE控制模块来访问TA,实现相应的安全操作。例如,REE控制模块可以根据CA的TUI访问请求(或TUI显示请求)调用REE侧的驱动模块驱动硬件设备退出非安全的工作模式;在硬件设备退出非TUI模式后,TEE控制模块可以根据REE控制模块发送的消息,调用TEE侧的驱动模块驱动硬件设备切换为TUI模式,实现与REE的硬件隔离,然后可以调用对应的TA,实现CA对TA的访问、签名、确认等以及在显示屏中的显示TA的TUI。上述REE的驱动模块、TEE的驱动模块,以及REE控制模块、TEE控制模块等具体功能均可通过电子设备中的处理器实现。
本申请实施例中,为了安全地与用户进行交互,安全地向用户呈现信息并通过一个可信的界面接收用户输入,TEE中实现了TUI以及相关的接口。可以理解,TEE提供了可信用户界面TUI功能。通过在TUI上操作,用户可以安全地输入敏感信息,在用户输入界面、系统、应用程序之间形成一个安全的通道,可以安全地把敏感信息传递给应用层,保证用户输入的敏感信息不被盗取。
图7示出了RPMB驱动与eMMC驱动之间的交互示意图。RPMB驱动在安全系统侧,eMMC驱动在非安全系统侧。RPMB驱动可以通过TEE代理模块(例如RPMB监听模块)将ioctl命令下发给eMMC驱动。具体地,RPMB驱动在安全系统侧组包完成后,向TEE代理模块发送请求,切换至非安全系统侧,然后将包数据以及相应的参数发送向TEE代理模块,由TEE代理模块完成命令下发。eMMC驱动可以根据命令做处理,并通过TEE代理模块将处理结果返回给RPMB驱动,切换至安全系统侧。在计算机中,ioctl(input/output control)是一个专用于设备输入输出操作的系统调用,该调用传入一个跟设备有关的请求码,系统调用的功能完全取决于请求码。
本申请实施例提供的用户数据的安全存储方法基于图6所示的软件运行环境运行,具体实现过程将在下文进行详细描述。
本申请实施例提供的用户数据的安全存储方法的执行主体可以为上述的电子设备,也可以为该电子设备中能够实现该用户数据的安全存储方法的功能模块和/或功能实体,并且本申请方案能够通过硬件和/或软件的方式实现,具体的可以根据实际使用需求确定,本申请实施例不作限定。
下面以电子设备为例,结合附图以及具体的实施例对本申请实施例提供的用户数据的安全存储方法进行示例性的说明。
首先需要说明的是,电子设备包括eMMC存储器,eMMC存储器中包括用户数据分区(也称为用户数据区)和一个或多个RPMB分区,该用户数据分区用于存储未加密数据,该一个或多个RPMB分区用于存储加密数据。
在本申请实施例中,该一个或多个RPMB分区中包括RPMB个人加密分区和RPMB公用加密分区。其中,RPMB个人加密分区为在电子设备出厂前在RPMB分区中预先划分的一个存储区域。RPMB个人加密分区可以供用户使用,用于加密存储用户认为的一些重要数据。公用加密分区中用于加密存储电子设备中的预设数据,例如该RPMB公共存储区可以存储诸如安全证书等电子设备出厂预置的设备安全数据;以及存储诸如指纹相关信息和电子钱包相关信息等用户使用设备所需的个人安全数据。
需要说明的是,这里示例性地以RPMB个人加密分区和公用加密分区分别命名两个分区,可以理解,在实际实现时,这两个分区还可以采用其他任意可能的命名,本申请实施例不作限定。
与相关技术对比而言,相关技术中eMMC存储器中的RPMB分区并没有RPMB个人加密分区,即没有供用户使用的加密存储区域,而本申请实施例的技术改进方案为,在电子设备出厂时,电子设备内置的eMMC存储器中已经划分了多个RPMB分区,预留其中的一个RPMB分区供用户使用。
其中,在实际实现时,供用户使用的该RPMB分区在电子设备上可以体现为“个人保险箱”应用。“个人保险箱”应可以提供个人数据安全存储业务,在用户使用“个人保险箱”的场景中,电子设备可以通过硬件的eMMC存储器中RPMB分区中的一个分区(即RPMB个人加密分区)来实现个人数据的安全存储。示例性地,如图8所示,电子设备可以在系统用户界面(例如设置界面)中显示“个人保险箱”的设置项,供用户设置;还可以在桌面中显示“个人保险箱”的应用图标,供用户使用。
需要说明的是,本申请实施例以“个人保险箱”为例在UI界面中展示给用户,可以理解,在实际实现时,“个人保险箱”还可以采用其他命名进行替换,本申请实施例对此不作限定。
还需要说明的是,本申请实施例中,RPMB个人加密分区的预设密钥与RPMB公用加密分区的预设密钥是不同的。其中,对于公用加密分区,可以如相关技术中所采用的方式生成预设密钥,例如电子设备可以将CPU芯片的单体标识默认作为RPMB公共存储区的预设密钥。
下面分别从“个人保险箱”的用户设置过程以及“个人保险箱”的用户使用过程两方面,对本申请实施例提供的用户数据的安全存储方法进行详细描述。
需要说明的是,该用户数据的安全存储方法应用于电子设备,该方法可以由电子设备(例如手机)执行。电子设备的硬件结构图可以如图4所示,电子设备的软件结构框图可以如图5所示,但本申请实施例并不限于此。
第一实施例:“个人保险箱”的用户设置过程
图9为本申请实施例提供的一种用户数据的安全存储方法的示意性流程图。
S101,在电子设备开机后,电子设备默认开启个人数据安全存储业务。
在本申请实施例中,在个人数据安全存储业务开启的情况下,RPMB个人加密分区允许被用户使用。
S102,在RPMB个人加密分区未设置密码的情况下,电子设备提示用户设置密码。
示例性地,在RPMB个人加密分区未设置密码的情况下,电子设备可以显示提示信息,该提示信息可以提示:电子设备为用户提供了用于安全存储个人数据的硬件存储区(即RPMB个人加密分区);请用户为该硬件存储区设置密码。
S103,电子设备接收用户输入的密码(第二密码)。
在一些实施例中,用户输入的密码可以为以下任一项:数字密码、图形密码、生物特征密码。示例性地,生物特征密码可以为虹膜特征密码、指纹特征密码、人脸特征密码、声纹特征密码等。
S104,电子设备采用预设算法将用户输入的密码和预设信息进行处理,得到第一密钥。
在本申请实施例中,电子设备可以根据用户输入的密码生成安全密钥(预设密钥)。可选地,根据用户输入的密码生成预设密钥的方式可以为如下任一种方式:
方式一:电子设备采用加密算法对用户输入的密码进行处理,得到预设密钥。
具体地,电子设备可以采用安全哈希算法(secure hash algorithm,SHA)对用户输入的密码进行处理,得到预设密钥。安全哈希算法也称为安全散列算法。需要说明的是,这里以加密算法是安全哈希算法为例进行示例性地说明,在实际实现时,还可以采用其他可能的加密算法,本申请实施例不作限定。
举例来说,在用户输入指纹特征密码进行设置的情况下,电子设备可以采用安全哈希算法对指纹特征密码进行处理,得到预设密钥。
方式二:电子设备采用预设算法将用户输入的密码和预设信息进行处理,得到预设密钥。
其中,预设算法可以包括将用户输入的密码和所述预设信息进行合并,然后采用安全哈希算法对合并后得到的数据进行处理。具体地,电子设备可以将用户输入的密码和预设信息进行合并处理,然后采用安全哈希算法对合并后得到的数据进行处理,得到预设密钥。
举例来说,在用户输入数字密码123456进行设置的情况下,电子设备可以采用安全哈希算法对数字密码123456和预设信息进行处理,得到预设密钥。
需要说明的是,为了便于描述,在S104中以上述方式二为例进行示例性地说明。
在一些实施例中,预设信息可以为设备唯一单体标志,例如电子设备的CPU芯片的序列编号(serial number,SN),该序列编号是CPU独有的标识。可以理解,在实际实现时,电子设备还可以采用其他可能的信息,作为预设信息,本申请实施例不作限定。
其中,CPU芯片的序列编号,也称为产品序列码、芯片出厂序列号、机器码、认证码、注册申请码等,是指包含芯片类型的一组字母和数字组成的编号,其命名规则由各生产厂商确定。
本申请方案将用户设置的密码与设备唯一单体标志合并后做SHA计算,可获取到不可逆的单体唯一数据,将该不可逆的单体唯一数据作为安全密钥,提升了数据存储的安全性。
S105,电子设备将第一密钥,设置为RPMB个人加密分区的预设密钥(也称为安全密钥)。
需要说明的是,电子设备可以将该预设密钥存储于OTP寄存器中,由于OTP寄存器是单片机中只能烧写一次的区域,即程序烧入单片机后,将不可再次更改和清除,因此预设密钥为一次设置生效的永久性密钥,不支持修改。即,该密钥为一次性的,无法重新写入。用户在设置完成后,该手机的RPMB个人加密分区就属于该用户个人专有。
经过上述过程,“个人保险箱”已经设置完成,保险箱的“钥匙”由用户密码生成,只有用户自己知道,直接从硬件层面保护了用户数据。
还需要说明的是,对RPMB个人加密分区中已存储数据的任何操作(例如删除、复制、修改或者迁移),均需要密码验证,可有效保障了用户数据的安全;并且由于RPMB个人加密分区的密钥是经过加密算法处理后得到的,不容易被破解,因此RPMB个人加密分区中的用户数据不会被轻易删除、复制、修改或者迁移,可以避免用户个人信息被泄露,提升了数据存储的安全性。
以上说明“个人保险箱”的用户设置过程的流程示意图,下面结合图10所示的软件运行环境来描述“个人保险箱”的用户设置过程。如图10所示,在电子设备启用“个人保险箱”应用之后,电子设备可以显示用户密码输入界面,指示用户设置“个人保险箱”的密码。在用户输入“个人保险箱”的密码之后,将密码设置指令从REE运行环境经过下述通道(如图10中数字序号所示顺序)传递到TEE运行环境以完成密码设置:应用程序层→FWK层→原生层(Native)→硬件层;具体地,“个人保险箱”对应的CA2→TEE客户端API→信任域/RPMB驱动→TEE代理→TEE API→“个人保险箱”对应的TA2→TEE API→RPMB API→ RPMB驱动→RPMB个人加密分区。其中,RPMB驱动中的数据加密/解密模块可以根据用户设置的密码,生成RPMB个人加密分区的密钥(称为密钥1)。然后数据解密模块将密钥1发送给RPMB驱动中的密钥管理模块,密钥管理模块用于管理RPMB个人加密分区的密钥1和RPMB公用加密分区的密钥2。
其中,上述根据用户设置的密码,生成RPMB个人加密分区的密钥的方式具体可以参见上述根据用户输入的密码生成预设密钥的方式一或者方式二所述,此处不再赘述。
图11为“个人保险箱”的用户设置过程的界面示意图。如图11中(a)所示,用户通过下拉操作触发显示消息通知栏,如图11中(b)所示,电子设备显示消息通知栏,该消息通知栏提示已开启“个人保险箱”,请设置密码。当用户点击“个人保险箱”的请设置密码控件后,如图11中(c)所示,电子设备显示密码设置窗口。当用户输入密码后,如图11中(d)所示,电子设备显示“个人保险箱”的操作界面,并提示密码设置成功。
图12为“个人保险箱”的界面示意图。如图12中(a)所示,电子设备可以在桌面中显示“个人保险箱”的应用图标,在用户点击“个人保险箱”的应用图标的情况下,如图12中(b)所示,电子设备弹出密码输入框。如图12中(c)所示,当用户输入“个人保险箱”的密码后,电子设备验证密码是否正确。如图12中(d)所示,当电子设备验证密码正确时,电子设备“个人保险箱”的操作界面。其中,“个人保险箱”的操作界面可以显示图片、视频、文本等分类项。用户可以根据实际用户需求,随时查看各分类项中存储的数据。可以理解,在密码输入错误的情况下,“个人保险箱”的操作界面不会被展示,从而可以保障用户数据的安全存储,避免数据被泄露。
第二实施例:“个人保险箱”的用户使用过程
在完成上述第一实施例中对个人保险箱的设置过程之后,用户可以根据个人需求使用个人保险箱进行数据迁移或者数据处理。例如,在数据迁移场景(场景一)中,响应于用户的操作,电子设备可以将存储于用户数据区的一些数据迁移到RPMB个人加密分区中进行加密存储。再例如,在数据处理场景(场景二)中,可以将存储于用户数据区的一些数据迁移到RPMB个人加密分区中进行加密存储。
场景一:数据迁移场景
图13为本申请实施例提供的一种用户数据的安全存储方法的示意性流程图。可以理解,图13所示的步骤在图9所示的步骤之后执行。
S201,响应于用户对电子设备的操作,电子设备显示第一文件,第一文件存储于用户数据分区。
其中,该用户数据分区为非加密存储区域。
其中,第一文件可以为以下任一种形式的文件:图片、视频、文本。示例性地,用户对电子设备的操作可以是用户触发电子设备的相机进行拍照或录像的操作,此时第一文件可以是照片或视频。或者,用户对电子设备的操作还可以是用户点击下载控件,触发从网络下载文件的操作,此时第一文件可以是照片或视频或文本。或者,用户对电子设备的操作还可以是用户点击文件图标或索引,触发电子设备显示文件的操作,此时第一文件可以是照片或视频或文本。
需要说明的是,本申请实施例不限定用户对电子设备的操作的具体形式,也不限定第一文件的形式。
S202,响应于用户对第一文件的文件迁移操作,电子设备提示用户输入密码。
其中,文件迁移操作为将用户所选文件迁移到RPMB个人加密分区进行存储的操作。
S203,响应于用户输入密码的操作,电子设备接收用户输入的密码(也称为第三密码)。
S204,电子设备采用预设算法对预设信息和用户输入的密码进行处理,得到第二数据。
S205,电子设备判断第二数据与RPMB个人加密分区的预设密钥是否相同。
其中,预设密钥是电子设备的预设信息和用户预先设置的密码在经过预设算法处理后得到的密钥。
在第二数据与RPMB个人加密分区的预设密钥相同的情况下,电子设备对第三密码验证成功,继续执行下述的S206。在第二数据与RPMB个人加密分区的预设密钥不相同的情况下,第三密码验证失败,继续执行下述的S207。
S206,电子设备将第一文件存储到RPMB个人加密分区,并删除用户数据分区中存储的第一文件。
S207,电子设备提示密码错误。
可以理解的是,当密码错误时,电子设备不作文件迁移。
其中,S206和S207二者择一执行。
需要说明的是,这里以用户输入密码且验证成功的情况下实现文件迁移为例进行示例性地说明,可以理解,在实际实现时,还可以响应于用户的文件迁移操作,直接将用户所选文件直接迁移到RPMB个人加密分区,而无需用户输入密码,从而便于用户的文件存储操作。
以上说明将文件迁移到“个人保险箱”的流程示意图,下面结合图14A和图14B来描述将文件迁移到“个人保险箱”的过程。如图14A所示,在“个人保险箱”应用启用的情况下,用户可以根据需求将一些文件放入“个人保险箱”。假设用户数据分区中存储有待保护数据,用户需要将该待保护数据从用户数据分区迁移或搬移到RPMB个人加密分区中。
当用户在文件上操作触发移入“个人保险箱”时,应用程序层的数据迁移模块会触发在UI界面显示用户密码输入界面,以验证用户是否具有使用“个人保险箱”的权限,保障用户数据安全。
示例性地,如图15所示,用户在某一图片上长按,触发在界面弹出功能菜单,当用户点击移入“个人保险箱”功能项时,电子设备显示用户密码输入界面,指示用户输入“个人保险箱”的密码。在另一些实施例中,当用户在文件上操作触发迁移到“个人保险箱”时,电子设备直接将用户所选文件直接迁移到“个人保险箱”,而无需密码。这里以需要用户输入密码并进行密码验证为例进行说明。
在用户选择文件并输入“个人保险箱”的密码之后,“个人保险箱”应用将用户输入的密码以指令形式传递到TEE运行环境先进行密钥生成,然后根据密钥完成身份验证,然后TEE运行环境将验证结果返回给“个人保险箱”应用。
示例性地,继续参考图14A所示,按照如图14A中数字序号所示顺序、沿箭头所示方向:“个人保险箱”应用接收用户选择数据的操作→显示用户密码输入界面→接收用户输入密码的操作;然后传递密码的过程包括:“个人保险箱”应用→FWK层→CA2→TEE客户端API→信任域/RPMB驱动→TEE代理→TEE客户端API→数据保存服务的密钥生成处理模块,密钥生成处理模块根据用户输入的密码生成密钥;然后密钥经过下述信道完成密钥验证:密钥生成处理模块→TEE API→RPMB API→ RPMB驱动的密钥管理模块,密钥管理模块将接收到的密钥与RPMB个人加密分区的预设密钥进行比对。在密钥相同的情况下,密钥管理模块返回密码验证成功或通过的消息,例如返回路径为:密钥管理模块→RPMB API→TEE API→密钥生成处理模块→FWK层→“个人保险箱”应用。然后,“个人保险箱”应用将密码验证成功的消息发送给数据迁移模块。
然后,再参考图14B所示,数据迁移模块在接收到密码验证成功的消息之后,下发数据迁移命令,数据迁移命令用于指示将用户数据分区的待保护数据迁移到RPMB个人加密分区,该命令传输路径为(如图14B中数字序号所示顺序、沿箭头所示方向):数据迁移模块→FWK层→CA2→TEE客户端API→信任域/RPMB驱动→eMMC驱动→用户数据分区→eMMC驱动→信任域/RPMB驱动→TEE代理→TEE客户端API→信任域/RPMB驱动→TEE代理→TEE API→数据保存服务中的数据写入管理模块→TEE API→TEE代理→数据封装→RPMB个人加密分区。由此,将待保护数据从用户数据分区迁移到RPMB个人加密分区中。
需要说明的是,这里以用户先选择文件,触发移入“个人保险箱”,后输入密码进行验证为例进行说明(如图15所示),可以理解,在实际实现时,还可以支持其他各种可能的实现方式,例如,在用户输入密码并验证成功后,电子设备显示“个人保险箱”的操作界面,然后用户可以通过该界面的添加入口实现文件迁移。
示例性地,图16为另一种将数据移入“个人保险箱”的界面示意图。如图16中(a)所示,电子设备显示“个人保险箱”的操作界面,其中每个分类项均显示有添加控件,该添加控件可以用于触发将用户数据分区的数据迁移到“个人保险箱”的该分类项中。当用户点击图片分类项中的添加控件后,如图16中(b)所示,电子设备可以跳转到照片界面。当用户点击某一图片后,如图16中(c)所示,电子设备可以显示功能菜单栏,用户可以通过选择功能菜单栏中的移入“个人保险箱”控件,实现将所选图片移入“个人保险箱”。
场景二:数据处理场景
在一些实施例中,对于存储于“个人保险箱”中的用户数据,用户可以设置访问权限,在访问“个人保险箱”时需要输入密码,只有在密码验证成功才能访问查看存储于“个人保险箱”中的用户数据,这样可以提升数据安全性。
在另一些实施例中,对于存储于“个人保险箱”中的用户数据,用户也可以设置访问无需输入密码,这样可以支持用户快速访问存储于“个人保险箱”中的用户数据,提升数据访问便捷性。
在另一些实施例中,对于存储于“个人保险箱”中的用户数据,设置了修改、复制、删除及迁移等权限,也就是说,当电子设备检测到用户对“个人保险箱”中的用户数据进行修改、复制、删除或者迁移时,电子设备会提示用户输入密码,只有在密码验证成功才能对存储于“个人保险箱”中的用户数据进行修改、复制、删除或者迁移。这样,例如在手机丢失的场景下,手机中存储于“个人保险箱”中的用户数据,不会被轻易修改、复制、删除或者迁移,因此可以提升数据安全性。
在另一些实施例中,当电子设备恢复出厂设置时,用户数据分区中的数据被删除,RPMB个人加密分区中的数据被保留,即不会被删除。
图17为本申请实施例提供的一种用户数据的安全存储方法的示意性流程图。需要说明的是,图17所示的步骤在图13所示的步骤S206之后执行。
S301,响应于用户对第一文件进行第一处理的操作,电子设备提示用户输入密码;其中,该第一文件为存储于RPMB个人加密分区的数据,第一处理为修改、复制、删除或者迁移。
在一些可能实现方式中,响应于用户在第一文件对应的标识上的操作,电子设备在第一文件的图标上显示多个功能选项,多个功能选项包括以下至少一项:删除、修改、复制、迁移;响应于用户对多个功能选项中任一项的操作,电子设备提示用户输入密码。其中,第一文件对应的标识为以下任一种形式的标识:缩略图、图标、标签、地址索引、文件夹。
S302,响应于用户输入密码的操作,电子设备接收用户输入的密码(第一密码)。
S303,电子设备采用预设算法对电子设备的预设信息和用户输入的密码进行处理,得到第一数据。
S304,电子设备根据第一数据与RPMB个人加密分区的预设密钥之间的比对结果,对第一密码进行验证。
其中,预设密钥是电子设备的预设信息和用户预先设置的密码在经过预设算法处理后得到的密钥。
在一些可能实现方式中,电子设备将第一数据与预设密钥进行比对;当第一数据与预设密钥相同时,电子设备确认第一密码验证成功;或者,当第一数据与预设密钥不同时,电子设备确认第一密码验证失败。
S305,在第一密码验证成功的情况下,电子设备对第一文件进行第一处理。
在一些实施例中,响应于用户对该第一文件进行复制的操作,电子设备提示用户输入密码;响应于用户输入密码的操作,电子设备接收用户输入的密码;当密码验证成功的情况下,电子设备复制该第一文件。
在一些实施例中,响应于用户对该第一文件进行删除的操作,电子设备提示用户输入密码;响应于用户输入密码的操作,电子设备接收用户输入的密码;当密码验证成功的情况下,电子设备删除该第一文件。
在一些实施例中,响应于用户对该第一文件进行修改的操作,电子设备提示用户输入密码;响应于用户输入密码的操作,电子设备接收用户输入的密码;当密码验证成功的情况下,电子设备对该第一文件进行相应修改。
在一些实施例中,响应于用户对该第一文件进行迁移的操作,电子设备提示用户输入密码;响应于用户输入密码的操作,电子设备接收用户输入的密码;当密码验证成功的情况下,电子设备将该第一文件迁移到其他存储区域。
S306,在第一密码验证失败的情况下,电子设备不执行第一处理。
其中,S305和S306二者择一执行。
本申请实施例提供的用户数据的安全存储方法,在硬件和软件上进行改进,在eMMC存储器的RPMB分区中划分出个人加密分区,并允许用户将一些用户数据迁移到该个人加密分区中进行加密存储。对RPMB个人加密分区中已存储数据的任何操作(例如删除、复制、修改或者迁移),均需要密码验证。通过将用户输入的密码进行有预设算法处理并与预设密钥进行比对,并根据比对结果确定是否验证成功,只有在验证成功的情况下才能对个人加密分区中存储的数据进行删除、修改、复制或迁移,否则不作处理,因此本申请方案能够防止用户数据被泄露,有效保障个人数据的安全性。
在一些可能实现方式中,如图18中(a)所示,在电子设备的设置界面中显示“个人保险箱”功能选项,当用户点击“个人保险箱”功能选项后,如图18中(b)所示,电子设备显示“个人保险箱”的设置界面,该设置界面中包括个人数据安全存储业务的功能开关。响应于用户对功能开关的操作,电子设备可以开启或关闭个人数据安全存储业务。其中,在个人数据安全存储业务开启的情况下,“个人保险箱”被开启,电子设备允许将存储于用户数据分区的数据迁移到RPMB个人加密分区。
需要说明的是,以上实施例以设置一个RPMB个人加密分区为例进行示例性说明,在实际实现时,对于平板电脑或者智慧屏等多人共用的电子设备,还可以设置多个RPMB个人加密分区,供多个用户分别使用。针对不同的RPMB个人加密分区,可以设置不同的使用密码或密钥。
示例性地,以三个家庭成员共用一个平板电脑为例,在平板电脑中可以设置三个RPMB个人加密分区,每个家庭成员都有一个RPMB个人加密分区,并分别设置自己的使用密码,并且可以在用户界面上为每个用户提供能够区分的“个人保险箱”图标,例如分别标识为“爸爸的个人保险箱”、“妈妈的个人保险箱”和“孩子的个人保险箱”。这样能够便于多个用户同时在一个电子设备上分别使用属于自己的“个人保险箱”,实现用户个人数据的安全存储,提升用户使用体验。
与相关技术方案相比,本申请方案具有如下有益效果:
1)RPMB用户加密分区的密钥由用户输入密码和芯片标识共同作用完成,保证了RPMB对应分区的最大限度的独立性和安全性。
2)在将用户数据存储到RPMB用户加密分区的情况下,由于RPMB用户加密分区的密钥中混入了用户设置的密码信息,因此即使电子设备恢复出厂设置,也不会擦除RPMB用户加密分区中的用户数据。
下面给出了本申请方案的一些可能应用场景。这里以电子设备是手机为例进行说明。
应用场景一:“个人保险箱”业务
手机内置的eMMC控制器包括多个RPMB分区,在手机出厂时,预留其中一个RPMB分区(即RPMB用户加密分区)供用户使用,其他RPMB分区用于存储安全信息。当手机初次开机时,提醒用户开启个人保险箱业务,用户可输入个人密码进行设置。
通过本申请方案,在开启个人保险箱业务后,该RPMB用户加密分区可以作为“保险箱”使用,从硬件层面保护了用户数据。在手机丢失或者设备维修时安全区被破解的情况下,存储于RPMB用户加密分区的隐秘数据将不会被窃取或篡改或删除,因此通过“个人保险箱”业务可以使得用户数据得到更好的保护。
应用场景二:恢复出厂设置场景
手机通常将用户的使用数据主要存储在eMMC存储器中未加密的用户数据分区中。当手机执行恢复出厂设置时,通常需要将对应的数据从手机中导出后缓存,因此操作麻烦。
通过本申请方案,在恢复出厂设置时,RPMB用户加密分区可作为临时缓存区。可以将该用户数据分区的数据先缓存到RPMB用户加密分区,由于RPMB用户加密分区在手机恢复出厂设置时不做清除,因此可以在完成恢复出厂设置后,将RPMB用户加密分区缓存的数据恢复到用户数据分区中,操作比较方便。
应用场景三:手机丢失场景
目前,当手机丢失后,厂商提供了诸如手机定位、锁定个人账户等多种保护方案,但是这些都是基于联网的前提实现的。但是在手机不联网情况下通过root(根用户)等技术手段仍然可以将用户数据清除,因此用户数据不易被破坏。
通过本申请方案,由于RPMB个人加密分区的密钥是经过加密算法处理后得到的,不容易被破解,因此RPMB个人加密分区中的用户数据不会被轻易删除、复制、修改或者迁移,可以避免用户个人信息被泄露,提升了数据存储的安全性。
应用场景四:多用户场景
目前,在平板电脑等支持多用户使用的场景中,存在个人数据被其他用户访问的风险,当前都是以软件权限限定来解决隐私泄露的。但是这种软件权限的方案存在破解风险。
通过本申请方案,可以为每个用户分配一个硬件的RPMB分区,来保存自身数据,实现不同用户数据执行硬件的保护隔离。
也需要说明的是,在本申请实施例中,“大于”可以替换为“大于或等于”,“小于或等于”可以替换为“小于”,或者,“大于或等于”可以替换为“大于”,“小于”可以替换为“小于或等于”。
本文中描述的各个实施例可以为独立的方案,也可以根据内在逻辑进行组合,这些方案都落入本申请的保护范围中。
可以理解的是,上述各个方法实施例中由电子设备实现的方法和操作,也可以由可用于电子设备的部件(例如芯片或者电路)实现。
上文描述了本申请提供的方法实施例,下文将描述本申请提供的装置实施例。应理解,装置实施例的描述与方法实施例的描述相互对应,因此,未详细描述的内容可以参见上文方法实施例,为了简洁,这里不再赘述。
上文主要从方法步骤的角度对本申请实施例提供的方案进行了描述。可以理解的是,为了实现上述功能,实施该方法的电子设备包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的保护范围。
本申请实施例可以根据上述方法示例,对电子设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有其它可行的划分方式。下面以采用对应各个功能划分各个功能模块为例进行说明。
图19为本申请实施例提供的用户数据存储装置800的示意性框图。装置800包括eMMC存储器,该eMMC存储器中包括常规的用户数据分区和RPMB分区,该RPMB分区中包括允许用户使用的RPMB个人加密分区。该装置800可以用于执行上文方法实施例中电子设备所执行的动作。该装置800包括显示单元810、接收单元820和处理单元830。
显示单元810,用于响应于用户对第一文件进行第一处理的操作,提示用户输入密码,其中,该第一文件为存储于RPMB个人加密分区的数据,第一处理为修改、复制、删除或者迁移。
接收单元820,用于响应于用户输入密码的操作,接收用户输入的第一密码。
处理单元830,用于采用预设算法对第一密码和装置800的预设信息进行处理,得到第一数据;根据第一数据与RPMB个人加密分区的预设密钥之间的比对结果,对第一密码进行验证;在第一密码验证成功的情况下,对第一文件进行第一处理;在第一密码验证失败的情况下,不执行第一处理。
其中,当装置800恢复出厂设置时,用户数据分区中的数据被删除, RPMB个人加密分区中的数据被保留。
本申请实施例提供的用户数据的安全存储装置,在eMMC存储器的RPMB分区中划分出个人加密分区,并允许用户将一些用户数据迁移到该个人加密分区中进行加密存储。对RPMB个人加密分区中已存储数据的任何操作(例如删除、复制、修改或者迁移),均需要密码验证,通过将用户输入的密码进行有预设算法处理并与预设密钥进行比对,并根据比对结果确定是否验证成功,只有在验证成功的情况下才能对个人加密分区中存储的数据进行删除、修改、复制或迁移,否则不作处理,因此本申请方案能够防止用户数据被泄露,有效保障个人数据的安全性。
根据本申请实施例的装置800可对应于执行本申请实施例中描述的方法,并且装置800中的单元的上述和其它操作和/或功能分别为了实现方法的相应流程,为了简洁,在此不再赘述。
本申请还提供一种芯片,该芯片与存储器耦合,该芯片用于读取并执行存储器中存储的计算机程序或指令,以执行上述各实施例中的方法。
本申请还提供一种电子设备,该电子设备包括芯片,该芯片用于读取并执行存储器存储的计算机程序或指令,使得各实施例中的方法被执行。
本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的用户数据的安全存储方法。
本实施例还提供了一种计算机程序产品,该计算机可读存储介质存储有程序代码,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的用户数据的安全存储方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的用户数据的安全存储方法。
其中,本实施例提供的电子设备、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (17)
1.一种用户数据的安全存储方法,应用于电子设备,所述电子设备包括内嵌式多媒体存储卡eMMC,所述eMMC中包括用户数据分区和重放保护内存块RPMB分区,其特征在于,所述RPMB分区中包括公用加密分区和允许用户使用的RPMB个人加密分区,所述公用加密分区用于加密存储所述电子设备中的预设类型数据,所述公用加密分区的密钥与所述RPMB个人加密分区的预设密钥不同,所述方法包括:
响应于用户对第一文件进行第一处理的操作,所述电子设备提示用户输入密码;其中,所述第一文件为存储于所述RPMB个人加密分区的数据,所述第一处理为修改、复制、删除或者迁移;
响应于用户输入密码的操作,所述电子设备接收用户输入的第一密码;
所述电子设备采用预设算法对所述第一密码和所述电子设备的预设信息进行处理,得到第一数据;其中,所述预设信息为所述电子设备的唯一单体标志;
所述电子设备根据所述第一数据与所述RPMB个人加密分区的预设密钥之间的比对结果,对所述第一密码进行验证;所述预设密钥是所述电子设备的预设信息和用户预先设置的密码在经过所述预设算法处理后得到的密钥;
在所述第一密码验证成功的情况下,所述电子设备对所述第一文件进行所述第一处理;
在所述第一密码验证失败的情况下,所述电子设备不执行所述第一处理。
2.根据权利要求1所述的方法,其特征在于,当所述电子设备恢复出厂设置时,所述用户数据分区中的数据被删除,所述RPMB个人加密分区中的数据被保留。
3.根据权利要求1所述的方法,其特征在于,所述预设类型数据包括安全证书类数据、指纹类数据和电子钱包类数据。
4.根据权利要求1所述的方法,其特征在于,所述预设信息为所述电子设备的CPU芯片的序列编号。
5.根据权利要求1所述的方法,其特征在于,所述预设算法包括将用户输入的密码和所述预设信息进行合并,然后采用安全哈希算法对合并后得到的数据进行处理。
6.根据权利要求1所述的方法,其特征在于,所述RPMB个人加密分区为在所述电子设备出厂前在所述RPMB分区中预先划分的存储区域。
7.根据权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括:
在所述电子设备开机后,所述电子设备默认开启个人数据安全存储业务;其中,在所述个人数据安全存储业务开启的情况下,所述RPMB个人加密分区允许被用户使用;
在所述RPMB个人加密分区未设置密码的情况下,所述电子设备提示用户设置密码;
所述电子设备接收用户输入的第二密码;
所述电子设备根据用户输入的所述第二密码,生成第一密钥;
所述电子设备将所述第一密钥,设置为所述RPMB个人加密分区的预设密钥。
8.根据权利要求7所述的方法,其特征在于,所述电子设备根据用户输入的第二密码,生成第一密钥,包括:
所述电子设备采用所述预设算法将所述第二密码和所述预设信息进行处理,得到所述第一密钥。
9.根据权利要求7所述的方法,其特征在于,所述第二密码为以下任一项:数字密码、图形密码、生物特征密码。
10.根据权利要求1至5中任一项所述的方法,其特征在于,所述电子设备根据所述第一数据与所述RPMB个人加密分区的预设密钥之间的比对结果,对所述第一密码进行验证,包括:
所述电子设备将所述第一数据与所述预设密钥进行比对;
当所述第一数据与所述预设密钥相同时,所述电子设备确认所述第一密码验证成功;或者,
当所述第一数据与所述预设密钥不同时,所述电子设备确认所述第一密码验证失败。
11.根据权利要求1至5中任一项所述的方法,其特征在于,在所述响应于用户对第一文件进行第一处理的操作,所述电子设备提示用户输入密码之前,所述方法还包括:
所述电子设备将所述第一文件从所述用户数据分区迁移到所述RPMB个人加密分区。
12.根据权利要求11所述的方法,其特征在于,所述电子设备将所述第一文件从所述用户数据分区迁移到所述RPMB个人加密分区,包括:
响应于用户对所述电子设备的操作,所述电子设备显示所述第一文件,所述第一文件存储于所述用户数据分区;
响应于用户对所述第一文件的文件迁移操作,所述电子设备提示用户输入密码;
所述电子设备接收用户输入的第三密码;
所述电子设备采用预设算法对所述第三密码和所述预设信息进行处理,得到第二数据;
在所述第二数据与所述RPMB个人加密分区的预设密钥相同的情况下,所述电子设备对所述第三密码验证成功;
所述电子设备将所述第一文件存储到所述RPMB个人加密分区,并删除所述用户数据分区中存储的所述第一文件。
13.根据权利要求11所述的方法,其特征在于,所述方法还包括:
在所述电子设备的设置界面中显示第一功能选项,所述第一功能选项包括个人数据安全存储业务的功能开关;
响应于用户对所述功能开关的操作,所述电子设备开启或关闭所述个人数据安全存储业务;
其中,在所述个人数据安全存储业务开启的情况下,所述电子设备允许将存储于所述用户数据分区的数据迁移到所述RPMB个人加密分区。
14.根据权利要求1至5中任一项所述的方法,其特征在于,所述响应于用户对所述第一文件进行第一处理的操作,所述电子设备提示用户输入密码,包括:
响应于用户在所述第一文件对应的标识上的操作,所述电子设备在所述第一文件的图标上显示多个功能选项,所述多个功能选项包括以下至少一项:删除、修改、复制、迁移;
响应于用户对所述多个功能选项中任一项的操作,所述电子设备提示用户输入密码;
其中,所述第一文件为以下任一种形式的文件:图片、视频、文本;
其中,所述第一文件对应的标识为以下任一种形式的标识:缩略图、图标、标签、地址索引、文件夹。
15.一种电子设备,其特征在于,包括处理器和存储器,所述处理器与所述存储器耦合,所述处理器用于执行所述存储器中存储的计算机程序或指令,以使得所述电子设备实现如权利要求1至14中任一项所述的方法;
其中,所述存储器为eMMC,所述eMMC中包括用户数据分区和RPMB分区,所述RPMB分区中包括公用加密分区以及允许用户使用的RPMB个人加密分区,所述RPMB个人加密分区的密钥与所述公用加密分区的密钥不同。
16.根据权利要求15所述的电子设备,其特征在于,其中,所述RPMB个人加密分区的密钥是所述电子设备的预设信息和用户预先设置的密码在经过所述预设算法处理后得到的密钥;其中,所述预设信息为所述电子设备的CPU芯片的序列编号;所述预设算法包括将用户输入的密码和所述预设信息进行合并,然后采用安全哈希算法对合并后得到的数据进行处理。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求1至14中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211507204.5A CN115544586B (zh) | 2022-11-29 | 2022-11-29 | 用户数据的安全存储方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211507204.5A CN115544586B (zh) | 2022-11-29 | 2022-11-29 | 用户数据的安全存储方法、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115544586A CN115544586A (zh) | 2022-12-30 |
CN115544586B true CN115544586B (zh) | 2023-05-05 |
Family
ID=84722050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211507204.5A Active CN115544586B (zh) | 2022-11-29 | 2022-11-29 | 用户数据的安全存储方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115544586B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881881B (zh) * | 2023-09-07 | 2023-11-24 | 国网思极网安科技(北京)有限公司 | 数据导出方法、装置、电子设备和计算机可读介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106155568A (zh) * | 2015-04-03 | 2016-11-23 | 华为技术有限公司 | 一种存储分区的方法及终端 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107358114A (zh) * | 2017-06-12 | 2017-11-17 | 深圳市金立通信设备有限公司 | 一种防止用户数据丢失的方法及终端 |
US11088845B2 (en) * | 2018-07-03 | 2021-08-10 | Western Digital Technologies, Inc. | Non-volatile memory with replay protected memory block having dual key |
CN110598384B (zh) * | 2019-09-16 | 2022-02-22 | Oppo(重庆)智能科技有限公司 | 信息保护方法、信息保护装置及移动终端 |
-
2022
- 2022-11-29 CN CN202211507204.5A patent/CN115544586B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106155568A (zh) * | 2015-04-03 | 2016-11-23 | 华为技术有限公司 | 一种存储分区的方法及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN115544586A (zh) | 2022-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220247739A1 (en) | Multifactor Contextual Authentication and Entropy from Device or Device Input or Gesture Authentication | |
WO2020192447A1 (zh) | 一种文件访问权限认证方法及电子设备 | |
CN106063185B (zh) | 用于安全地共享数据的方法和装置 | |
US10430350B1 (en) | Secure storage of data through a multifaceted security scheme | |
CN110651270B (zh) | 一种数据访问方法及装置 | |
CN113141610B (zh) | 将设备标识符和用户标识符相关联的设备盗窃防护 | |
AU2019245506B2 (en) | Secured computer system | |
CN105408912A (zh) | 处理认证和资源许可 | |
CN109657448B (zh) | 一种获取Root权限的方法、装置、电子设备及存储介质 | |
TW201905688A (zh) | 授權將於目標計算裝置上執行之操作的設備 | |
WO2013107362A1 (zh) | 一种保护数据的方法和系统 | |
US11625480B2 (en) | Mobile device with secure private memory | |
CN108335105B (zh) | 数据处理方法及相关设备 | |
WO2021087956A1 (zh) | 数据处理的方法、装置和系统芯片 | |
CN111475832A (zh) | 一种数据管理的方法以及相关装置 | |
CN115544586B (zh) | 用户数据的安全存储方法、电子设备及存储介质 | |
Mayrhofer | An architecture for secure mobile devices | |
KR20190033930A (ko) | 보안 정보를 암호화하는 전자 장치 및 그 작동 방법 | |
CN113724424A (zh) | 用于设备的控制方法和装置 | |
CN114244565B (zh) | 密钥分发方法、装置、设备及存储介质 | |
CN117492636A (zh) | 数据存储方法和电子设备 | |
JP6741236B2 (ja) | 情報処理装置 | |
WO2022143136A1 (zh) | 一种密码重置的方法、装置和电子设备 | |
CN117492634A (zh) | 数据存储方法和电子设备 | |
Sherkar et al. | An Extension to Android Security Framework. |
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 |